@omnimedia/omnitool 1.1.0-11 → 1.1.0-13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/s/demo/demo.bundle.ts +1 -1
- package/s/driver/driver.ts +1 -1
- package/s/timeline/parts/compositor/parts/schedulers.ts +9 -1
- package/s/timeline/parts/compositor/playback.ts +7 -1
- package/x/demo/demo.bundle.js +1 -1
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +54 -54
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/driver/driver.js +1 -1
- package/x/driver/driver.js.map +1 -1
- package/x/index.html +2 -2
- package/x/timeline/parts/compositor/parts/schedulers.d.ts +1 -1
- package/x/timeline/parts/compositor/parts/schedulers.js +5 -1
- package/x/timeline/parts/compositor/parts/schedulers.js.map +1 -1
- package/x/timeline/parts/compositor/playback.d.ts +1 -0
- package/x/timeline/parts/compositor/playback.js +3 -1
- package/x/timeline/parts/compositor/playback.js.map +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var Jw=Object.create;var Ud=Object.defineProperty;var e_=Object.getOwnPropertyDescriptor;var t_=Object.getOwnPropertyNames;var r_=Object.getPrototypeOf,i_=Object.prototype.hasOwnProperty;var b=(i,e)=>()=>(i&&(e=i(i=0)),e);var zd=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);var s_=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of t_(e))!i_.call(i,s)&&s!==t&&Ud(i,s,{get:()=>e[s],enumerable:!(r=e_(e,s))||r.enumerable});return i};var Gd=(i,e,t)=>(t=i!=null?Jw(r_(i)):{},s_(e||!i||!i.__esModule?Ud(t,"default",{value:i,enumerable:!0}):t,i));var A,Wl,ia,L,G=b(()=>{"use strict";A=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(A||{}),Wl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},ia=(i,e)=>Wl(i).priority??e,L={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Wl).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(Wl).forEach(e=>{e.type.forEach(t=>{let r=this._addHandlers,s=this._queue;r[t]?r[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(i,e,t){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=e,s[i]=t;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>e(o)),delete n[i]),this},handleByMap(i,e){return this.handle(i,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(i,e,t=-1){return this.handle(i,r=>{e.findIndex(n=>n.name===r.name)>=0||(e.push({name:r.name,value:r.ref}),e.sort((n,o)=>ia(o.value,t)-ia(n.value,t)))},r=>{let s=e.findIndex(n=>n.name===r.name);s!==-1&&e.splice(s,1)})},handleByList(i,e,t=-1){return this.handle(i,r=>{e.includes(r.ref)||(e.push(r.ref),e.sort((s,n)=>ia(n,t)-ia(s,t)))},r=>{let s=e.indexOf(r.ref);s!==-1&&e.splice(s,1)})},mixin(i,...e){for(let t of e)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(t))}}});var Tm=zd((jF,Hl)=>{"use strict";var K_=Object.prototype.hasOwnProperty,Re="~";function Rs(){}Object.create&&(Rs.prototype=Object.create(null),new Rs().__proto__||(Re=!1));function Z_(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Sm(i,e,t,r,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new Z_(t,r||i,s),o=Re?Re+e:e;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function sa(i,e){--i._eventsCount===0?i._events=new Rs:delete i._events[e]}function Ie(){this._events=new Rs,this._eventsCount=0}Ie.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)K_.call(t,r)&&e.push(Re?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ie.prototype.listeners=function(e){var t=Re?Re+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Ie.prototype.listenerCount=function(e){var t=Re?Re+e:e,r=this._events[t];return r?r.fn?1:r.length:0};Ie.prototype.emit=function(e,t,r,s,n,o){var a=Re?Re+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,s),!0;case 5:return c.fn.call(c.context,t,r,s,n),!0;case 6:return c.fn.call(c.context,t,r,s,n,o),!0}for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c.fn.apply(c.context,u)}else{var d=c.length,f;for(h=0;h<d;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),l){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,r);break;case 4:c[h].fn.call(c[h].context,t,r,s);break;default:if(!u)for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c[h].fn.apply(c[h].context,u)}}return!0};Ie.prototype.on=function(e,t,r){return Sm(this,e,t,r,!1)};Ie.prototype.once=function(e,t,r){return Sm(this,e,t,r,!0)};Ie.prototype.removeListener=function(e,t,r,s){var n=Re?Re+e:e;if(!this._events[n])return this;if(!t)return sa(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!r||o.context===r)&&sa(this,n);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==t||s&&!o[a].once||r&&o[a].context!==r)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:sa(this,n)}return this};Ie.prototype.removeAllListeners=function(e){var t;return e?(t=Re?Re+e:e,this._events[t]&&sa(this,t)):(this._events=new Rs,this._eventsCount=0),this};Ie.prototype.off=Ie.prototype.removeListener;Ie.prototype.addListener=Ie.prototype.on;Ie.prefixed=Re;Ie.EventEmitter=Ie;typeof Hl<"u"&&(Hl.exports=Ie)});var km,ie,He=b(()=>{km=Gd(Tm(),1),ie=km.default});var Q_,jt,_e,et,Bm,vm,jl,J_,na,Fm,Dm,Pm,Cm,Em,Os,eS,tS,rS,iS,Xl,Am,sS,$l,ql,Im,Yl,dt,Mm,Rm,Om=b(()=>{Q_={grad:.9,turn:360,rad:360/(2*Math.PI)},jt=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},_e=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t+0},et=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i>e?i:e},Bm=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},vm=function(i){return{r:et(i.r,0,255),g:et(i.g,0,255),b:et(i.b,0,255),a:et(i.a)}},jl=function(i){return{r:_e(i.r),g:_e(i.g),b:_e(i.b),a:_e(i.a,3)}},J_=/^#([0-9a-f]{3,8})$/i,na=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},Fm=function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=Math.max(e,t,r),o=n-Math.min(e,t,r),a=o?n===e?(t-r)/o:n===t?2+(r-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},Dm=function(i){var e=i.h,t=i.s,r=i.v,s=i.a;e=e/360*6,t/=100,r/=100;var n=Math.floor(e),o=r*(1-t),a=r*(1-(e-n)*t),c=r*(1-(1-e+n)*t),l=n%6;return{r:255*[r,a,o,o,c,r][l],g:255*[c,r,r,a,o,o][l],b:255*[o,o,c,r,r,a][l],a:s}},Pm=function(i){return{h:Bm(i.h),s:et(i.s,0,100),l:et(i.l,0,100),a:et(i.a)}},Cm=function(i){return{h:_e(i.h),s:_e(i.s),l:_e(i.l),a:_e(i.a,3)}},Em=function(i){return Dm((t=(e=i).s,{h:e.h,s:(t*=((r=e.l)<50?r:100-r)/100)>0?2*t/(r+t)*100:0,v:r+t,a:e.a}));var e,t,r},Os=function(i){return{h:(e=Fm(i)).h,s:(s=(200-(t=e.s))*(r=e.v)/100)>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,r,s},eS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,tS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,rS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,iS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Xl={string:[[function(i){var e=J_.exec(i);return e?(i=e[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?_e(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?_e(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var e=rS.exec(i)||iS.exec(i);return e?e[2]!==e[4]||e[4]!==e[6]?null:vm({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(i){var e=eS.exec(i)||tS.exec(i);if(!e)return null;var t,r,s=Pm({h:(t=e[1],r=e[2],r===void 0&&(r="deg"),Number(t)*(Q_[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Em(s)},"hsl"]],object:[[function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return jt(e)&&jt(t)&&jt(r)?vm({r:Number(e),g:Number(t),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var e=i.h,t=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!jt(e)||!jt(t)||!jt(r))return null;var o=Pm({h:Number(e),s:Number(t),l:Number(r),a:Number(n)});return Em(o)},"hsl"],[function(i){var e=i.h,t=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!jt(e)||!jt(t)||!jt(r))return null;var o=function(a){return{h:Bm(a.h),s:et(a.s,0,100),v:et(a.v,0,100),a:et(a.a)}}({h:Number(e),s:Number(t),v:Number(r),a:Number(n)});return Dm(o)},"hsv"]]},Am=function(i,e){for(var t=0;t<e.length;t++){var r=e[t][0](i);if(r)return[r,e[t][1]]}return[null,void 0]},sS=function(i){return typeof i=="string"?Am(i.trim(),Xl.string):typeof i=="object"&&i!==null?Am(i,Xl.object):[null,void 0]},$l=function(i,e){var t=Os(i);return{h:t.h,s:et(t.s+100*e,0,100),l:t.l,a:t.a}},ql=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},Im=function(i,e){var t=Os(i);return{h:t.h,s:t.s,l:et(t.l+100*e,0,100),a:t.a}},Yl=function(){function i(e){this.parsed=sS(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return _e(ql(this.rgba),2)},i.prototype.isDark=function(){return ql(this.rgba)<.5},i.prototype.isLight=function(){return ql(this.rgba)>=.5},i.prototype.toHex=function(){return e=jl(this.rgba),t=e.r,r=e.g,s=e.b,o=(n=e.a)<1?na(_e(255*n)):"","#"+na(t)+na(r)+na(s)+o;var e,t,r,s,n,o},i.prototype.toRgb=function(){return jl(this.rgba)},i.prototype.toRgbString=function(){return e=jl(this.rgba),t=e.r,r=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+r+", "+s+", "+n+")":"rgb("+t+", "+r+", "+s+")";var e,t,r,s,n},i.prototype.toHsl=function(){return Cm(Os(this.rgba))},i.prototype.toHslString=function(){return e=Cm(Os(this.rgba)),t=e.h,r=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+r+"%, "+s+"%, "+n+")":"hsl("+t+", "+r+"%, "+s+"%)";var e,t,r,s,n},i.prototype.toHsv=function(){return e=Fm(this.rgba),{h:_e(e.h),s:_e(e.s),v:_e(e.v),a:_e(e.a,3)};var e},i.prototype.invert=function(){return dt({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},i.prototype.saturate=function(e){return e===void 0&&(e=.1),dt($l(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),dt($l(this.rgba,-e))},i.prototype.grayscale=function(){return dt($l(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),dt(Im(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),dt(Im(this.rgba,-e))},i.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},i.prototype.alpha=function(e){return typeof e=="number"?dt({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):_e(this.rgba.a,3);var t},i.prototype.hue=function(e){var t=Os(this.rgba);return typeof e=="number"?dt({h:e,s:t.s,l:t.l,a:t.a}):_e(t.h)},i.prototype.isEqual=function(e){return this.toHex()===dt(e).toHex()},i}(),dt=function(i){return i instanceof Yl?i:new Yl(i)},Mm=[],Rm=function(i){i.forEach(function(e){Mm.indexOf(e)<0&&(e(Yl,Xl),Mm.push(e))})}});function Um(i,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var s in t)r[t[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,l=r[this.toHex()];if(l)return l;if(o?.closest){var u=this.toRgb(),h=1/0,d="black";if(!n.length)for(var f in t)n[f]=new i(t[f]).toRgb();for(var m in t){var p=(a=u,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));p<h&&(h=p,d=m)}return d}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new i(c).toRgb():null},"name"])}var zm=b(()=>{});var Ei,X,je=b(()=>{Om();zm();Rm([Um]);Ei=class Us{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof Us)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let r=typeof e;if(r!==typeof t)return!1;if(r==="number"||r==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,r,s]=this._components;return{r:e,g:t,b:r,a:s}}toRgb(){let[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){let[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){let[t,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(r*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,r,s,n]=this._components;return e[0]=t,e[1]=r,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,r,s]=this._components;return e[0]=t,e[1]=r,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,r,s,n]=Us._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(r=r*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(r<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,r,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,r,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,r,s,n=255]=e,t/=255,r/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=Us.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=dt(e);o.isValid()&&({r:t,g:r,b:s,a:n}=o.rgba,t/=255,r/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,r]=this._components;this._int=(e*255<<16)+(t*255<<8)+(r*255|0)}_clamp(e,t=0,r=1){return typeof e=="number"?Math.min(Math.max(e,t),r):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),r)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof Us||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};Ei.shared=new Ei;Ei._temp=new Ei;Ei.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;X=Ei});var Gm,Nm=b(()=>{"use strict";Gm={cullArea:null,cullable:!1,cullableChildren:!0}});var Lm,Vm,Wm,Kl=b(()=>{"use strict";Lm=Math.PI*2,Vm=180/Math.PI,Wm=Math.PI/180});var Y,Zl,St=b(()=>{"use strict";Y=class i{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new i(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Zl.x=0,Zl.y=0,Zl}},Zl=new Y});var F,nS,oS,re=b(()=>{Kl();St();F=class i{constructor(e=1,t=0,r=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,s,n,o){return this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let r=t||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,t){t=t||new Y;let r=e.x,s=e.y;return t.x=this.a*r+this.c*s+this.tx,t.y=this.b*r+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Y;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,l=1/(r*o+n*-s),u=e.x,h=e.y;return t.x=o*l*u+-n*l*h+(c*n-a*o)*l,t.y=r*l*h+-s*l*u+(-c*r+a*s)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),r=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*r,this.b=s*r+this.b*t,this.c=n*t-this.d*r,this.d=n*r+this.d*t,this.tx=o*t-this.ty*r,this.ty=o*r+this.ty*t,this}append(e){let t=this.a,r=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*r+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*r+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*r+e.ty*n+this.ty,this}appendFrom(e,t){let r=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,l=t.a,u=t.b,h=t.c,d=t.d;return this.a=r*l+s*h,this.b=r*u+s*d,this.c=n*l+o*h,this.d=n*u+o*d,this.tx=a*l+c*h+t.tx,this.ty=a*u+c*d+t.ty,this}setTransform(e,t,r,s,n,o,a,c,l){return this.a=Math.cos(a+l)*n,this.b=Math.sin(a+l)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(r*this.a+s*this.c),this.ty=t-(r*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let r=this.a,s=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,r=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(r,t),l=Math.abs(a+c);return l<1e-5||Math.abs(Lm-l)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*r+o.y*n),e}invert(){let e=this.a,t=this.b,r=this.c,s=this.d,n=this.tx,o=e*s-t*r;return this.a=s/o,this.b=-t/o,this.c=-r/o,this.d=e/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new i;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return oS.identity()}static get shared(){return nS.identity()}},nS=new F,oS=new F});var Oe,Ql=b(()=>{"use strict";Oe=class i{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new i(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(i="default"){return Jl[i]===void 0&&(Jl[i]=-1),++Jl[i]}var Jl,Ue=b(()=>{"use strict";Jl={default:-1}});function N(i,e,t=3){if(Hm[e])return;let r=new Error().stack;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
1
|
+
var f_=Object.create;var Xd=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 Yd=(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&&Xd(i,s,{get:()=>e[s],enumerable:!(r=m_(e,s))||r.enumerable});return i};var Kd=(i,e,t)=>(t=i!=null?f_(g_(i)):{},y_(e||!i||!i.__esModule?Xd(t,"default",{value:i,enumerable:!0}):t,i));var A,eu,fa,L,G=b(()=>{"use strict";A=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(A||{}),eu=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)=>eu(i).priority??e,L={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(eu).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(eu).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 Um=Yd((RD,tu)=>{"use strict";var fS=Object.prototype.hasOwnProperty,De="~";function Ns(){}Object.create&&(Ns.prototype=Object.create(null),new Ns().__proto__||(De=!1));function mS(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Om(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 Ns:delete i._events[e]}function Ie(){this._events=new Ns,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 Om(this,e,t,r,!1)};Ie.prototype.once=function(e,t,r){return Om(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 Ns,this._eventsCount=0),this};Ie.prototype.off=Ie.prototype.removeListener;Ie.prototype.addListener=Ie.prototype.on;Ie.prefixed=De;Ie.EventEmitter=Ie;typeof tu<"u"&&(tu.exports=Ie)});var zm,ie,He=b(()=>{zm=Kd(Um(),1),ie=zm.default});var pS,$t,_e,tt,$m,Gm,ru,gS,pa,qm,Xm,Nm,Lm,Vm,Ls,xS,yS,bS,wS,nu,Wm,_S,iu,su,Hm,ou,ft,jm,Ym,Km=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},$m=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Gm=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)}},ru=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},qm=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}},Xm=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:$m(i.h),s:tt(i.s,0,100),l:tt(i.l,0,100),a:tt(i.a)}},Lm=function(i){return{h:_e(i.h),s:_e(i.s),l:_e(i.l),a:_e(i.a,3)}},Vm=function(i){return Xm((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},Ls=function(i){return{h:(e=qm(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,nu={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:Gm({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 Vm(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)?Gm({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 Vm(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:$m(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 Xm(o)},"hsv"]]},Wm=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"?Wm(i.trim(),nu.string):typeof i=="object"&&i!==null?Wm(i,nu.object):[null,void 0]},iu=function(i,e){var t=Ls(i);return{h:t.h,s:tt(t.s+100*e,0,100),l:t.l,a:t.a}},su=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},Hm=function(i,e){var t=Ls(i);return{h:t.h,s:t.s,l:tt(t.l+100*e,0,100),a:t.a}},ou=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(su(this.rgba),2)},i.prototype.isDark=function(){return su(this.rgba)<.5},i.prototype.isLight=function(){return su(this.rgba)>=.5},i.prototype.toHex=function(){return e=ru(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 ru(this.rgba)},i.prototype.toRgbString=function(){return e=ru(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 Lm(Ls(this.rgba))},i.prototype.toHslString=function(){return e=Lm(Ls(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=qm(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(iu(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),ft(iu(this.rgba,-e))},i.prototype.grayscale=function(){return ft(iu(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),ft(Hm(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),ft(Hm(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=Ls(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 ou?i:new ou(i)},jm=[],Ym=function(i){i.forEach(function(e){jm.indexOf(e)<0&&(e(ou,nu),jm.push(e))})}});function Zm(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 Qm=b(()=>{});var Bi,X,je=b(()=>{Km();Qm();Ym([Zm]);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 Jm,ep=b(()=>{"use strict";Jm={cullArea:null,cullable:!1,cullableChildren:!0}});var tp,rp,ip,au=b(()=>{"use strict";tp=Math.PI*2,rp=180/Math.PI,ip=Math.PI/180});var Y,cu,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 cu.x=0,cu.y=0,cu}},cu=new Y});var F,SS,TS,re=b(()=>{au();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(tp-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,lu=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 uu[i]===void 0&&(uu[i]=-1),++uu[i]}var uu,Ue=b(()=>{"use strict";uu={default:-1}});function N(i,e,t=3){if(sp[e])return;let r=new Error().stack;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
2
2
|
Deprecated since v${i}`):(r=r.split(`
|
|
3
3
|
`).splice(t).join(`
|
|
4
4
|
`),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
|
|
5
5
|
Deprecated since v${i}`),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
6
|
-
Deprecated since v${i}`),console.warn(r))),Hm[e]=!0}var Hm,$,jm,pe=b(()=>{"use strict";Hm={},$="8.0.0",jm="8.3.4"});var Nr,eu=b(()=>{"use strict";Nr=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var tu,be,Lr=b(()=>{eu();tu=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Nr(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},be=new tu});var $m,qm=b(()=>{pe();$m={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){N("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function oa(i,e,t){let r=i.length,s;if(e>=r||t===0)return;t=e+t>r?r-e:t;let n=r-t;for(s=e;s<n;++s)i[s]=i[s+t];i.length=n}var ru=b(()=>{"use strict"});var Xm,Ym=b(()=>{ru();pe();Xm={allowChildren:!0,removeChildren(i=0,e){let t=e??this.children.length,r=t-i,s=[];if(r>0&&r<=t){for(let o=t-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}oa(this.children,i,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let e=this.getChildAt(i);return this.removeChild(e)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,e)},getChildIndex(i){let e=this.children.indexOf(i);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(i,e){this.allowChildren||N($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${i}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(i.parent){let s=i.parent.children.indexOf(i);if(i.parent===this&&s===e)return i;s!==-1&&i.parent.children.splice(s,1)}e===t.length?t.push(i):t.splice(e,0,i),i.parent=this,i.didChange=!0,i._updateFlags=15;let r=this.renderGroup||this.parentRenderGroup;return r&&r.addChild(i),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",i,this,e),i.emit("added",this),i},swapChildren(i,e){if(i===e)return;let t=this.getChildIndex(i),r=this.getChildIndex(e);this.children[t]=e,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(e=>this.reparentChildAt(e,this.children.length)),i[0])},reparentChildAt(i,e){if(i.parent===this)return this.setChildIndex(i,e),i;let t=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,e);let r=this.worldTransform.clone();return r.invert(),t.prepend(r),i.setFromMatrix(t),i}}});var Km,Zm=b(()=>{"use strict";Km={collectRenderables(i,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,e,t))},collectRenderablesSimple(i,e,t){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,e,t)},collectRenderablesWithEffects(i,e,t){let{renderPipes:r}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var zs,Qm=b(()=>{"use strict";zs=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var iu,aa,Jm=b(()=>{G();Lr();iu=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let r=this._tests[t];if(r.test(e))return be.get(r.maskClass,e)}return e}returnMaskEffect(e){be.return(e)}},aa=new iu;L.handleByList(A.MaskEffect,aa._effectClasses)});var ep,tp=b(()=>{Qm();Jm();ep={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((t,r)=>t.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let e=this.effects.indexOf(i);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let e=this._maskEffect;e?.mask!==i&&(e&&(this.removeEffect(e),aa.returnMaskEffect(e),this._maskEffect=null),i!=null&&(this._maskEffect=aa.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let e=this._filterEffect||(this._filterEffect=new zs);i=i;let t=i?.length>0,r=e.filters?.length>0,s=t!==r;i=Array.isArray(i)?i.slice(0):i,e.filters=Object.freeze(i),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new zs),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var rp,ip=b(()=>{pe();rp={label:null,get name(){return N($,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){N($,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,e=!1){return this.getChildByLabel(i,e)},getChildByLabel(i,e=!1){let t=this.children;for(let r=0;r<t.length;r++){let s=t[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(e)for(let r=0;r<t.length;r++){let n=t[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,e=!1,t=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&t.push(n)}if(e)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,t);return t}}});var ca,Z,$e=b(()=>{St();ca=[new Y,new Y,new Y,new Y],Z=class i{constructor(e=0,t=0,r=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,l=r*(1-s),u=r-l,h=a-l,d=a+n+l,f=c-l,m=c+o+l,p=a+u,g=a+n-u,y=c+u,x=c+o-u;return e>=h&&e<=d&&t>=f&&t<=m&&!(e>p&&e<g&&t>y&&t<x)}intersects(e,t){if(!t){let M=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=M)return!1;let C=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>C}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=ca[0].set(e.left,e.top),c=ca[1].set(e.left,e.bottom),l=ca[2].set(e.right,e.top),u=ca[3].set(e.right,e.bottom);if(l.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(l,l),t.apply(u,u),Math.max(a.x,c.x,l.x,u.x)<=r||Math.min(a.x,c.x,l.x,u.x)>=s||Math.max(a.y,c.y,l.y,u.y)<=n||Math.min(a.y,c.y,l.y,u.y)>=o))return!1;let d=h*(c.y-a.y),f=h*(a.x-c.x),m=d*r+f*n,p=d*s+f*n,g=d*r+f*o,y=d*s+f*o;if(Math.max(m,p,g,y)<=d*a.x+f*a.y||Math.min(m,p,g,y)>=d*u.x+f*u.y)return!1;let x=h*(a.y-l.y),w=h*(l.x-a.x),_=x*r+w*n,S=x*s+w*n,T=x*r+w*o,v=x*s+w*o;return!(Math.max(_,S,T,v)<=x*a.x+w*a.y||Math.min(_,S,T,v)>=x*u.x+w*u.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let r=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new i),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,r=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,r,s){return this.x=e,this.y=t,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var sp,le,ft=b(()=>{re();$e();sp=new F,le=class i{constructor(e=1/0,t=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=sp,this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Z);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=sp,this}set(e,t,r,s){this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}addFrame(e,t,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,l=n.d,u=n.tx,h=n.ty,d=this.minX,f=this.minY,m=this.maxX,p=this.maxY,g=o*e+c*t+u,y=a*e+l*t+h;g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*r+c*t+u,y=a*r+l*t+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*e+c*s+u,y=a*e+l*s+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*r+c*s+u,y=a*r+l*s+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),this.minX=d,this.minY=f,this.maxX=m,this.maxY=p}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:l,tx:u,ty:h}=e,d=o*t+c*r+u,f=a*t+l*r+h;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+c*r+u,f=a*s+l*r+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*t+c*n+u,f=a*t+l*n+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+c*n+u,f=a*s+l*n+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,r,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,r,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let l=s.a,u=s.b,h=s.c,d=s.d,f=s.tx,m=s.ty;for(let p=t;p<r;p+=2){let g=e[p],y=e[p+1],x=l*g+h*y+f,w=u*g+d*y+m;n=x<n?x:n,o=w<o?w:o,a=x>a?x:a,c=w>c?w:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var ge,Ke,Vr=b(()=>{re();eu();ft();ge=new Nr(F),Ke=new Nr(le)});var aS,np,op=b(()=>{re();ft();Vr();aS=new F,np={getFastGlobalBounds(i,e){e||(e=new le),e.clear(),this._getGlobalBoundsRecursive(!!i,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(i,e,t){let r=e;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=Ke.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&(r.applyMatrix(o.worldTransform.copyTo(aS).invert()),e.addBounds(r,this.relativeGroupTransform)),e.addBounds(r),Ke.return(r)}else this.renderGroup&&(e.addBounds(r,this.relativeGroupTransform),Ke.return(r))}}});function la(i,e,t){t.clear();let r,s;return i.parent?e?r=i.parent.worldTransform:(s=ge.get().identity(),r=ua(i,s)):r=F.IDENTITY,ap(i,t,r,e),s&&ge.return(s),t.isValid||t.set(0,0,0,0),t}function ap(i,e,t,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=ge.get(),s.appendFrom(i.localTransform,t));let n=e,o=!!i.effects.length;if(o&&(e=Ke.get().clear()),i.boundsArea)e.addRect(i.boundsArea,s);else{i.bounds&&(e.matrix=s,e.addBounds(i.bounds));for(let a=0;a<i.children.length;a++)ap(i.children[a],e,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(e);n.addBounds(e,F.IDENTITY),Ke.return(e)}r||ge.return(s)}function ua(i,e){let t=i.parent;return t&&(ua(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var ha=b(()=>{re();Vr()});function da(i,e){if(i===16777215||!e)return e;if(e===16777215||!i)return i;let t=i>>16&255,r=i>>8&255,s=i&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,l=r*o/255|0,u=s*a/255|0;return(c<<16)+(l<<8)+u}var su=b(()=>{"use strict"});function nu(i,e){return i===cp?e:e===cp?i:da(i,e)}var cp,lp=b(()=>{su();cp=16777215});function Gs(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var up,hp=b(()=>{ha();Vr();lp();up={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(i,e){if(e)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let t=ua(this,ge.get().identity());return i.appendFrom(this.localTransform,t),ge.return(t),i},getGlobalTint(i){if(i)return this.renderGroup?Gs(this.renderGroup.worldColor):this.parentRenderGroup?Gs(nu(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=nu(e,t.localColor),t=t.parent;return Gs(e)}}});function fa(i,e,t){return e.clear(),t||(t=F.IDENTITY),dp(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function dp(i,e,t,r,s){let n;if(s)n=ge.get(),n=t.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let c=i.localTransform;n=ge.get(),n.appendFrom(c,t)}let o=e,a=!!i.effects.length;if(a&&(e=Ke.get().clear()),i.boundsArea)e.addRect(i.boundsArea,n);else{i.renderPipeId&&(e.matrix=n,e.addBounds(i.bounds));let c=i.children;for(let l=0;l<c.length;l++)dp(c[l],e,n,r,!1)}if(a){for(let c=0;c<i.effects.length;c++)i.effects[c].addLocalBounds?.(e,r);o.addBounds(e,F.IDENTITY),Ke.return(e)}ge.return(n)}var ou=b(()=>{re();Vr()});function au(i,e){let t=i.children;for(let r=0;r<t.length;r++){let s=t[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&au(s,e)}return e.didChange}var fp=b(()=>{"use strict"});var cS,mp,pp=b(()=>{re();ft();ha();ou();fp();cS=new F,mp={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=i/e*t:this.scale.x=t},_setHeight(i,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=i/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new le});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),au(this,i),i.didChange&&fa(this,i.localBounds,cS),i.localBounds},getBounds(i,e){return la(this,i,e||new le)}}});var gp,xp=b(()=>{"use strict";gp={_onRender:null,set onRender(i){let e=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function lS(i,e){return i._zIndex-e._zIndex}var yp,bp=b(()=>{"use strict";yp={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(lS))}}});var wp,_p=b(()=>{St();Vr();wp={getGlobalPosition(i=new Y,e=!1){return this.parent?this.parent.toGlobal(this._position,i,e):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,e,t=!1){let r=this.getGlobalTransform(ge.get(),t);return e=r.apply(i,e),ge.return(r),e},toLocal(i,e,t,r){e&&(i=e.toGlobal(i,t,r));let s=this.getGlobalTransform(ge.get(),r);return t=s.applyInverse(i,t),ge.return(s),t}}});var Ai,cu=b(()=>{Ue();Ai=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function $t(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function lu(i){return!(i&i-1)&&!!i}var Ns=b(()=>{"use strict"});function ma(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var uu=b(()=>{"use strict"});function uS(i){let e=Sp[i];return e===void 0&&(Sp[i]=K("resource")),e}var Sp,Tp,tt,Ii=b(()=>{He();Ue();pe();Sp=Object.create(null);Tp=class kp extends ie{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...kp.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){N($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=uS(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Tp.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};tt=Tp});var vp,we,qt=b(()=>{He();Ns();uu();Ue();Ii();vp=class Pp extends ie{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...Pp.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new tt(ma(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r||(r=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*r),n=Math.round(t*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=lu(this.pixelWidth)&&lu(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};vp.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};we=vp});function hS(){for(let i=0;i<16;i++){let e=[];hu.push(e);for(let t=0;t<16;t++){let r=pa(Wr[i]*Wr[t]+jr[i]*Hr[t]),s=pa(Hr[i]*Wr[t]+$r[i]*Hr[t]),n=pa(Wr[i]*jr[t]+jr[i]*$r[t]),o=pa(Hr[i]*jr[t]+$r[i]*$r[t]);for(let a=0;a<16;a++)if(Wr[a]===r&&Hr[a]===s&&jr[a]===n&&$r[a]===o){e.push(a);break}}}for(let i=0;i<16;i++){let e=new F;e.set(Wr[i],Hr[i],jr[i],$r[i],0,0),Cp.push(e)}}var Wr,Hr,jr,$r,hu,Cp,pa,se,Ep=b(()=>{re();Wr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Hr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],jr=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],$r=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],hu=[],Cp=[],pa=Math.sign;hS();se={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Wr[i],uY:i=>Hr[i],vX:i=>jr[i],vY:i=>$r[i],inv:i=>i&8?i&15:-i&7,add:(i,e)=>hu[i][e],sub:(i,e)=>hu[i][se.inv(e)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,e)=>Math.abs(i)*2<=Math.abs(e)?e>=0?se.S:se.N:Math.abs(e)*2<=Math.abs(i)?i>0?se.E:se.W:e>0?i>0?se.SE:se.SW:i>0?se.NE:se.NW,matrixAppendRotationInv:(i,e,t=0,r=0)=>{let s=Cp[se.inv(e)];s.tx=t,s.ty=r,i.append(s)}}});var du,Ap=b(()=>{"use strict";du=()=>{}});var qr,fu=b(()=>{G();qt();qr=class extends we{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),r=e.format;r||(t instanceof Float32Array?r="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?r="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?r="rgba16uint":(t instanceof Int8Array,r="bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};qr.extension=A.TextureSource});var Ip,ga,Mp=b(()=>{re();Ip=new F,ga=class{constructor(e,t){this.mapCoord=new F,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let r=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*r.a+o*r.c+r.tx,t[s+1]=n*r.b+o*r.d+r.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let r=e.orig,s=e.trim;s&&(Ip.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Ip));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var O,Te=b(()=>{He();Ep();$e();Ue();pe();Ap();fu();qt();Mp();O=class extends ie{constructor({source:e,label:t,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:l}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Z,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new we,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:u,height:h}=this._source;this.frame.width=u,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=l||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new ga(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:r,height:s}=this._source,n=t.x/r,o=t.y/s,a=t.width/r,c=t.height/s,l=this.rotate;if(l){let u=a/2,h=c/2,d=n+u,f=o+h;l=se.add(l,se.NW),e.x0=d+u*se.uX(l),e.y0=f+h*se.uY(l),l=se.add(l,2),e.x1=d+u*se.uX(l),e.y1=f+h*se.uY(l),l=se.add(l,2),e.x2=d+u*se.uX(l),e.y2=f+h*se.uY(l),l=se.add(l,2),e.x3=d+u*se.uX(l),e.y3=f+h*se.uY(l)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return N($,"Texture.baseTexture is now Texture.source"),this._source}};O.EMPTY=new O({label:"EMPTY",source:new we({label:"EMPTY"})});O.EMPTY.destroy=du;O.WHITE=new O({source:new qr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});O.WHITE.destroy=du});var dS,mu,Me,Mi=b(()=>{Ns();qt();Te();Ii();dS=0,mu=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new tt(this.textureOptions)}createTexture(e,t,r){let s=new we({...this.textureOptions,width:e,height:t,resolution:1,antialias:r,autoGarbageCollect:!1});return new O({source:s,label:`texturePool_${dS++}`})}getOptimalTexture(e,t,r=1,s){let n=Math.ceil(e*r-1e-6),o=Math.ceil(t*r-1e-6);n=$t(n),o=$t(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=r,c.source.width=n/r,c.source.height=o/r,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let r=e.source;return this.getOptimalTexture(e.width,e.height,r._resolution,t)}returnTexture(e,t=!1){let r=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[r].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let r=this._texturePool[t];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Me=new mu});var xa,Bp=b(()=>{re();cu();Mi();xa=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new F,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new Ai,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let r=0;r<t.length;r++){let s=t[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Me.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let r=0;r<t.length;r++)this.addChild(t[r])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let r=0;r<t.length;r++)this.removeChild(t[r])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let r=0;r<t.length;r++)this._getChildren(t[r],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let r=e.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new F),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new F),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new F),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function Fp(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var Dp=b(()=>{"use strict"});var pu,gu,xu,Rp,fS,yu,mt,Ls=b(()=>{He();je();Nm();G();re();Kl();Ql();Ue();pe();Lr();qm();Ym();Zm();tp();ip();op();hp();pp();xp();bp();_p();Bp();Dp();pu=new Oe(null),gu=new Oe(null),xu=new Oe(null,1,1),Rp=1,fS=2,yu=4,mt=class i extends ie{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new F,this.relativeGroupTransform=new F,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Oe(this,0,0),this._scale=xu,this._pivot=gu,this._skew=pu,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],Fp(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){N("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),L.mixin(i,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||N($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],r=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),r&&(r.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,r&&r.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],r=this.children.indexOf(t);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=be.get(xa,this),this.groupTransform=F.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),be.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new F),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*Vm}set angle(e){this.rotation=e*Wm}get pivot(){return this._pivot===gu&&(this._pivot=new Oe(this,0,0)),this._pivot}set pivot(e){this._pivot===gu&&(this._pivot=new Oe(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===pu&&(this._skew=new Oe(this,0,0)),this._skew}set skew(e){this._skew===pu&&(this._skew=new Oe(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===xu&&(this._scale=new Oe(this,1,1)),this._scale}set scale(e){this._scale===xu&&(this._scale=new Oe(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let r=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,r.width),t!==void 0&&this._setHeight(t,r.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,r=this._scale,s=this._pivot,n=this._position,o=r._x,a=r._y,c=s._x,l=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+l*t.c),t.ty=n._y-(c*t.b+l*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Rp,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let r=X.shared.setValue(e??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=Rp,this._onUpdate())}get tint(){return Gs(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=fS,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=yu,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=yu,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=yu,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};L.mixin(mt,Xm,np,wp,gp,mp,ep,rp,yp,Gm,$m,up,Km)});var ur,ya=b(()=>{St();ur=class i{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new Y,this.page=new Y,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function mS(i){return function(e){return e.test(i)}}function Vs(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,r=t.split("[FBAN");typeof r[1]<"u"&&(t=r[0]),r=t.split("Twitter"),typeof r[1]<"u"&&(t=r[0]);var s=mS(t),n={apple:{phone:s(bu)&&!s(Xt),ipod:s(Op),tablet:!s(bu)&&(s(Up)||$p(e))&&!s(Xt),universal:s(zp),device:(s(bu)||s(Op)||s(Up)||s(zp)||$p(e))&&!s(Xt)},amazon:{phone:s(Bi),tablet:!s(Bi)&&s(ba),device:s(Bi)||s(ba)},android:{phone:!s(Xt)&&s(Bi)||!s(Xt)&&s(wu),tablet:!s(Xt)&&!s(Bi)&&!s(wu)&&(s(ba)||s(Gp)),device:!s(Xt)&&(s(Bi)||s(ba)||s(wu)||s(Gp))||s(/\bokhttp\b/i)},windows:{phone:s(Xt),tablet:s(Np),device:s(Xt)||s(Np)},other:{blackberry:s(Lp),blackberry10:s(Vp),opera:s(Wp),firefox:s(jp),chrome:s(Hp),device:s(Lp)||s(Vp)||s(Wp)||s(jp)||s(Hp)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var bu,Op,Up,zp,wu,Gp,Bi,ba,Xt,Np,Lp,Vp,Wp,Hp,jp,$p,_u=b(()=>{bu=/iPhone/i,Op=/iPod/i,Up=/iPad/i,zp=/\biOS-universal(?:.+)Mac\b/i,wu=/\bAndroid(?:.+)Mobile\b/i,Gp=/Android/i,Bi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,ba=/Silk/i,Xt=/Windows Phone/i,Np=/\bWindows(?:.+)ARM\b/i,Lp=/BlackBerry/i,Vp=/BB10/i,Wp=/Opera Mini/i,Hp=/\b(CriOS|Chrome)(?:.+)Mobile/i,jp=/Mobile(?:.+)Firefox\b/i,$p=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var qp=b(()=>{_u();_u()});var pS,Xp,Yp=b(()=>{qp();pS=Vs.default??Vs,Xp=pS(globalThis.navigator)});var gS,wa,xS,yS,Kp,Zp,bS,wS,_S,Su,Jp,eg=b(()=>{ya();G();Yp();ru();gS=9,wa=100,xS=0,yS=0,Kp=2,Zp=1,bS=-1e3,wS=-1e3,_S=2,Su=class Qp{constructor(e,t=Xp){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${Zp}px`,e.style.height=`${Zp}px`,e.style.position="absolute",e.style.top=`${bS}px`,e.style.left=`${wS}px`,e.style.zIndex=_S.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${wa}px`,this._div.style.height=`${wa}px`,this._div.style.position="absolute",this._div.style.top=`${xS}px`,this._div.style.left=`${yS}px`,this._div.style.zIndex=Kp.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let r=0;r<t.length;r++)this._updateAccessibleObjects(t[r])}init(e){let r={accessibilityOptions:{...Qp.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&t.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];t.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,oa(this._children,r,1))}if(this._renderer.renderingToScreen){let{x:r,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${r}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,l=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*l}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*l}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
|
|
6
|
+
Deprecated since v${i}`),console.warn(r))),sp[e]=!0}var sp,$,np,pe=b(()=>{"use strict";sp={},$="8.0.0",np="8.3.4"});var Lr,hu=b(()=>{"use strict";Lr=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 du,be,Vr=b(()=>{hu();du=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 Lr(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 du});var op,ap=b(()=>{pe();op={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){N("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function 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 fu=b(()=>{"use strict"});var cp,lp=b(()=>{fu();pe();cp={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||N($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${i}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(i.parent){let s=i.parent.children.indexOf(i);if(i.parent===this&&s===e)return i;s!==-1&&i.parent.children.splice(s,1)}e===t.length?t.push(i):t.splice(e,0,i),i.parent=this,i.didChange=!0,i._updateFlags=15;let r=this.renderGroup||this.parentRenderGroup;return r&&r.addChild(i),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",i,this,e),i.emit("added",this),i},swapChildren(i,e){if(i===e)return;let t=this.getChildIndex(i),r=this.getChildIndex(e);this.children[t]=e,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(e=>this.reparentChildAt(e,this.children.length)),i[0])},reparentChildAt(i,e){if(i.parent===this)return this.setChildIndex(i,e),i;let t=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,e);let r=this.worldTransform.clone();return r.invert(),t.prepend(r),i.setFromMatrix(t),i}}});var up,hp=b(()=>{"use strict";up={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,dp=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 mu,xa,fp=b(()=>{G();Vr();mu=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 mu;L.handleByList(A.MaskEffect,xa._effectClasses)});var mp,pp=b(()=>{dp();fp();mp={_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 gp,xp=b(()=>{pe();gp={label:null,get name(){return N($,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){N($,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,e=!1){return this.getChildByLabel(i,e)},getChildByLabel(i,e=!1){let t=this.children;for(let r=0;r<t.length;r++){let s=t[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(e)for(let r=0;r<t.length;r++){let n=t[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,e=!1,t=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&t.push(n)}if(e)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,t);return t}}});var 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,k=x*s+w*o;return!(Math.max(_,S,T,k)<=x*a.x+w*a.y||Math.min(_,S,T,k)>=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 yp,le,mt=b(()=>{re();$e();yp=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=yp,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=yp,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();hu();mt();ge=new Lr(F),Ze=new Lr(le)});var vS,bp,wp=b(()=>{re();mt();Wr();vS=new F,bp={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(vS).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,_p(i,t,r,e),s&&ge.return(s),t.isValid||t.set(0,0,0,0),t}function _p(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++)_p(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 pu=b(()=>{"use strict"});function gu(i,e){return i===Sp?e:e===Sp?i:Sa(i,e)}var Sp,Tp=b(()=>{pu();Sp=16777215});function Hs(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var vp,kp=b(()=>{_a();Wr();Tp();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(gu(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=gu(e,t.localColor),t=t.parent;return Hs(e)}}});function Ta(i,e,t){return e.clear(),t||(t=F.IDENTITY),Pp(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function Pp(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++)Pp(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 xu=b(()=>{re();Wr()});function yu(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&&yu(s,e)}return e.didChange}var Cp=b(()=>{"use strict"});var kS,Ep,Ap=b(()=>{re();mt();_a();xu();Cp();kS=new F,Ep={_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),yu(this,i),i.didChange&&Ta(this,i.localBounds,kS),i.localBounds},getBounds(i,e){return ba(this,i,e||new le)}}});var Ip,Mp=b(()=>{"use strict";Ip={_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 Bp,Fp=b(()=>{"use strict";Bp={_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 Rp,Dp=b(()=>{Tt();Wr();Rp={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,bu=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 wu(i){return!(i&i-1)&&!!i}var js=b(()=>{"use strict"});function va(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var _u=b(()=>{"use strict"});function CS(i){let e=Op[i];return e===void 0&&(Op[i]=K("resource")),e}var Op,Up,rt,Ri=b(()=>{He();Ue();pe();Op=Object.create(null);Up=class zp extends ie{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...zp.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){N($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=CS(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Up.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};rt=Up});var Gp,we,Xt=b(()=>{He();js();_u();Ue();Ri();Gp=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(va(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=wu(this.pixelWidth)&&wu(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};Gp.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};we=Gp});function ES(){for(let i=0;i<16;i++){let e=[];Su.push(e);for(let t=0;t<16;t++){let r=ka(Hr[i]*Hr[t]+$r[i]*jr[t]),s=ka(jr[i]*Hr[t]+qr[i]*jr[t]),n=ka(Hr[i]*$r[t]+$r[i]*qr[t]),o=ka(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),Lp.push(e)}}var Hr,jr,$r,qr,Su,Lp,ka,se,Vp=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],Su=[],Lp=[],ka=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)=>Su[i][e],sub:(i,e)=>Su[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=Lp[se.inv(e)];s.tx=t,s.ty=r,i.append(s)}}});var Tu,Wp=b(()=>{"use strict";Tu=()=>{}});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 Hp,Pa,jp=b(()=>{re();Hp=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&&(Hp.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Hp));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();Vp();$e();Ue();pe();Wp();vu();Xt();jp();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 N($,"Texture.baseTexture is now Texture.source"),this._source}};O.EMPTY=new O({label:"EMPTY",source:new we({label:"EMPTY"})});O.EMPTY.destroy=Tu;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=Tu});var AS,ku,Me,Di=b(()=>{js();Xt();Te();Ri();AS=0,ku=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 ku});var Ca,$p=b(()=>{re();bu();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 qp(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var Xp=b(()=>{"use strict"});var Pu,Cu,Eu,Yp,IS,Au,pt,$s=b(()=>{He();je();ep();G();re();au();lu();Ue();pe();Vr();ap();lp();hp();pp();xp();wp();kp();Ap();Mp();Fp();Dp();$p();Xp();Pu=new Oe(null),Cu=new Oe(null),Eu=new Oe(null,1,1),Yp=1,IS=2,Au=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=Eu,this._pivot=Cu,this._skew=Pu,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],qp(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){N("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),L.mixin(i,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||N($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],r=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),r&&(r.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,r&&r.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],r=this.children.indexOf(t);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=be.get(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*rp}set angle(e){this.rotation=e*ip}get pivot(){return this._pivot===Cu&&(this._pivot=new Oe(this,0,0)),this._pivot}set pivot(e){this._pivot===Cu&&(this._pivot=new Oe(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===Pu&&(this._skew=new Oe(this,0,0)),this._skew}set skew(e){this._skew===Pu&&(this._skew=new Oe(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Eu&&(this._scale=new Oe(this,1,1)),this._scale}set scale(e){this._scale===Eu&&(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|=Yp,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|=Yp,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|=Au,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|=Au,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|=Au,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};L.mixin(pt,cp,bp,Rp,Ip,Ep,mp,gp,Bp,Jm,op,vp,up)});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(Iu)&&!s(Yt),ipod:s(Kp),tablet:!s(Iu)&&(s(Zp)||og(e))&&!s(Yt),universal:s(Qp),device:(s(Iu)||s(Kp)||s(Zp)||s(Qp)||og(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(Mu),tablet:!s(Yt)&&!s(Oi)&&!s(Mu)&&(s(Aa)||s(Jp)),device:!s(Yt)&&(s(Oi)||s(Aa)||s(Mu)||s(Jp))||s(/\bokhttp\b/i)},windows:{phone:s(Yt),tablet:s(eg),device:s(Yt)||s(eg)},other:{blackberry:s(tg),blackberry10:s(rg),opera:s(ig),firefox:s(ng),chrome:s(sg),device:s(tg)||s(rg)||s(ig)||s(ng)||s(sg)},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 Iu,Kp,Zp,Qp,Mu,Jp,Oi,Aa,Yt,eg,tg,rg,ig,sg,ng,og,Bu=b(()=>{Iu=/iPhone/i,Kp=/iPod/i,Zp=/iPad/i,Qp=/\biOS-universal(?:.+)Mac\b/i,Mu=/\bAndroid(?:.+)Mobile\b/i,Jp=/Android/i,Oi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Aa=/Silk/i,Yt=/Windows Phone/i,eg=/\bWindows(?:.+)ARM\b/i,tg=/BlackBerry/i,rg=/BB10/i,ig=/Opera Mini/i,sg=/\b(CriOS|Chrome)(?:.+)Mobile/i,ng=/Mobile(?:.+)Firefox\b/i,og=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var ag=b(()=>{Bu();Bu()});var BS,cg,lg=b(()=>{ag();BS=qs.default??qs,cg=BS(globalThis.navigator)});var FS,Ia,RS,DS,ug,hg,OS,US,zS,Fu,fg,mg=b(()=>{Ea();G();lg();fu();FS=9,Ia=100,RS=0,DS=0,ug=2,hg=1,OS=-1e3,US=-1e3,zS=2,Fu=class dg{constructor(e,t=cg){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=`${hg}px`,e.style.height=`${hg}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=ug.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:{...dg.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
7
|
color: transparent;
|
|
8
8
|
pointer-events: none;
|
|
9
9
|
padding: 0;
|
|
@@ -16,9 +16,9 @@ Deprecated since v${i}`),console.warn(r))),Hm[e]=!0}var Hm,$,jm,pe=b(()=>{"use s
|
|
|
16
16
|
-webkit-user-select: none;
|
|
17
17
|
-moz-user-select: none;
|
|
18
18
|
-ms-user-select: none;
|
|
19
|
-
`,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${wa}px`,t.style.height=`${wa}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=Kp.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:r}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==gS||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};Su.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"accessibility"};Su.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Jp=Su});var tg,rg=b(()=>{"use strict";tg={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var ig=b(()=>{G();Ls();eg();rg();L.add(Jp);L.mixin(mt,tg)});var Ws,sg=b(()=>{G();Ws=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,r;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,r=n}this.renderer.resize(t,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};Ws.extension=A.Application});var hr,_a=b(()=>{"use strict";hr=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(hr||{})});var Fi,ng=b(()=>{"use strict";Fi=class{constructor(e,t=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=r,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var og,pt,Sa=b(()=>{_a();ng();og=class Ze{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Fi(null,null,1/0),this.deltaMS=1/Ze.targetFPMS,this.elapsedMS=1/Ze.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,r=hr.NORMAL){return this._addListener(new Fi(e,t,r))}addOnce(e,t,r=hr.NORMAL){return this._addListener(new Fi(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(!t)e.connect(r);else{for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r.match(e,t)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*Ze.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),r=Math.min(Math.max(0,t)/1e3,Ze.targetFPMS);this._maxElapsedMS=1/r}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!Ze._shared){let e=Ze._shared=new Ze;e.autoStart=!0,e._protected=!0}return Ze._shared}static get system(){if(!Ze._system){let e=Ze._system=new Ze;e.autoStart=!0,e._protected=!0}return Ze._system}};og.targetFPMS=.06;pt=og});var Hs,ag=b(()=>{G();_a();Sa();Hs=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,hr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?pt.shared:new pt,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};Hs.extension=A.Application});var Tu=b(()=>{G();sg();ag();L.add(Ws);L.add(Hs)});function q(...i){ku!==cg&&(ku++,ku===cg?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var ku,cg,ze=b(()=>{"use strict";ku=0,cg=500});var vu,Tt,Pu=b(()=>{_a();Sa();vu=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(pt.system.add(this._tickerUpdate,this,hr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(pt.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Tt=new vu});var Yt,Ta=b(()=>{St();ya();Yt=class extends ur{constructor(){super(...arguments),this.client=new Y,this.movement=new Y,this.offset=new Y,this.global=new Y,this.screen=new Y}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,s,n,o,a,c,l,u,h,d,f,m,p){throw new Error("Method not implemented.")}}});var Ge,Cu=b(()=>{Ta();Ge=class extends Yt{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var kt,Eu=b(()=>{Ta();kt=class extends Yt{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};kt.DOM_DELTA_PIXEL=0;kt.DOM_DELTA_LINE=1;kt.DOM_DELTA_PAGE=2});var SS,TS,js,ka,lg=b(()=>{He();St();ze();Pu();Ta();Cu();Eu();SS=2048,TS=new Y,js=new Y,ka=class{constructor(e){this.dispatch=new ie,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((r,s)=>r.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let r=0,s=t.length;r<s;r++)t[r].fn(e);else q(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Tt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,TS.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let r=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(r.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=r[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let r=0;r<SS&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Tt.pauseUpdate=!1),e.interactiveChildren&&e.children){let u=e.children;for(let h=u.length-1;h>=0;h--){let d=u[h],f=this.hitTestMoveRecursive(d,this._isInteractive(t)?t:d.eventMode,r,s,n,o||n(e,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=e.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(e),f.push(e)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let c=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,r)&&s(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,s,n){if(this._interactivePrune(e)||n(e,r))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Tt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,l=r;for(let u=c.length-1;u>=0;u--){let h=c[u],d=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,l,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=e.isInteractive();return(d.length>0||f)&&d.push(e),d}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,r)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,js),!e.hitArea.contains(js.x,js.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r<e.effects.length;r++){let s=e.effects[r];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,js),e.containsPoint(js)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let r=`on${t}`;e.currentTarget[r]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let r=this.trackingData(e.pointerId);r.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",l=this.createPointerEvent(e,c,n);if(this.dispatchEvent(l,"pointerout"),r&&this.dispatchEvent(l,"mouseout"),!t.composedPath().includes(n)){let u=this.createPointerEvent(e,"pointerleave",n);for(u.eventPhase=u.AT_TARGET;u.target&&!t.composedPath().includes(u.target);)u.currentTarget=u.target,this.notifyTarget(u),r&&this.notifyTarget(u,"mouseleave"),u.target=u.target.parent;this.freeEvent(u)}this.freeEvent(l)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",l=this.clonePointerEvent(t,c);this.dispatchEvent(l,"pointerover"),r&&this.dispatchEvent(l,"mouseover");let u=n?.parent;for(;u&&u!==this.rootTarget.parent&&u!==t.target;)u=u.parent;if(!u||u===this.rootTarget.parent){let d=this.clonePointerEvent(t,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(l)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let c=r.button===2;this.notifyTarget(r,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let l=a.button===2;this.dispatchEvent(a,l?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(r){let n=r;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof kt)){q("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r<e.length&&e[r].parent===t;r++)t=e[r];return t}createPointerEvent(e,t,r){let s=this.allocateEvent(Ge);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(kt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let r=this.allocateEvent(Ge);return r.nativeEvent=e.nativeEvent,r.originalEvent=e.originalEvent,this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.target=e.target,r.path=e.composedPath().slice(),r.type=t??r.type,r}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof Ge&&t instanceof Ge&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof Yt&&t instanceof Yt&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let r=e.currentTarget._events[t];if(r)if("fn"in r)r.once&&e.currentTarget.removeListener(t,r.fn,void 0,!0),r.fn.call(r.context,e);else for(let s=0,n=r.length;s<n&&!e.propagationImmediatelyStopped;s++)r[s].once&&e.currentTarget.removeListener(t,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,e)}}});var kS,vS,Iu,va,Mu=b(()=>{G();lg();Pu();Cu();Eu();kS=1,vS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Iu=class Au{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new ka(null),Tt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new Ge(null),this._rootWheelEvent=new kt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Au.defaultEventFeatures},{set:(t,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[r]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:r}=this.renderer;this.setTargetElement(t),this.resolution=r,Au._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let r=0,s=t.length;r<s;r++){let n=t[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Tt.pointerMoved();let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let r=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Tt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Tt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Tt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let r=0,s=e.changedTouches.length;r<s;r++){let n=e.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let r=e;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=kS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,t.push(r)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=vS[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};Iu.extension={name:"events",type:[A.WebGLSystem,A.CanvasSystem,A.WebGPUSystem],priority:-1};Iu.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};va=Iu});var ug,hg=b(()=>{Mu();ya();ug={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??va.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;i=r?`${i}capture`:i;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(i,a,o)}),n?c.once(i,a,o):c.on(i,a,o)},removeEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;i=r?`${i}capture`:i,e=typeof e=="function"?e:e.handleEvent,this.off(i,e,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var dg=b(()=>{G();Ls();Mu();hg();L.add(va);L.mixin(mt,ug)});var $s,fg=b(()=>{G();$s=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let r=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${r}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,l=o._anchor,u=o.width*l.x,h=o.height*l.y;a.style.transformOrigin=`${u}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-u}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};$s.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"dom"}});var Di,Bu=b(()=>{ft();Ls();Di=class extends mt{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new le(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:r,y:s}=e;return r>=t.minX&&r<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,r){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,r)}}});var mg=b(()=>{G();fg();L.add($s)});var Fu,pg=b(()=>{"use strict";Fu=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Fu||{})});var gg,xg=b(()=>{"use strict";gg={createCanvas:(i,e)=>{let t=document.createElement("canvas");return t.width=i,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var yg,xe,vt=b(()=>{xg();yg=gg,xe={get(){return yg},set(i){yg=i}}});function gt(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function qs(i){return i.split("?")[0].split("#")[0]}function PS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function CS(i,e,t){return i.replace(new RegExp(PS(e),"g"),t)}function ES(i,e){let t="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",r=0):(t=t.slice(0,c),r=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",r=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",r=2)}else t.length>0?t+=`/${i.slice(s+1,a)}`:t=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Xr,Du=b(()=>{vt();Xr={toPosix(i){return CS(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){gt(i),i=this.toPosix(i);let e=/^file:\/\/\//.exec(i);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(i);return t?t[0]:""},toAbsolute(i,e,t){if(gt(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=qs(this.toPosix(e??xe.get().getBaseUrl())),s=qs(this.toPosix(t??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Xr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(gt(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let e="",t=i.startsWith("/");this.hasProtocol(i)&&(e=this.rootname(i),i=i.slice(e.length));let r=i.endsWith("/");return i=ES(i,!1),i.length>0&&r&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return gt(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let e;for(let t=0;t<i.length;++t){let r=i[t];if(gt(r),r.length>0)if(e===void 0)e=r;else{let s=i[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${r}`:e+=`/${r}`}}return e===void 0?".":this.normalize(e)},dirname(i){if(gt(i),i.length===0)return".";i=this.toPosix(i);let e=i.charCodeAt(0),t=e===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(e=i.charCodeAt(a),e===47){if(!s){r=a;break}}else s=!1;return r===-1?t?"/":this.isUrl(o)?n+i:n:t&&r===1?"//":n+i.slice(0,r)},rootname(i){gt(i),i=this.toPosix(i);let e="";if(i.startsWith("/")?e="/":e=this.getProtocol(i),this.isUrl(i)){let t=i.indexOf("/",e.length);t!==-1?e=i.slice(0,t):e=i,e.endsWith("/")||(e+="/")}return e},basename(i,e){gt(i),e&>(e),i=qs(this.toPosix(i));let t=0,r=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=i.length){if(e.length===i.length&&e===i)return"";let o=e.length-1,a=-1;for(n=i.length-1;n>=0;--n){let c=i.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return t===r?r=a:r===-1&&(r=i.length),i.slice(t,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){t=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(t,r)},extname(i){gt(i),i=qs(this.toPosix(i));let e=-1,t=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||r===-1||n===0||n===1&&e===r-1&&e===t+1?"":i.slice(e,r)},parse(i){gt(i);let e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;i=qs(this.toPosix(i));let t=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";e.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,c=-1,l=!0,u=i.length-1,h=0;for(;u>=s;--u){if(t=i.charCodeAt(u),t===47){if(!l){a=u+1;break}continue}c===-1&&(l=!1,c=u+1),t===46?o===-1?o=u:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&r?e.base=e.name=i.slice(1,c):e.base=e.name=i.slice(a,c)):(a===0&&r?(e.name=i.slice(1,o),e.base=i.slice(1,c)):(e.name=i.slice(a,o),e.base=i.slice(a,c)),e.ext=i.slice(o,c)),e.dir=this.dirname(i),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,Ru=b(()=>{"use strict";dr=(i,e,t=!1)=>(Array.isArray(i)||(i=[i]),e?i.map(r=>typeof r=="string"||t?e(r):r):i)});function bg(i,e,t,r,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?bg(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function wg(i){let e=/\{(.*?)\}/g,t=i.match(e),r=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),bg(i,s,0,t,r)}else r.push(i);return r}var _g=b(()=>{"use strict"});var Ou,Sg=b(()=>{"use strict";Ou=i=>!Array.isArray(i)});function AS(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Xs,Tg=b(()=>{ze();Du();Ru();_g();Sg();Xs=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(t[r])}`).join("&")}}getAlias(e){let{alias:t,src:r}=e;return dr(t||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&q("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let r=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let l=this._createBundleAssetId(e,a);r.push(l),c=[a,l]}else{let l=a.map(u=>this._createBundleAssetId(e,u));r.push(...l),c=[...a,...l]}this.add({...n,alias:c,src:o})}),this._bundles[e]=r}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let r;r=n=>{this.hasKey(n)&&q(`[Resolver] already has key: ${n} overwriting`)},dr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:l}=n,u=dr(o).map(f=>typeof f=="string"?wg(f):Array.isArray(f)?f:[f]),h=this.getAlias(n);Array.isArray(h)?h.forEach(r):r(h);let d=[];u.forEach(f=>{f.forEach(m=>{let p={};if(typeof m!="object"){p.src=m;for(let g=0;g<this._parsers.length;g++){let y=this._parsers[g];if(y.test(m)){p=y.parse(m);break}}}else a=m.data??a,c=m.format??c,l=m.loadParser??l,p={...p,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${p.src}`);p=this._buildResolvedAsset(p,{aliases:h,data:a,format:c,loadParser:l}),d.push(p)})}),h.forEach(f=>{this._assetMap[f]=d})})}resolveBundle(e){let t=Ou(e);e=dr(e);let r={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let l=o[c];a[this._extractAssetIdFromBundle(s,c)]=l}r[s]=a}}),t?r[e[0]]:r}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let r={};for(let s in t)r[s]=t[s].src;return r}return t.src}resolve(e){let t=Ou(e);e=dr(e);let r={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let l=n.filter(u=>u[a]?u[a]===c:!1);l.length&&(n=l)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let r=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:r,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Xr.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??AS(e.src),e}};Xs.RETINA_PREFIX=/@([0-9\.]+)x/});var Uu,kg=b(()=>{"use strict";Uu=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var vg,zu,Pg=b(()=>{$e();qt();Te();vg=class Ys{constructor(e,t){this.linkedSheets=[];let r=e;e?.source instanceof we&&(r={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof O?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=Ys.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,r=Ys.BATCH_SIZE;for(;t-e<r&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,l=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,u=new Z(0,0,Math.floor(l.w)/this.resolution,Math.floor(l.h)/this.resolution);n.rotated?a=new Z(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Z(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Z(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new O({source:this.textureSource,frame:a,orig:u,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let r=0;r<e[t].length;r++){let s=e[t][r];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Ys.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Ys.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};vg.BATCH_SIZE=1e3;zu=vg});function Cg(i,e,t){let r={};if(i.forEach(s=>{r[s]=e}),Object.keys(e.textures).forEach(s=>{r[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Xr.dirname(i[0]);e.linkedSheets.forEach((n,o)=>{let a=Cg([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var IS,Eg,Ag=b(()=>{pg();Tg();kg();G();Te();Du();Pg();IS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Eg={extension:A.Asset,cache:{test:i=>i instanceof zu,getCacheableAssets:(i,e)=>Cg(i,e,!1)},resolver:{extension:{type:A.ResolveParser,name:"resolveSpritesheet"},test:i=>{let t=i.split("?")[0].split("."),r=t.pop(),s=t.pop();return r==="json"&&IS.includes(s)},parse:i=>{let e=i.split(".");return{resolution:parseFloat(Xs.RETINA_PREFIX.exec(i)?.[1]??"1"),format:e[e.length-2],src:i}}},loader:{name:"spritesheetLoader",extension:{type:A.LoadParser,priority:Fu.Normal,name:"spritesheetLoader"},async testParse(i,e){return Xr.extname(e.src).toLowerCase()===".json"&&!!i.frames},async parse(i,e,t){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Xr.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(r instanceof O)c=r;else{let h=Uu(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new zu({texture:c.source,data:i,cachePrefix:o});await l.parse();let u=i?.meta?.related_multi_packs;if(Array.isArray(u)){let h=[];for(let f of u){if(typeof f!="string")continue;let m=a+f;e.data?.ignoreMultiPack||(m=Uu(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(h);l.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[l].concat(l.linkedSheets.filter(m=>m!==f))})}return l},async unload(i,e,t){await t.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Pa=b(()=>{G();Ag();L.add(Eg)});function Ca(i,e,t){let{width:r,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-e._x*r,i.maxX=i.minX+o,i.minY=n.y-e._y*s,i.maxY=i.minY+a}else i.minX=-e._x*r,i.maxX=i.minX+r,i.minY=-e._y*s,i.maxY=i.minY+s}var Gu=b(()=>{"use strict"});var Ks,Ig=b(()=>{Ql();Te();Gu();pe();Bu();Ks=class i extends Di{constructor(e=O.EMPTY){e instanceof O&&(e={texture:e});let{texture:t=O.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Oe({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof O?new i(e):new i(O.from(e,t))}set texture(e){e||(e=O.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Ca(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return N("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,r=this._bounds,{width:s,height:n}=t.orig;r.minX=-e._x*s,r.maxX=r.minX+s,r.minY=-e._y*n,r.maxY=r.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function Ea(i,e,t){let r=MS;i.measurable=!0,la(i,t,r),e.addBoundsMask(r),i.measurable=!1}var MS,Nu=b(()=>{ft();ha();MS=new le});function Aa(i,e,t){let r=Ke.get();i.measurable=!0;let s=ge.get().identity(),n=Mg(i,t,s);fa(i,r,n),i.measurable=!1,e.addBoundsMask(r),ge.return(s),Ke.return(r)}function Mg(i,e,t){return i?(i!==e&&(Mg(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(q("Mask bounds, renderable is not inside the root container"),t)}var Lu=b(()=>{ou();Vr();ze()});var Zs,Bg=b(()=>{G();Ig();Nu();Lu();Zs=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof Ks),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||Ea(this.mask,e,t)}addLocalBounds(e,t){Aa(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof Ks}};Zs.extension=A.MaskEffect});var Qs,Fg=b(()=>{G();Qs=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};Qs.extension=A.MaskEffect});var Js,Dg=b(()=>{G();Ls();Nu();Lu();Js=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){Ea(this.mask,e,t)}addLocalBounds(e,t){Aa(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof mt}};Js.extension=A.MaskEffect});var en,Rg=b(()=>{vt();G();qt();en=class extends we{constructor(e){e.resource||(e.resource=xe.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,r=this._resolution){let s=super.resize(e,t,r);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};en.extension=A.TextureSource});var Pt,Ia=b(()=>{G();qt();Pt=class extends we{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};Pt.extension=A.TextureSource});async function Og(){return Vu??(Vu=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Vu}var Vu,Ug=b(()=>{"use strict"});var Ma,Gg,Ng=b(()=>{G();Sa();Ug();qt();Ma=class zg extends we{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...zg.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=pt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await Og(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(pt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(pt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(pt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Ma.extension=A.TextureSource;Ma.defaultOptions={...we.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Ma.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};Gg=Ma});var Wu,ye,tn=b(()=>{ze();Ru();Wu=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||q(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let r=dr(e),s;for(let c=0;c<this.parsers.length;c++){let l=this.parsers[c];if(l.test(t)){s=l.getCacheableAssets(r,t);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let l=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==l&&q("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){q(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},ye=new Wu});function Lg(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<Hu.length;s++){let n=Hu[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function Vg(i={},e=!1){let t=i&&i.resource,r=t?i.resource:i,s=t?i:{resource:i};if(!e&&ye.has(r))return ye.get(r);let n=new O({source:Lg(s)});return n.on("destroy",()=>{ye.has(r)&&ye.remove(r)}),e||ye.set(r,n),n}function Wg(i,e=!1){return typeof i=="string"?ye.get(i):i instanceof we?new O({source:i}):Vg(i,e)}var Hu,ju=b(()=>{tn();G();qt();Te();Hu=[];L.handleByList(A.TextureSource,Hu);O.from=Wg;we.from=Lg});var Ba=b(()=>{G();Bg();Fg();Dg();fu();Rg();Ia();Ng();ju();L.add(Zs,Qs,Js,Gg,Pt,en,qr)});var rt,rn=b(()=>{"use strict";rt=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let r in e){let s=e[r];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let r in this.resources)e[t++]=this.resources[r]._resourceId;this._key=e.join("|")}setResource(e,t){let r=this.resources[t];e!==r&&(r&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let r in t)t[r]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let r in t)t[r]===e&&(t[r]=null)}else this._updateKey()}}});function jg(i,e,t){let r=2166136261;for(let s=0;s<e;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Hg[r]||BS(i,e,r,t)}function BS(i,e,t,r){let s={},n=0;for(let a=0;a<r;a++){let c=a<e?i[a]:O.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new rt(s);return Hg[t]=o,o}var Hg,$g=b(()=>{rn();Te();Hg={}});var Ct,$u=b(()=>{"use strict";Ct=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function qu(i,e){let t=i.byteLength/8|0,r=new Float64Array(i,0,t);new Float64Array(e,0,t).set(r);let n=i.byteLength-t*8;if(n>0){let o=new Uint8Array(i,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var qg=b(()=>{"use strict"});var Xg,Yg=b(()=>{"use strict";Xg={normal:"normal-npm",add:"add-npm",screen:"screen-npm"}});function Kt(i,e){return e.alphaMode==="no-premultiply-alpha"&&Xg[i]||i}var sn=b(()=>{Yg()});function Da(){return(!Fa||Fa?.isContextLost())&&(Fa=xe.get().createCanvas().getContext("webgl",{})),Fa}var Fa,Xu=b(()=>{vt()});function DS(i){let e="";for(let t=0;t<i;++t)t>0&&(e+=`
|
|
20
|
-
else `),t<i-1&&(e+=`if(test == ${t}.0){}`);return e}function
|
|
21
|
-
`)});function Qg(){if(Ri)return Ri;let i=Da();return Ri=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Ri=Kg(Ri,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Ri}var Ri,Jg=b(()=>{Xu();Zg();Ri=null});var Ra,ex=b(()=>{"use strict";Ra=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function tx(){return Ku>0?ix[--Ku]:new Yu}function rx(i){ix[Ku++]=i}var Yu,ix,Ku,nn,sx,ox,ax=b(()=>{Ue();$u();pe();qg();sn();Jg();ex();Yu=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ra,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},ix=[],Ku=0;nn=0,sx=class nx{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...nx.defaultOptions,...e},e.maxTextures||(N("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=Qg());let{maxTextures:t,attributesInitialSize:r,indicesInitialSize:s}=e;this.attributeBuffer=new Ct(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)rx(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let r=e._batch.textures.ids[t._source.uid];return!r&&r!==0?!1:(e._textureId=r,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let r=tx(),s=r.textures;s.clear();let n=t[this.elementStart],o=Kt(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,u=this.indexBuffer,h=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=this.maxTextures;for(let p=this.elementStart;p<this.elementSize;++p){let g=t[p];t[p]=null;let x=g.texture._source,w=Kt(g.blendMode,x),_=o!==w||a!==g.topology;if(x._batchTick===nn&&!_){g._textureId=x._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,l,g._attributeStart,g._textureId),this.packQuadIndex(u,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,l,g._attributeStart,g._textureId),this.packIndex(g,u,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=r;continue}x._batchTick=nn,(s.count>=m||_)&&(this._finishBatch(r,d,h-d,s,o,a,e,f),f="renderBatch",d=h,o=w,a=g.topology,r=tx(),s=r.textures,s.clear(),++nn),g._textureId=x._textureBindLocation=s.count,s.ids[x.uid]=s.count,s.textures[s.count++]=x,g._batch=r,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,l,g._attributeStart,g._textureId),this.packQuadIndex(u,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,l,g._attributeStart,g._textureId),this.packIndex(g,u,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,h-d,s,o,a,e,f),d=h,++nn),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=h}_finishBatch(e,t,r,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=r,++nn,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),r=new Ct(t);qu(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){let t=this.indexBuffer,r=Math.max(e,t.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else qu(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,r){e[t]=r+0,e[t+1]=r+1,e[t+2]=r+2,e[t+3]=r+0,e[t+4]=r+2,e[t+5]=r+3}packIndex(e,t,r,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let l=0;l<o;l++)t[r++]=s+n[l+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)rx(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};sx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};ox=sx});var ee,Oi=b(()=>{"use strict";ee=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(ee||{})});var ke,Ui=b(()=>{He();Ue();Oi();ke=class extends ie{constructor(e){let{data:t,size:r}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r??(r=t?.byteLength);let a=!!t;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&ee.STATIC)}set static(e){e?this.descriptor.usage|=ee.STATIC:this.descriptor.usage&=~ee.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){r&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Zu(i,e){if(!(i instanceof ke)){let t=e?ee.INDEX:ee.VERTEX;i instanceof Array&&(e?(i=new Uint32Array(i),t=ee.INDEX|ee.COPY_DST):(i=new Float32Array(i),t=ee.VERTEX|ee.COPY_DST)),i=new ke({data:i,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return i}var cx=b(()=>{Ui();Oi()});function lx(i,e,t){let r=i.getAttribute(e);if(!r)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,l=s.BYTES_PER_ELEMENT,u=(r.offset||0)/l,h=(r.stride||8)/l;for(let d=u;d<s.length;d+=h){let f=s[d],m=s[d+1];f>a&&(a=f),m>c&&(c=m),f<n&&(n=f),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var ux=b(()=>{"use strict"});function RS(i){return(i instanceof ke||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=Zu(i.buffer,!1),i}var Et,on=b(()=>{He();ft();Ue();Ui();cx();ux();Et=class extends ie{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new le,this._boundsDirty=!0;let{attributes:t,indexBuffer:r,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let r=RS(t);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=r}addIndex(e){this.indexBuffer=Zu(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,lx(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var OS,US,Oa,hx=b(()=>{Ui();Oi();on();OS=new Float32Array(1),US=new Uint32Array(1),Oa=class extends Et{constructor(){let t=new ke({data:OS,label:"attribute-batch-buffer",usage:ee.VERTEX|ee.COPY_DST,shrinkToFit:!1}),r=new ke({data:US,label:"index-batch-buffer",usage:ee.INDEX|ee.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function zi(i,e){let t=dx[i];return t===void 0&&(Qu[e]===void 0&&(Qu[e]=1),dx[i]=t=Qu[e]++),t}var Qu,dx,Ua=b(()=>{"use strict";Qu=Object.create(null),dx=Object.create(null)});function fx(){if(!za){za="mediump";let i=Da();i&&i.getShaderPrecisionFormat&&(za=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return za}var za,mx=b(()=>{Xu()});function px(i,e,t){return e?i:t?(i=i.replace("out vec4 finalColor;",""),`
|
|
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=ug.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()}};Fu.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"accessibility"};Fu.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};fg=Fu});var pg,gg=b(()=>{"use strict";pg={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var xg=b(()=>{G();$s();mg();gg();L.add(fg);L.mixin(pt,pg)});var Xs,yg=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,bg=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 wg,gt,Ba=b(()=>{Ma();bg();wg=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}};wg.targetFPMS=.06;gt=wg});var Ys,_g=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 Ru=b(()=>{G();yg();_g();L.add(Xs);L.add(Ys)});function q(...i){Du!==Sg&&(Du++,Du===Sg?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var Du,Sg,ze=b(()=>{"use strict";Du=0,Sg=500});var Ou,vt,Uu=b(()=>{Ma();Ba();Ou=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())}},vt=new Ou});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,zu=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 kt,Gu=b(()=>{Fa();kt=class extends Kt{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};kt.DOM_DELTA_PIXEL=0;kt.DOM_DELTA_LINE=1;kt.DOM_DELTA_PAGE=2});var GS,NS,Ks,Ra,Tg=b(()=>{He();Tt();ze();Uu();Fa();zu();Gu();GS=2048,NS=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){vt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,NS.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")&&(vt.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")&&(vt.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 kt)){q("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r<e.length&&e[r].parent===t;r++)t=e[r];return t}createPointerEvent(e,t,r){let s=this.allocateEvent(Ge);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(kt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let r=this.allocateEvent(Ge);return r.nativeEvent=e.nativeEvent,r.originalEvent=e.originalEvent,this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.target=e.target,r.path=e.composedPath().slice(),r.type=t??r.type,r}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof Ge&&t instanceof Ge&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof 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 LS,VS,Lu,Da,Vu=b(()=>{G();Tg();Uu();zu();Gu();LS=1,VS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Lu=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),vt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new Ge(null),this._rootWheelEvent=new kt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...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,vt.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,vt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;vt.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;vt.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=LS),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}};Lu.extension={name:"events",type:[A.WebGLSystem,A.CanvasSystem,A.WebGPUSystem],priority:-1};Lu.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Da=Lu});var vg,kg=b(()=>{Vu();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 Pg=b(()=>{G();$s();Vu();kg();L.add(Da);L.mixin(pt,vg)});var Zs,Cg=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,Wu=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 Eg=b(()=>{G();Cg();L.add(Zs)});var Hu,Ag=b(()=>{"use strict";Hu=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Hu||{})});var Ig,Mg=b(()=>{"use strict";Ig={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 Bg,xe,Pt=b(()=>{Mg();Bg=Ig,xe={get(){return Bg},set(i){Bg=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,ju=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,$u=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 Fg(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?Fg(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function Rg(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)}),Fg(i,s,0,t,r)}else r.push(i);return r}var Dg=b(()=>{"use strict"});var qu,Og=b(()=>{"use strict";qu=i=>!Array.isArray(i)});function $S(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Js,Ug=b(()=>{ze();ju();$u();Dg();Og();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"?Rg(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=qu(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=qu(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 Xu,zg=b(()=>{"use strict";Xu=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var Gg,Yu,Ng=b(()=>{$e();Xt();Te();Gg=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=[]}};Gg.BATCH_SIZE=1e3;Yu=Gg});function Lg(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=Lg([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var qS,Vg,Wg=b(()=>{Ag();Ug();zg();G();Te();ju();Ng();qS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Vg={extension:A.Asset,cache:{test:i=>i instanceof Yu,getCacheableAssets:(i,e)=>Lg(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:Hu.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=Xu(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new Yu({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=Xu(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();Wg();L.add(Vg)});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 Ku=b(()=>{"use strict"});var tn,Hg=b(()=>{lu();Te();Ku();pe();Wu();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 N("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,r=this._bounds,{width:s,height:n}=t.orig;r.minX=-e._x*s,r.maxX=r.minX+s,r.minY=-e._y*n,r.maxY=r.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function za(i,e,t){let r=XS;i.measurable=!0,ba(i,t,r),e.addBoundsMask(r),i.measurable=!1}var XS,Zu=b(()=>{mt();_a();XS=new le});function Ga(i,e,t){let r=Ze.get();i.measurable=!0;let s=ge.get().identity(),n=jg(i,t,s);Ta(i,r,n),i.measurable=!1,e.addBoundsMask(r),ge.return(s),Ze.return(r)}function jg(i,e,t){return i?(i!==e&&(jg(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(q("Mask bounds, renderable is not inside the root container"),t)}var Qu=b(()=>{xu();Wr();ze()});var rn,$g=b(()=>{G();Hg();Zu();Qu();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,qg=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,Xg=b(()=>{G();$s();Zu();Qu();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,Yg=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,Na=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 Kg(){return Ju??(Ju=(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"})()),Ju}var Ju,Zg=b(()=>{"use strict"});var La,Jg,ex=b(()=>{G();Ba();Zg();Xt();La=class Qg extends we{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Qg.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 Kg(),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}};La.extension=A.TextureSource;La.defaultOptions={...we.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};La.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};Jg=La});var eh,ye,an=b(()=>{ze();$u();eh=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 eh});function tx(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<th.length;s++){let n=th[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function rx(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:tx(s)});return n.on("destroy",()=>{ye.has(r)&&ye.remove(r)}),e||ye.set(r,n),n}function ix(i,e=!1){return typeof i=="string"?ye.get(i):i instanceof we?new O({source:i}):rx(i,e)}var th,rh=b(()=>{an();G();Xt();Te();th=[];L.handleByList(A.TextureSource,th);O.from=ix;we.from=tx});var Va=b(()=>{G();$g();qg();Xg();vu();Yg();Na();ex();rh();L.add(rn,sn,nn,Jg,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 nx(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 sx[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 sx[t]=o,o}var sx,ox=b(()=>{cn();Te();sx={}});var Et,ih=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 sh(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 ax=b(()=>{"use strict"});var cx,lx=b(()=>{"use strict";cx={normal:"normal-npm",add:"add-npm",screen:"screen-npm"}});function Zt(i,e){return e.alphaMode==="no-premultiply-alpha"&&cx[i]||i}var ln=b(()=>{lx()});function Ha(){return(!Wa||Wa?.isContextLost())&&(Wa=xe.get().createCanvas().getContext("webgl",{})),Wa}var Wa,nh=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 ux(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,hx=b(()=>{"use strict";KS=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
21
|
+
`)});function dx(){if(Gi)return Gi;let i=Ha();return Gi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Gi=ux(Gi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Gi}var Gi,fx=b(()=>{nh();hx();Gi=null});var ja,mx=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 px(){return ah>0?xx[--ah]:new oh}function gx(i){xx[ah++]=i}var oh,xx,ah,un,yx,wx,_x=b(()=>{Ue();ih();pe();ax();ln();fx();mx();oh=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}},xx=[],ah=0;un=0,yx=class bx{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...bx.defaultOptions,...e},e.maxTextures||(N("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=dx());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++)gx(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=px(),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=px(),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);sh(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 sh(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++)gx(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}};yx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};wx=yx});var ee,Ni=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 ve,Li=b(()=>{He();Ue();Ni();ve=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 ch(i,e){if(!(i instanceof ve)){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 ve({data:i,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return i}var Sx=b(()=>{Li();Ni()});function Tx(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 ve||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=ch(i.buffer,!1),i}var At,hn=b(()=>{He();mt();Ue();Li();Sx();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=ch(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Tx(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,kx=b(()=>{Li();Ni();hn();JS=new Float32Array(1),eT=new Uint32Array(1),$a=class extends At{constructor(){let t=new ve({data:JS,label:"attribute-batch-buffer",usage:ee.VERTEX|ee.COPY_DST,shrinkToFit:!1}),r=new ve({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=Px[i];return t===void 0&&(lh[e]===void 0&&(lh[e]=1),Px[i]=t=lh[e]++),t}var lh,Px,qa=b(()=>{"use strict";lh=Object.create(null),Px=Object.create(null)});function Cx(){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,Ex=b(()=>{nh()});function Ax(i,e,t){return e?i:t?(i=i.replace("out vec4 finalColor;",""),`
|
|
22
22
|
|
|
23
23
|
#ifdef GL_ES // This checks if it is WebGL1
|
|
24
24
|
#define in varying
|
|
@@ -33,27 +33,27 @@ else `),t<i-1&&(e+=`if(test == ${t}.0){}`);return e}function Kg(i,e){if(i===0)th
|
|
|
33
33
|
#define out varying
|
|
34
34
|
#endif
|
|
35
35
|
${i}
|
|
36
|
-
`}var
|
|
37
|
-
${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var
|
|
38
|
-
${i}`:i}var
|
|
39
|
-
${i}`}var
|
|
36
|
+
`}var Ix=b(()=>{"use strict"});function Mx(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 Bx=b(()=>{"use strict"});function Fx(i,e){return e?`#version 300 es
|
|
38
|
+
${i}`:i}var Rx=b(()=>{"use strict"});function Dx(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,Ox=b(()=>{"use strict";tT={},rT={}});function Ux(i,e){return e?i.replace("#version 300 es",""):i}var zx=b(()=>{"use strict"});var uh,hh,Gx,Wi,Ya=b(()=>{qa();Ex();Ix();Bx();Rx();Ox();zx();uh={stripVersion:Ux,ensurePrecision:Mx,addProgramDefines:Ax,setProgramName:Dx,insertVersion:Fx},hh=Object.create(null),Gx=class dh{constructor(e){e={...dh.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:Cx()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(uh).forEach(o=>{let a=r[o];s=uh[o](s,a,!0),n=uh[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 hh[t]||(hh[t]=new dh(e)),hh[t]}};Gx.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Wi=Gx});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 Lx({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,Vx=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 Wx=b(()=>{"use strict"});var Hi,Hx=b(()=>{"use strict";Hi=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Hi||{})});function jx({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 $x=b(()=>{Hx()});function qx({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 Xx=b(()=>{"use strict"});function Yx(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 Kx=b(()=>{"use strict"});var fh,mr,Qa=b(()=>{qa();Vx();Wx();$x();Xx();Kx();fh=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=Yx(a,c)}this.layout=s??qx(this.structsAndGroups),this.gpuLayout=n??jx(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=Lx(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 fh[t]||(fh[t]=new i(e)),fh[t]}}});function mh(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 Zx=b(()=>{ze()});function ph(i){let e={};return(i.match(sT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{e[r]=[]}),e}var sT,Qx=b(()=>{"use strict";sT=/\{\{(.*?)\}\}/g});function Jx(i,e){let t,r=/@in\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function gh(i,e,t=!1){let r=[];Jx(e,r),i.forEach(a=>{a.header&&Jx(a.header,r)});let s=r;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
|
|
40
40
|
`),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
41
41
|
${n}
|
|
42
|
-
`),o}var
|
|
43
|
-
`),n=t.sort().map(c=>` var ${
|
|
42
|
+
`),o}var ey=b(()=>{"use strict"});function ty(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 ry(i,e){let t=[];ty(e,t),i.forEach(c=>{c.header&&ty(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
44
|
`),o=`return VSOutput(
|
|
45
|
-
${t.sort().map(c=>` ${
|
|
45
|
+
${t.sort().map(c=>` ${nT(c)}`).join(`,
|
|
46
46
|
`)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
|
|
47
47
|
${s}
|
|
48
48
|
`),a=a.replace("{{start}}",`
|
|
49
49
|
${n}
|
|
50
50
|
`),a=a.replace("{{return}}",`
|
|
51
51
|
${o}
|
|
52
|
-
`),a}var
|
|
52
|
+
`),a}var iy=b(()=>{"use strict"});function xh(i,e){let t=i;for(let r in e){let s=e[r];s.join(`
|
|
53
53
|
`).length?t=t.replace(`{{${r}}}`,`//-----${r} START-----//
|
|
54
54
|
${s.join(`
|
|
55
55
|
`)}
|
|
56
|
-
//----${r} FINISH----//`):t=t.replace(`{{${r}}}`,"")}return t}var
|
|
56
|
+
//----${r} FINISH----//`):t=t.replace(`{{${r}}}`,"")}return t}var sy=b(()=>{"use strict"});function ny({template:i,bits:e}){let t=ay(i,e);if(pr[t])return pr[t];let{vertex:r,fragment:s}=cT(i,e);return pr[t]=cy(r,s,e),pr[t]}function oy({template:i,bits:e}){let t=ay(i,e);return pr[t]||(pr[t]=cy(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=gh(t,i.vertex,!0);s=ry(t,s);let n=gh(r,i.fragment,!0);return{vertex:s,fragment:n}}function ay(i,e){return e.map(t=>(yh.has(t)||yh.set(t,aT++),yh.get(t))).sort((t,r)=>t-r).join("-")+i.vertex+i.fragment}function cy(i,e,t){let r=ph(i),s=ph(e);return t.forEach(n=>{mh(n.vertex,r,n.name),mh(n.fragment,s,n.name)}),{vertex:xh(i,r),fragment:xh(e,s)}}var pr,yh,aT,ly=b(()=>{Zx();Qx();ey();iy();sy();pr=Object.create(null),yh=new Map,aT=0});var uy,hy,dy,fy,my=b(()=>{"use strict";uy=`
|
|
57
57
|
@in aPosition: vec2<f32>;
|
|
58
58
|
@in aUV: vec2<f32>;
|
|
59
59
|
|
|
@@ -97,7 +97,7 @@ ${s.join(`
|
|
|
97
97
|
|
|
98
98
|
{{return}}
|
|
99
99
|
};
|
|
100
|
-
`,
|
|
100
|
+
`,hy=`
|
|
101
101
|
@in vUV : vec2<f32>;
|
|
102
102
|
@in vColor : vec4<f32>;
|
|
103
103
|
|
|
@@ -120,7 +120,7 @@ ${s.join(`
|
|
|
120
120
|
|
|
121
121
|
return finalColor;
|
|
122
122
|
};
|
|
123
|
-
`,
|
|
123
|
+
`,dy=`
|
|
124
124
|
in vec2 aPosition;
|
|
125
125
|
in vec2 aUV;
|
|
126
126
|
|
|
@@ -156,7 +156,7 @@ ${s.join(`
|
|
|
156
156
|
|
|
157
157
|
{{end}}
|
|
158
158
|
}
|
|
159
|
-
`,
|
|
159
|
+
`,fy=`
|
|
160
160
|
|
|
161
161
|
in vec4 vColor;
|
|
162
162
|
in vec2 vUV;
|
|
@@ -177,7 +177,7 @@ ${s.join(`
|
|
|
177
177
|
|
|
178
178
|
{{end}}
|
|
179
179
|
}
|
|
180
|
-
`});var
|
|
180
|
+
`});var py,gy,xy=b(()=>{"use strict";py={name:"global-uniforms-bit",vertex:{header:`
|
|
181
181
|
struct GlobalUniforms {
|
|
182
182
|
uProjectionMatrix:mat3x3<f32>,
|
|
183
183
|
uWorldTransformMatrix:mat3x3<f32>,
|
|
@@ -186,22 +186,22 @@ ${s.join(`
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
@group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
|
|
189
|
-
`}},
|
|
189
|
+
`}},gy={name:"global-uniforms-bit",vertex:{header:`
|
|
190
190
|
uniform mat3 uProjectionMatrix;
|
|
191
191
|
uniform mat3 uWorldTransformMatrix;
|
|
192
192
|
uniform vec4 uWorldColorAlpha;
|
|
193
193
|
uniform vec2 uResolution;
|
|
194
|
-
`}}});function
|
|
194
|
+
`}}});function ji({bits:i,name:e}){let t=ny({template:{fragment:hy,vertex:uy},bits:[py,...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,...oy({template:{vertex:dy,fragment:fy},bits:[gy,...i]})})}var Ja=b(()=>{Ya();Qa();ly();my();xy()});var ec,tc,bh=b(()=>{"use strict";ec={name:"color-bit",vertex:{header:`
|
|
195
195
|
@in aColor: vec4<f32>;
|
|
196
196
|
`,main:`
|
|
197
197
|
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
198
|
-
`}},
|
|
198
|
+
`}},tc={name:"color-bit",vertex:{header:`
|
|
199
199
|
in vec4 aColor;
|
|
200
200
|
`,main:`
|
|
201
201
|
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
202
|
-
`}}});function
|
|
203
|
-
`)}function
|
|
204
|
-
`)}function
|
|
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 wh[i]||(wh[i]={name:"texture-batch-bit",vertex:{header:`
|
|
205
205
|
@in aTextureIdAndRound: vec2<u32>;
|
|
206
206
|
@out @interpolate(flat) vTextureId : u32;
|
|
207
207
|
`,main:`
|
|
@@ -214,14 +214,14 @@ ${s.join(`
|
|
|
214
214
|
`},fragment:{header:`
|
|
215
215
|
@in @interpolate(flat) vTextureId: u32;
|
|
216
216
|
|
|
217
|
-
${
|
|
217
|
+
${lT(i)}
|
|
218
218
|
`,main:`
|
|
219
219
|
var uvDx = dpdx(vUV);
|
|
220
220
|
var uvDy = dpdy(vUV);
|
|
221
221
|
|
|
222
|
-
${
|
|
223
|
-
`}}),
|
|
224
|
-
`)}function
|
|
222
|
+
${uT(i)}
|
|
223
|
+
`}}),wh[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 _h[i]||(_h[i]={name:"texture-batch-bit",vertex:{header:`
|
|
225
225
|
in vec2 aTextureIdAndRound;
|
|
226
226
|
out float vTextureId;
|
|
227
227
|
|
|
@@ -239,18 +239,18 @@ ${s.join(`
|
|
|
239
239
|
|
|
240
240
|
`,main:`
|
|
241
241
|
|
|
242
|
-
${
|
|
243
|
-
`}}),
|
|
242
|
+
${hT(i)}
|
|
243
|
+
`}}),_h[i]}var wh,_h,Sh=b(()=>{"use strict";wh={};_h={}});var qi,Xi,sc=b(()=>{"use strict";qi={name:"round-pixels-bit",vertex:{header:`
|
|
244
244
|
fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
|
|
245
245
|
{
|
|
246
246
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
247
247
|
}
|
|
248
|
-
`}},
|
|
248
|
+
`}},Xi={name:"round-pixels-bit",vertex:{header:`
|
|
249
249
|
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
250
250
|
{
|
|
251
251
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
252
252
|
}
|
|
253
|
-
`}}});var dh,sy,ny=b(()=>{"use strict";dh=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],sy=dh.reduce((i,e)=>(i[e]=!0,i),{})});function oy(i,e){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var ay=b(()=>{"use strict"});var cy,Ne,pr=b(()=>{Ue();Ua();ny();ay();cy=class ly{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...ly.defaultOptions,...t},this.uniformStructures=e;let r={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!sy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${dh.join(", ")}`);n.value??(n.value=oy(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=zi(Object.keys(r).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};cy.defaultOptions={ubo:!1,isStatic:!1};Ne=cy});function Ya(i){let e=uy[i];if(e)return e;let t=new Int32Array(i);for(let r=0;r<i;r++)t[r]=r;return e=uy[i]=new Ne({uTextures:{value:t,type:"i32",size:i}},{isStatic:!0}),e}var uy,fh=b(()=>{pr();uy={}});var At,an=b(()=>{"use strict";At=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i))(At||{})});var It,cn=b(()=>{He();Ue();Ga();rn();Va();an();pr();It=class i extends ie{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=r,o===void 0&&(o=0,t&&(o|=At.WEBGPU),r&&(o|=At.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let l in a)for(let u in a[l]){let h=a[l][u];c[h]={group:l,binding:u,name:h}}else if(t&&s&&!a){let l=t.structsAndGroups.groups;a={},l.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let l=0;for(let u in n)c[u]||(s[99]||(s[99]=new rt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:l,name:u},a[99]=a[99]||{},a[99][l]=u,l++);for(let u in n){let h=u,d=n[u];!d.source&&!d._resourceType&&(d=new Ne(d));let f=c[h];f&&(s[f.group]||(s[f.group]=new rt,this._ownedBindGroups.push(s[f.group])),s[f.group].setResource(d,f.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,r){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[r]||(n[r]=e),this.groups[t]||(this.groups[t]=new rt,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let r={};for(let s in t){let n=t[s];Object.defineProperty(r,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return r}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=fr.from(t)),r&&(o=Gi.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var Ka,hy=b(()=>{Wa();ch();hh();Xa();fh();cn();Ka=class extends It{constructor(e){let t=Vi({name:"batch",bits:[ja,qa(e),Hi]}),r=Li({name:"batch",bits:[Ha,$a(e),Wi]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:Ya(e)}})}}});var mh,dy,my,py=b(()=>{G();ax();hx();hy();mh=null,dy=class fy extends ox{constructor(e){super(e),this.geometry=new Oa,this.name=fy.extension.name,this.vertexSize=6,mh??(mh=new Ka(e.maxTextures)),this.shader=mh}packAttributes(e,t,r,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,l=a.b,u=a.c,h=a.d,d=a.tx,f=a.ty,{positions:m,uvs:p}=e,g=e.color,y=e.attributeOffset,x=y+e.attributeSize;for(let w=y;w<x;w++){let _=w*2,S=m[_],T=m[_+1];t[s++]=c*S+u*T+d,t[s++]=h*T+l*S+f,t[s++]=p[_],t[s++]=p[_+1],r[s++]=g,r[s++]=o}}packQuadAttributes(e,t,r,s,n){let o=e.texture,a=e.transform,c=a.a,l=a.b,u=a.c,h=a.d,d=a.tx,f=a.ty,m=e.bounds,p=m.maxX,g=m.minX,y=m.maxY,x=m.minY,w=o.uvs,_=e.color,S=n<<16|e.roundPixels&65535;t[s+0]=c*g+u*x+d,t[s+1]=h*x+l*g+f,t[s+2]=w.x0,t[s+3]=w.y0,r[s+4]=_,r[s+5]=S,t[s+6]=c*p+u*x+d,t[s+7]=h*x+l*p+f,t[s+8]=w.x1,t[s+9]=w.y1,r[s+10]=_,r[s+11]=S,t[s+12]=c*p+u*y+d,t[s+13]=h*y+l*p+f,t[s+14]=w.x2,t[s+15]=w.y2,r[s+16]=_,r[s+17]=S,t[s+18]=c*g+u*y+d,t[s+19]=h*y+l*g+f,t[s+20]=w.x3,t[s+21]=w.y3,r[s+22]=_,r[s+23]=S}};dy.extension={type:[A.Batcher],name:"default"};my=dy});function gy(i,e,t,r,s,n,o,a=null){let c=0;t*=e,s*=n;let l=a.a,u=a.b,h=a.c,d=a.d,f=a.tx,m=a.ty;for(;c<o;){let p=i[t],g=i[t+1];r[s]=l*p+h*g+f,r[s+1]=u*p+d*g+m,s+=n,t+=e,c++}}function xy(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var yy=b(()=>{"use strict"});function ph(i,e,t,r,s){let n=e.a,o=e.b,a=e.c,c=e.d,l=e.tx,u=e.ty;t||(t=0),r||(r=2),s||(s=i.length/r-t);let h=t*r;for(let d=0;d<s;d++){let f=i[h],m=i[h+1];i[h]=n*f+a*m+l,i[h+1]=o*f+c*m+u,h+=r}}var by=b(()=>{"use strict"});var YS,Kr,gh=b(()=>{re();su();YS=new F,Kr=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,r=this.renderable;return r?da(t,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||YS}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var ji,wy,_y,Sy=b(()=>{G();ji={extension:{type:A.ShapeBuilder,name:"circle"},build(i,e){let t,r,s,n,o,a;if(i.type==="circle"){let _=i;if(o=a=_.radius,o<=0)return!1;t=_.x,r=_.y,s=n=0}else if(i.type==="ellipse"){let _=i;if(o=_.halfWidth,a=_.halfHeight,o<=0||a<=0)return!1;t=_.x,r=_.y,s=n=0}else{let _=i,S=_.width/2,T=_.height/2;t=_.x+S,r=_.y+T,o=a=Math.max(0,Math.min(_.radius,Math.min(S,T))),s=S-o,n=T-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),l=c*8+(s?4:0)+(n?4:0);if(l===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=r+n,e[2]=e[4]=t-s,e[5]=e[7]=r-n,!0;let u=0,h=c*4+(s?2:0)+2,d=h,f=l,m=s+o,p=n,g=t+m,y=t-m,x=r+p;if(e[u++]=g,e[u++]=x,e[--h]=x,e[--h]=y,n){let _=r-p;e[d++]=y,e[d++]=_,e[--f]=_,e[--f]=g}for(let _=1;_<c;_++){let S=Math.PI/2*(_/c),T=s+Math.cos(S)*o,v=n+Math.sin(S)*a,M=t+T,P=t-T,C=r+v,E=r-v;e[u++]=M,e[u++]=C,e[--h]=C,e[--h]=P,e[d++]=P,e[d++]=E,e[--f]=E,e[--f]=M}m=s,p=n+a,g=t+m,y=t-m,x=r+p;let w=r-p;return e[u++]=g,e[u++]=x,e[--f]=w,e[--f]=g,s&&(e[u++]=y,e[u++]=x,e[--f]=w,e[--f]=y),!0},triangulate(i,e,t,r,s,n){if(i.length===0)return;let o=0,a=0;for(let u=0;u<i.length;u+=2)o+=i[u],a+=i[u+1];o/=i.length/2,a/=i.length/2;let c=r;e[c*t]=o,e[c*t+1]=a;let l=c++;for(let u=0;u<i.length;u+=2)e[c*t]=i[u],e[c*t+1]=i[u+1],u>0&&(s[n++]=c,s[n++]=l,s[n++]=c-1),c++;s[n++]=l+1,s[n++]=l,s[n++]=c-1}},wy={...ji,extension:{...ji.extension,name:"ellipse"}},_y={...ji,extension:{...ji.extension,name:"roundedRectangle"}}});function Ty(i){let e=i.length;if(e<6)return 1;let t=0;for(let r=0,s=i[e-2],n=i[e-1];r<e;r+=2){let o=i[r],a=i[r+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var ky=b(()=>{"use strict"});function vy(i,e,t,r,s,n,o,a){let c=i-t*s,l=e-r*s,u=i+t*n,h=e+r*n,d,f;o?(d=r,f=-t):(d=-r,f=t);let m=c+d,p=l+f,g=u+d,y=h+f;return a.push(m,p),a.push(g,y),2}function Zr(i,e,t,r,s,n,o,a){let c=t-i,l=r-e,u=Math.atan2(c,l),h=Math.atan2(s-i,n-e);a&&u<h?u+=Math.PI*2:!a&&u>h&&(h+=Math.PI*2);let d=u,f=h-u,m=Math.abs(f),p=Math.sqrt(c*c+l*l),g=(15*m*Math.sqrt(p)/Math.PI>>0)+1,y=f/g;if(d+=y,a){o.push(i,e),o.push(t,r);for(let x=1,w=d;x<g;x++,w+=y)o.push(i,e),o.push(i+Math.sin(w)*p,e+Math.cos(w)*p);o.push(i,e),o.push(s,n)}else{o.push(t,r),o.push(i,e);for(let x=1,w=d;x<g;x++,w+=y)o.push(i+Math.sin(w)*p,e+Math.cos(w)*p),o.push(i,e);o.push(s,n),o.push(i,e)}return g*2}function Py(i,e,t,r,s,n){let o=1e-4;if(i.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let te=Ty(i);t&&(te*=-1),c=(c-.5)*te+.5}let l=new Y(i[0],i[1]),u=new Y(i[i.length-2],i[i.length-1]),h=r,d=Math.abs(l.x-u.x)<o&&Math.abs(l.y-u.y)<o;if(h){i=i.slice(),d&&(i.pop(),i.pop(),u.set(i[i.length-2],i[i.length-1]));let te=(l.x+u.x)*.5,er=(u.y+l.y)*.5;i.unshift(te,er),i.push(te,er)}let f=s,m=i.length/2,p=i.length,g=f.length/2,y=a.width/2,x=y*y,w=a.miterLimit*a.miterLimit,_=i[0],S=i[1],T=i[2],v=i[3],M=0,P=0,C=-(S-v),E=_-T,D=0,j=0,he=Math.sqrt(C*C+E*E);C/=he,E/=he,C*=y,E*=y;let ns=c,V=(1-ns)*2,H=ns*2;h||(a.cap==="round"?p+=Zr(_-C*(V-H)*.5,S-E*(V-H)*.5,_-C*V,S-E*V,_+C*H,S+E*H,f,!0)+2:a.cap==="square"&&(p+=vy(_,S,C,E,V,H,!0,f))),f.push(_-C*V,S-E*V),f.push(_+C*H,S+E*H);for(let te=1;te<m-1;++te){_=i[(te-1)*2],S=i[(te-1)*2+1],T=i[te*2],v=i[te*2+1],M=i[(te+1)*2],P=i[(te+1)*2+1],C=-(S-v),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,D=-(v-P),j=T-M,he=Math.sqrt(D*D+j*j),D/=he,j/=he,D*=y,j*=y;let er=T-_,os=S-v,as=T-M,cs=P-v,Fd=er*as+os*cs,Dn=os*as-cs*er,ls=Dn<0;if(Math.abs(Dn)<.001*Math.abs(Fd)){f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),Fd>=0&&(a.join==="round"?p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+4:p+=2,f.push(T-D*H,v-j*H),f.push(T+D*V,v+j*V));continue}let Dd=(-C+_)*(-E+v)-(-C+T)*(-E+S),Rd=(-D+M)*(-j+v)-(-D+T)*(-j+P),Rn=(er*Rd-as*Dd)/Dn,On=(cs*Dd-os*Rd)/Dn,Hc=(Rn-T)*(Rn-T)+(On-v)*(On-v),br=T+(Rn-T)*V,wr=v+(On-v)*V,_r=T-(Rn-T)*H,Sr=v-(On-v)*H,Zw=Math.min(er*er+os*os,as*as+cs*cs),Od=ls?V:H,Qw=Zw+Od*Od*x;Hc<=Qw?a.join==="bevel"||Hc/x>w?(ls?(f.push(br,wr),f.push(T+C*H,v+E*H),f.push(br,wr),f.push(T+D*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(_r,Sr),f.push(T-D*V,v-j*V),f.push(_r,Sr)),p+=2):a.join==="round"?ls?(f.push(br,wr),f.push(T+C*H,v+E*H),p+=Zr(T,v,T+C*H,v+E*H,T+D*H,v+j*H,f,!0)+4,f.push(br,wr),f.push(T+D*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(_r,Sr),p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+4,f.push(T-D*V,v-j*V),f.push(_r,Sr)):(f.push(br,wr),f.push(_r,Sr)):(f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),a.join==="round"?ls?p+=Zr(T,v,T+C*H,v+E*H,T+D*H,v+j*H,f,!0)+2:p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+2:a.join==="miter"&&Hc/x<=w&&(ls?(f.push(_r,Sr),f.push(_r,Sr)):(f.push(br,wr),f.push(br,wr)),p+=2),f.push(T-D*V,v-j*V),f.push(T+D*H,v+j*H),p+=2)}_=i[(m-2)*2],S=i[(m-2)*2+1],T=i[(m-1)*2],v=i[(m-1)*2+1],C=-(S-v),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),h||(a.cap==="round"?p+=Zr(T-C*(V-H)*.5,v-E*(V-H)*.5,T-C*V,v-E*V,T+C*H,v+E*H,f,!1)+2:a.cap==="square"&&(p+=vy(T,v,C,E,V,H,!1,f)));let Kw=1e-4*1e-4;for(let te=g;te<p+g-2;++te)_=f[te*2],S=f[te*2+1],T=f[(te+1)*2],v=f[(te+1)*2+1],M=f[(te+2)*2],P=f[(te+2)*2+1],!(Math.abs(_*(v-P)+T*(P-S)+M*(S-v))<Kw)&&n.push(te,te+1,te+2)}var Cy=b(()=>{St();ky()});function Ey(i,e,t,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],c=i[i.length-1],l=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,u=t,h=i.length/2,d=u.length/2;for(let f=0;f<h;f++)u.push(i[f*2]),u.push(i[f*2+1]);for(let f=0;f<h-1;f++)r.push(d+f,d+f+1);l&&r.push(d+h-1,d)}var Ay=b(()=>{});function Ja(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length,n=My(i,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,l;if(r&&(n=rT(i,e,n,t)),i.length>80*t){a=1/0,c=1/0;let u=-1/0,h=-1/0;for(let d=t;d<s;d+=t){let f=i[d],m=i[d+1];f<a&&(a=f),m<c&&(c=m),f>u&&(u=f),m>h&&(h=m)}l=Math.max(u-a,h-c),l=l!==0?32767/l:0}return un(n,o,t,a,c,l,0),o}function My(i,e,t,r,s){let n;if(s===fT(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=Iy(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=Iy(o/r|0,i[o],i[o+1],n);return n&&$i(n,n.next)&&(dn(n),n=n.next),n}function Qr(i,e){if(!i)return i;e||(e=i);let t=i,r;do if(r=!1,!t.steiner&&($i(t,t.next)||ue(t.prev,t,t.next)===0)){if(dn(t),t=e=t.prev,t===t.next)break;r=!0}else t=t.next;while(r||t!==e);return e}function un(i,e,t,r,s,n,o){if(!i)return;!o&&n&&aT(i,r,s,n);let a=i;for(;i.prev!==i.next;){let c=i.prev,l=i.next;if(n?JS(i,r,s,n):QS(i)){e.push(c.i,i.i,l.i),dn(i),i=l.next,a=l.next;continue}if(i=l,i===a){o?o===1?(i=eT(Qr(i),e),un(i,e,t,r,s,n,2)):o===2&&tT(i,e,t,r,s,n):un(Qr(i),e,t,r,s,n,1);break}}}function QS(i){let e=i.prev,t=i,r=i.next;if(ue(e,t,r)>=0)return!1;let s=e.x,n=t.x,o=r.x,a=e.y,c=t.y,l=r.y,u=Math.min(s,n,o),h=Math.min(a,c,l),d=Math.max(s,n,o),f=Math.max(a,c,l),m=r.next;for(;m!==e;){if(m.x>=u&&m.x<=d&&m.y>=h&&m.y<=f&&ln(s,a,n,c,o,l,m.x,m.y)&&ue(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function JS(i,e,t,r){let s=i.prev,n=i,o=i.next;if(ue(s,n,o)>=0)return!1;let a=s.x,c=n.x,l=o.x,u=s.y,h=n.y,d=o.y,f=Math.min(a,c,l),m=Math.min(u,h,d),p=Math.max(a,c,l),g=Math.max(u,h,d),y=xh(f,m,e,t,r),x=xh(p,g,e,t,r),w=i.prevZ,_=i.nextZ;for(;w&&w.z>=y&&_&&_.z<=x;){if(w.x>=f&&w.x<=p&&w.y>=m&&w.y<=g&&w!==s&&w!==o&&ln(a,u,c,h,l,d,w.x,w.y)&&ue(w.prev,w,w.next)>=0||(w=w.prevZ,_.x>=f&&_.x<=p&&_.y>=m&&_.y<=g&&_!==s&&_!==o&&ln(a,u,c,h,l,d,_.x,_.y)&&ue(_.prev,_,_.next)>=0))return!1;_=_.nextZ}for(;w&&w.z>=y;){if(w.x>=f&&w.x<=p&&w.y>=m&&w.y<=g&&w!==s&&w!==o&&ln(a,u,c,h,l,d,w.x,w.y)&&ue(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;_&&_.z<=x;){if(_.x>=f&&_.x<=p&&_.y>=m&&_.y<=g&&_!==s&&_!==o&&ln(a,u,c,h,l,d,_.x,_.y)&&ue(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function eT(i,e){let t=i;do{let r=t.prev,s=t.next.next;!$i(r,s)&&Fy(r,t,t.next,s)&&hn(r,s)&&hn(s,r)&&(e.push(r.i,t.i,s.i),dn(t),dn(t.next),t=i=s),t=t.next}while(t!==i);return Qr(t)}function tT(i,e,t,r,s,n){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&uT(o,a)){let c=Dy(o,a);o=Qr(o,o.next),c=Qr(c,c.next),un(o,e,t,r,s,n,0),un(c,e,t,r,s,n,0);return}a=a.next}o=o.next}while(o!==i)}function rT(i,e,t,r){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*r,c=n<o-1?e[n+1]*r:i.length,l=My(i,a,c,r,!1);l===l.next&&(l.steiner=!0),s.push(lT(l))}s.sort(iT);for(let n=0;n<s.length;n++)t=sT(s[n],t);return t}function iT(i,e){let t=i.x-e.x;if(t===0&&(t=i.y-e.y,t===0)){let r=(i.next.y-i.y)/(i.next.x-i.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=r-s}return t}function sT(i,e){let t=nT(i,e);if(!t)return e;let r=Dy(t,i);return Qr(r,r.next),Qr(t,t.next)}function nT(i,e){let t=e,r=i.x,s=i.y,n=-1/0,o;if($i(i,t))return t;do{if($i(i,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=r&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===r))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,l=o.y,u=1/0;t=o;do{if(r>=t.x&&t.x>=c&&r!==t.x&&By(s<l?r:n,s,c,l,s<l?n:r,s,t.x,t.y)){let h=Math.abs(s-t.y)/(r-t.x);hn(t,i)&&(h<u||h===u&&(t.x>o.x||t.x===o.x&&oT(o,t)))&&(o=t,u=h)}t=t.next}while(t!==a);return o}function oT(i,e){return ue(i.prev,i,e.prev)<0&&ue(e.next,i,i.next)<0}function aT(i,e,t,r){let s=i;do s.z===0&&(s.z=xh(s.x,s.y,e,t,r)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i);s.prevZ.nextZ=null,s.prevZ=null,cT(s)}function cT(i){let e,t=1;do{let r=i,s;i=null;let n=null;for(e=0;r;){e++;let o=r,a=0;for(let l=0;l<t&&(a++,o=o.nextZ,!!o);l++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||r.z<=o.z)?(s=r,r=r.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:i=s,s.prevZ=n,n=s;r=o}n.nextZ=null,t*=2}while(e>1);return i}function xh(i,e,t,r,s){return i=(i-t)*s|0,e=(e-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,i|e<<1}function lT(i){let e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function By(i,e,t,r,s,n,o,a){return(s-o)*(e-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(r-a)}function ln(i,e,t,r,s,n,o,a){return!(i===o&&e===a)&&By(i,e,t,r,s,n,o,a)}function uT(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!hT(i,e)&&(hn(i,e)&&hn(e,i)&&dT(i,e)&&(ue(i.prev,i,e.prev)||ue(i,e.prev,e))||$i(i,e)&&ue(i.prev,i,i.next)>0&&ue(e.prev,e,e.next)>0)}function ue(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function $i(i,e){return i.x===e.x&&i.y===e.y}function Fy(i,e,t,r){let s=Qa(ue(i,e,t)),n=Qa(ue(i,e,r)),o=Qa(ue(t,r,i)),a=Qa(ue(t,r,e));return!!(s!==n&&o!==a||s===0&&Za(i,t,e)||n===0&&Za(i,r,e)||o===0&&Za(t,i,r)||a===0&&Za(t,e,r))}function Za(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function Qa(i){return i>0?1:i<0?-1:0}function hT(i,e){let t=i;do{if(t.i!==i.i&&t.next.i!==i.i&&t.i!==e.i&&t.next.i!==e.i&&Fy(t,t.next,i,e))return!0;t=t.next}while(t!==i);return!1}function hn(i,e){return ue(i.prev,i,i.next)<0?ue(i,e,i.next)>=0&&ue(i,i.prev,e)>=0:ue(i,e,i.prev)<0||ue(i,i.next,e)<0}function dT(i,e){let t=i,r=!1,s=(i.x+e.x)/2,n=(i.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(r=!r),t=t.next;while(t!==i);return r}function Dy(i,e){let t=yh(i.i,i.x,i.y),r=yh(e.i,e.x,e.y),s=i.next,n=e.prev;return i.next=e,e.prev=i,t.next=s,s.prev=t,r.next=t,t.prev=r,n.next=r,r.prev=n,r}function Iy(i,e,t,r){let s=yh(i,e,t);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function dn(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function yh(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function fT(i,e,t,r){let s=0;for(let n=e,o=t-r;n<t;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ry=b(()=>{});var Oy,Uy=b(()=>{Ry();He();Oy=Ja.default||Ja});function ec(i,e,t,r,s,n,o){let a=Oy(i,e,2);if(!a)return;for(let l=0;l<a.length;l+=3)n[o++]=a[l]+s,n[o++]=a[l+1]+s,n[o++]=a[l+2]+s;let c=s*r;for(let l=0;l<i.length;l+=2)t[c]=i[l],t[c+1]=i[l+1],c+=r}var bh=b(()=>{Uy()});var mT,zy,Gy=b(()=>{G();bh();mT=[],zy={extension:{type:A.ShapeBuilder,name:"polygon"},build(i,e){for(let t=0;t<i.points.length;t++)e[t]=i.points[t];return!0},triangulate(i,e,t,r,s,n){ec(i,mT,e,t,r,s,n)}}});var Ny,Ly=b(()=>{G();Ny={extension:{type:A.ShapeBuilder,name:"rectangle"},build(i,e){let t=i,r=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=r,e[1]=s,e[2]=r+n,e[3]=s,e[4]=r+n,e[5]=s+o,e[6]=r,e[7]=s+o,!0):!1},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[6],e[r+o+1]=i[7],o+=t,e[r+o]=i[4],e[r+o+1]=i[5],o+=t;let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var Vy,Wy=b(()=>{G();Vy={extension:{type:A.ShapeBuilder,name:"triangle"},build(i,e){return e[0]=i.x,e[1]=i.y,e[2]=i.x2,e[3]=i.y2,e[4]=i.x3,e[5]=i.y3,!0},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[4],e[r+o+1]=i[5];let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function jy(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function $y(i,e){let t=xe.get().createCanvas(i,e),r=t.getContext("2d");return{canvas:t,context:r}}function pT(i){let e=i[0]??{};return(typeof e=="number"||i[1])&&(N("8.5.2","use options object instead"),e={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??qe.defaultLinearOptions.textureSize}),e}var Hy,_h,qe,qi=b(()=>{je();vt();re();Ia();Te();Ue();pe();uu();Hy=[{offset:0,color:"white"},{offset:1,color:"black"}],_h=class wh{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=pT(e);t={...t.type==="radial"?wh.defaultRadialOptions:wh.defaultLinearOptions,...ma(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:X.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:r,y:s}=this.end,n=r-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=r,r=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:Hy,l=this._textureSize,{canvas:u,context:h}=$y(l,1),d=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);jy(d,c),h.fillStyle=d,h.fillRect(0,0,l,1),this.texture=new O({source:new Pt({resource:u,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),p=new F;p.scale(f/l,1),p.rotate(m),p.translate(e,t),this.textureSpace==="local"&&p.scale(l,l),this.transform=p}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:Hy,t=this._textureSize,{canvas:r,context:s}=$y(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,l=this.innerRadius,u=this.outerRadius,h=a-u,d=c-u,f=t/(u*2),m=(n-h)*f,p=(o-d)*f,g=s.createRadialGradient(m,p,l*f,(a-h)*f,(c-d)*f,u*f);jy(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,p),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-p),s.fillRect(0,0,t,t),this.texture=new O({source:new Pt({resource:r,addressMode:this._wrapMode})});let y=new F;y.scale(1/f,1/f),y.translate(h,d),this.textureSpace==="local"&&y.scale(t,t),this.transform=y}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};_h.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};_h.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};qe=_h});function qy(i,e,t,r){let s=e.matrix?i.copyFrom(e.matrix).invert():i.identity();if(e.textureSpace==="local"){let o=t.getBounds(xT);e.width&&o.pad(e.width);let{x:a,y:c}=o,l=1/o.width,u=1/o.height,h=-a*l,d=-c*u,f=s.a,m=s.b,p=s.c,g=s.d;s.a*=l,s.b*=l,s.c*=u,s.d*=u,s.tx=h*f+d*p+s.tx,s.ty=h*m+d*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof qe)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(gT.copyFrom(r).invert()),s}var gT,xT,Xy=b(()=>{re();$e();qi();gT=new F,xT=new Z});function Ky(i,e){let{geometryData:t,batches:r}=e;r.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")wT(n.data,r,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,l=n.data.hole;o&&l&&Yy(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),Yy(a,c,o,r,t)}}}function wT(i,e,t){let r=[],s=tc.rectangle,n=yT;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:c,indices:l}=t,u=l.length,h=a.length/2;o&&ph(r,o),s.triangulate(r,a,2,h,l,u);let d=i.image,f=d.uvs;c.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=be.get(Kr);m.indexOffset=u,m.indexSize=l.length-u,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=t,e.push(m)}function Yy(i,e,t,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:c,transform:l,holes:u})=>{let h=[],d=tc[c.type];if(!d.build(c,h))return;let f=a.length,m=n.length/2,p="triangle-list";if(l&&ph(h,l),t){let w=c.closePath??!0,_=e;_.pixelLine?(Ey(h,w,n,a),p="line-list"):Py(h,_,!1,w,n,a)}else if(u){let w=[],_=h.slice();_T(u).forEach(T=>{w.push(_.length/2),_.push(...T)}),ec(_,w,n,2,m,a,f)}else d.triangulate(h,n,2,m,a,f);let g=o.length/2,y=e.texture;if(y!==O.WHITE){let w=qy(bT,e,c,l);gy(n,2,m,o,g,2,n.length/2-m,w)}else xy(o,g,2,n.length/2-m);let x=be.get(Kr);x.indexOffset=f,x.indexSize=a.length-f,x.attributeOffset=m,x.attributeSize=n.length/2-m,x.baseColor=e.color,x.alpha=e.alpha,x.texture=y,x.geometryData=s,x.topology=p,r.push(x)})}function _T(i){let e=[];for(let t=0;t<i.length;t++){let r=i[t].shape,s=[];tc[r.type].build(r,s)&&e.push(s)}return e}var tc,yT,bT,Zy=b(()=>{G();re();$e();yy();by();Te();Lr();gh();Sy();Cy();Ay();Gy();Ly();Wy();Xy();bh();tc={};L.handleByMap(A.ShapeBuilder,tc);L.add(Ny,zy,Vy,ji,wy,_y);yT=new Z,bT=new F});var Sh,Th,vh,Xi,rc=b(()=>{G();$g();py();cu();pe();Lr();Zy();Sh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Th=class{constructor(){this.instructions=new Ai}init(e){this.batcher=new my({maxTextures:e}),this.instructions.reset()}get geometry(){return N(jm,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},vh=class kh{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){kh.defaultOptions.bezierSmoothness=e?.bezierSmoothness??kh.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),Ky(e,t);let r=e.batchMode;e.customShader||r==="no-batch"?t.isBatchable=!1:r==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=be.get(Th,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:r,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let u=0;u<r.length;u++)r[u].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let u=0;u<r.length;u++){let h=r[u];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let l=a.batches;for(let u=0;u<l.length;u++){let h=l[u];h.bindGroup=jg(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Sh;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(be.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(r=>{be.return(r)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};vh.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"graphicsContext"};vh.defaultOptions={bezierSmoothness:.5};Xi=vh});var ST,Ph,Ch,Eh,Ah,Ih,Mh,Bh,Jr,ic=b(()=>{"use strict";ST={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},Ph=0,Ch=1,Eh=2,Ah=3,Ih=4,Mh=5,Bh=class Qy{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Ph)}set blend(e){!!(this.data&1<<Ph)!==e&&(this.data^=1<<Ph)}get offsets(){return!!(this.data&1<<Ch)}set offsets(e){!!(this.data&1<<Ch)!==e&&(this.data^=1<<Ch)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<Eh)}set culling(e){!!(this.data&1<<Eh)!==e&&(this.data^=1<<Eh)}get depthTest(){return!!(this.data&1<<Ah)}set depthTest(e){!!(this.data&1<<Ah)!==e&&(this.data^=1<<Ah)}get depthMask(){return!!(this.data&1<<Mh)}set depthMask(e){!!(this.data&1<<Mh)!==e&&(this.data^=1<<Mh)}get clockwiseFrontFace(){return!!(this.data&1<<Ih)}set clockwiseFrontFace(e){!!(this.data&1<<Ih)!==e&&(this.data^=1<<Ih)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=ST[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new Qy;return e.depthTest=!1,e.blend=!0,e}};Bh.default2d=Bh.for2d();Jr=Bh});function gr(i,e,t){let r=(i>>24&255)/255;e[t++]=(i&255)/255*r,e[t++]=(i>>8&255)/255*r,e[t++]=(i>>16&255)/255*r,e[t++]=r}var fn=b(()=>{"use strict"});var Fh,mn,Jy=b(()=>{G();ic();Lr();fn();gh();Fh=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{be.return(e)}),this.batches.length=0}},mn=class{constructor(e,t){this.state=Jr.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,r=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||r!==s.isBatchable)}addRenderable(e,t){let r=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),r.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let r=this._getGpuDataForRenderable(e).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,r=e.context;if(!t.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,gr(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),r=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),r.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new Fh;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let r=e.context,s=this.renderer.graphicsContext.getGpuContext(r),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=be.get(Kr);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"graphics"}});var Dh=b(()=>{G();rc();Jy();L.add(mn);L.add(Xi)});var xr,sc=b(()=>{"use strict";xr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),r=t.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var nc,pn,eb=b(()=>{G();re();rn();pr();sn();fn();sc();nc=class{destroy(){}},pn=class{constructor(e,t){this.localUniforms=new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new rt({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),r=t.batched,s=e.batched;if(t.batched=s,r!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let r=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,r.addToBatch(n,t)}else r.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=Kt(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),gr(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new nc),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new nc),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new xr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};pn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"mesh"}});var Rh=b(()=>{G();eb();L.add(pn)});var oc,tb=b(()=>{"use strict";oc=class{execute(e,t){let r=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(r),s.geometry.bind(a.geometry,n.glProgram);let l=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,l,0)}}});function Oh(i,e=null){let t=i*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let r=0,s=0;r<t;r+=6,s+=4)e[r+0]=s+0,e[r+1]=s+1,e[r+2]=s+2,e[r+3]=s+0,e[r+4]=s+2,e[r+5]=s+3;return e}var rb=b(()=>{"use strict"});function sb(i){return{dynamicUpdate:ib(i,!0),staticUpdate:ib(i,!1)}}function ib(i,e){let t=[];t.push(`
|
|
253
|
+
`}}});var Th,yy,by=b(()=>{"use strict";Th=["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>"],yy=Th.reduce((i,e)=>(i[e]=!0,i),{})});function wy(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 _y=b(()=>{"use strict"});var Sy,Ne,gr=b(()=>{Ue();qa();by();_y();Sy=class Ty{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={...Ty.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,!yy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${Th.join(", ")}`);n.value??(n.value=wy(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++}};Sy.defaultOptions={ubo:!1,isStatic:!1};Ne=Sy});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 Ne({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 Ne(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,ky=b(()=>{Ja();bh();Sh();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 kh,Py,Ey,Ay=b(()=>{G();_x();kx();ky();kh=null,Py=class Cy extends wx{constructor(e){super(e),this.geometry=new $a,this.name=Cy.extension.name,this.vertexSize=6,kh??(kh=new oc(e.maxTextures)),this.shader=kh}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}};Py.extension={type:[A.Batcher],name:"default"};Ey=Py});function Iy(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 My(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var By=b(()=>{"use strict"});function Ph(i,e,t,r,s){let n=e.a,o=e.b,a=e.c,c=e.d,l=e.tx,u=e.ty;t||(t=0),r||(r=2),s||(s=i.length/r-t);let h=t*r;for(let d=0;d<s;d++){let f=i[h],m=i[h+1];i[h]=n*f+a*m+l,i[h+1]=o*f+c*m+u,h+=r}}var Fy=b(()=>{"use strict"});var dT,Zr,Ch=b(()=>{re();pu();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,Ry,Dy,Oy=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,k=n+Math.sin(S)*a,M=t+T,P=t-T,C=r+k,E=r-k;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}},Ry={...Yi,extension:{...Yi.extension,name:"ellipse"}},Dy={...Yi,extension:{...Yi.extension,name:"roundedRectangle"}}});function Uy(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 zy=b(()=>{"use strict"});function Gy(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=Uy(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],k=i[3],M=0,P=0,C=-(S-k),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+=Gy(_,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],k=i[te*2+1],M=i[(te+1)*2],P=i[(te+1)*2+1],C=-(S-k),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,R=-(k-P),j=T-M,he=Math.sqrt(R*R+j*j),R/=he,j/=he,R*=y,j*=y;let tr=T-_,us=S-k,hs=T-M,ds=P-k,Hd=tr*hs+us*ds,Gn=us*hs-ds*tr,fs=Gn<0;if(Math.abs(Gn)<.001*Math.abs(Hd)){f.push(T-C*V,k-E*V),f.push(T+C*H,k+E*H),Hd>=0&&(a.join==="round"?p+=Qr(T,k,T-C*V,k-E*V,T-R*V,k-j*V,f,!1)+4:p+=2,f.push(T-R*H,k-j*H),f.push(T+R*V,k+j*V));continue}let jd=(-C+_)*(-E+k)-(-C+T)*(-E+S),$d=(-R+M)*(-j+k)-(-R+T)*(-j+P),Nn=(tr*$d-hs*jd)/Gn,Ln=(ds*jd-us*$d)/Gn,el=(Nn-T)*(Nn-T)+(Ln-k)*(Ln-k),wr=T+(Nn-T)*V,_r=k+(Ln-k)*V,Sr=T-(Nn-T)*H,Tr=k-(Ln-k)*H,h_=Math.min(tr*tr+us*us,hs*hs+ds*ds),qd=fs?V:H,d_=h_+qd*qd*x;el<=d_?a.join==="bevel"||el/x>w?(fs?(f.push(wr,_r),f.push(T+C*H,k+E*H),f.push(wr,_r),f.push(T+R*H,k+j*H)):(f.push(T-C*V,k-E*V),f.push(Sr,Tr),f.push(T-R*V,k-j*V),f.push(Sr,Tr)),p+=2):a.join==="round"?fs?(f.push(wr,_r),f.push(T+C*H,k+E*H),p+=Qr(T,k,T+C*H,k+E*H,T+R*H,k+j*H,f,!0)+4,f.push(wr,_r),f.push(T+R*H,k+j*H)):(f.push(T-C*V,k-E*V),f.push(Sr,Tr),p+=Qr(T,k,T-C*V,k-E*V,T-R*V,k-j*V,f,!1)+4,f.push(T-R*V,k-j*V),f.push(Sr,Tr)):(f.push(wr,_r),f.push(Sr,Tr)):(f.push(T-C*V,k-E*V),f.push(T+C*H,k+E*H),a.join==="round"?fs?p+=Qr(T,k,T+C*H,k+E*H,T+R*H,k+j*H,f,!0)+2:p+=Qr(T,k,T-C*V,k-E*V,T-R*V,k-j*V,f,!1)+2:a.join==="miter"&&el/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,k-j*V),f.push(T+R*H,k+j*H),p+=2)}_=i[(m-2)*2],S=i[(m-2)*2+1],T=i[(m-1)*2],k=i[(m-1)*2+1],C=-(S-k),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,f.push(T-C*V,k-E*V),f.push(T+C*H,k+E*H),h||(a.cap==="round"?p+=Qr(T-C*(V-H)*.5,k-E*(V-H)*.5,T-C*V,k-E*V,T+C*H,k+E*H,f,!1)+2:a.cap==="square"&&(p+=Gy(T,k,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],k=f[(te+1)*2+1],M=f[(te+2)*2],P=f[(te+2)*2+1],!(Math.abs(_*(k-P)+T*(P-S)+M*(S-k))<u_)&&n.push(te,te+1,te+2)}var Ly=b(()=>{Tt();zy()});function Vy(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 Wy=b(()=>{});function lc(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length,n=jy(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 jy(i,e,t,r,s){let n;if(s===IT(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=Hy(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=Hy(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&&vT(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=Eh(f,m,e,t,r),x=Eh(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)&&qy(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=Xy(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=jy(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=Xy(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&&$y(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 vT(i,e,t,r){let s=i;do s.z===0&&(s.z=Eh(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,kT(s)}function kT(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 Eh(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 $y(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)&&$y(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 qy(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&&qy(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 Xy(i,e){let t=Ah(i.i,i.x,i.y),r=Ah(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 Hy(i,e,t,r){let s=Ah(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 Ah(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 Yy=b(()=>{});var Ky,Zy=b(()=>{Yy();He();Ky=lc.default||lc});function uc(i,e,t,r,s,n,o){let a=Ky(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 Ih=b(()=>{Zy()});var MT,Qy,Jy=b(()=>{G();Ih();MT=[],Qy={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 eb,tb=b(()=>{G();eb={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 rb,ib=b(()=>{G();rb={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 nb(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function ob(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])&&(N("8.5.2","use options object instead"),e={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??qe.defaultLinearOptions.textureSize}),e}var sb,Bh,qe,Zi=b(()=>{je();Pt();re();Na();Te();Ue();pe();_u();sb=[{offset:0,color:"white"},{offset:1,color:"black"}],Bh=class Mh{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=BT(e);t={...t.type==="radial"?Mh.defaultRadialOptions:Mh.defaultLinearOptions,...va(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:sb,l=this._textureSize,{canvas:u,context:h}=ob(l,1),d=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);nb(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:sb,t=this._textureSize,{canvas:r,context:s}=ob(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);nb(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}};Bh.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Bh.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};qe=Bh});function ab(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,cb=b(()=>{re();$e();Zi();FT=new F,RT=new Z});function ub(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&&lb(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),lb(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&&Ph(r,o),s.triangulate(r,a,2,h,l,u);let d=i.image,f=d.uvs;c.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=be.get(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 lb(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&&Ph(h,l),t){let w=c.closePath??!0,_=e;_.pixelLine?(Vy(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=ab(OT,e,c,l);Iy(n,2,m,o,g,2,n.length/2-m,w)}else My(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,hb=b(()=>{G();re();$e();By();Fy();Te();Vr();Ch();Oy();Ly();Wy();Jy();tb();ib();cb();Ih();hc={};L.handleByMap(A.ShapeBuilder,hc);L.add(eb,Qy,rb,Yi,Ry,Dy);DT=new Z,OT=new F});var Fh,Rh,Oh,Qi,dc=b(()=>{G();ox();Ay();bu();pe();Vr();hb();Fh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Rh=class{constructor(){this.instructions=new Fi}init(e){this.batcher=new Ey({maxTextures:e}),this.instructions.reset()}get geometry(){return N(np,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},Oh=class Dh{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){Dh.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Dh.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),ub(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(Rh,{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=nx(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Fh;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)}};Oh.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"graphicsContext"};Oh.defaultOptions={bezierSmoothness:.5};Qi=Oh});var GT,Uh,zh,Gh,Nh,Lh,Vh,Wh,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},Uh=0,zh=1,Gh=2,Nh=3,Lh=4,Vh=5,Wh=class db{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Uh)}set blend(e){!!(this.data&1<<Uh)!==e&&(this.data^=1<<Uh)}get offsets(){return!!(this.data&1<<zh)}set offsets(e){!!(this.data&1<<zh)!==e&&(this.data^=1<<zh)}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<<Gh)}set culling(e){!!(this.data&1<<Gh)!==e&&(this.data^=1<<Gh)}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<<Vh)}set depthMask(e){!!(this.data&1<<Vh)!==e&&(this.data^=1<<Vh)}get clockwiseFrontFace(){return!!(this.data&1<<Lh)}set clockwiseFrontFace(e){!!(this.data&1<<Lh)!==e&&(this.data^=1<<Lh)}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 db;return e.depthTest=!1,e.blend=!0,e}};Wh.default2d=Wh.for2d();ei=Wh});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 Hh,bn,fb=b(()=>{G();fc();Vr();yn();Ch();Hh=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 Hh;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 jh=b(()=>{G();dc();fb();L.add(bn);L.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,mb=b(()=>{G();re();cn();gr();ln();yn();mc();pc=class{destroy(){}},wn=class{constructor(e,t){this.localUniforms=new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new 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 $h=b(()=>{G();mb();L.add(wn)});var gc,pb=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 qh(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 gb=b(()=>{"use strict"});function yb(i){return{dynamicUpdate:xb(i,!0),staticUpdate:xb(i,!1)}}function xb(i,e){let t=[];t.push(`
|
|
254
254
|
|
|
255
255
|
var index = 0;
|
|
256
256
|
|
|
@@ -258,13 +258,13 @@ ${s.join(`
|
|
|
258
258
|
{
|
|
259
259
|
const p = ps[i];
|
|
260
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=
|
|
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
262
|
index += stride * 4;
|
|
263
263
|
}
|
|
264
264
|
`),t.unshift(`
|
|
265
265
|
var stride = ${r};
|
|
266
266
|
`);let s=t.join(`
|
|
267
|
-
`);return new Function("ps","f32v","u32v",s)}var
|
|
267
|
+
`);return new Function("ps","f32v","u32v",s)}var bb=b(()=>{Ka()});function NT(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,wb=b(()=>{Li();Ni();hn();Ka();ih();gb();bb();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=qh(t);let o=new At,a=0,c=0;this._staticBuffer=new ve({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:ee.VERTEX|ee.COPY_DST}),this._dynamicBuffer=new ve({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=NT(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return yb(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=qh(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 _b,Sb=b(()=>{_b=`varying vec2 vUV;
|
|
268
268
|
varying vec4 vColor;
|
|
269
269
|
|
|
270
270
|
uniform sampler2D uTexture;
|
|
@@ -272,7 +272,7 @@ uniform sampler2D uTexture;
|
|
|
272
272
|
void main(void){
|
|
273
273
|
vec4 color = texture2D(uTexture, vUV) * vColor;
|
|
274
274
|
gl_FragColor = color;
|
|
275
|
-
}`});var
|
|
275
|
+
}`});var Tb,vb=b(()=>{Tb=`attribute vec2 aVertex;
|
|
276
276
|
attribute vec2 aUV;
|
|
277
277
|
attribute vec4 aColor;
|
|
278
278
|
|
|
@@ -311,7 +311,7 @@ void main(void){
|
|
|
311
311
|
vUV = aUV;
|
|
312
312
|
vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
|
|
313
313
|
}
|
|
314
|
-
`});var
|
|
314
|
+
`});var Xh,kb=b(()=>{Xh=`
|
|
315
315
|
struct ParticleUniforms {
|
|
316
316
|
uProjectionMatrix:mat3x3<f32>,
|
|
317
317
|
uColor:vec4<f32>,
|
|
@@ -364,8 +364,8 @@ fn mainFragment(
|
|
|
364
364
|
var sample = textureSample(uTexture, uSampler, uv) * color;
|
|
365
365
|
|
|
366
366
|
return sample;
|
|
367
|
-
}`});var cc,db=b(()=>{je();re();Ga();Va();cn();Te();Ii();cb();ub();hb();cc=class extends It{constructor(){let e=Gi.from({vertex:lb,fragment:ab}),t=fr.from({fragment:{source:Uh,entryPoint:"mainFragment"},vertex:{source:Uh,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:O.WHITE.source,uSampler:new tt({}),uniforms:{uTranslationMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new X(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Yi,zh=b(()=>{re();pr();sn();ic();fn();ob();db();Yi=class{constructor(e,t){this.state=Jr.for2d(),this.localUniforms=new Ne({uTranslationMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new cc,this.state=Jr.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new ac({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let r=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=Kt(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(r.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=r.globalUniforms.globalUniformData.resolution,o.uRound=r._roundPixels|e._roundPixels,gr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var gn,fb=b(()=>{G();tb();zh();gn=class extends Yi{constructor(e){super(e,new oc)}};gn.extension={type:[A.WebGLPipes],name:"particle"}});var lc,mb=b(()=>{"use strict";lc=class{execute(e,t){let r=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=r.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=r.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);r.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var xn,pb=b(()=>{G();mb();zh();xn=class extends Yi{constructor(e){super(e,new lc)}};xn.extension={type:[A.WebGPUPipes],name:"particle"}});var Gh=b(()=>{G();fb();pb();L.add(gn);L.add(xn)});function yn(i,e){let{texture:t,bounds:r}=i;Ca(r,e._anchor,t);let s=e._style._getFinalPadding();r.minX-=s,r.minY-=s,r.maxX-=s,r.maxY-=s}var Nh=b(()=>{Gu()});var Ki,Lh=b(()=>{"use strict";Ki=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var uc,gb=b(()=>{Lh();uc=class extends Ki{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var bn,xb=b(()=>{G();Nh();gb();bn=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),yn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new uc(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"text"}});var yb,Zt,hc=b(()=>{re();Ue();yb={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Zt=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new F,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=yb[t].addressModeU,e.source.style.addressModeV=yb[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var wb=zd((wL,bb)=>{bb.exports=vT;var Vh={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},kT=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function vT(i){var e=[];return i.replace(kT,function(t,r,s){var n=r.toLowerCase();for(s=CT(s),n=="m"&&s.length>2&&(e.push([r].concat(s.splice(0,2))),n="l",r=r=="m"?"l":"L");;){if(s.length==Vh[n])return s.unshift(r),e.push(s);if(s.length<Vh[n])throw new Error("malformed path data");e.push([r].concat(s.splice(0,Vh[n])))}}),e}var PT=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function CT(i){var e=i.match(PT);return e?e.map(Number):[]}});function Sb(i,e){let t=(0,_b.default)(i),r=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],l=c[0],u=c;switch(l){case"M":n=u[1],o=u[2],e.moveTo(n,o);break;case"m":n+=u[1],o+=u[2],e.moveTo(n,o);break;case"H":n=u[1],e.lineTo(n,o);break;case"h":n+=u[1],e.lineTo(n,o);break;case"V":o=u[1],e.lineTo(n,o);break;case"v":o+=u[1],e.lineTo(n,o);break;case"L":n=u[1],o=u[2],e.lineTo(n,o);break;case"l":n+=u[1],o+=u[2],e.lineTo(n,o);break;case"C":n=u[5],o=u[6],e.bezierCurveTo(u[1],u[2],u[3],u[4],n,o);break;case"c":e.bezierCurveTo(n+u[1],o+u[2],n+u[3],o+u[4],n+u[5],o+u[6]),n+=u[5],o+=u[6];break;case"S":n=u[3],o=u[4],e.bezierCurveToShort(u[1],u[2],n,o);break;case"s":e.bezierCurveToShort(n+u[1],o+u[2],n+u[3],o+u[4]),n+=u[3],o+=u[4];break;case"Q":n=u[3],o=u[4],e.quadraticCurveTo(u[1],u[2],n,o);break;case"q":e.quadraticCurveTo(n+u[1],o+u[2],n+u[3],o+u[4]),n+=u[3],o+=u[4];break;case"T":n=u[1],o=u[2],e.quadraticCurveToShort(n,o);break;case"t":n+=u[1],o+=u[2],e.quadraticCurveToShort(n,o);break;case"A":n=u[6],o=u[7],e.arcToSvg(u[1],u[2],u[3],u[4],u[5],n,o);break;case"a":n+=u[6],o+=u[7],e.arcToSvg(u[1],u[2],u[3],u[4],u[5],n,o);break;case"Z":case"z":e.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:q(`Unknown SVG path command: ${l}`)}l!=="Z"&&l!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return e}var _b,Tb=b(()=>{_b=Gd(wb(),1);ze()});var dc,kb=b(()=>{$e();dc=class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=r}strokeContains(e,t,r,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*r,l=Math.sqrt(n*n+o*o);return l<=a+c&&l>a-(r-c)}getBounds(e){return e||(e=new Z),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var fc,vb=b(()=>{$e();fc=class i{constructor(e=0,t=0,r=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(e,t,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),c=r-a,l=n-c,u=o-c,h=n+a,d=o+a,f=e-this.x,m=t-this.y,p=f*f/(l*l)+m*m/(u*u),g=f*f/(h*h)+m*m/(d*d);return p>1&&g<=1}getBounds(e){return e||(e=new Z),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function Pb(i,e,t,r,s,n){let o=i-t,a=e-r,c=s-t,l=n-r,u=o*c+a*l,h=c*c+l*l,d=-1;h!==0&&(d=u/h);let f,m;d<0?(f=t,m=r):d>1?(f=s,m=n):(f=t+d*c,m=r+d*l);let p=i-f,g=e-m;return p*p+g*g}var Cb=b(()=>{"use strict"});var ET,AT,Zi,Eb=b(()=>{Cb();$e();Zi=class i{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let r=[];for(let s=0,n=t.length;s<n;s++)r.push(t[s].x,t[s].y);t=r}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,r=t.length;for(let s=0;s<r;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%r],c=t[(s+3)%r];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(ET),r=e.getBounds(AT);if(!t.containsRect(r))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new i(e);return t.closePath=this.closePath,t}contains(e,t){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],l=this.points[o*2],u=this.points[o*2+1];c>t!=u>t&&e<(l-a)*((t-c)/(u-c))+a&&(r=!r)}return r}strokeContains(e,t,r,s=.5){let n=r*r,o=n*(1-s),a=n-o,{points:c}=this,l=c.length-(this.closePath?0:2);for(let u=0;u<l;u+=2){let h=c[u],d=c[u+1],f=c[(u+2)%c.length],m=c[(u+3)%c.length],p=Pb(e,t,h,d,f,m),g=Math.sign((f-h)*(t-d)-(m-d)*(e-h));if(p<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Z);let t=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let l=t[a],u=t[a+1];r=l<r?l:r,s=l>s?l:s,n=u<n?u:n,o=u>o?u:o}return e.x=r,e.width=s-r,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var mc,pc,Ab=b(()=>{$e();mc=(i,e,t,r,s,n,o)=>{let a=i-t,c=e-r,l=Math.sqrt(a*a+c*c);return l>=s-n&&l<=s+o},pc=class i{constructor(e=0,t=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=s,this.radius=n}getBounds(e){return e||(e=new Z),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let s=e-(this.x+r),n=t-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=e-(this.x+this.width-r),s*s+n*n<=o)||(n=t-(this.y+this.height-r),s*s+n*n<=o)||(s=e-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,r,s=.5){let{x:n,y:o,width:a,height:c,radius:l}=this,u=r*(1-s),h=r-u,d=n+l,f=o+l,m=a-l*2,p=c-l*2,g=n+a,y=o+c;return(e>=n-u&&e<=n+h||e>=g-h&&e<=g+u)&&t>=f&&t<=f+p||(t>=o-u&&t<=o+h||t>=y-h&&t<=y+u)&&e>=d&&e<=d+m?!0:e<d&&t<f&&mc(e,t,d,f,l,h,u)||e>g-l&&t<f&&mc(e,t,g-l,f,l,h,u)||e>g-l&&t>y-l&&mc(e,t,g-l,y-l,l,h,u)||e<d&&t>y-l&&mc(e,t,d,y-l,l,h,u)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function xc(i,e,t,r,s,n,o,a,c,l){let h=Math.min(.99,Math.max(0,l??Xi.defaultOptions.bezierSmoothness)),d=(MT-h)/1;return d*=d,BT(e,t,r,s,n,o,a,c,i,d),i}function BT(i,e,t,r,s,n,o,a,c,l){Hh(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function Hh(i,e,t,r,s,n,o,a,c,l,u){if(u>IT)return;let h=Math.PI,d=(i+t)/2,f=(e+r)/2,m=(t+s)/2,p=(r+n)/2,g=(s+o)/2,y=(n+a)/2,x=(d+m)/2,w=(f+p)/2,_=(m+g)/2,S=(p+y)/2,T=(x+_)/2,v=(w+S)/2;if(u>0){let M=o-i,P=a-e,C=Math.abs((t-o)*P-(r-a)*M),E=Math.abs((s-o)*P-(n-a)*M),D,j;if(C>gc&&E>gc){if((C+E)*(C+E)<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}let he=Math.atan2(n-r,s-t);if(D=Math.abs(he-Math.atan2(r-e,t-i)),j=Math.abs(Math.atan2(a-n,o-s)-he),D>=h&&(D=2*h-D),j>=h&&(j=2*h-j),D+j<Qi){c.push(T,v);return}if(ei!==0){if(D>ei){c.push(t,r);return}if(j>ei){c.push(s,n);return}}}}else if(C>gc){if(C*C<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}if(D=Math.abs(Math.atan2(n-r,s-t)-Math.atan2(r-e,t-i)),D>=h&&(D=2*h-D),D<Qi){c.push(t,r),c.push(s,n);return}if(ei!==0&&D>ei){c.push(t,r);return}}}else if(E>gc){if(E*E<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}if(D=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-t)),D>=h&&(D=2*h-D),D<Qi){c.push(t,r),c.push(s,n);return}if(ei!==0&&D>ei){c.push(s,n);return}}}else if(M=T-(i+o)/2,P=v-(e+a)/2,M*M+P*P<=l){c.push(T,v);return}}Hh(i,e,d,f,x,w,T,v,c,l,u+1),Hh(T,v,_,S,g,y,o,a,c,l,u+1)}var IT,gc,MT,Wh,Qi,ei,jh=b(()=>{rc();IT=8,gc=11920929e-14,MT=1,Wh=.01,Qi=0,ei=0});function Mb(i,e,t,r,s,n,o,a){let l=Math.min(.99,Math.max(0,a??Xi.defaultOptions.bezierSmoothness)),u=(RT-l)/1;return u*=u,UT(e,t,r,s,n,o,i,u),i}function UT(i,e,t,r,s,n,o,a){$h(o,i,e,t,r,s,n,a,0),o.push(s,n)}function $h(i,e,t,r,s,n,o,a,c){if(c>FT)return;let l=Math.PI,u=(e+r)/2,h=(t+s)/2,d=(r+n)/2,f=(s+o)/2,m=(u+d)/2,p=(h+f)/2,g=n-e,y=o-t,x=Math.abs((r-n)*y-(s-o)*g);if(x>DT){if(x*x<=a*(g*g+y*y)){if(Ib<OT){i.push(m,p);return}let w=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-t,r-e));if(w>=l&&(w=2*l-w),w<Ib){i.push(m,p);return}}}else if(g=m-(e+n)/2,y=p-(t+o)/2,g*g+y*y<=a){i.push(m,p);return}$h(i,e,t,u,h,m,p,a,c+1),$h(i,m,p,d,f,n,o,a,c+1)}var FT,DT,RT,OT,Ib,Bb=b(()=>{rc();FT=8,DT=11920929e-14,RT=1,OT=.01,Ib=0});function yc(i,e,t,r,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(c/Math.PI)))),a=Math.max(a,3);let l=c/a,u=s;l*=o?-1:1;for(let h=0;h<a+1;h++){let d=Math.cos(u),f=Math.sin(u),m=e+d*r,p=t+f*r;i.push(m,p),u+=l}}var qh=b(()=>{"use strict"});function Fb(i,e,t,r,s,n){let o=i[i.length-2],c=i[i.length-1]-t,l=o-e,u=s-t,h=r-e,d=Math.abs(c*h-l*u);if(d<1e-8||n===0){(i[i.length-2]!==e||i[i.length-1]!==t)&&i.push(e,t);return}let f=c*c+l*l,m=u*u+h*h,p=c*u+l*h,g=n*Math.sqrt(f)/d,y=n*Math.sqrt(m)/d,x=g*p/f,w=y*p/m,_=g*h+y*l,S=g*u+y*c,T=l*(y+x),v=c*(y+x),M=h*(g+w),P=u*(g+w),C=Math.atan2(v-S,T-_),E=Math.atan2(P-S,M-_);yc(i,_+e,S+t,n,C,E,l*u>h*c)}var Db=b(()=>{qh()});function zT(i,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),r=e===1.5707963267948966?.551915024494:t,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+e),a=Math.sin(i+e);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function Ob(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let u=Math.sin(a*wn/360),h=Math.cos(a*wn/360),d=h*(e-r)/2+u*(t-s)/2,f=-u*(e-r)/2+h*(t-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),GT(e,t,r,s,n,o,c,l,u,h,d,f,Xh);let{ang1:p,ang2:g}=Xh,{centerX:y,centerY:x}=Xh,w=Math.abs(g)/(wn/4);Math.abs(1-w)<1e-7&&(w=1);let _=Math.max(Math.ceil(w),1);g/=_;let S=i[i.length-2],T=i[i.length-1],v={x:0,y:0};for(let M=0;M<_;M++){let P=zT(p,g),{x:C,y:E}=Yh(P[0],n,o,h,u,y,x,v),{x:D,y:j}=Yh(P[1],n,o,h,u,y,x,v),{x:he,y:ns}=Yh(P[2],n,o,h,u,y,x,v);xc(i,S,T,C,E,D,j,he,ns),S=he,T=ns,p+=g}}var wn,Xh,Yh,Rb,GT,Ub=b(()=>{jh();wn=Math.PI*2,Xh={centerX:0,centerY:0,ang1:0,ang2:0},Yh=({x:i,y:e},t,r,s,n,o,a,c)=>{i*=t,e*=r;let l=s*i-n*e,u=n*i+s*e;return c.x=l+o,c.y=u+a,c};Rb=(i,e,t,r)=>{let s=i*r-e*t<0?-1:1,n=i*t+e*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},GT=(i,e,t,r,s,n,o,a,c,l,u,h,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),p=Math.pow(u,2),g=Math.pow(h,2),y=f*m-f*g-m*p;y<0&&(y=0),y/=f*g+m*p,y=Math.sqrt(y)*(o===a?-1:1);let x=y*s/n*h,w=y*-n/s*u,_=l*x-c*w+(i+t)/2,S=c*x+l*w+(e+r)/2,T=(u-x)/s,v=(h-w)/n,M=(-u-x)/s,P=(-h-w)/n,C=Rb(1,0,T,v),E=Rb(T,v,M,P);a===0&&E>0&&(E-=wn),a===1&&E<0&&(E+=wn),d.centerX=_,d.centerY=S,d.ang1=C,d.ang2=E}});function zb(i,e,t){let r=(o,a)=>{let c=a.x-o.x,l=a.y-o.y,u=Math.sqrt(c*c+l*l),h=c/u,d=l/u;return{len:u,nx:h,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let l=e[(o+1)%e.length],u=r(a,n),h=r(a,l);if(u.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(u.nx*h.ny-u.ny*h.nx),f=1,m=!1;u.nx*h.nx-u.ny*-h.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let p=d/2,g,y=Math.abs(Math.cos(p)*c/Math.sin(p));y>Math.min(u.len/2,h.len/2)?(y=Math.min(u.len/2,h.len/2),g=Math.abs(y*Math.sin(p)/Math.cos(p))):g=c;let x=a.x+h.nx*y+-h.ny*g*f,w=a.y+h.ny*y+h.nx*g*f,_=Math.atan2(u.ny,u.nx)+Math.PI/2*f,S=Math.atan2(h.ny,h.nx)-Math.PI/2*f;o===0&&i.moveTo(x+Math.cos(_)*g,w+Math.sin(_)*g),i.arc(x,w,g,_,S,m),n=a}}function Gb(i,e,t,r){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,l)=>({x:a.x+(c.x-a.x)*l,y:a.y+(c.y-a.y)*l}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],l=c.radius??t;if(l<=0){a===0?i.moveTo(c.x,c.y):i.lineTo(c.x,c.y);continue}let u=e[a],h=e[(a+2)%o],d=s(u,c),f;if(d<1e-4)f=c;else{let g=Math.min(d/2,l);f=n(c,u,g/d)}let m=s(h,c),p;if(m<1e-4)p=c;else{let g=Math.min(m/2,l);p=n(c,h,g/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(c.x,c.y,p.x,p.y,r)}}var Nb=b(()=>{"use strict"});var NT,bc,Lb=b(()=>{kb();vb();Eb();$e();Ab();ft();jh();Bb();qh();Db();Ub();Nb();NT=new Z,bc=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new le,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==e||n!==t)&&r.push(e,t),this}arc(e,t,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return yc(a,e,t,r,s,n,o),this}arcTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return Fb(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return Ob(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,r,s,n),this}bezierCurveTo(e,t,r,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return xc(this._currentPoly.points,c.lastX,c.lastY,e,t,r,s,n,o,a),this}quadraticCurveTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly;return Mb(this._currentPoly.points,o.lastX,o.lastY,e,t,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let r=this.shapePrimitives,s=r.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let c=a.shape,l=n?.shape;l&&l.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,r,s,n){return this.drawShape(new Z(e,t,r,s),n),this}circle(e,t,r,s){return this.drawShape(new dc(e,t,r),s),this}poly(e,t,r){let s=new Zi(e);return s.closePath=t,this.drawShape(s,r),this}regularPoly(e,t,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,l=[];for(let u=0;u<s;u++){let h=a-u*c;l.push(e+r*Math.cos(h),t+r*Math.sin(h))}return this.poly(l,!0,o),this}roundPoly(e,t,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,r,s,o);let c=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let l=-1*Math.PI/2+o,u=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*u+l,m=e+r*Math.cos(f),p=t+r*Math.sin(f),g=f+Math.PI+h,y=f-Math.PI-h,x=m+n*Math.cos(g),w=p+n*Math.sin(g),_=m+n*Math.cos(y),S=p+n*Math.sin(y);d===0?this.moveTo(x,w):this.lineTo(x,w),this.quadraticCurveTo(m,p,_,S,a)}return this.closePath()}roundShape(e,t,r=!1,s){return e.length<3?this:(r?Gb(this,e,t,s):zb(this,e,t),this.closePath())}filletRect(e,t,r,s,n){if(n===0)return this.rect(e,t,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+r,l=t+s,u=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+u,t+u,e+h,t,h).lineTo(c-h,t).arcTo(c-u,t+u,c,t+h,h).lineTo(c,l-h).arcTo(c-u,l-u,e+r-h,l,h).lineTo(e+h,l).arcTo(e+u,l-u,e,l-h,h).closePath()}chamferRect(e,t,r,s,n,o){if(n<=0)return this.rect(e,t,r,s);let a=Math.min(n,Math.min(r,s)/2),c=e+r,l=t+s,u=[e+a,t,c-a,t,c,t+a,c,l-a,c-a,l,e+a,l,e,l-a,e,t+a];for(let h=u.length-1;h>=2;h-=2)u[h]===u[h-2]&&u[h-1]===u[h-3]&&u.splice(h-1,2);return this.poly(u,!0,o)}ellipse(e,t,r,s,n){return this.drawShape(new fc(e,t,r,s),n),this}roundRect(e,t,r,s,n,o){return this.drawShape(new pc(e,t,r,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new Zi,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Zi,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let r=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let r=e.instructions[t];this[r.action](...r.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let r=0;r<t.length;r++){let s=t[r],n=s.shape.getBounds(NT);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function _n(i,e){return i?i.prepend(e):e.clone()}var yr,Kh=b(()=>{St();Ue();ze();Tb();Lb();yr=class i{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Sb(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new bc(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(Y.shared),c=0,l=0;if(!o||o.action!=="bezierCurveTo")c=a.x,l=a.y;else{c=o.data[2],l=o.data[3];let u=a.x,h=a.y;c=u+(u-c),l=h+(h-l)}return this.instructions.push({action:"bezierCurveTo",data:[c,l,e,t,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(Y.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,l=n.y;o=c+(c-o),a=l+(l-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,r]}),this._dirty=!0,this}rect(e,t,r,s,n){return this.instructions.push({action:"rect",data:[e,t,r,s,n]}),this._dirty=!0,this}circle(e,t,r,s){return this.instructions.push({action:"circle",data:[e,t,r,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,r,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,l=r*2,u=Math.PI*2/l,h=[];for(let d=0;d<l;d++){let f=d%2?n:s,m=d*u+c;h.push(e+f*Math.cos(m),t+f*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new i;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,r=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,l=0,u=0,h=0,d=0,f=0,m=0,p=0;for(let g=0;g<this.instructions.length;g++){let y=this.instructions[g],x=y.data;switch(y.action){case"moveTo":case"lineTo":c=x[0],l=x[1],x[0]=t*c+s*l+o,x[1]=r*c+n*l+a;break;case"bezierCurveTo":u=x[0],h=x[1],d=x[2],f=x[3],c=x[4],l=x[5],x[0]=t*u+s*h+o,x[1]=r*u+n*h+a,x[2]=t*d+s*f+o,x[3]=r*d+n*f+a,x[4]=t*c+s*l+o,x[5]=r*c+n*l+a;break;case"quadraticCurveTo":u=x[0],h=x[1],c=x[2],l=x[3],x[0]=t*u+s*h+o,x[1]=r*u+n*h+a,x[2]=t*c+s*l+o,x[3]=r*c+n*l+a;break;case"arcToSvg":c=x[5],l=x[6],m=x[0],p=x[1],x[0]=t*m+s*p,x[1]=r*m+n*p,x[5]=t*c+s*l+o,x[6]=r*c+n*l+a;break;case"circle":x[4]=_n(x[3],e);break;case"rect":x[4]=_n(x[4],e);break;case"ellipse":x[8]=_n(x[8],e);break;case"roundRect":x[5]=_n(x[5],e);break;case"addPath":x[0].transform(e);break;case"poly":x[2]=_n(x[2],e);break;default:q("unknown transform action",y.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,r=this.instructions[t];if(!r)return e.x=0,e.y=0,e;for(;r.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;r=this.instructions[t]}switch(r.action){case"moveTo":case"lineTo":e.x=r.data[0],e.y=r.data[1];break;case"quadraticCurveTo":e.x=r.data[2],e.y=r.data[3];break;case"bezierCurveTo":e.x=r.data[4],e.y=r.data[5];break;case"arc":case"arcToSvg":e.x=r.data[5],e.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(e);break}return e}}});function ne(i,e,t){let r=i.getAttribute(e);return r?Number(r):t}var Zh=b(()=>{"use strict"});function Vb(i,e){let t=i.querySelectorAll("defs");for(let r=0;r<t.length;r++){let s=t[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=LT(o);break;case"radialgradient":e.defs[o.id]=VT(o);break;default:break}}}}function LT(i){let e=ne(i,"x1",0),t=ne(i,"y1",0),r=ne(i,"x2",1),s=ne(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new qe(e,t,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let c=i.children[a],l=ne(c,"offset",0),u=X.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(l,u)}return o}function VT(i){return q("[SVG Parser] Radial gradients are not yet supported"),new qe(0,0,1,0)}var Wb=b(()=>{je();ze();qi();Zh()});function Qh(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var Hb=b(()=>{"use strict"});function Jh(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in jb){let a=i.getAttribute(o);a&&$b(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[l,u]=c.split(":");jb[l]&&$b(e,n,l,u.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function $b(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=Qh(r);e.strokeStyle.fill=i.defs[s]}else e.strokeStyle.color=X.shared.setValue(r).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=Qh(r);e.fillStyle.fill=i.defs[s]}else e.fillStyle.color=X.shared.setValue(r).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(r);break;case"stroke-opacity":e.strokeStyle.alpha=Number(r);break;case"opacity":e.fillStyle.alpha=Number(r),e.strokeStyle.alpha=Number(r);break}}var jb,qb=b(()=>{je();Hb();jb={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function Xb(i,e){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let t={context:e,defs:{},path:new yr};Vb(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=Jh(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&Yb(a,t,s,n)}return e}function Yb(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=Jh(i,e);n&&t?t={...t,...n}:n&&(t=n),o&&r?r={...r,...o}:o&&(r=o);let a=!t&&!r;a&&(t={color:0});let c,l,u,h,d,f,m,p,g,y,x,w,_,S,T,v,M;switch(i.nodeName.toLowerCase()){case"path":S=i.getAttribute("d"),i.getAttribute("fill-rule")==="evenodd"&&q("SVG Evenodd fill rule not supported, your svg may render incorrectly"),T=new yr(S,!0),e.context.path(T),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"circle":m=ne(i,"cx",0),p=ne(i,"cy",0),g=ne(i,"r",0),e.context.ellipse(m,p,g,g),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"rect":c=ne(i,"x",0),l=ne(i,"y",0),v=ne(i,"width",0),M=ne(i,"height",0),y=ne(i,"rx",0),x=ne(i,"ry",0),y||x?e.context.roundRect(c,l,v,M,y||x):e.context.rect(c,l,v,M),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"ellipse":m=ne(i,"cx",0),p=ne(i,"cy",0),y=ne(i,"rx",0),x=ne(i,"ry",0),e.context.beginPath(),e.context.ellipse(m,p,y,x),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"line":u=ne(i,"x1",0),h=ne(i,"y1",0),d=ne(i,"x2",0),f=ne(i,"y2",0),e.context.beginPath(),e.context.moveTo(u,h),e.context.lineTo(d,f),r&&e.context.stroke(r);break;case"polygon":_=i.getAttribute("points"),w=_.match(/\d+/g).map(P=>parseInt(P,10)),e.context.poly(w,!0),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"polyline":_=i.getAttribute("points"),w=_.match(/\d+/g).map(P=>parseInt(P,10)),e.context.poly(w,!1),r&&e.context.stroke(r);break;case"g":case"svg":break;default:{q(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(t=null);for(let P=0;P<s.length;P++)Yb(s[P],e,t,r)}var Kb=b(()=>{ze();Kh();Wb();Zh();qb()});function WT(i){return X.isColorLike(i)}function Zb(i){return i instanceof Zt}function Qb(i){return i instanceof qe}function HT(i){return i instanceof O}function jT(i,e,t){let r=X.shared.setValue(e??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?t.alpha:r.alpha,i.texture=O.WHITE,{...t,...i}}function $T(i,e,t){return i.texture=e,{...t,...i}}function Jb(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,{...t,...i}}function e0(i,e,t){return e.buildGradient(),i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function qT(i,e){let t={...e,...i},r=X.shared.setValue(t.color);return t.alpha*=r.alpha,t.color=r.toNumber(),t}function Qt(i,e){if(i==null)return null;let t={},r=i;return WT(i)?jT(t,i,e):HT(i)?$T(t,i,e):Zb(i)?Jb(t,i,e):Qb(i)?e0(t,i,e):r.fill&&Zb(r.fill)?Jb(r,r.fill,e):r.fill&&Qb(r.fill)?e0(r,r.fill,e):qT(r,e)}function Ji(i,e){let{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,l=Qt(i,c);return l?{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}:null}var ed=b(()=>{je();Te();qi();hc()});var XT,t0,td,Qe,rd=b(()=>{He();je();re();St();Te();Ue();pe();ft();Kh();Kb();ed();XT=new Y,t0=new F,td=class Mt extends ie{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new yr,this._transform=new F,this._fillStyle={...Mt.defaultFillStyle},this._strokeStyle={...Mt.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new le,this._boundsDirty=!0}clone(){let e=new Mt;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Qt(e,Mt.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Ji(e,Mt.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Qt(e,Mt.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Qt(e,Mt.defaultStrokeStyle),this}texture(e,t,r,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:r||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?X.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new yr,this}fill(e,t){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(e!=null&&(t!==void 0&&typeof e=="number"&&(N($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Qt(e,Mt.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(Y.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,r=this.instructions[this.instructions.length-1];return this._tick===0&&r&&r.action==="fill"?t=r.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Ji(e,Mt.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],r=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(r);else{t.data.hole=r;break}}return this._initNextPathLocation(),this}arc(e,t,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,r,s,n,o),this}arcTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,r,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*r+c.c*s+c.tx,c.b*r+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,r,s){return this._tick++,this._activePath.ellipse(e,t,r,s,this._transform.clone()),this}circle(e,t,r){return this._tick++,this._activePath.circle(e,t,r,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*e+r.c*t+r.tx,r.b*e+r.d*t+r.ty),this}moveTo(e,t){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*e+r.c*t+r.tx,o=r.b*e+r.d*t+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(e,t,r,s){return this._tick++,this._activePath.rect(e,t,r,s,this._transform.clone()),this}roundRect(e,t,r,s,n){return this._tick++,this._activePath.roundRect(e,t,r,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,r,s,n,o),this}roundPoly(e,t,r,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,r,s,n,o),this}roundShape(e,t,r,s){return this._tick++,this._activePath.roundShape(e,t,r,s),this}filletRect(e,t,r,s,n){return this._tick++,this._activePath.filletRect(e,t,r,s,n),this}chamferRect(e,t,r,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,r,s,n,o),this}star(e,t,r,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,r,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,Xb(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,r,s,n,o){return e instanceof F?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,r,s,n,o),this)}transform(e,t,r,s,n,o){return e instanceof F?(this._transform.append(e),this):(t0.set(e,t,r,s,n,o),this._transform.append(t0),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let r=this.instructions[t],s=r.action;if(s==="fill"){let n=r.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,r=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,l=a.shapePath.shapePrimitives;for(let u=0;u<l.length;u++){let h=l[u].shape;if(!c||!h)continue;let d=l[u].transform,f=d?d.applyInverse(e,XT):e;if(n.action==="fill")r=h.contains(f.x,f.y);else{let p=c;r=h.strokeContains(f.x,f.y,p.width,p.alignment)}let m=o.hole;if(m){let p=m.shapePath?.shapePrimitives;if(p)for(let g=0;g<p.length;g++)p[g].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(r),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(r)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};td.defaultFillStyle={color:16777215,alpha:1,texture:O.WHITE,matrix:null,fill:null,textureSpace:"local"};td.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:O.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};Qe=td});function i0(i){let e=[],t=0;for(let r=0;r<r0.length;r++){let s=`_${r0[r]}`;e[t++]=i[s]}return t=s0(i._fill,e,t),t=KT(i._stroke,e,t),t=ZT(i.dropShadow,e,t),t=YT(i.filters,e,t),e.join("-")}function YT(i,e,t){if(!i)return t;for(let r of i)e[t++]=r.uid;return t}function s0(i,e,t){return i&&(e[t++]=i.color,e[t++]=i.alpha,e[t++]=i.fill?.styleKey),t}function KT(i,e,t){return i&&(t=s0(i,e,t),e[t++]=i.width,e[t++]=i.alignment,e[t++]=i.cap,e[t++]=i.join,e[t++]=i.miterLimit),t}function ZT(i,e,t){return i&&(e[t++]=i.alpha,e[t++]=i.angle,e[t++]=i.blur,e[t++]=i.distance,e[t++]=X.shared.setValue(i.color).toNumber()),t}var r0,n0=b(()=>{je();r0=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function QT(i){let e=i;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=it.defaultDropShadow;i.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){N($,"strokeThickness is now a part of stroke");let t=e.stroke,r={};if(X.isColorLike(t))r.color=t;else if(t instanceof qe||t instanceof Zt)r.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))r=t;else throw new Error("Invalid stroke value.");i.stroke={...r,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){N($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;i.fontSize==null?i.fontSize=it.defaultTextStyle.fontSize:typeof i.fontSize=="string"?t=parseInt(i.fontSize,10):t=i.fontSize;let r=new qe({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>X.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);r.addColorStop(a,n)}),i.fill={fill:r}}}var id,it,Sn=b(()=>{He();je();pe();qi();hc();rd();ed();n0();id=class es extends ie{constructor(e={}){super(),QT(e);let t={...es.defaultTextStyle,...e};for(let r in t){let s=r;this[s]=t[r]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...es.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...es.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...Qe.defaultFillStyle,...e},()=>{this._fill=Qt({...this._originalFill},Qe.defaultFillStyle)})),this._fill=Qt(e===0?"black":e,Qe.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...Qe.defaultStrokeStyle,...e},()=>{this._stroke=Ji({...this._originalStroke},Qe.defaultStrokeStyle)})),this._stroke=Ji(e,Qe.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=i0(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=es.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new es({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(r,s,n)=>(r[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(X.isColorLike(e)||e instanceof qe||e instanceof Zt)}};id.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};id.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};it=id});function wc(i,e,t,r){let s=JT;s.minX=0,s.minY=0,s.maxX=i.width/r|0,s.maxY=i.height/r|0;let n=Me.getOptimalTexture(s.width,s.height,r,!1);return n.source.uploadMethodId="image",n.source.resource=i,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/r,n.frame.height=t/r,n.source.emit("update",n.source),n.updateUvs(),n}var JT,sd=b(()=>{Mi();ft();JT=new le});var nd,Bt,Tn=b(()=>{vt();Ns();nd=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=xe.get().createCanvas();r.width=e,r.height=t;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=$t(e),t=$t(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:r,height:s}=t,n=(r<<17)+(s<<1);e.context.clearRect(0,0,r,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},Bt=new nd});function ek(i,e){ti||(ti=xe.get().createCanvas(256,128),Jt=ti.getContext("2d",{willReadFrequently:!0}),Jt.globalCompositeOperation="copy",Jt.globalAlpha=1),(ti.width<i||ti.height<e)&&(ti.width=$t(i),ti.height=$t(e))}function o0(i,e,t){for(let r=0,s=4*t*e;r<e;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function a0(i,e,t,r,s){let n=4*e;for(let o=r,a=r*n+4*t;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function c0(...i){let e=i[0];e.canvas||(e={canvas:i[0],resolution:i[1]});let{canvas:t}=e,r=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(ek(s,n),!Jt)throw new TypeError("Failed to get canvas 2D context");Jt.drawImage(t,0,0,s,n,0,0,s*r,n*r);let c=Jt.getImageData(0,0,s,n).data,l=0,u=0,h=s-1,d=n-1;for(;u<n&&o0(c,s,u);)++u;if(u===n)return Z.EMPTY;for(;o0(c,s,d);)--d;for(;a0(c,s,l,u,d);)++l;for(;a0(c,s,h,u,d);)--h;return++h,++d,Jt.globalCompositeOperation="source-over",Jt.strokeRect(l,u,h-l,d-u),Jt.globalCompositeOperation="copy",o??(o=new Z),o.set(l/r,u/r,(h-l)/r,(d-u)/r),o}var ti,Jt,l0=b(()=>{vt();Ns();$e();ti=null,Jt=null});function ri(i){let e=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,t=i.fontFamily;Array.isArray(i.fontFamily)||(t=i.fontFamily.split(","));for(let r=t.length-1;r>=0;r--){let s=t[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!tk.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var tk,_c=b(()=>{"use strict";tk=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var od,Ft,Xe,kn=b(()=>{vt();_c();od={willReadFrequently:!0},Ft=class U{static get experimentalLetterSpacingSupported(){let e=U._experimentalLetterSpacingSupported;if(e===void 0){let t=xe.get().getCanvasRenderingContext2D().prototype;e=U._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,r,s,n,o,a,c,l){this.text=e,this.style=t,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=l}static measureText(e=" ",t,r=U._canvas,s=t.wordWrap){let n=ri(t),o=U.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=U.__context;a.font=n;let l=(s?U._wordWrap(e,t,r):e).split(/(?:\r\n|\r|\n)/),u=new Array(l.length),h=0;for(let y=0;y<l.length;y++){let x=U._measureText(l[y],t.letterSpacing,a);u[y]=x,h=Math.max(h,x)}let d=t._stroke?.width||0,f=h+d;t.dropShadow&&(f+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,p=Math.max(m,o.fontSize+d)+(l.length-1)*(m+t.leading);return t.dropShadow&&(p+=t.dropShadow.distance),new U(e,t,f,p,l,u,m+t.leading,h,o)}static _measureText(e,t,r){let s=!1;U.experimentalLetterSpacingSupported&&(U.experimentalLetterSpacing?(r.letterSpacing=`${t}px`,r.textLetterSpacing=`${t}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,l=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,l-=t;else{let u=(U.graphemeSegmenter(e).length-1)*t;o+=u,l+=u}return Math.max(o,l)}static _wordWrap(e,t,r=U._canvas){let s=r.getContext("2d",od),n=0,o="",a="",c=Object.create(null),{letterSpacing:l,whiteSpace:u}=t,h=U._collapseSpaces(u),d=U._collapseNewlines(u),f=!h,m=t.wordWrapWidth+l,p=U._tokenize(e);for(let g=0;g<p.length;g++){let y=p[g];if(U._isNewline(y)){if(!d){a+=U._addLine(o),f=!h,o="",n=0;continue}y=" "}if(h){let w=U.isBreakingSpace(y),_=U.isBreakingSpace(o[o.length-1]);if(w&&_)continue}let x=U._getFromCache(y,l,c,s);if(x>m)if(o!==""&&(a+=U._addLine(o),o="",n=0),U.canBreakWords(y,t.breakWords)){let w=U.wordWrapSplit(y);for(let _=0;_<w.length;_++){let S=w[_],T=S,v=1;for(;w[_+v];){let P=w[_+v];if(!U.canBreakChars(T,P,y,_,t.breakWords))S+=P;else break;T=P,v++}_+=v-1;let M=U._getFromCache(S,l,c,s);M+n>m&&(a+=U._addLine(o),f=!1,o="",n=0),o+=S,n+=M}}else{o.length>0&&(a+=U._addLine(o),o="",n=0);let w=g===p.length-1;a+=U._addLine(y,!w),f=!1,o="",n=0}else x+n>m&&(f=!1,a+=U._addLine(o),o="",n=0),(o.length>0||!U.isBreakingSpace(y)||f)&&(o+=y,n+=x)}return a+=U._addLine(o,!1),a}static _addLine(e,t=!0){return e=U._trimRight(e),e=t?`${e}
|
|
368
|
-
`:e,e}static _getFromCache(e,t,r,s){let n=r[e];return typeof n!="number"&&(n=U._measureText(e,t,s)+t,r[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let r=e[t];if(!U.isBreakingSpace(r))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:U._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:U._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],r="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(U.isBreakingSpace(n,o)||U._isNewline(n)){r!==""&&(t.push(r),r=""),t.push(n);continue}r+=n}return r!==""&&t.push(r),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,r,s,n){return!0}static wordWrapSplit(e){return U.graphemeSegmenter(e)}static measureFont(e){if(U._fonts[e])return U._fonts[e];let t=U._context;t.font=e;let r=t.measureText(U.METRICS_STRING+U.BASELINE_SYMBOL),s={ascent:r.actualBoundingBoxAscent,descent:r.actualBoundingBoxDescent,fontSize:r.actualBoundingBoxAscent+r.actualBoundingBoxDescent};return U._fonts[e]=s,s}static clearMetrics(e=""){e?delete U._fonts[e]:U._fonts={}}static get _canvas(){if(!U.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",od)?.measureText)return U.__canvas=t,t;e=xe.get().createCanvas()}catch{e=xe.get().createCanvas()}e.width=e.height=10,U.__canvas=e}return U.__canvas}static get _context(){return U.__context||(U.__context=U._canvas.getContext("2d",od)),U.__context}};Ft.METRICS_STRING="|\xC9q\xC5";Ft.BASELINE_SYMBOL="M";Ft.BASELINE_MULTIPLIER=1.4;Ft.HEIGHT_MULTIPLIER=2;Ft.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return e=>{let t=i.segment(e),r=[],s=0;for(let n of t)r[s++]=n.segment;return r}}return i=>[...i]})();Ft.experimentalLetterSpacing=!1;Ft._fonts={};Ft._newlines=[10,13];Ft._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=Ft});function ts(i,e,t,r=0){if(i.texture===O.WHITE&&!i.fill)return X.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Zt){let s=i.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(F.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(i.fill instanceof qe){let s=i.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+r,c=t.height+r);let l,u=!1;if(n){let{start:h,end:d}=s;l=e.createLinearGradient(h.x*a,h.y*c,d.x*a,d.y*c),u=Math.abs(d.x-h.x)<Math.abs((d.y-h.y)*.1)}else{let{center:h,innerRadius:d,outerCenter:f,outerRadius:m}=s;l=e.createRadialGradient(h.x*a,h.y*c,d*a,f.x*a,f.y*c,m*a)}if(u&&o&&t){let h=t.lineHeight/c;for(let d=0;d<t.lines.length;d++){let f=(d*t.lineHeight+r/2)/c;s.colorStops.forEach(m=>{let p=f+m.offset*h;l.addColorStop(Math.floor(p*u0)/u0,X.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{l.addColorStop(h.offset,X.shared.setValue(h.color).toHex())});return l}}else{let s=e.createPattern(i.texture.source.resource,"repeat"),n=i.matrix.copyTo(F.shared);return n.scale(i.texture.frame.width,i.texture.frame.height),s.setTransform(n),s}return q("FillStyle not recognised",i),"red"}var u0,ad=b(()=>{je();re();Te();ze();qi();hc();u0=1e5});var h0,cd,Sc,d0=b(()=>{je();$e();Tn();l0();kn();_c();ad();h0=new Z,cd=class{getCanvasAndContext(e){let{text:t,style:r,resolution:s=1}=e,n=r._getFinalPadding(),o=Xe.measureText(t||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),l=Bt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,r,n,s,l);let u=r.trim?c0({canvas:l.canvas,width:a,height:c,resolution:1,output:h0}):h0.set(0,0,a,c);return{canvasAndContext:l,frame:u}}returnCanvasAndContext(e){Bt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,r,s,n){let{canvas:o,context:a}=n,c=ri(t),l=Xe.measureText(e||" ",t),u=l.lines,h=l.lineHeight,d=l.lineWidths,f=l.maxLineWidth,m=l.fontProperties,p=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let w=t._stroke;a.lineWidth=w.width,a.miterLimit=w.miterLimit,a.lineJoin=w.join,a.lineCap=w.cap}a.font=c;let g,y,x=t.dropShadow?2:1;for(let w=0;w<x;++w){let _=t.dropShadow&&w===0,S=_?Math.ceil(Math.max(1,p)+r*2):0,T=S*s;if(_){a.fillStyle="black",a.strokeStyle="black";let P=t.dropShadow,C=P.color,E=P.alpha;a.shadowColor=X.shared.setValue(C).setAlpha(E).toRgbaString();let D=P.blur*s,j=P.distance*s;a.shadowBlur=D,a.shadowOffsetX=Math.cos(P.angle)*j,a.shadowOffsetY=Math.sin(P.angle)*j+T}else{if(a.fillStyle=t._fill?ts(t._fill,a,l):null,t._stroke?.width){let P=t._stroke.width*t._stroke.alignment;a.strokeStyle=ts(t._stroke,a,l,P)}a.shadowColor="black"}let v=(h-m.fontSize)/2;h-m.fontSize<0&&(v=0);let M=t._stroke?.width??0;for(let P=0;P<u.length;P++)g=M/2,y=M/2+P*h+m.ascent+v,t.align==="right"?g+=f-d[P]:t.align==="center"&&(g+=(f-d[P])/2),t._stroke?.width&&this._drawLetterSpacing(u[P],t,n,g+r,y+r-S,!0),t._fill!==void 0&&this._drawLetterSpacing(u[P],t,n,g+r,y+r-S)}}_drawLetterSpacing(e,t,r,s,n,o=!1){let{context:a}=r,c=t.letterSpacing,l=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,l=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||l){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let u=s,h=Xe.graphemeSegmenter(e),d=a.measureText(e).width,f=0;for(let m=0;m<h.length;++m){let p=h[m];o?a.strokeText(p,u,n):a.fillText(p,u,n);let g="";for(let y=m+1;y<h.length;++y)g+=h[y];f=a.measureText(g).width,u+=d-f+c,d=f}}},Sc=new cd});var vn,f0=b(()=>{G();Mi();Ii();pe();Sn();sd();d0();vn=class{constructor(e){this._renderer=e}getTexture(e,t,r,s){typeof e=="string"&&(N("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof it||(e.style=new it(e.style)),e.textureStyle instanceof tt||(e.textureStyle=new tt(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:l,canvasAndContext:u}=Sc.getCanvasAndContext({text:n,style:o,resolution:c}),h=wc(u.canvas,l.width,l.height,c);if(a&&(h.source.style=a),o.trim&&(l.pad(o.padding),h.frame.copyFrom(l),h.updateUvs()),o.filters){let d=this._applyFilters(h,o.filters);return this.returnTexture(h),Sc.returnCanvasAndContext(u),d}return this._renderer.texture.initSource(h._source),Sc.returnCanvasAndContext(u),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Me.returnTexture(e,!0)}renderTextToCanvas(){N("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(r,!1),s}destroy(){this._renderer=null}};vn.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"canvasText"}});var ld=b(()=>{G();xb();f0();L.add(vn);L.add(bn)});var Tc,m0=b(()=>{pe();Bu();rd();Tc=class i extends Di{constructor(e){e instanceof Qe&&(e={context:e});let{context:t,roundPixels:r,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new Qe,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(e,t,r){N($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(e,t){N($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return e!==void 0&&(r.color=e),t!==void 0&&(r.alpha=t),this.context.fillStyle=r,this}endFill(){N($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==Qe.defaultStrokeStyle.width||e.color!==Qe.defaultStrokeStyle.color||e.alpha!==Qe.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return N($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return N($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return N($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return N($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return N($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return N($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var p0,g0,x0=b(()=>{"use strict";p0={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
367
|
+
}`});var yc,Pb=b(()=>{je();re();Ya();Qa();fn();Te();Ri();Sb();vb();kb();yc=class extends Mt{constructor(){let e=Wi.from({vertex:Tb,fragment:_b}),t=mr.from({fragment:{source:Xh,entryPoint:"mainFragment"},vertex:{source:Xh,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,Yh=b(()=>{re();gr();ln();fc();yn();wb();Pb();Ji=class{constructor(e,t){this.state=ei.for2d(),this.localUniforms=new Ne({uTranslationMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new 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,Cb=b(()=>{G();pb();Yh();_n=class extends Ji{constructor(e){super(e,new gc)}};_n.extension={type:[A.WebGLPipes],name:"particle"}});var bc,Eb=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,Ab=b(()=>{G();Eb();Yh();Sn=class extends Ji{constructor(e){super(e,new bc)}};Sn.extension={type:[A.WebGPUPipes],name:"particle"}});var Kh=b(()=>{G();Cb();Ab();L.add(_n);L.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 Zh=b(()=>{Ku()});var es,Qh=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,Ib=b(()=>{Qh();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 vn,Mb=b(()=>{G();Zh();Ib();vn=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}};vn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"text"}});var Bb,Qt,_c=b(()=>{re();Ue();Bb={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=Bb[t].addressModeU,e.source.style.addressModeV=Bb[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 Rb=Yd((l6,Fb)=>{Fb.exports=VT;var Jh={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},LT=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function VT(i){var e=[];return i.replace(LT,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==Jh[n])return s.unshift(r),e.push(s);if(s.length<Jh[n])throw new Error("malformed path data");e.push([r].concat(s.splice(0,Jh[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 Ob(i,e){let t=(0,Db.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 Db,Ub=b(()=>{Db=Kd(Rb(),1);ze()});var Sc,zb=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,Gb=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 Lb=b(()=>{"use strict"});var jT,$T,ts,Vb=b(()=>{Lb();$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 vc,kc,Wb=b(()=>{$e();vc=(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},kc=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&&vc(e,t,d,f,l,h,u)||e>g-l&&t<f&&vc(e,t,g-l,f,l,h,u)||e>g-l&&t>y-l&&vc(e,t,g-l,y-l,l,h,u)||e<d&&t>y-l&&vc(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){td(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function td(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,k=(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<ed){c.push(T,k);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,k);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<ed){c.push(T,k);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<ed){c.push(T,k);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=k-(e+a)/2,M*M+P*P<=l){c.push(T,k);return}}td(i,e,d,f,x,w,T,k,c,l,u+1),td(T,k,_,S,g,y,o,a,c,l,u+1)}var qT,Pc,XT,ed,rs,ti,rd=b(()=>{dc();qT=8,Pc=11920929e-14,XT=1,ed=.01,rs=0,ti=0});function jb(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,ev(e,t,r,s,n,o,i,u),i}function ev(i,e,t,r,s,n,o,a){id(o,i,e,t,r,s,n,a,0),o.push(s,n)}function id(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(Hb<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<Hb){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}id(i,e,t,u,h,m,p,a,c+1),id(i,m,p,d,f,n,o,a,c+1)}var KT,ZT,QT,JT,Hb,$b=b(()=>{dc();KT=8,ZT=11920929e-14,QT=1,JT=.01,Hb=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 sd=b(()=>{"use strict"});function qb(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),k=c*(y+x),M=h*(g+w),P=u*(g+w),C=Math.atan2(k-S,T-_),E=Math.atan2(P-S,M-_);Ec(i,_+e,S+t,n,C,E,l*u>h*c)}var Xb=b(()=>{sd()});function tv(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 Kb(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let u=Math.sin(a*kn/360),h=Math.cos(a*kn/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)),rv(e,t,r,s,n,o,c,l,u,h,d,f,nd);let{ang1:p,ang2:g}=nd,{centerX:y,centerY:x}=nd,w=Math.abs(g)/(kn/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],k={x:0,y:0};for(let M=0;M<_;M++){let P=tv(p,g),{x:C,y:E}=od(P[0],n,o,h,u,y,x,k),{x:R,y:j}=od(P[1],n,o,h,u,y,x,k),{x:he,y:ls}=od(P[2],n,o,h,u,y,x,k);Cc(i,S,T,C,E,R,j,he,ls),S=he,T=ls,p+=g}}var kn,nd,od,Yb,rv,Zb=b(()=>{rd();kn=Math.PI*2,nd={centerX:0,centerY:0,ang1:0,ang2:0},od=({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};Yb=(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)},rv=(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,k=(h-w)/n,M=(-u-x)/s,P=(-h-w)/n,C=Yb(1,0,T,k),E=Yb(T,k,M,P);a===0&&E>0&&(E-=kn),a===1&&E<0&&(E+=kn),d.centerX=_,d.centerY=S,d.ang1=C,d.ang2=E}});function Qb(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 Jb(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 e0=b(()=>{"use strict"});var iv,Ac,t0=b(()=>{zb();Gb();Vb();$e();Wb();mt();rd();$b();sd();Xb();Zb();e0();iv=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 qb(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return Kb(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 jb(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?Jb(this,e,t,s):Qb(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 kc(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(iv);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,ad=b(()=>{Tt();Ue();ze();Ub();t0();br=class i{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Ob(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 cd=b(()=>{"use strict"});function r0(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]=sv(o);break;case"radialgradient":e.defs[o.id]=nv(o);break;default:break}}}}function sv(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 nv(i){return q("[SVG Parser] Radial gradients are not yet supported"),new qe(0,0,1,0)}var i0=b(()=>{je();ze();Zi();cd()});function ld(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var s0=b(()=>{"use strict"});function ud(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in n0){let a=i.getAttribute(o);a&&o0(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(":");n0[l]&&o0(e,n,l,u.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function o0(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=ld(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=ld(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 n0,a0=b(()=>{je();s0();n0={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 c0(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};r0(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=ud(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&l0(a,t,s,n)}return e}function l0(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=ud(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,k,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),k=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,k,M,y||x):e.context.rect(c,l,k,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++)l0(s[P],e,t,r)}var u0=b(()=>{ze();ad();i0();cd();a0()});function ov(i){return X.isColorLike(i)}function h0(i){return i instanceof Qt}function d0(i){return i instanceof qe}function av(i){return i instanceof O}function cv(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 lv(i,e,t){return i.texture=e,{...t,...i}}function f0(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,{...t,...i}}function m0(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 uv(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 ov(i)?cv(t,i,e):av(i)?lv(t,i,e):h0(i)?f0(t,i,e):d0(i)?m0(t,i,e):r.fill&&h0(r.fill)?f0(r,r.fill,e):r.fill&&d0(r.fill)?m0(r,r.fill,e):uv(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 hd=b(()=>{je();Te();Zi();_c()});var hv,p0,dd,Je,fd=b(()=>{He();je();re();Tt();Te();Ue();pe();mt();ad();u0();hd();hv=new Y,p0=new F,dd=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"&&(N($,"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++,c0(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):(p0.set(e,t,r,s,n,o),this._transform.append(p0),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,hv):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}};dd.defaultFillStyle={color:16777215,alpha:1,texture:O.WHITE,matrix:null,fill:null,textureSpace:"local"};dd.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=dd});function x0(i){let e=[],t=0;for(let r=0;r<g0.length;r++){let s=`_${g0[r]}`;e[t++]=i[s]}return t=y0(i._fill,e,t),t=fv(i._stroke,e,t),t=mv(i.dropShadow,e,t),t=dv(i.filters,e,t),e.join("-")}function dv(i,e,t){if(!i)return t;for(let r of i)e[t++]=r.uid;return t}function y0(i,e,t){return i&&(e[t++]=i.color,e[t++]=i.alpha,e[t++]=i.fill?.styleKey),t}function fv(i,e,t){return i&&(t=y0(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 mv(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 g0,b0=b(()=>{je();g0=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function pv(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){N($,"strokeThickness is now a part of stroke");let t=e.stroke,r={};if(X.isColorLike(t))r.color=t;else if(t instanceof qe||t instanceof 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)){N($,"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 md,st,Cn=b(()=>{He();je();pe();Zi();_c();fd();hd();b0();md=class ss extends ie{constructor(e={}){super(),pv(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=x0(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)}};md.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};md.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=md});function Ic(i,e,t,r){let s=gv;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 gv,pd=b(()=>{Di();mt();gv=new le});var gd,Ft,En=b(()=>{Pt();js();gd=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 gd});function xv(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 w0(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 _0(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 S0(...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(xv(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&&w0(c,s,u);)++u;if(u===n)return Z.EMPTY;for(;w0(c,s,d);)--d;for(;_0(c,s,l,u,d);)++l;for(;_0(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,T0=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)&&!yv.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var yv,Mc=b(()=>{"use strict";yv=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var xd,Rt,Xe,An=b(()=>{Pt();Mc();xd={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",xd),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,k=1;for(;w[_+k];){let P=w[_+k];if(!U.canBreakChars(T,P,y,_,t.breakWords))S+=P;else break;T=P,k++}_+=k-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",xd)?.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",xd)),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,yd=b(()=>{je();re();Te();ze();Zi();_c();v0=1e5});var k0,bd,Bc,P0=b(()=>{je();$e();En();T0();An();Mc();yd();k0=new Z,bd=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?S0({canvas:l.canvas,width:a,height:c,resolution:1,output:k0}):k0.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 k=(h-m.fontSize)/2;h-m.fontSize<0&&(k=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+k,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 bd});var In,C0=b(()=>{G();Di();Ri();pe();Cn();pd();P0();In=class{constructor(e){this._renderer=e}getTexture(e,t,r,s){typeof e=="string"&&(N("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof 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(){N("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(r,!1),s}destroy(){this._renderer=null}};In.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"canvasText"}});var wd=b(()=>{G();Mb();C0();L.add(In);L.add(vn)});var Fc,E0=b(()=>{pe();Wu();fd();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){N($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(e,t){N($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return e!==void 0&&(r.color=e),t!==void 0&&(r.alpha=t),this.context.fillStyle=r,this}endFill(){N($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==Je.defaultStrokeStyle.width||e.color!==Je.defaultStrokeStyle.color||e.alpha!==Je.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return N($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return N($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return N($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return N($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return N($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return N($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var A0,I0,M0=b(()=>{"use strict";A0={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
369
369
|
struct LocalUniforms {
|
|
370
370
|
uColor:vec4<f32>,
|
|
371
371
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -392,7 +392,7 @@ fn mainFragment(
|
|
|
392
392
|
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
393
393
|
`,main:`
|
|
394
394
|
outColor = vec4<f32>(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));
|
|
395
|
-
`}},
|
|
395
|
+
`}},I0={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
396
396
|
uniform mat3 uTransformMatrix;
|
|
397
397
|
uniform vec4 uColor;
|
|
398
398
|
uniform float uRound;
|
|
@@ -408,7 +408,7 @@ fn mainFragment(
|
|
|
408
408
|
uniform float uDistance;
|
|
409
409
|
`,main:`
|
|
410
410
|
outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
|
|
411
|
-
`}}});var
|
|
411
|
+
`}}});var B0,F0,R0=b(()=>{"use strict";B0={name:"msdf-bit",fragment:{header:`
|
|
412
412
|
fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
|
|
413
413
|
|
|
414
414
|
// MSDF
|
|
@@ -435,7 +435,7 @@ fn mainFragment(
|
|
|
435
435
|
return coverage;
|
|
436
436
|
|
|
437
437
|
}
|
|
438
|
-
`}},
|
|
438
|
+
`}},F0={name:"msdf-bit",fragment:{header:`
|
|
439
439
|
float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
|
|
440
440
|
|
|
441
441
|
// MSDF
|
|
@@ -462,16 +462,16 @@ fn mainFragment(
|
|
|
462
462
|
|
|
463
463
|
return coverage;
|
|
464
464
|
}
|
|
465
|
-
`}}});var
|
|
466
|
-
`&&y!=="\r"&&y!==" "&&y!==" "&&(f=!0,u=Math.ceil(Math.max(
|
|
465
|
+
`}}});var _d,Sd,Rc,D0=b(()=>{re();Ja();bh();Sh();sc();vh();fn();gr();M0();R0();Rc=class extends Mt{constructor(e){let t=new Ne({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});_d??(_d=ji({name:"sdf-shader",bits:[ec,rc(e),A0,B0,qi]})),Sd??(Sd=$i({name:"sdf-shader",bits:[tc,ic(e),I0,F0,Xi]})),super({glProgram:Sd,gpuProgram:_d,resources:{localUniforms:t,batchSamplers:nc(e)}})}}});var Dc,O0=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 N($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return N($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return N($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return N($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return N($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var U0,Td,G0=b(()=>{je();$e();En();Na();Te();Ri();pe();An();Mc();yd();Cn();O0();U0=class z0 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={...z0.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,k=S+d*2;if(f=!1,y!==`
|
|
466
|
+
`&&y!=="\r"&&y!==" "&&y!==" "&&(f=!0,u=Math.ceil(Math.max(k,u))),c+T>m&&(l+=u,u=k,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,k/C*o.height);this.chars[y].texture=new O({source:o,frame:E}),c+=Math.ceil(T)}}o.update(),this._currentX=c,this._currentY=l,this._currentMaxCharHeight=u,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return N($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let r=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=r[n];c||(c=r[n]=t.measureText(n).width);let l=r[a];l||(l=r[a]=t.measureText(a).width);let u=t.measureText(n+a).width,h=u-(c+l);h&&(this.chars[n].kerning[a]=h),u=t.measureText(n+a).width,h=u-(c+l),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=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}};U0.defaultOptions={textureSize:512,style:new st,mipmap:!0};Td=U0});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
467
|
`||g){if(!a&&e.wordWrap&&n.width+c.width-d>f?(u(),l(c),g||n.charPositions.push(0)):(c.start=n.width,l(c),g||n.charPositions.push(0)),p==="\r"||p===`
|
|
468
|
-
`)n.width!==0&&u();else if(!g){let S=y.xAdvance+(y.kerning[o]||0)+d;n.width+=S,n.spaceWidth=S,n.spacesIndex.push(n.charPositions.length),n.chars.push(p)}}else{let _=y.kerning[o]||0,S=y.xAdvance+_+d;c.positions[c.index++]=c.width+_,c.chars.push(p),c.width+=S}o=p}return u(),e.align==="center"?rk(s):e.align==="right"?ik(s):e.align==="justify"&&sk(s),s}function rk(i){for(let e=0;e<i.lines.length;e++){let t=i.lines[e],r=i.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=r}}function ik(i){for(let e=0;e<i.lines.length;e++){let t=i.lines[e],r=i.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=r}}function sk(i){let e=i.width;for(let t=0;t<i.lines.length;t++){let r=i.lines[t],s=0,n=r.spacesIndex[s++],o=0,a=r.spacesIndex.length,l=(e-r.width)/a;for(let u=0;u<r.charPositions.length;u++)u===n&&(n=r.spacesIndex[s++],o+=l),r.charPositions[u]+=o}}var fd=b(()=>{"use strict"});function P0(i){if(i==="")return[];typeof i=="string"&&(i=[i]);let e=[];for(let t=0,r=i.length;t<r;t++){let s=i[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var C0=b(()=>{"use strict"});var Cc,md,E0,A0=b(()=>{tn();pe();ze();kn();Sn();v0();fd();C0();Cc=0,md=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let r=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)r+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),r=`${o}-bitmap`,s=!1}if(!ye.has(r)){let o=new dd({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Cc++,Cc>50&&q("BitmapText",`You have dynamically created ${Cc} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Cc--,ye.remove(r)}),ye.set(r,o)}let n=ye.get(r);return n.ensureCharacters?.(e),n}getLayout(e,t,r=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return Pc(n,t,s,r)}measureText(e,t,r=!0){return this.getLayout(e,t,r)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},N($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let r=t?.name;if(!r)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof it?s:new it(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new dd({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=P0(t.chars);return a.ensureCharacters(c.join("")),ye.set(`${r}-bitmap`,a),a.once("destroy",()=>ye.remove(`${r}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,r=ye.get(t);r&&r.destroy()}},E0=new md});function I0(i,e){e.groupTransform=i.groupTransform,e.groupColorAlpha=i.groupColorAlpha,e.groupColor=i.groupColor,e.groupBlendMode=i.groupBlendMode,e.globalDisplayStatus=i.globalDisplayStatus,e.groupTransform=i.groupTransform,e.localDisplayStatus=i.localDisplayStatus,e.groupAlpha=i.groupAlpha,e._roundPixels=i._roundPixels}var pd,Pn,M0=b(()=>{tn();G();m0();kn();_0();A0();fd();pd=class extends Tc{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Pn=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let r=this._getGpuBitmapText(e);I0(e,r),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,r)),this._renderer.renderPipes.graphics.addRenderable(r,t),r.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);I0(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:r}=t,s=E0.getFont(e.text,e._style);r.clear(),s.distanceField.type!=="none"&&(r.customShader||(r.customShader=new kc(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Pc(n,o,s,!0),l=0,u=o.padding,h=c.scale,d=c.width,f=c.height+c.offsetY;o._stroke&&(d+=o._stroke.width/h,f+=o._stroke.width/h),r.translate(-e._anchor._x*d-u,-e._anchor._y*f-u).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let p=0;p<c.lines.length;p++){let g=c.lines[p];for(let y=0;y<g.charPositions.length;y++){let x=n[l++],w=s.chars[x];w?.texture&&r.texture(w.texture,m||"black",Math.round(g.charPositions[y]+w.xOffset),Math.round(a+w.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new pd;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,s=ye.get(`${r}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,l=Math.sqrt(n*n+o*o),u=Math.sqrt(a*a+c*c),h=(Math.abs(l)+Math.abs(u))/2,d=s.baseRenderedFontSize/e._style.fontSize,f=h*s.distanceField.range*(1/d);t.customShader.resources.localUniforms.uniforms.uDistance=f}destroy(){this._renderer=null}};Pn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"bitmapText"}});var gd=b(()=>{G();M0();L.add(Pn)});var Ec,B0=b(()=>{Lh();Ec=class extends Ki{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Cn,F0=b(()=>{G();Te();Nh();B0();Cn=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,yn(r,e)),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let r=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=r,t.texture=await r;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,yn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Ec(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=O.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Cn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"htmlText"}});function D0(){let{userAgent:i}=xe.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var R0=b(()=>{vt()});var O0,U0,rs,xd=b(()=>{"use strict";O0="http://www.w3.org/2000/svg",U0="http://www.w3.org/1999/xhtml",rs=class{constructor(){this.svgRoot=document.createElementNS(O0,"svg"),this.foreignObject=document.createElementNS(O0,"foreignObject"),this.domElement=document.createElementNS(U0,"div"),this.styleElement=document.createElementNS(U0,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:r,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(r),e.appendChild(s)}}});function N0(i){let e=i._stroke,t=i._fill,s=[`div { ${[`color: ${X.shared.setValue(t.color).toHex()}`,`font-size: ${i.fontSize}px`,`font-family: ${i.fontFamily}`,`font-weight: ${i.fontWeight}`,`font-style: ${i.fontStyle}`,`font-variant: ${i.fontVariant}`,`letter-spacing: ${i.letterSpacing}px`,`text-align: ${i.align}`,`padding: ${i.padding}px`,`white-space: ${i.whiteSpace==="pre"&&i.wordWrap?"pre-wrap":i.whiteSpace}`,...i.lineHeight?[`line-height: ${i.lineHeight}px`]:[],...i.wordWrap?[`word-wrap: ${i.breakWords?"break-all":"break-word"}`,`max-width: ${i.wordWrapWidth}px`]:[],...e?[V0(e)]:[],...i.dropShadow?[L0(i.dropShadow)]:[],...i.cssOverrides].join(";")} }`];return nk(i.tagStyles,s),s.join(" ")}function L0(i){let e=X.shared.setValue(i.color).setAlpha(i.alpha).toHexa(),t=Math.round(Math.cos(i.angle)*i.distance),r=Math.round(Math.sin(i.angle)*i.distance),s=`${t}px ${r}px`;return i.blur>0?`text-shadow: ${s} ${i.blur}px ${e}`:`text-shadow: ${s} ${e}`}function V0(i){return[`-webkit-text-stroke-width: ${i.width}px`,`-webkit-text-stroke-color: ${X.shared.setValue(i.color).toHex()}`,`text-stroke-width: ${i.width}px`,`text-stroke-color: ${X.shared.setValue(i.color).toHex()}`,"paint-order: stroke"].join(";")}function nk(i,e){for(let t in i){let r=i[t],s=[];for(let n in r)G0[n]?s.push(G0[n](r[n])):z0[n]&&s.push(z0[n].replace("{{VALUE}}",r[n]));e.push(`${t} { ${s.join(";")} }`)}}var z0,G0,W0=b(()=>{je();z0={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},G0={fill:i=>`color: ${X.shared.setValue(i).toHex()}`,breakWords:i=>`word-wrap: ${i?"break-all":"break-word"}`,stroke:V0,dropShadow:L0}});var Ac,H0=b(()=>{ze();Sn();W0();Ac=class i extends it{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new i({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=N0(this)),this._cssStyle}addOverride(...e){let t=e.filter(r=>!this.cssOverrides.includes(r));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(r=>this.cssOverrides.includes(r));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(r=>!t.includes(r)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&q("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&q("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function j0(i,e){let t=e.fontFamily,r=[],s={},n=/font-family:([^;"\s]+)/g,o=i.match(n);function a(c){s[c]||(r.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let l=c.split(":")[1].trim();a(l)});for(let c in e.tagStyles){let l=e.tagStyles[c].fontFamily;a(l)}return r}var $0=b(()=>{"use strict"});async function q0(i){let t=await(await xe.get().fetch(i)).blob(),r=new FileReader;return await new Promise((n,o)=>{r.onloadend=()=>n(r.result),r.onerror=o,r.readAsDataURL(t)})}var X0=b(()=>{vt()});async function yd(i,e){let t=await q0(e);return`@font-face {
|
|
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"?bv(s):e.align==="right"?wv(s):e.align==="justify"&&_v(s),s}function bv(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 wv(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 _v(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 L0=b(()=>{"use strict"});var Uc,kd,V0,W0=b(()=>{an();pe();ze();An();Cn();G0();vd();L0();Uc=0,kd=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 Td({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},N($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let r=t?.name;if(!r)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof st?s:new st(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new Td({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()}},V0=new kd});function H0(i,e){e.groupTransform=i.groupTransform,e.groupColorAlpha=i.groupColorAlpha,e.groupColor=i.groupColor,e.groupBlendMode=i.groupBlendMode,e.globalDisplayStatus=i.globalDisplayStatus,e.groupTransform=i.groupTransform,e.localDisplayStatus=i.localDisplayStatus,e.groupAlpha=i.groupAlpha,e._roundPixels=i._roundPixels}var Pd,Mn,j0=b(()=>{an();G();E0();An();D0();W0();vd();Pd=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);H0(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);H0(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:r}=t,s=V0.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 Pd;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,s=ye.get(`${r}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,l=Math.sqrt(n*n+o*o),u=Math.sqrt(a*a+c*c),h=(Math.abs(l)+Math.abs(u))/2,d=s.baseRenderedFontSize/e._style.fontSize,f=h*s.distanceField.range*(1/d);t.customShader.resources.localUniforms.uniforms.uDistance=f}destroy(){this._renderer=null}};Mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"bitmapText"}});var Cd=b(()=>{G();j0();L.add(Mn)});var zc,$0=b(()=>{Qh();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,q0=b(()=>{G();Te();Zh();$0();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 X0(){let{userAgent:i}=xe.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Y0=b(()=>{Pt()});var K0,Z0,os,Ed=b(()=>{"use strict";K0="http://www.w3.org/2000/svg",Z0="http://www.w3.org/1999/xhtml",os=class{constructor(){this.svgRoot=document.createElementNS(K0,"svg"),this.foreignObject=document.createElementNS(K0,"foreignObject"),this.domElement=document.createElementNS(Z0,"div"),this.styleElement=document.createElementNS(Z0,"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 ew(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?[rw(e)]:[],...i.dropShadow?[tw(i.dropShadow)]:[],...i.cssOverrides].join(";")} }`];return Sv(i.tagStyles,s),s.join(" ")}function tw(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 rw(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 Sv(i,e){for(let t in i){let r=i[t],s=[];for(let n in r)J0[n]?s.push(J0[n](r[n])):Q0[n]&&s.push(Q0[n].replace("{{VALUE}}",r[n]));e.push(`${t} { ${s.join(";")} }`)}}var Q0,J0,iw=b(()=>{je();Q0={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"},J0={fill:i=>`color: ${X.shared.setValue(i).toHex()}`,breakWords:i=>`word-wrap: ${i?"break-all":"break-word"}`,stroke:rw,dropShadow:tw}});var Gc,sw=b(()=>{ze();Cn();iw();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=ew(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 nw(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 ow=b(()=>{"use strict"});async function aw(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 cw=b(()=>{Pt()});async function Ad(i,e){let t=await aw(e);return`@font-face {
|
|
469
469
|
font-family: "${i.fontFamily}";
|
|
470
470
|
src: url('${t}');
|
|
471
471
|
font-weight: ${i.fontWeight};
|
|
472
472
|
font-style: ${i.fontStyle};
|
|
473
|
-
}`}var
|
|
474
|
-
`)}var
|
|
473
|
+
}`}var lw=b(()=>{cw()});async function uw(i,e,t){let r=i.filter(s=>ye.has(`${s}-and-url`)).map((s,n)=>{if(!Nc.has(s)){let{url:o}=ye.get(`${s}-and-url`);n===0?Nc.set(s,Ad({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Nc.set(s,Ad({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Nc.get(s)});return(await Promise.all(r)).join(`
|
|
474
|
+
`)}var Nc,hw=b(()=>{an();lw();Nc=new Map});function dw(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 fw=b(()=>{"use strict"});function mw(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 pw=b(()=>{En()});function gw(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 xw=b(()=>{"use strict"});function bw(i,e,t,r){r||(r=yw||(yw=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 yw,ww=b(()=>{Ed()});var Fn,_w=b(()=>{G();En();Di();dn();Y0();ze();Vr();pd();Ed();sw();ow();hw();fw();pw();xw();ww();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=nw(t,r),c=await uw(a,r,Gc.defaultTextStyle),l=bw(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=dw(t,r,s,c,o);await gw(d,m,X0()&&a.length>0);let p=d,g;this._createCanvas&&(g=mw(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 Id=b(()=>{G();q0();_w();L.add(Fn);L.add(Bn)});var Sw,as,Lc=b(()=>{Li();Ni();hn();pe();Sw=class Tw extends At{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(N($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...Tw.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 ve({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:ee.VERTEX|ee.COPY_DST}),c=new ve({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:ee.VERTEX|ee.COPY_DST}),l=new ve({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}};Sw.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};as=Sw});var Rn,Ej,vw,kw=b(()=>{"use strict";Rn={name:"local-uniform-bit",vertex:{header:`
|
|
475
475
|
|
|
476
476
|
struct LocalUniforms {
|
|
477
477
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -488,7 +488,7 @@ fn mainFragment(
|
|
|
488
488
|
{
|
|
489
489
|
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
490
490
|
}
|
|
491
|
-
`}},
|
|
491
|
+
`}},Ej={...Rn,vertex:{...Rn.vertex,header:Rn.vertex.header.replace("group(1)","group(2)")}},vw={name:"local-uniform-bit",vertex:{header:`
|
|
492
492
|
|
|
493
493
|
uniform mat3 uTransformMatrix;
|
|
494
494
|
uniform vec4 uColor;
|
|
@@ -501,7 +501,7 @@ fn mainFragment(
|
|
|
501
501
|
{
|
|
502
502
|
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
503
503
|
}
|
|
504
|
-
`}}});var
|
|
504
|
+
`}}});var Pw,Cw,Ew=b(()=>{"use strict";Pw={name:"tiling-bit",vertex:{header:`
|
|
505
505
|
struct TilingUniforms {
|
|
506
506
|
uMapCoord:mat3x3<f32>,
|
|
507
507
|
uClampFrame:vec4<f32>,
|
|
@@ -544,7 +544,7 @@ fn mainFragment(
|
|
|
544
544
|
}
|
|
545
545
|
|
|
546
546
|
outColor = textureSampleBias(uTexture, uSampler, coord, bias);
|
|
547
|
-
`}},
|
|
547
|
+
`}},Cw={name:"tiling-bit",vertex:{header:`
|
|
548
548
|
uniform mat3 uTextureTransform;
|
|
549
549
|
uniform vec4 uSizeAnchor;
|
|
550
550
|
|
|
@@ -566,13 +566,13 @@ fn mainFragment(
|
|
|
566
566
|
|
|
567
567
|
outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
|
|
568
568
|
|
|
569
|
-
`}}});var wd,_d,Bc,pw=b(()=>{re();Wa();hw();Xa();cn();pr();Te();mw();Bc=class extends It{constructor(){wd??(wd=Li({name:"tiling-sprite-shader",bits:[An,dw,Wi]})),_d??(_d=Vi({name:"tiling-sprite-shader",bits:[uw,fw,Hi]}));let e=new Ne({uMapCoord:{value:new F,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new F,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:_d,gpuProgram:wd,resources:{localUniforms:new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:O.EMPTY.source,uSampler:O.EMPTY.source.style}})}updateUniforms(e,t,r,s,n,o){let a=this.resources.tilingUniforms,c=o.width,l=o.height,u=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(r.a*c/e,r.b*c/t,r.c*l/e,r.d*l/t,r.tx/e,r.ty/t),h.invert(),a.uniforms.uMapCoord=u.mapCoord,a.uniforms.uClampFrame=u.uClampFrame,a.uniforms.uClampOffset=u.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Fc,gw=b(()=>{Mc();Fc=class extends is{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function xw(i,e){let t=i.anchor.x,r=i.anchor.y;e[0]=-t*i.width,e[1]=-r*i.height,e[2]=(1-t)*i.width,e[3]=-r*i.height,e[4]=(1-t)*i.width,e[5]=(1-r)*i.height,e[6]=-t*i.width,e[7]=(1-r)*i.height}var yw=b(()=>{"use strict"});function bw(i,e,t,r){let s=0,n=i.length/(e||2),o=r.a,a=r.b,c=r.c,l=r.d,u=r.tx,h=r.ty;for(t*=e;s<n;){let d=i[t],f=i[t+1];i[t]=o*d+c*f+u,i[t+1]=a*d+l*f+h,t+=e,s++}}var ww=b(()=>{"use strict"});function _w(i,e){let t=i.texture,r=t.frame.width,s=t.frame.height,n=0,o=0;i.applyAnchorToTexture&&(n=i.anchor.x,o=i.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=F.shared;a.copyFrom(i._tileTransform.matrix),a.tx/=i.width,a.ty/=i.height,a.invert(),a.scale(i.width/r,i.height/s),bw(e,2,0,a)}var Sw=b(()=>{re();ww()});var Dc,Sd,In,Tw=b(()=>{G();sn();ic();an();fn();sc();Mc();pw();gw();yw();Sw();Dc=new Fc,Sd=class{constructor(){this.canBatch=!0,this.geometry=new is({indices:Dc.indices.slice(),positions:Dc.positions.slice(),uvs:Dc.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},In=class{constructor(e){this._state=Jr.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),r=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===r){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return r!==s}addRenderable(e,t){let r=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new xr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,r.addToBatch(a,t)}else r.break(t),s.shader||(s.shader=new Bc),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let r=t.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=this._renderer._roundPixels|e._roundPixels,gr(e.groupColorAlpha,r.uColor,0),this._state.blendMode=Kt(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Dc,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:r}=t;if(r){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Sd;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:r}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),_w(e,r.uvs),xw(e,r.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),r=e.texture,s=!0;return this._renderer.type===At.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(s||r.source.isPowerOfTwo),t.canBatch}};In.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"tilingSprite"}});var Td=b(()=>{G();Tw();L.add(In)});var kw,Pw,Cw=b(()=>{pe();Mc();kw=class vw extends is{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(N($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...vw.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,r=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,l=this.height/a;for(let h=0;h<t;h++){let d=h%this.verticesX,f=h/this.verticesX|0;r.push(d*c,f*l),s.push(d/o,f/a)}let u=o*a;for(let h=0;h<u;h++){let d=h%o,f=h/o|0,m=f*this.verticesX+d,p=f*this.verticesX+d+1,g=(f+1)*this.verticesX+d,y=(f+1)*this.verticesX+d+1;n.push(m,p,g,p,y,g)}this.buffers[0].data=new Float32Array(r),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};kw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Pw=kw});var Ew,Iw,Mw=b(()=>{Cw();Ew=class Aw extends Pw{constructor(e={}){e={...Aw.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:r,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:l}=this,u=s+n,h=t>u?1:t/u,d=o+a,f=r>d?1:r/d,m=Math.min(h,f),p=c*t,g=l*r;e[0]=e[8]=e[16]=e[24]=-p,e[2]=e[10]=e[18]=e[26]=s*m-p,e[4]=e[12]=e[20]=e[28]=t-n*m-p,e[6]=e[14]=e[22]=e[30]=t-p,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=r-a*m-g,e[25]=e[27]=e[29]=e[31]=r-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,r=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=r*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update()}};Ew.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};Iw=Ew});var kd,Mn,Bw=b(()=>{G();sc();Mw();kd=class extends xr{constructor(){super(),this.geometry=new Iw}destroy(){this.geometry.destroy()}},Mn=class{constructor(e){this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new kd,r=t;return r.renderable=e,r.transform=e.groupTransform,r.texture=e._texture,r.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,r),t}destroy(){this._renderer=null}};Mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"nineSliceSprite"}});var vd=b(()=>{G();Bw();L.add(Mn)});var Bn,Fw=b(()=>{G();Bn=class{constructor(e){this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"filter"}});function Dw(i,e){e.clear();let t=e.matrix;for(let r=0;r<i.length;r++){let s=i[r];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var Rw=b(()=>{"use strict"});var ok,Pd,Fn,Ow=b(()=>{G();re();rn();on();pr();Te();Mi();an();ft();Rw();ze();ok=new Et({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),Pd=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new le,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},Fn=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ne({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new rt({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,r=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?Dw(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let p=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;p&&c.applyMatrix(p)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let l=this._getPreviousFilterData(),u=o,h=0,d=0;l&&(h=l.bounds.minX,d=l.bounds.minY,u=l.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-d;let f=s.globalFrame;if(f.x=h*u,f.y=d*u,f.width=n.width*u,f.height=n.height*u,s.backTexture=O.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,l?.bounds)}s.inputTexture=Me.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return r.skip=!0,e;let a=r.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return e;let c=n,l=0,u=0;r.outputOffset.x=-a.minX,r.outputOffset.y=-a.minY;let h=r.globalFrame;h.x=l*c,h.y=u*c,h.width=s.width*c,h.height=s.height*c,r.outputRenderSurface=Me.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=O.EMPTY,r.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let f=r.outputRenderSurface;return f.source.alphaMode="premultiplied-alpha",f}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Me.returnTexture(t.backTexture),Me.returnTexture(t.inputTexture))}getBackTexture(e,t,r){let s=e.colorTexture.source._resolution,n=Me.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),l=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:l},{x:0,y:0}),n}applyFilter(e,t,r,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,l=c.uniforms,u=l.uOutputFrame,h=l.uInputSize,d=l.uInputPixel,f=l.uInputClamp,m=l.uGlobalFrame,p=l.uOutputTexture;a===r?(u[0]=o.outputOffset.x,u[1]=o.outputOffset.y):(u[0]=0,u[1]=0),u[2]=t.frame.width,u[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*h[2]-.5*d[2],f[3]=t.frame.height*h[3]-.5*d[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,r instanceof O&&(r.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(r);if(n.renderTarget.bind(r,!!s),r instanceof O?(p[0]=r.frame.width,p[1]=r.frame.height):(p[0]=g.width,p[1]=g.height),p[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let y=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(y,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:ok,shader:e,state:e._state,topology:"triangle-list"}),n.type===At.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let r=this._activeFilterData,s=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=t.worldTransform.copyTo(F.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let r=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,r,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Me.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,l=0;for(l=0;l<n.length-1;++l){n[l].apply(this,o,c,!0);let h=o;o=c,c=h}n[l].apply(this,o,e.outputRenderSurface,t),Me.returnTexture(a)}}_calculateFilterBounds(e,t,r,s,n){let o=this.renderer,a=e.bounds,c=e.filters,l=1/0,u=0,h=!0,d=!1,f=!1,m=!0;for(let p=0;p<c.length;p++){let g=c[p];if(l=Math.min(l,g.resolution==="inherit"?s:g.resolution),u+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=r),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){f=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){q("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=g.enabled||f,d||(d=g.blendRequired)}if(!f){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(l).ceil().scale(1/l).pad((u|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=l,e.blendRequired=d}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new Pd),this._filterStackIndex++,e}};Fn.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"filter"}});var Cd=b(()=>{G();Fw();Ow();L.add(Fn);L.add(Bn)});var ak={};var Uw=b(()=>{ig();Tu();dg();mg();Pa();Ba();Dh();Rh();Gh();ld();gd();bd();Td();vd();Cd()});var ck={};var Gw=b(()=>{Tu();Pa();Ba();Dh();Rh();Gh();ld();gd();bd();Td();vd();Cd()});function jc(i,e){return{error:t=>i.error({...e,...t}),rpcRequest:t=>i.rpcRequest({...e,...t}),rpcError:t=>i.rpcError({...e,...t})}}var Un=()=>i=>({plain:i.none,errMessage:i.mix(i.brightRed,i.bold),errName:i.red,errStack:i.mix(i.red,i.dim),timestamp:i.blue,timestampErr:i.red});function Nd(){return Un()}var tr=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var zn=()=>({none:i=>i,uncolor:o_,mix:a_,hex:c_,rgb:Ld,bgRgb:l_});function o_(i){return i.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function a_(...i){return e=>{for(let t of i)e=t(e);return e}}function c_(i){i=i.replace(/^#/,"");let e,t,r,s;if(i.length===3)e=parseInt(i.split("").map(n=>n+n).join(""),16);else if(i.length===6)e=parseInt(i,16);else throw new Error("Invalid hex color");return t=e>>16&255,r=e>>8&255,s=e&255,Ld(t,r,s)}function Ld(i,e,t){let r=`\x1B[38;2;${i};${e};${t}m`;return s=>`${r}${s}${tr.reset}`}function l_(i,e,t){let r=`\x1B[48;2;${i};${e};${t}m`;return s=>`${r}${s}${tr.reset}`}var us={...Object.fromEntries(Object.entries(tr).map(([i])=>[i,e=>e])),...zn()};var hs={...Object.fromEntries(Object.entries(tr).map(([i,e])=>[i,t=>`${e}${t}${tr.reset}`])),...zn()};function $c(){return typeof Deno<"u"&&typeof Deno.version<"u"}function qc(){return typeof process<"u"&&process.versions&&process.versions.node}function Vd(){return qc()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":$c()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Xc=()=>Vd()?hs:us;var Gn=()=>({colors:i,theme:e})=>{let t=e(i);function r(o){let a=o.stack?`
|
|
569
|
+
`}}});var Md,Bd,Vc,Aw=b(()=>{re();Ja();kw();sc();fn();gr();Te();Ew();Vc=class extends Mt{constructor(){Md??(Md=ji({name:"tiling-sprite-shader",bits:[Rn,Pw,qi]})),Bd??(Bd=$i({name:"tiling-sprite-shader",bits:[vw,Cw,Xi]}));let e=new Ne({uMapCoord:{value:new F,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new F,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:Bd,gpuProgram:Md,resources:{localUniforms:new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:O.EMPTY.source,uSampler:O.EMPTY.source.style}})}updateUniforms(e,t,r,s,n,o){let a=this.resources.tilingUniforms,c=o.width,l=o.height,u=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(r.a*c/e,r.b*c/t,r.c*l/e,r.d*l/t,r.tx/e,r.ty/t),h.invert(),a.uniforms.uMapCoord=u.mapCoord,a.uniforms.uClampFrame=u.uClampFrame,a.uniforms.uClampOffset=u.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Wc,Iw=b(()=>{Lc();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 Mw(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 Bw=b(()=>{"use strict"});function Fw(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 Rw=b(()=>{"use strict"});function Dw(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),Fw(e,2,0,a)}var Ow=b(()=>{re();Rw()});var Hc,Fd,Dn,Uw=b(()=>{G();ln();fc();dn();yn();mc();Lc();Aw();Iw();Bw();Ow();Hc=new Wc,Fd=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 Fd;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()),Dw(e,r.uvs),Mw(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 Rd=b(()=>{G();Uw();L.add(Dn)});var zw,Nw,Lw=b(()=>{pe();Lc();zw=class Gw extends as{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(N($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...Gw.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()}};zw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Nw=zw});var Vw,Hw,jw=b(()=>{Lw();Vw=class Ww extends Nw{constructor(e={}){e={...Ww.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()}};Vw.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};Hw=Vw});var Dd,On,$w=b(()=>{G();mc();jw();Dd=class extends yr{constructor(){super(),this.geometry=new Hw}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 Dd,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 Od=b(()=>{G();$w();L.add(On)});var Un,qw=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 Xw(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 Yw=b(()=>{"use strict"});var Tv,Ud,zn,Kw=b(()=>{G();re();cn();hn();gr();Te();Di();dn();mt();Yw();ze();Tv=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])}),Ud=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 Ne({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new 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?Xw(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:Tv,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 Ud),this._filterStackIndex++,e}};zn.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"filter"}});var zd=b(()=>{G();qw();Kw();L.add(zn);L.add(Un)});var vv={};var Zw=b(()=>{xg();Ru();Pg();Eg();Oa();Va();jh();$h();Kh();wd();Cd();Id();Rd();Od();zd()});var kv={};var Jw=b(()=>{Ru();Oa();Va();jh();$h();Kh();wd();Cd();Id();Rd();Od();zd()});function tl(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 Zd(){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:Qd,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,Qd(t,r,s)}function Qd(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 rl(){return typeof Deno<"u"&&typeof Deno.version<"u"}function il(){return typeof process<"u"&&process.versions&&process.versions.node}function Jd(){return il()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":rl()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var sl=()=>Jd()?ps:ms;var Hn=()=>({colors:i,theme:e})=>{let t=e(i);function r(o){let a=o.stack?`
|
|
570
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
|
|
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 v_(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var jn=i=>({colors:e,theme:t})=>{let r={...v_(),...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 ef(){return gs(Hn(),jn())}var $n=()=>({stdout:async i=>{await Deno.stdout.write(new TextEncoder().encode(i+`
|
|
572
572
|
`))},stderr:async i=>{await Deno.stderr.write(new TextEncoder().encode(i+`
|
|
573
|
-
`))}});var
|
|
573
|
+
`))}});var qn=()=>({stdout:async i=>void process.stdout.write(i+`
|
|
574
574
|
`),stderr:async i=>void process.stderr.write(i+`
|
|
575
|
-
`)});var Wn=()=>({stdout:async i=>console.log(i),stderr:async i=>console.error(i)});var Hd=()=>$c()?Ln():qc()?Vn():Wn();var jd=()=>({stdout:async()=>{},stderr:async()=>{}});function $d(){return()=>({stdout:i=>i,stderr:i=>i})}var si=class i{static writers={auto:Hd,void:jd,deno:Ln,node:Vn,console:Wn};static colors={auto:Xc,colorful:()=>hs,colorless:()=>us};static themes={auto:Nd,basic:Un};static shapers={auto:Wd,none:$d,errors:Gn,timestamp:Nn};writer=i.writers.auto();colors=i.colors.auto();theme=i.themes.auto();shaper=i.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=ds(...e),this}};var fs=class extends si{static dummy(){return new this().setWriter(si.writers.void())}rpcRequest=async({request:e,...t})=>{let r=this.colors.none;this.log(...this.#e(t),r(`${e.method}()`))};rpcError=async({request:e,error:t,...r})=>{this.error(...this.#e(r),`${e.method}()`,t)};#e({meta:e,label:t,remote:r}){let s=this.colors.mix(this.colors.blue,this.colors.dim),n=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,r===void 0?void 0:r?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var xt=class extends fs{rpcRequest=async()=>{}};var yt=Object.freeze({eq(i,e){if(i.length!==e.length)return!1;for(let t=0;t<=i.length;t++)if(i.at(t)!==e.at(t))return!1;return!0},random(i){return crypto.getRandomValues(new Uint8Array(i))}});var Tr=Object.freeze({fromBytes(i){return[...i].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(i){if(i.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(i.length/2);for(let t=0;t<i.length;t+=2)e[t/2]=parseInt(i.slice(t,t+2),16);return e},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Tr.fromBytes(i)},bytes(i){return Tr.toBytes(i)}});var Yc=58,Hn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Kc=Object.freeze({fromBytes(i){let e=BigInt("0x"+Tr.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(Yc);e=e/BigInt(Yc),t=Hn[Number(r)]+t}for(let r of i)if(r===0)t=Hn[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=Hn.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Yc)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Tr.toBytes(t),s=0;for(let o of i)if(o===Hn[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Kc.fromBytes(i)},bytes(i){return Kc.toBytes(i)}});var qd=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let h=this.lookup[u];if(h===void 0)throw new Error(`Invalid character: ${u}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,l.push(a>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);r=r*s+BigInt(c)}let o=[];for(;r>0n;)o.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let l of e)for(o=o<<8|l,a+=8;a>=t;){a-=t;let u=o>>a&(1<<t)-1;c+=this.lexicon.characters[u]}if(a>0){let l=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let o of e)r=(r<<8n)+BigInt(o);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return n}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(yt.random(e))}};var Zc=Object.freeze({fromBytes(i){return typeof btoa=="function"?btoa(String.fromCharCode(...i)):Buffer.from(i).toString("base64")},toBytes(i){return typeof atob=="function"?Uint8Array.from(atob(i),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(i,"base64"))},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Zc.fromBytes(i)},bytes(i){return Zc.toBytes(i)}});var Xd=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return Xd.fromBytes(i)},bytes(i){return Xd.toBytes(i)}});var jn=Object.freeze({set:i=>i!=null,unset:i=>i==null,boolean:i=>typeof i=="boolean",number:i=>typeof i=="number",string:i=>typeof i=="string",bigint:i=>typeof i=="bigint",object:i=>typeof i=="object"&&i!==null,array:i=>Array.isArray(i),fn:i=>typeof i=="function",symbol:i=>typeof i=="symbol"});var ms=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function $n(i,e){return i<=0||i===1/0?e():new Promise((t,r)=>{let s=setTimeout(()=>r(new ms(i)),i);e().then(t).catch(r).finally(()=>clearTimeout(s))})}function kr(){let i,e,t=new Promise((s,n)=>{i=s,e=n});function r(s){return s.then(i).catch(e),t}return{promise:t,resolve:i,reject:e,entangle:r}}function Yd(i,e){let t=i;for(let r of e)if(t=t[r],jn.unset(t))break;return t}function h_(i){return{map:e=>Kd(i,e),filter:e=>Zd(i,e)}}h_.pipe=Object.freeze({map:i=>e=>Kd(e,i),filter:i=>e=>Zd(e,i)});var Kd=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),Zd=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));function d_(){let i=new Set;function e(n){return i.add(n),()=>{i.delete(n)}}async function t(...n){await Promise.all([...i].map(o=>o(...n)))}async function r(){let{promise:n,resolve:o}=kr(),a=e((...c)=>{o(c),a()});return n}function s(){i.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=r,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=r,t.clear=s,[t,e]}function qn(i){let e=d_()[0];return i&&e.sub(i),e}var Dt=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var rr;(function(i){i.version="2.0";function e(t){return"id"in t?t.id:null}i.getId=e,i.errorCodes={serverError:-32e3,unexposedError:-32001}})(rr||(rr={}));var Xn=class extends Error{name=this.constructor.name},vr=class extends Error{name=this.constructor.name};async function Qd({tap:i,request:e,action:t}){let r=rr.getId(e);try{let s=await t();return r===null?null:{id:r,result:s,jsonrpc:rr.version}}catch(s){return i.rpcError({request:e,error:s}),r===null?null:{id:r,jsonrpc:rr.version,error:s instanceof Xn?{code:rr.errorCodes.serverError,message:s.message}:{code:rr.errorCodes.unexposedError,message:"unexposed error"}}}}function Yn(i){let e=i.tap??new xt;return async t=>{let r=t.method.split("."),s=Yd(i.fns,r),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await Qd({tap:e,request:t,action:n})}}var Pr=Symbol("tune"),f_=Symbol("query"),m_=Symbol("notify"),p_=Symbol("settings");function Jd(i){function e(t){let r={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>i(t,o,r),get:(s,n)=>{if(n!=="then")return n===Pr?o=>(...a)=>i(t,a,{...r,...o}):n===m_?(...o)=>i(t,o,{...r,notify:!0}):n===f_?(...o)=>i(t,o,{...r,notify:!1}):n===p_?r:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Cr(i){let{endpoint:e,tap:t=new xt}=i,r=1;return Jd(async(s,n,o)=>{let a=o.notify??i.notify??!1,c=o.transfer,l={jsonrpc:"2.0",method:s.join("."),params:n},u=a?l:{...l,id:r++};t.rpcRequest({request:u});let h=await e(u,{transfer:c});if(a&&!h)return null;if(!h)throw new vr("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new vr(i.label?`${i.label}: ${h.error.message}`:h.error.message);return h.result})}function ps(i){return Cr({endpoint:Yn(i),tap:i.tap})}var Er=class{recv=qn();sendRequest=qn();sendResponse=qn();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,r=new this,s=[t.sendRequest.sub(o=>r.recv(o,{origin:e})),t.sendResponse.sub(o=>r.recv(o,{origin:e})),r.sendRequest.sub(o=>t.recv(o,{origin:e})),r.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,r,()=>s.forEach(o=>o())]}};function Kn(i,e){return i.addEventListener("message",e),()=>i.removeEventListener("message",e)}function ef(i,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=kr();return e(t,r,s.promise),i.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,r,s),s}}}function tf(i){let e=[],t=[];for(let r of Array.isArray(i)?i:[i])"method"in r?e.push(r):t.push(r);return{requests:e,responses:t}}async function rf(i,e){let t=(await Promise.all(e.map(async r=>i(r)))).filter(r=>r!==null);return t.length===0?null:t.length===1?t[0]:t}var ni=class extends Er{#e=new Dt;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,r)=>e.postMessage(t,r)),this.sendResponse.sub((t,r)=>e.postMessage(t,r)),Kn(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Zn=class{remote;transfer;constructor(e){this.remote=e}};var Qc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Qn=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=kr();return this.pending.set(e,{method:t,deferred:r}),await $n(this.timeout,()=>r.promise).catch(s=>{throw s instanceof ms&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new vr(e.error.message)):t.deferred.resolve(e))}};var Ar=class{options;remote;remoteEndpoint;#e;#t=new Dt;constructor(e){this.options=e;let{conduit:t,tap:r}=e;this.#e=new Qn(e.timeout??Qc.timeout),this.remoteEndpoint=ef(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Cr({endpoint:this.remoteEndpoint,tap:r&&jc(r,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new Zn(this.remote),{conduit:r,rpc:s,tap:n}=this.options,{requests:o,responses:a}=tf(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),l=Yn({fns:c,tap:n&&jc(n,{remote:!1})}),u=await rf(l,o);u&&await r.sendResponse(u,t.transfer)}dispose(){this.#t.dispose()}};var Rt={derive:{host:i=>({host:i.remote.host,get transfer(){return i.transfer},set transfer(e){i.transfer=e}}),work:i=>({work:i.remote,get transfer(){return i.transfer},set transfer(e){i.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var Ot=new xt;async function sf(i,e,t={}){let r=t.tap??Ot,s=new Ar({tap:r,timeout:t.timeout??1/0,conduit:new ni(i.getSelf()),rpc:async n=>e(Rt.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var st=Object.freeze({eq(i,e){if(i.length!==e.length)return!1;for(let t=0;t<=i.length;t++)if(i.at(t)!==e.at(t))return!1;return!0},random(i){return crypto.getRandomValues(new Uint8Array(i))}});var Le=Object.freeze({fromBytes(i){return[...i].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(i){if(i.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(i.length/2);for(let t=0;t<i.length;t+=2)e[t/2]=parseInt(i.slice(t,t+2),16);return e},random(i=32){return this.fromBytes(st.random(i))},string(i){return Le.fromBytes(i)},bytes(i){return Le.toBytes(i)}});var Jc=["doz","mar","bin","wan","sam","lit","sig","hid","fid","lis","sog","dir","wac","sab","wis","sib","rig","sol","dop","mod","fog","lid","hop","dar","dor","lor","hod","fol","rin","tog","sil","mir","hol","pas","lac","rov","liv","dal","sat","lib","tab","han","tic","pid","tor","bol","fos","dot","los","dil","for","pil","ram","tir","win","tad","bic","dif","roc","wid","bis","das","mid","lop","ril","nar","dap","mol","san","loc","nov","sit","nid","tip","sic","rop","wit","nat","pan","min","rit","pod","mot","tam","tol","sav","pos","nap","nop","som","fin","fon","ban","mor","wor","sip","ron","nor","bot","wic","soc","wat","dol","mag","pic","dav","bid","bal","tim","tas","mal","lig","siv","tag","pad","sal","div","dac","tan","sid","fab","tar","mon","ran","nis","wol","mis","pal","las","dis","map","rab","tob","rol","lat","lon","nod","nav","fig","nom","nib","pag","sop","ral","bil","had","doc","rid","moc","pac","rav","rip","fal","tod","til","tin","hap","mic","fan","pat","tac","lab","mog","sim","son","pin","lom","ric","tap","fir","has","bos","bat","poc","hac","tid","hav","sap","lin","dib","hos","dab","bit","bar","rac","par","lod","dos","bor","toc","hil","mac","tom","dig","fil","fas","mit","hob","har","mig","hin","rad","mas","hal","rag","lag","fad","top","mop","hab","nil","nos","mil","fop","fam","dat","nol","din","hat","nac","ris","fot","rib","hoc","nim","lar","fit","wal","rap","sar","nal","mos","lan","don","dan","lad","dov","riv","bac","pol","lap","tal","pit","nam","bon","ros","ton","fod","pon","sov","noc","sor","lav","mat","mip","fip"];var el=["zod","nec","bud","wes","sev","per","sut","let","ful","pen","syt","dur","wep","ser","wyl","sun","ryp","syx","dyr","nup","heb","peg","lup","dep","dys","put","lug","hec","ryt","tyv","syd","nex","lun","mep","lut","sep","pes","del","sul","ped","tem","led","tul","met","wen","byn","hex","feb","pyl","dul","het","mev","rut","tyl","wyd","tep","bes","dex","sef","wyc","bur","der","nep","pur","rys","reb","den","nut","sub","pet","rul","syn","reg","tyd","sup","sem","wyn","rec","meg","net","sec","mul","nym","tev","web","sum","mut","nyx","rex","teb","fus","hep","ben","mus","wyx","sym","sel","ruc","dec","wex","syr","wet","dyl","myn","mes","det","bet","bel","tux","tug","myr","pel","syp","ter","meb","set","dut","deg","tex","sur","fel","tud","nux","rux","ren","wyt","nub","med","lyt","dus","neb","rum","tyn","seg","lyx","pun","res","red","fun","rev","ref","mec","ted","rus","bex","leb","dux","ryn","num","pyx","ryg","ryx","fep","tyr","tus","tyc","leg","nem","fer","mer","ten","lus","nus","syl","tec","mex","pub","rym","tuc","fyl","lep","deb","ber","mug","hut","tun","byl","sud","pem","dev","lur","def","bus","bep","run","mel","pex","dyt","byt","typ","lev","myl","wed","duc","fur","fex","nul","luc","len","ner","lex","rup","ned","lec","ryd","lyd","fen","wel","nyd","hus","rel","rud","nes","hes","fet","des","ret","dun","ler","nyr","seb","hul","ryl","lud","rem","lys","fyn","wer","ryc","sug","nys","nyl","lyn","dyn","dem","lux","fed","sed","bec","mun","lyr","tes","mud","nyt","byr","sen","weg","fyr","mur","tel","rep","teg","pec","nel","nev","fes"];var Ut={defaults:{groupSize:4,wordSeparator:".",groupSeparator:" "},random(i,e){let t=st.random(i);return this.fromBytes(t,e)},fromBytes(i,e={}){let{groupSize:t=Ut.defaults.groupSize,wordSeparator:r=Ut.defaults.wordSeparator,groupSeparator:s=Ut.defaults.groupSeparator}=e,n=[],o=[];i.forEach((c,l)=>{let u=l%2===0?Jc:el;o.push(u[c]),o.length===2&&(n.push(o.join("")),o=[])}),o.length&&n.push(o.join(""));let a=[];for(let c=0;c<n.length;c+=t)a.push(n.slice(c,c+t).join(r));return a.join(s)},toBytes(i){let e=i.toLowerCase().replace(/[^a-z]/g,"");if(e.length/3%1!==0)throw new Error(`invalid triplet count, ${e.length} does not divide into triplets`);let r=[];for(let s=0;s<e.length;s+=3)r.push(e.slice(s,s+3));return new Uint8Array(r.map((s,n)=>{let a=(n%2===0?Jc:el).findIndex(c=>c===s);if(a===-1)throw new Error(`unknown triplet ${s}`);return a}))},toHex(i){return Le.fromBytes(Ut.toBytes(i))},fromHex(i,e){return Ut.fromBytes(Le.toBytes(i),e)}};var tl=58,Jn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",gs=Object.freeze({fromBytes(i){let e=BigInt("0x"+Le.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(tl);e=e/BigInt(tl),t=Jn[Number(r)]+t}for(let r of i)if(r===0)t=Jn[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=Jn.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(tl)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Le.toBytes(t),s=0;for(let o of i)if(o===Jn[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(st.random(i))},string(i){return gs.fromBytes(i)},bytes(i){return gs.toBytes(i)}});var nt={defaults:{delimiter:".",sigilBytes:4,previewBytes:8},toBytes(i){i=i.trim();let e=i.split(/[^a-zA-Z0-9]+/m).filter(Boolean).map(s=>s.trim());if(e.length<2)return Ut.toBytes(e.join(""));let t=e.pop(),r=e.join("");return new Uint8Array([...Ut.toBytes(r),...gs.toBytes(t)])},parse(i,e){let t=nt.toBytes(i);return nt.build.fromBytes(t,e)},build:{fromBytes(i,e={}){let{delimiter:t,previewBytes:r,sigilBytes:s}={...nt.defaults,...e},n=u=>i.length>0?Ut.fromBytes(i.slice(0,u),{wordSeparator:t,groupSeparator:t}):"",o=n(s),a=n(r),c=i.length>r?gs.fromBytes(i.slice(r)):"",l=[a,c].filter(u=>u.length>0).join(t);return{bytes:i,thumbprint:l,preview:a,bulk:c,sigil:o}},fromHex(i,e){let t=Le.toBytes(i);return nt.build.fromBytes(t,e)}},toHex(i){let e=nt.toBytes(i);return Le.fromBytes(e)},fromBytes(i,e){return nt.build.fromBytes(i,e).thumbprint},fromHex(i,e){return nt.fromBytes(Le.toBytes(i),e)},sigil:{fromHex(i,e){return nt.build.fromHex(i,e).sigil},fromBytes(i,e){return nt.build.fromBytes(i,e).sigil}}};var nf=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let h=this.lookup[u];if(h===void 0)throw new Error(`Invalid character: ${u}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,l.push(a>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);r=r*s+BigInt(c)}let o=[];for(;r>0n;)o.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let l of e)for(o=o<<8|l,a+=8;a>=t;){a-=t;let u=o>>a&(1<<t)-1;c+=this.lexicon.characters[u]}if(a>0){let l=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let o of e)r=(r<<8n)+BigInt(o);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return n}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(st.random(e))}};var rl=Object.freeze({fromBytes(i){return typeof btoa=="function"?btoa(String.fromCharCode(...i)):Buffer.from(i).toString("base64")},toBytes(i){return typeof atob=="function"?Uint8Array.from(atob(i),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(i,"base64"))},random(i=32){return this.fromBytes(st.random(i))},string(i){return rl.fromBytes(i)},bytes(i){return rl.toBytes(i)}});var of=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return of.fromBytes(i)},bytes(i){return of.toBytes(i)}});var il=Object.freeze({set:i=>i!=null,unset:i=>i==null,boolean:i=>typeof i=="boolean",number:i=>typeof i=="number",string:i=>typeof i=="string",bigint:i=>typeof i=="bigint",object:i=>typeof i=="object"&&i!==null,array:i=>Array.isArray(i),fn:i=>typeof i=="function",symbol:i=>typeof i=="symbol"});function xs(){let i,e,t=new Promise((s,n)=>{i=s,e=n});function r(s){return s.then(i).catch(e),t}return{promise:t,resolve:i,reject:e,entangle:r}}var eo=class i extends Map{static require(e,t){if(e.has(t))return e.get(t);throw new Error(`required key not found: "${t}"`)}static guarantee(e,t,r){if(e.has(t))return e.get(t);{let s=r();return e.set(t,s),s}}array(){return[...this]}require(e){return i.require(this,e)}guarantee(e,t){return i.guarantee(this,e,t)}};function b_(i){return{map:e=>af(i,e),filter:e=>cf(i,e)}}b_.pipe=Object.freeze({map:i=>e=>af(e,i),filter:i=>e=>cf(e,i)});var af=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),cf=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));var oi=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let r=t.tap??Ot,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=xs(),a={async ready(){o.resolve()}},c=new Ar({tap:r,timeout:t.timeout??1/0,conduit:new ni(n),rpc:async l=>({infra:a,host:t.setupHost(Rt.derive.work(l))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var to=class{threads;static async make(e,t){let r=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(r)].map(async(n,o)=>oi.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let r=t.tap??Ot,s=async(n,o)=>this.#r({request:n,prom:xs(),transfer:o?.transfer});this.work=Cr({tap:r,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#r(e){return this.#t.push(e),this.#i(),e.prom.promise}#i(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let r=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(r).finally(()=>{this.#e.add(e),this.#i()})}}};var lf=i=>({thread:e=>oi.make(i,e),cluster:e=>to.make(i,e),worker:(e,t={})=>sf(i,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:r,tap:s=Ot}=e,n=Rt.mock.host(),o=Rt.mock.work();return o.work=ps({tap:s,fns:t(n)}),n.host=ps({tap:s,fns:r(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=Ot){let r=Rt.mock.host(),s=Rt.mock.work();return s.work=ps({tap:t,fns:e(r)}),{workShell:s,hostShell:r,work:s.work,mockHost:n=>(r.host=ps({tap:t,fns:n(s)}),{workShell:s,hostShell:r,work:s.work,host:r.host})}}});var uf=()=>({getSelf(){return self},guessOptimalThreadCount(){let i=navigator.hardwareConcurrency??1;return Math.max(1,i-1)},loadWorker(i,e){return new window.Worker(i,{name:e,type:"module"})},async loadWasm(i){return WebAssembly.instantiateStreaming(fetch(i))}});var w_=uf(),ro=lf(w_);function k(i){if(!i)throw new Error("Assertion failed.")}var so=i=>{let e=(i%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${i}.`)},ve=i=>i&&i[i.length-1];var fe=class i{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,r=7-(this.pos&7),s=(t&1<<r)>>r;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let r=0;r<e;r++)t<<=1,t|=this.readBit();return t}writeBits(e,t){let r=this.pos+e;for(let s=this.pos;s<r;s++){let n=Math.floor(s/8),o=this.bytes[n],a=7-(s&7);o&=~(1<<a),o|=(t&1<<r-s-1)>>r-s-1<<a,this.bytes[n]=o}this.pos=r}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new i(this.bytes);return e.pos=this.pos,e}},R=i=>{let e=0;for(;i.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+i.readBits(e)},ai=i=>{let e=R(i);return(e&1)===0?-(e>>1):e+1>>1};var ir=i=>i instanceof Uint8Array?i:i instanceof ArrayBuffer?new Uint8Array(i):new Uint8Array(i.buffer,i.byteOffset,i.byteLength),oe=i=>i instanceof DataView?i:i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength),Be=new TextDecoder,__=new TextEncoder;var nl=i=>Object.fromEntries(Object.entries(i).map(([e,t])=>[t,e])),ol={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},no=nl(ol),al={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},oo=nl(al),cl={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},ao=nl(cl);var ll=i=>i instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&i instanceof SharedArrayBuffer||ArrayBuffer.isView(i),Je=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),r=this.currentPromise;return this.currentPromise=t,await r,e}},ul=i=>[...i].map(e=>e.toString(16).padStart(2,"0")).join(""),hl=i=>(i=i>>1&1431655765|(i&1431655765)<<1,i=i>>2&858993459|(i&858993459)<<2,i=i>>4&252645135|(i&252645135)<<4,i=i>>8&16711935|(i&16711935)<<8,i=i>>16&65535|(i&65535)<<16,i>>>0),ae=(i,e,t)=>{let r=0,s=i.length-1,n=-1;for(;r<=s;){let o=r+s>>1,a=t(i[o]);a===e?(n=o,s=o-1):a<e?r=o+1:s=o-1}return n},Q=(i,e,t)=>{let r=0,s=i.length-1,n=-1;for(;r<=s;){let o=r+(s-r+1)/2|0;t(i[o])<=e?(n=o,r=o+1):s=o-1}return n},ot=(i,e,t)=>{let r=Q(i,t(e),t);i.splice(r+1,0,e)},Fe=()=>{let i,e;return{promise:new Promise((r,s)=>{i=r,e=s}),resolve:i,reject:e}};var dl=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return i[t]},co=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return t;return-1},hf=async function*(i){Symbol.iterator in i?yield*i[Symbol.iterator]():yield*i[Symbol.asyncIterator]()},df=i=>{if(!(Symbol.iterator in i)&&!(Symbol.asyncIterator in i))throw new TypeError("Argument must be an iterable or async iterable.")},ys=i=>{throw new Error(`Unexpected value: ${i}`)};var fl=(i,e)=>({async next(){let t=await i.next();return t.done?{value:void 0,done:!0}:{value:e(t.value),done:!1}},return(){return i.return()},throw(t){return i.throw(t)},[Symbol.asyncIterator](){return this}}),lo=(i,e,t)=>Math.max(e,Math.min(t,i)),Pe="und",Ir=(i,e)=>{let t=10**e;return Math.round(i*t)/t},ff=(i,e)=>Math.round(i/e)*e,mf=i=>{let e=0;for(;i;)e++,i>>=1;return e},S_=/^[a-z]{3}$/,uo=i=>S_.test(i),sr=1e6*(1+Number.EPSILON),ho=(i,e)=>{let t={...i};for(let r in e)typeof i[r]=="object"&&i[r]!==null&&typeof e[r]=="object"&&e[r]!==null?t[r]=ho(i[r],e[r]):t[r]=e[r];return t},ml=async(i,e,t)=>{let r=0;for(;;)try{return await fetch(i,e)}catch(s){r++;let n=t(r);if(n===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}};var io=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},sl=null,fo=()=>{if(sl!==null)return sl;let i=!!(typeof navigator<"u"&&navigator.vendor?.match(/apple/i)&&!navigator.userAgent?.match(/crios/i)&&!navigator.userAgent?.match(/fxios/i)&&!navigator.userAgent?.match(/Opera|OPT\//));return sl=i,i},Mr=(i,e)=>i!==-1?i:e,mo=(i,e,t,r)=>i<=r&&t<=e;var pf=i=>{let e=atob(i),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t};var nr=class{constructor(e,t){this.data=e,this.mimeType=t}};var ws=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],T_=["aac","opus","mp3","vorbis","flac"],NI=[...T_,...ws];var Br=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}];var gf=".01.01.01.01.00",xf=".0.110.01.01.01.0";var po=i=>{let{codec:e,codecDescription:t,colorSpace:r,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=i;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${ul(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${ul(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,u,h,d,f;if(n)c=n.generalProfileSpace,l=n.generalProfileIdc,u=hl(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,d=n.generalLevelIdc,f=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let p=oe(t),g=p.getUint8(1);c=g>>6&3,l=g&31,u=hl(p.getUint32(2)),h=g>>5&1,d=p.getUint8(12),f=[];for(let y=0;y<6;y++)f.push(p.getUint8(6+y))}let m="hev1.";for(m+=["","A","B","C"][c]+l,m+=".",m+=u.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=d;f.length>0&&f[f.length-1]===0;)f.pop();return f.length>0&&(m+=".",m+=f.map(p=>p.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let y=i.width*i.height,x=ve(Br).level;for(let w of Br)if(y<=w.maxPictureSize){x=w.level;break}return`vp09.00.${x.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),l=o.level.toString().padStart(2,"0"),u=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),d=o.colourPrimaries.toString().padStart(2,"0"),f=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),p=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${l}.${u}.${h}`;return g+=`.${d}.${f}.${m}.${p}`,g.endsWith(gf)&&(g=g.slice(0,-gf.length)),g}else if(e==="av1"){if(!a){let w=i.width*i.height,_=ve(Br).level;for(let S of Br)if(w<=S.maxPictureSize){_=S.level;break}return`av01.0.${_.toString().padStart(2,"0")}M.08`}let c=a.profile,l=a.level.toString().padStart(2,"0"),u=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),d=a.monochrome?"1":"0",f=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=r?.primaries?ol[r.primaries]:1,p=r?.transfer?al[r.transfer]:1,g=r?.matrix?cl[r.matrix]:1,y=r?.fullRange?1:0,x=`av01.${c}.${l}${u}.${h}`;return x+=`.${d}.${f.toString().padStart(3,"0")}`,x+=`.${m.toString().padStart(2,"0")}`,x+=`.${p.toString().padStart(2,"0")}`,x+=`.${g.toString().padStart(2,"0")}`,x+=`.${y}`,x.endsWith(xf)&&(x=x.slice(0,-xf.length)),x}}throw new TypeError(`Unhandled codec '${e}'.`)};var go=i=>{let{codec:e,codecDescription:t,aacCodecInfo:r}=i;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");return r.isMpeg2?"mp4a.67":`mp4a.40.${gl(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&ws.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},bs=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],pl=[-1,1,2,3,4,5,6,8],gl=i=>{if(!i||i.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new fe(i),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let r=e.readBits(4),s=null;r===15?s=e.readBits(24):r<bs.length&&(s=bs[r]);let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o=pl[n]),{objectType:t,frequencyIndex:r,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},yf=48e3,k_=/^pcm-([usf])(\d+)+(be)?$/,bf=i=>{if(k(ws.includes(i)),i==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(i==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=k_.exec(i);k(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let r=Number(e[2])/8,s=e[3]!=="be",n=i==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:r,littleEndian:s,silentValue:n}};var ci;(function(i){i[i.IDR=5]="IDR",i[i.SPS=7]="SPS",i[i.PPS=8]="PPS",i[i.SPS_EXT=13]="SPS_EXT"})(ci||(ci={}));var De;(function(i){i[i.RASL_N=8]="RASL_N",i[i.RASL_R=9]="RASL_R",i[i.BLA_W_LP=16]="BLA_W_LP",i[i.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",i[i.VPS_NUT=32]="VPS_NUT",i[i.SPS_NUT=33]="SPS_NUT",i[i.PPS_NUT=34]="PPS_NUT",i[i.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",i[i.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(De||(De={}));var yo=i=>{let e=[],t=0;for(;t<i.length;){let r=-1,s=0;for(let n=t;n<i.length-3;n++){if(i[n]===0&&i[n+1]===0&&i[n+2]===1){r=n,s=3;break}if(n<i.length-4&&i[n]===0&&i[n+1]===0&&i[n+2]===0&&i[n+3]===1){r=n,s=4;break}}if(r===-1)break;if(t>0&&r>t){let n=i.subarray(t,r);n.length>0&&e.push(n)}t=r+s}if(t<i.length){let r=i.subarray(t);r.length>0&&e.push(r)}return e},_f=(i,e)=>{let t=[],r=0,s=new DataView(i.buffer,i.byteOffset,i.byteLength);for(;r+e<=i.length;){let n;e===1?n=s.getUint8(r):e===2?n=s.getUint16(r,!1):e===3?n=(s.getUint16(r,!1)<<8)+s.getUint8(r+2):e===4?n=s.getUint32(r,!1):(ys(e),k(!1)),r+=e;let o=i.subarray(r,r+n);t.push(o),r+=n}return t},xl=i=>{let e=[],t=i.length;for(let r=0;r<t;r++)r+2<t&&i[r]===0&&i[r+1]===0&&i[r+2]===3?(e.push(0,0),r+=2):e.push(i[r]);return new Uint8Array(e)};var v_=(i,e)=>{if(e.description){let s=(ir(e.description)[4]&3)+1;return _f(i,s)}else return yo(i)},xo=i=>i[0]&31,Sf=i=>{try{let e=yo(i),t=e.filter(d=>xo(d)===ci.SPS),r=e.filter(d=>xo(d)===ci.PPS),s=e.filter(d=>xo(d)===ci.SPS_EXT);if(t.length===0||r.length===0)return null;let n=t[0],o=new fe(xl(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),l=o.readAlignedByte(),u=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:l,avcLevelIndication:u,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:r,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){R(o);let d=R(o);d===3&&o.skipBits(1);let f=R(o),m=R(o);h.chromaFormat=d,h.bitDepthLumaMinus8=f,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}};var yl=(i,e)=>{if(e.description){let s=(ir(e.description)[21]&3)+1;return _f(i,s)}else return yo(i)},zt=i=>i[0]>>1&63,Tf=i=>{try{let e=yo(i),t=e.filter(C=>zt(C)===De.VPS_NUT),r=e.filter(C=>zt(C)===De.SPS_NUT),s=e.filter(C=>zt(C)===De.PPS_NUT),n=e.filter(C=>zt(C)===De.PREFIX_SEI_NUT||zt(C)===De.SUFFIX_SEI_NUT);if(r.length===0||s.length===0)return null;let o=r[0],a=new fe(xl(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),l=a.readBits(1),{general_profile_space:u,general_tier_flag:h,general_profile_idc:d,general_profile_compatibility_flags:f,general_constraint_indicator_flags:m,general_level_idc:p}=P_(a,c);R(a);let g=R(a);g===3&&a.skipBits(1),R(a),R(a),a.readBits(1)&&(R(a),R(a),R(a),R(a));let y=R(a),x=R(a);R(a);let _=a.readBits(1)?0:c;for(let C=_;C<=c;C++)R(a),R(a),R(a);R(a),R(a),R(a),R(a),R(a),R(a),a.readBits(1)&&a.readBits(1)&&C_(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),R(a),R(a),a.skipBits(1));let S=R(a);if(E_(a,S),a.readBits(1)){let C=R(a);for(let E=0;E<C;E++)R(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let T=0;a.readBits(1)&&(T=I_(a,c));let v=0;if(s.length>0){let C=s[0],E=new fe(xl(C));E.skipBits(16),R(E),R(E),E.skipBits(1),E.skipBits(1),E.skipBits(3),E.skipBits(1),E.skipBits(1),R(E),R(E),ai(E),E.skipBits(1),E.skipBits(1),E.readBits(1)&&R(E),ai(E),ai(E),E.skipBits(1),E.skipBits(1),E.skipBits(1),E.skipBits(1);let D=E.readBits(1),j=E.readBits(1);!D&&!j?v=0:D&&!j?v=2:!D&&j?v=3:v=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:De.VPS_NUT,nalUnits:t}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:De.SPS_NUT,nalUnits:r}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:De.PPS_NUT,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:zt(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:u,generalTierFlag:h,generalProfileIdc:d,generalProfileCompatibilityFlags:f,generalConstraintIndicatorFlags:m,generalLevelIdc:p,minSpatialSegmentationIdc:T,parallelismType:v,chromaFormatIdc:g,bitDepthLumaMinus8:y,bitDepthChromaMinus8:x,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},P_=(i,e)=>{let t=i.readBits(2),r=i.readBits(1),s=i.readBits(5),n=0;for(let u=0;u<32;u++)n=n<<1|i.readBits(1);let o=new Uint8Array(6);for(let u=0;u<6;u++)o[u]=i.readBits(8);let a=i.readBits(8),c=[],l=[];for(let u=0;u<e;u++)c.push(i.readBits(1)),l.push(i.readBits(1));if(e>0)for(let u=e;u<8;u++)i.skipBits(2);for(let u=0;u<e;u++)c[u]&&i.skipBits(88),l[u]&&i.skipBits(8);return{general_profile_space:t,general_tier_flag:r,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},C_=i=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!i.readBits(1))R(i);else{let s=Math.min(64,1<<4+(e<<1));e>1&&ai(i);for(let n=0;n<s;n++)ai(i)}},E_=(i,e)=>{let t=[];for(let r=0;r<e;r++)t[r]=A_(i,r,e,t)},A_=(i,e,t,r)=>{let s=0,n=0,o=0;if(e!==0&&(n=i.readBits(1)),n){if(e===t){let c=R(i);o=e-(c+1)}else o=e-1;i.readBits(1),R(i);let a=r[o]??0;for(let c=0;c<=a;c++)i.readBits(1)||i.readBits(1);s=r[o]}else{let a=R(i),c=R(i);for(let l=0;l<a;l++)R(i),i.readBits(1);for(let l=0;l<c;l++)R(i),i.readBits(1);s=a+c}return s},I_=(i,e)=>{if(i.readBits(1)&&i.readBits(8)===255&&(i.readBits(16),i.readBits(16)),i.readBits(1)&&i.readBits(1),i.readBits(1)&&(i.readBits(3),i.readBits(1),i.readBits(1)&&(i.readBits(8),i.readBits(8),i.readBits(8))),i.readBits(1)&&(R(i),R(i)),i.readBits(1),i.readBits(1),i.readBits(1),i.readBits(1)&&(R(i),R(i),R(i),R(i)),i.readBits(1)&&(i.readBits(32),i.readBits(32),i.readBits(1)&&R(i),i.readBits(1)&&M_(i,!0,e)),i.readBits(1)){i.readBits(1),i.readBits(1),i.readBits(1);let t=R(i);return R(i),R(i),R(i),R(i),t}return 0},M_=(i,e,t)=>{let r=!1,s=!1,n=!1;e&&(r=i.readBits(1)===1,s=i.readBits(1)===1,(r||s)&&(n=i.readBits(1)===1,n&&(i.readBits(8),i.readBits(5),i.readBits(1),i.readBits(5)),i.readBits(4),i.readBits(4),n&&i.readBits(4),i.readBits(5),i.readBits(5),i.readBits(5)));for(let o=0;o<=t;o++){let a=i.readBits(1)===1,c=!0;a||(c=i.readBits(1)===1);let l=!1;c?R(i):l=i.readBits(1)===1;let u=1;l||(u=R(i)+1),r&&wf(i,u,n),s&&wf(i,u,n)}},wf=(i,e,t)=>{for(let r=0;r<e;r++)R(i),R(i),t&&(R(i),R(i)),i.readBits(1)};var bo=i=>{let e=new fe(i);if(e.readBits(2)!==2)return null;let r=e.readBits(1),n=(e.readBits(1)<<1)+r;if(n===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let l=8;n>=2&&(l=e.readBits(1)?12:10);let u=e.readBits(3),h=0,d=0;if(u!==7)if(d=e.readBits(1),n===1||n===3){let v=e.readBits(1),M=e.readBits(1);h=!v&&!M?3:v&&!M?2:1,e.skipBits(1)}else h=1;else h=3,d=1;let f=e.readBits(16),m=e.readBits(16),p=f+1,g=m+1,y=p*g,x=ve(Br).level;for(let T of Br)if(y<=T.maxPictureSize){x=T.level;break}return{profile:n,level:x,bitDepth:l,chromaSubsampling:h,videoFullRangeFlag:d,colourPrimaries:u===2?1:u===1?6:2,transferCharacteristics:u===2?1:u===1?6:2,matrixCoefficients:u===7?0:u===2?1:u===1?6:2}},kf=function*(i){let e=new fe(i),t=()=>{let r=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(r|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){e.skipBits(1);let r=e.readBits(4),s=e.readBits(1),n=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let o;if(n){let a=t();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);k(e.pos%8===0),yield{type:r,data:i.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}},wo=i=>{for(let{type:e,data:t}of kf(i)){if(e!==1)continue;let r=new fe(t),s=r.readBits(3),n=r.readBits(1),o=r.readBits(1),a=0,c=0,l=0;if(o)a=r.readBits(5);else{if(r.readBits(1)&&(r.skipBits(32),r.skipBits(32),r.readBits(1)))return null;let y=r.readBits(1);y&&(l=r.readBits(5),r.skipBits(32),r.skipBits(5),r.skipBits(5));let x=r.readBits(5);for(let w=0;w<=x;w++){r.skipBits(12);let _=r.readBits(5);if(w===0&&(a=_),_>7){let T=r.readBits(1);w===0&&(c=T)}if(y&&r.readBits(1)){let v=l+1;r.skipBits(v),r.skipBits(v),r.skipBits(1)}r.readBits(1)&&r.skipBits(4)}}let u=r.readBits(1),h=8;s===2&&u?h=r.readBits(1)?12:10:s<=2&&(h=u?10:8);let d=0;s!==1&&(d=r.readBits(1));let f=1,m=1,p=0;return d||(s===0?(f=1,m=1):s===1?(f=0,m=0):h===12&&(f=r.readBits(1),f&&(m=r.readBits(1))),f&&m&&(p=r.readBits(2))),{profile:s,level:a,tier:c,bitDepth:h,monochrome:d,chromaSubsamplingX:f,chromaSubsamplingY:m,chromaSamplePosition:p}}return null},vf=i=>{let e=oe(i),t=e.getUint8(9),r=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=i.subarray(19,21+t)),{outputChannelCount:t,preSkip:r,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},B_=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Pf=i=>{let e=i[0]>>3;return{durationInSamples:B_[e]}},Cf=i=>{if(i.length<7)throw new Error("Setup header is too short.");if(i[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...i.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=i.length,r=new Uint8Array(t);for(let h=0;h<t;h++)r[h]=i[t-1-h];let s=new fe(r),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,d=s.readBits(8),f=s.readBits(16),m=s.readBits(16);if(d>63||f!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let l=c;s.pos=0,s.skipBits(n);let u=Array(l).fill(0);for(let h=l-1;h>=0;h--)s.skipBits(40),u[h]=s.readBits(1);return{modeBlockflags:u}},Ef=async(i,e)=>{switch(k(i.codec),i.codec){case"avc":{let t=await i.getDecoderConfig();return k(t),v_(e.data,t).some(n=>xo(n)===ci.IDR)?"key":"delta"}case"hevc":{let t=await i.getDecoderConfig();return k(t),yl(e.data,t).some(n=>{let o=zt(n);return De.BLA_W_LP<=o&&o<=De.RSV_IRAP_VCL23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new fe(e.data);if(t.readBits(2)!==2)return null;let r=t.readBits(1);return(t.readBits(1)<<1)+r===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:r,data:s}of kf(e.data))if(r===1){let n=new fe(s);n.skipBits(4),t=!!n.readBits(1)}else if(r===3||r===6||r===7){if(t)return"key";let n=new fe(s);return n.readBits(1)?null:n.readBits(2)===0?"key":"delta"}return null}default:ys(i.codec),k(!1)}};var Af=i=>{let t=(i.hasVideo?"video/":i.hasAudio?"audio/":"application/")+(i.isQuickTime?"quicktime":"mp4");if(i.codecStrings.length>0){let r=[...new Set(i.codecStrings)];t+=`; codecs="${r.join(", ")}"`}return t};var _o=class{constructor(e){this.source=e}requestSlice(e,t){if(this.fileSize!==null&&e+t>this.fileSize)return null;let r=e+t,s=this.source._read(e,r);return s instanceof Promise?s.then(n=>n?new li(n.bytes,n.view,n.offset,e,r):null):s?new li(s.bytes,s.view,s.offset,e,r):null}requestSliceRange(e,t,r){if(this.fileSize!==null)return this.requestSlice(e,lo(this.fileSize-e,t,r));{let s=this.requestSlice(e,r),n=o=>{if(o)return o;let a=l=>(k(l!==null),this.requestSlice(e,lo(l-e,t,r))),c=this.source._retrieveSize();return c instanceof Promise?c.then(a):a(c)};return s instanceof Promise?s.then(n):n(s)}}},li=class i{constructor(e,t,r,s,n){this.bytes=e,this.view=t,this.offset=r,this.start=s,this.end=n,this.bufferPos=s-r}static tempFromBytes(e){return new i(e,oe(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}skip(e){this.bufferPos+=e}slice(e,t=this.end-e){if(e<this.start||e+t>this.end)throw new RangeError("Slicing outside of original slice.");return new i(this.bytes,this.view,this.offset,e,e+t)}},W=(i,e)=>{let t=i.bytes.subarray(i.bufferPos,i.bufferPos+e);return i.bufferPos+=e,t},z=i=>i.view.getUint8(i.bufferPos++),ui=(i,e)=>{let t=i.view.getUint16(i.bufferPos,e);return i.bufferPos+=2,t},Ce=i=>{let e=i.view.getUint16(i.bufferPos,!1);return i.bufferPos+=2,e},hi=i=>{let e=Ce(i),t=z(i);return e*256+t},_s=i=>{let e=i.view.getInt16(i.bufferPos,!1);return i.bufferPos+=2,e},Gt=(i,e)=>{let t=i.view.getUint32(i.bufferPos,e);return i.bufferPos+=4,t},B=i=>{let e=i.view.getUint32(i.bufferPos,!1);return i.bufferPos+=4,e},Fr=i=>{let e=i.view.getUint32(i.bufferPos,!0);return i.bufferPos+=4,e},Nt=i=>{let e=i.view.getInt32(i.bufferPos,!1);return i.bufferPos+=4,e},F_=i=>{let e=i.view.getInt32(i.bufferPos,!0);return i.bufferPos+=4,e},bl=(i,e)=>{let t,r;return e?(t=Gt(i,!0),r=Gt(i,!0)):(r=Gt(i,!1),t=Gt(i,!1)),r*4294967296+t},Ye=i=>{let e=B(i),t=B(i);return e*4294967296+t},If=i=>{let e=Nt(i),t=B(i);return e*4294967296+t},Mf=i=>{let e=Fr(i);return F_(i)*4294967296+e},Bf=i=>{let e=i.view.getFloat32(i.bufferPos,!1);return i.bufferPos+=4,e},So=i=>{let e=i.view.getFloat64(i.bufferPos,!1);return i.bufferPos+=8,e},de=(i,e)=>{if(i.bufferPos+e>i.bytes.length)throw new RangeError("Reading past end of slice.");let t="";for(let r=0;r<e;r++)t+=String.fromCharCode(i.bytes[i.bufferPos++]);return t};var Lt=8,Dr=16,bt=i=>{let e=B(i),t=de(i,4),r=8;e===1&&(e=Ye(i),r=16);let n=e-r;return n<0?null:{name:t,totalSize:e,headerSize:r,contentSize:n}},or=i=>Nt(i)/65536,To=i=>Nt(i)/1073741824,ko=i=>{let e=0;for(let t=0;t<4;t++){e<<=7;let r=z(i);if(e|=r&127,(r&128)===0)break}return e},at=i=>{let e=Ce(i);return i.skip(2),Be.decode(W(i,e))},Ff=i=>{let e=bt(i);if(!e||e.name!=="data")return null;let t=B(i);i.skip(4);let r=W(i,e.contentSize-8);switch(t){case 1:return Be.decode(r);case 2:return new TextDecoder("utf-16be").decode(r);case 13:return new nr(r,"image/jpeg");case 14:return new nr(r,"image/png");case 27:return new nr(r,"image/bmp");default:return r}};var I;(function(i){i[i.EBML=440786851]="EBML",i[i.EBMLVersion=17030]="EBMLVersion",i[i.EBMLReadVersion=17143]="EBMLReadVersion",i[i.EBMLMaxIDLength=17138]="EBMLMaxIDLength",i[i.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",i[i.DocType=17026]="DocType",i[i.DocTypeVersion=17031]="DocTypeVersion",i[i.DocTypeReadVersion=17029]="DocTypeReadVersion",i[i.Void=236]="Void",i[i.Segment=408125543]="Segment",i[i.SeekHead=290298740]="SeekHead",i[i.Seek=19899]="Seek",i[i.SeekID=21419]="SeekID",i[i.SeekPosition=21420]="SeekPosition",i[i.Duration=17545]="Duration",i[i.Info=357149030]="Info",i[i.TimestampScale=2807729]="TimestampScale",i[i.MuxingApp=19840]="MuxingApp",i[i.WritingApp=22337]="WritingApp",i[i.Tracks=374648427]="Tracks",i[i.TrackEntry=174]="TrackEntry",i[i.TrackNumber=215]="TrackNumber",i[i.TrackUID=29637]="TrackUID",i[i.TrackType=131]="TrackType",i[i.FlagEnabled=185]="FlagEnabled",i[i.FlagDefault=136]="FlagDefault",i[i.FlagForced=21930]="FlagForced",i[i.FlagLacing=156]="FlagLacing",i[i.Name=21358]="Name",i[i.Language=2274716]="Language",i[i.LanguageBCP47=2274717]="LanguageBCP47",i[i.CodecID=134]="CodecID",i[i.CodecPrivate=25506]="CodecPrivate",i[i.CodecDelay=22186]="CodecDelay",i[i.SeekPreRoll=22203]="SeekPreRoll",i[i.DefaultDuration=2352003]="DefaultDuration",i[i.Video=224]="Video",i[i.PixelWidth=176]="PixelWidth",i[i.PixelHeight=186]="PixelHeight",i[i.Audio=225]="Audio",i[i.SamplingFrequency=181]="SamplingFrequency",i[i.Channels=159]="Channels",i[i.BitDepth=25188]="BitDepth",i[i.SimpleBlock=163]="SimpleBlock",i[i.BlockGroup=160]="BlockGroup",i[i.Block=161]="Block",i[i.BlockAdditions=30113]="BlockAdditions",i[i.BlockMore=166]="BlockMore",i[i.BlockAdditional=165]="BlockAdditional",i[i.BlockAddID=238]="BlockAddID",i[i.BlockDuration=155]="BlockDuration",i[i.ReferenceBlock=251]="ReferenceBlock",i[i.Cluster=524531317]="Cluster",i[i.Timestamp=231]="Timestamp",i[i.Cues=475249515]="Cues",i[i.CuePoint=187]="CuePoint",i[i.CueTime=179]="CueTime",i[i.CueTrackPositions=183]="CueTrackPositions",i[i.CueTrack=247]="CueTrack",i[i.CueClusterPosition=241]="CueClusterPosition",i[i.Colour=21936]="Colour",i[i.MatrixCoefficients=21937]="MatrixCoefficients",i[i.TransferCharacteristics=21946]="TransferCharacteristics",i[i.Primaries=21947]="Primaries",i[i.Range=21945]="Range",i[i.Projection=30320]="Projection",i[i.ProjectionType=30321]="ProjectionType",i[i.ProjectionPoseRoll=30325]="ProjectionPoseRoll",i[i.Attachments=423732329]="Attachments",i[i.AttachedFile=24999]="AttachedFile",i[i.FileDescription=18046]="FileDescription",i[i.FileName=18030]="FileName",i[i.FileMediaType=18016]="FileMediaType",i[i.FileData=18012]="FileData",i[i.FileUID=18094]="FileUID",i[i.Chapters=272869232]="Chapters",i[i.Tags=307544935]="Tags",i[i.Tag=29555]="Tag",i[i.Targets=25536]="Targets",i[i.TargetTypeValue=26826]="TargetTypeValue",i[i.TargetType=25546]="TargetType",i[i.TagTrackUID=25541]="TagTrackUID",i[i.TagEditionUID=25545]="TagEditionUID",i[i.TagChapterUID=25540]="TagChapterUID",i[i.TagAttachmentUID=25542]="TagAttachmentUID",i[i.SimpleTag=26568]="SimpleTag",i[i.TagName=17827]="TagName",i[i.TagLanguage=17530]="TagLanguage",i[i.TagString=17543]="TagString",i[i.TagBinary=17541]="TagBinary"})(I||(I={}));var D_=[I.EBML,I.Segment],di=[I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],vo=[...D_,...di];var wl=8,Ve=2,ct=2*wl,_l=i=>{let e=z(i);if(i.skip(-1),e===0)return null;let t=1,r=128;for(;(e&r)===0;)t++,r>>=1;return t},fi=i=>{let e=z(i);if(e===0)return null;let t=1,r=128;for(;(e&r)===0;)t++,r>>=1;let s=e&r-1;for(let n=1;n<t;n++)s*=256,s+=z(i);return s},J=(i,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let t=0;for(let r=0;r<e;r++)t*=256,t+=z(i);return t},Df=(i,e)=>{let t=J(i,e);return t&1<<e*8-1&&(t-=2**(e*8)),t},Po=i=>{let e=_l(i);return e===null?null:J(i,e)},Sl=i=>{let e=z(i);return e===255?e=null:(i.skip(-1),e=fi(i),e===72057594037927940&&(e=null)),e},lt=i=>{let e=Po(i);if(e===null)return null;let t=Sl(i);return{id:e,size:t}},ar=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return String.fromCharCode(...t.subarray(0,r))},mi=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return Be.decode(t.subarray(0,r))},Co=(i,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?Bf(i):So(i)},Eo=async(i,e,t,r)=>{let s=new Set(t),n=e;for(;r===null||n<r;){let o=i.requestSliceRange(n,Ve,ct);if(o instanceof Promise&&(o=await o),!o)break;let a=lt(o);if(!a)break;if(s.has(a.id))return{pos:n,found:!0};Vt(a.size),n=o.filePos+a.size}return{pos:r!==null&&r>n?r:n,found:!1}},Tl=async(i,e,t,r)=>{let n=new Set(t),o=e;for(;o<r;){let a=i.requestSliceRange(o,0,Math.min(65536,r-o));if(a instanceof Promise&&(a=await a),!a||a.length<wl)break;for(let c=0;c<a.length-wl;c++){a.filePos=o;let l=Po(a);if(l!==null&&n.has(l))return o;o++}}return null},ut={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function Vt(i){if(i===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Rf=i=>{let t=(i.hasVideo?"video/":i.hasAudio?"audio/":"application/")+(i.isWebM?"webm":"x-matroska");if(i.codecStrings.length>0){let r=[...new Set(i.codecStrings.filter(Boolean))];t+=`; codecs="${r.join(", ")}"`}return t};var R_={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},O_={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},U_={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},Of=1483304551,Uf=1231971951,z_=(i,e,t,r)=>Math.floor(i===3?(12*e/t+r)*4:144*e/t+r),zf=(i,e)=>i===3?e===3?21:36:e===3?13:21,Gf=(i,e)=>{let t=i>>>24,r=i>>>16&255,s=i>>>8&255,n=i&255;if(t!==255&&r!==255&&s!==255&&n!==255)return{header:null,bytesAdvanced:4};if(t!==255)return{header:null,bytesAdvanced:1};if((r&224)!==224)return{header:null,bytesAdvanced:1};let o=r>>3&3,a=r>>1&3,c=s>>4&15,l=s>>2&3,u=s>>1&1,h=n>>6&3,d=n>>4&3,f=n>>3&1,m=n>>2&1,p=n&3,g=o===3?R_[a]?.[c]:O_[a]?.[c];if(!g||g===-1)return{header:null,bytesAdvanced:1};let y=g*1e3,x=U_[o]?.[l];if(!x||x===-1)return{header:null,bytesAdvanced:1};let w=z_(a,y,x,u);if(e!==null&&e<w)return{header:null,bytesAdvanced:1};let _;return o===3?_=a===3?384:1152:a===3?_=384:a===2?_=1152:_=576,{header:{totalSize:w,mpegVersionId:o,layer:a,bitrate:y,frequencyIndex:l,sampleRate:x,channel:h,modeExtension:d,copyright:f,original:m,emphasis:p,audioSamplesInFrame:_},bytesAdvanced:1}};var Ao=i=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=i&e,e>>=8;return t};var gi;(function(i){i[i.Unsynchronisation=128]="Unsynchronisation",i[i.ExtendedHeader=64]="ExtendedHeader",i[i.ExperimentalIndicator=32]="ExperimentalIndicator",i[i.Footer=16]="Footer"})(gi||(gi={}));var xi;(function(i){i[i.ISO_8859_1=0]="ISO_8859_1",i[i.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",i[i.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",i[i.UTF_8=3]="UTF_8"})(xi||(xi={}));var Ss=128,bi=10,yi=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],Ts=async(i,e,t)=>{let r=e;for(;t===null||r<t;){let s=i.requestSlice(r,4);if(s instanceof Promise&&(s=await s),!s)break;let n=B(s),o=Gf(n,i.fileSize!==null?i.fileSize-r:null);if(o.header)return{header:o.header,startPos:r};r+=o.bytesAdvanced}return null},Lf=(i,e)=>{let t=i.filePos;e.raw??={},e.raw.TAG??=W(i,Ss-3),i.filePos=t;let r=pi(i,30);r&&(e.title??=r);let s=pi(i,30);s&&(e.artist??=s);let n=pi(i,30);n&&(e.album??=n);let o=pi(i,4),a=Number.parseInt(o,10);Number.isInteger(a)&&a>0&&(e.date??=new Date(a,0,1));let c=W(i,30),l;if(c[28]===0&&c[29]!==0){let h=c[29];h>0&&(e.trackNumber??=h),i.skip(-30),l=pi(i,28),i.skip(2)}else i.skip(-30),l=pi(i,30);l&&(e.comment??=l);let u=z(i);u<yi.length&&(e.genre??=yi[u])},pi=(i,e)=>{let t=W(i,e),r=Mr(t.indexOf(0),t.length),s=t.subarray(0,r),n="";for(let o=0;o<s.length;o++)n+=String.fromCharCode(s[o]);return n.trimEnd()},ks=i=>{let e=i.filePos,t=de(i,3),r=z(i),s=z(i),n=z(i),o=B(i);if(t!=="ID3"||r===255||s===255||(o&2155905152)!==0)return i.filePos=e,null;let a=Ao(o);return{majorVersion:r,revision:s,flags:n,size:a}},Vf=(i,e,t)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let r=W(i,e.size),s=new kl(e,r);if(e.flags&gi.Footer&&s.removeFooter(),e.flags&gi.Unsynchronisation&&e.majorVersion===3&&s.ununsynchronizeAll(),e.flags&gi.ExtendedHeader){let n=s.readU32();e.majorVersion===3?s.pos+=n:s.pos+=n-4}for(;s.pos<=s.bytes.length-s.frameHeaderSize();){let n=s.readId3V2Frame();if(!n)break;let o=s.pos,a=s.pos+n.size,c=!1,l=!1,u=!1;if(e.majorVersion===3?(c=!!(n.flags&64),l=!!(n.flags&128)):e.majorVersion===4&&(c=!!(n.flags&4),l=!!(n.flags&8),u=!!(n.flags&2)||!!(e.flags&gi.Unsynchronisation)),c){console.warn(`Skipping encrypted ID3v2 frame ${n.id}`),s.pos=a;continue}if(l){console.warn(`Skipping compressed ID3v2 frame ${n.id}`),s.pos=a;continue}switch(u&&s.ununsynchronizeRegion(s.pos,a),t.raw??={},n.id[0]==="T"?t.raw[n.id]??=s.readId3V2EncodingAndText(a):t.raw[n.id]??=s.readBytes(n.size),s.pos=o,n.id){case"TIT2":case"TT2":t.title??=s.readId3V2EncodingAndText(a);break;case"TIT3":case"TT3":t.description??=s.readId3V2EncodingAndText(a);break;case"TPE1":case"TP1":t.artist??=s.readId3V2EncodingAndText(a);break;case"TALB":case"TAL":t.album??=s.readId3V2EncodingAndText(a);break;case"TPE2":case"TP2":t.albumArtist??=s.readId3V2EncodingAndText(a);break;case"TRCK":case"TRK":{let d=s.readId3V2EncodingAndText(a).split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(t.trackNumber??=f),m&&Number.isInteger(m)&&m>0&&(t.tracksTotal??=m)}break;case"TPOS":case"TPA":{let d=s.readId3V2EncodingAndText(a).split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(t.discNumber??=f),m&&Number.isInteger(m)&&m>0&&(t.discsTotal??=m)}break;case"TCON":case"TCO":{let h=s.readId3V2EncodingAndText(a),d=/^\((\d+)\)/.exec(h);if(d){let f=Number.parseInt(d[1]);if(yi[f]!==void 0){t.genre??=yi[f];break}}if(d=/^\d+$/.exec(h),d){let f=Number.parseInt(d[0]);if(yi[f]!==void 0){t.genre??=yi[f];break}}t.genre??=h}break;case"TDRC":case"TDAT":{let h=s.readId3V2EncodingAndText(a),d=new Date(h);Number.isNaN(d.getTime())||(t.date??=d)}break;case"TYER":case"TYE":{let h=s.readId3V2EncodingAndText(a),d=Number.parseInt(h,10);Number.isInteger(d)&&(t.date??=new Date(d,0,1))}break;case"USLT":case"ULT":{let h=s.readU8();s.pos+=3,s.readId3V2Text(h,a),t.lyrics??=s.readId3V2Text(h,a)}break;case"COMM":case"COM":{let h=s.readU8();s.pos+=3,s.readId3V2Text(h,a),t.comment??=s.readId3V2Text(h,a)}break;case"APIC":case"PIC":{let h=s.readId3V2TextEncoding(),d;if(e.majorVersion===2){let g=s.readAscii(3);d=g==="PNG"?"image/png":g==="JPG"?"image/jpeg":"image/*"}else d=s.readId3V2Text(h,a);let f=s.readU8(),m=s.readId3V2Text(h,a).trimEnd(),p=a-s.pos;if(p>=0){let g=s.readBytes(p);t.images||(t.images=[]),t.images.push({data:g,mimeType:d,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:m})}}break;default:s.pos+=n.size;break}s.pos=a}},kl=class{constructor(e,t){this.header=e,this.bytes=t,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let t=0;t<this.bytes.length;t++){let r=this.bytes[t];e.push(r),r===255&&t!==this.bytes.length-1&&this.bytes[t]===0&&t++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,t){let r=[];for(let o=e;o<t;o++){let a=this.bytes[o];r.push(a),a===255&&o!==t-1&&this.bytes[o+1]===0&&o++}let s=this.bytes.subarray(0,e),n=this.bytes.subarray(t);this.bytes=new Uint8Array(s.length+r.length+n.length),this.bytes.set(s,0),this.bytes.set(r,s.length),this.bytes.set(n,s.length+r.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-bi),this.view=new DataView(this.bytes.buffer)}readBytes(e){let t=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,t}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),t=this.view.getUint8(this.pos+1);return this.pos+=3,e*256+t}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let t="";for(let r=0;r<e;r++)t+=String.fromCharCode(this.view.getUint8(this.pos+r));return this.pos+=e,t}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let t=this.readU24();return{id:e,size:t,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let t=this.readU32(),r=this.header.majorVersion===4?Ao(t):t,s=this.readU16(),n=this.pos,o=a=>{let c=this.pos+a;if(c>this.bytes.length)return!1;if(c<=this.bytes.length-this.frameHeaderSize()){this.pos+=a;let l=this.readAscii(4);if(l!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(l))return!1}return!0};if(!o(r)){let a=this.header.majorVersion===4?t:Ao(t);o(a)&&(r=a)}return this.pos=n,{id:e,size:r,flags:s}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,t){let r=this.pos,s=this.readBytes(t);switch(e){case xi.ISO_8859_1:{let n="";for(let o=0;o<s.length;o++){let a=s[o];if(a===0){this.pos=r+o+1;break}n+=String.fromCharCode(a)}return n}case xi.UTF_16_WITH_BOM:if(s[0]===255&&s[1]===254){let n=new TextDecoder("utf-16le"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(2,o))}else if(s[0]===254&&s[1]===255){let n=new TextDecoder("utf-16be"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(2,o))}else{let n=Mr(s.findIndex(o=>o===0),s.length);return this.pos=r+Math.min(n+1,s.length),Be.decode(s.subarray(0,n))}case xi.UTF_16_BE_NO_BOM:{let n=new TextDecoder("utf-16be"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(0,o))}case xi.UTF_8:{let n=Mr(s.findIndex(o=>o===0),s.length);return this.pos=r+Math.min(n+1,s.length),Be.decode(s.subarray(0,n))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let t=this.readId3V2TextEncoding();return this.readId3V2Text(t,e)}};var vl=1399285583,G_=79764919,Wf=new Uint32Array(256);for(let i=0;i<256;i++){let e=i<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^G_:e<<1;Wf[i]=e>>>0&4294967295}var Hf=i=>{let e=oe(i),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let s=0;s<i.length;s++){let n=i[s];r=(r<<8^Wf[r>>>24^n])>>>0}return e.setUint32(22,t,!0),r},jf=(i,e,t)=>{let r=0,s=null;if(i.length>0)if(e.codec==="vorbis"){k(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<mf(n-1))-1<<1,c=(i[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=t,u=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[u],u===1){let h=(a|1)+1,d=i[0]&h?1:0;l=e.vorbisInfo.blocksizes[d]}r=l!==null?l+s>>2:0}else e.codec==="opus"&&(r=Pf(i).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},$f=i=>{let e="audio/ogg";if(i.codecStrings){let t=[...new Set(i.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var cr=27,Rr=282,qf=Rr+65025,wi=i=>{let e=i.filePos;if(Fr(i)!==vl)return null;i.skip(1);let r=z(i),s=Mf(i),n=Fr(i),o=Fr(i),a=Fr(i),c=z(i),l=new Uint8Array(c);for(let f=0;f<c;f++)l[f]=z(i);let u=27+c,h=l.reduce((f,m)=>f+m,0),d=u+h;return{headerStartPos:e,totalSize:d,dataStartPos:e+u,dataSize:h,headerType:r,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:l}},Xf=(i,e)=>{for(;i.filePos<e-3;){let t=Fr(i),r=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(r!==a&&s!==a&&n!==a&&o!==a)){if(i.skip(-4),t===vl)return!0;i.skip(1)}}return!1};var We=class{constructor(e){this.input=e}};var Io=[],Pl=[];var Ee=new Uint8Array(0),ce=class i{constructor(e,t,r,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=r,this.duration=s,this.sequenceNumber=n,e===Ee&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(r))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===Ee}get microsecondTimestamp(){return Math.trunc(sr*this.timestamp)}get microsecondDuration(){return Math.trunc(sr*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new i(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new i(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Ps=class i{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(sr*this.timestamp)}get microsecondDuration(){return Math.trunc(sr*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=ir(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.displayWidth,this.codedHeight=e.displayHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new i(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*sr),duration:Math.trunc((t.duration??0)*sr)}),t);let r=0,s=0;if("naturalWidth"in e?(r=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(r=e.videoWidth,s=e.videoHeight):"width"in e&&(r=Number(e.width),s=Number(e.height)),!r||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(r,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});k(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=r,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?new i(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new i(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new i(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(vs(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!ll(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(k(this._data!==null),vs(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)ir(e).set(this._data);else{let r=this._data.getContext("2d",{alpha:!1});k(r);let s=r.getImageData(0,0,this.codedWidth,this.codedHeight);ir(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,r,s,n,o,a,c,l){let u=0,h=0,d=this.displayWidth,f=this.displayHeight,m=0,p=0,g=this.displayWidth,y=this.displayHeight;if(o!==void 0?(u=t,h=r,d=s,f=n,m=o,p=a,c!==void 0?(g=c,y=l):(g=d,y=f)):(m=t,p=r,s!==void 0&&(g=s,y=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(u))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(p))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(y)||y<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[u,h,d,f]=[h,this.codedHeight-u-d,f,d]:this.rotation===180?[u,h]=[this.codedWidth-u-d,this.codedHeight-h-f]:this.rotation===270&&([u,h,d,f]=[this.codedWidth-h-f,u,f,d]);let x=this.toCanvasImageSource();e.save();let w=m+g/2,_=p+y/2;e.translate(w,_),e.rotate(this.rotation*Math.PI/180);let S=this.rotation%180===0?1:g/y;e.scale(1/S,S),e.drawImage(x,u,h,d,f,-g/2,-y/2,g,y),e.restore()}drawWithFit(e,t){let r=e.canvas.width,s=e.canvas.height,n=t.rotation??this.rotation,o,a,c,l;if(t.fit==="fill")o=0,a=0,c=r,l=s;else{let[h,d]=n%180===0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth],f=t.fit==="contain"?Math.min(r/h,s/d):Math.max(r/h,s/d);c=h*f,l=d*f,o=(r-c)/2,a=(s-l)/2}let u=n%180===0?1:c/l;e.translate(r/2,s/2),e.rotate(n*Math.PI/180),e.scale(1/u,u),e.translate(-r/2,-s/2),e.drawImage(this.toCanvasImageSource(),o,a,c,l)}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(k(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},vs=i=>typeof VideoFrame<"u"&&i instanceof VideoFrame;var _i=i=>{if(!i||typeof i!="object")throw new TypeError("options must be an object.");if(i.metadataOnly!==void 0&&typeof i.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(i.verifyKeyPackets!==void 0&&typeof i.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(i.verifyKeyPackets&&i.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Or=i=>{if(typeof i!="number"||Number.isNaN(i))throw new TypeError("timestamp must be a number.")},Cl=(i,e,t)=>t.verifyKeyPackets?e.then(async r=>{if(!r||r.type==="delta")return r;let s=await i.determinePacketType(r);return s&&(r.type=s),r}):e,Si=class{constructor(e){if(!(e instanceof Ti))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return _i(e),Cl(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Or(e),_i(t),Cl(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");return _i(t),Cl(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Or(e),_i(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let r=await this._track._backing.getKeyPacket(e,t);return!r||r.type==="delta"?r:await this._track.determinePacketType(r)==="delta"?this.getKeyPacket(r.timestamp-1/this._track.timeResolution,t):r}async getNextKeyPacket(e,t={}){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");if(_i(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let r=await this._track._backing.getNextKeyPacket(e,t);return!r||r.type==="delta"?r:await this._track.determinePacketType(r)==="delta"?this.getNextKeyPacket(r,t):r}packets(e,t,r={}){if(e!==void 0&&!(e instanceof ce))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!r?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof ce))throw new TypeError("endPacket must be an EncodedPacket.");_i(r);let s=[],{promise:n,resolve:o}=Fe(),{promise:a,resolve:c}=Fe(),l=!1,u=!1,h=null,d=[],f=()=>Math.max(2,d.length);return(async()=>{let m=e??await this.getFirstPacket(r);for(;m&&!u&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>f()){({promise:a,resolve:c}=Fe()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Fe(),m=await this.getNextPacket(m,r)}l=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),p=performance.now();for(d.push(p);d.length>0&&p-d[0]>=1e3;)d.shift();return c(),{value:m,done:!1}}else{if(l)return{value:void 0,done:!0};await n}}},async return(){return u=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},El=class{constructor(e,t){this.onSample=e,this.onError=t}},Mo=class{mediaSamplesInRange(e=0,t=1/0){Or(e),Or(t);let r=[],s=!1,n=null,{promise:o,resolve:a}=Fe(),{promise:c,resolve:l}=Fe(),u=!1,h=!1,d=!1,f=null;return(async()=>{let m=new Error,p=await this._createDecoder(S=>{if(l(),S.timestamp>=t&&(h=!0),h){S.close();return}n&&(S.timestamp>e?(r.push(n),s=!0):n.close()),S.timestamp>=e&&(r.push(S),s=!0),n=s?null:S,r.length>0&&(a(),{promise:o,resolve:a}=Fe())},S=>{f||(S.stack=m.stack,f=S,a())}),g=this._createPacketSink(),y=await g.getKeyPacket(e,{verifyKeyPackets:!0})??await g.getFirstPacket();if(!y)return;let x=y,w;if(t<1/0){let S=await g.getPacket(t),T=S?S.type==="key"&&S.timestamp===t?S:await g.getNextKeyPacket(S,{verifyKeyPackets:!0}):null;T&&(w=T)}let _=g.packets(y,w);for(await _.next();x&&!h;){let S=Yf(r.length);if(r.length+p.getDecodeQueueSize()>S){({promise:c,resolve:l}=Fe()),await c;continue}p.decode(x);let T=await _.next();if(T.done)break;x=T.value}await _.return(),d||await p.flush(),p.close(),!s&&n&&r.push(n),u=!0,a()})().catch(m=>{f||(f=m,a())}),{async next(){for(;;){if(d)return{value:void 0,done:!0};if(f)throw f;if(r.length>0){let m=r.shift();return l(),{value:m,done:!1}}else if(!u)await o;else return{value:void 0,done:!0}}},async return(){d=!0,h=!0,l(),a(),n?.close();for(let m of r)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){df(e);let t=hf(e),r=[],s=[],{promise:n,resolve:o}=Fe(),{promise:a,resolve:c}=Fe(),l=!1,u=!1,h=null,d=f=>{s.push(f),o(),{promise:n,resolve:o}=Fe()};return(async()=>{let f=new Error,m=await this._createDecoder(S=>{if(c(),u){S.close();return}let T=0;for(;r.length>0&&S.timestamp-r[0]>-1e-10;)T++,r.shift();if(T>0)for(let v=0;v<T;v++)d(v<T-1?S.clone():S);else S.close()},S=>{h||(S.stack=f.stack,h=S,o())}),p=this._createPacketSink(),g=null,y=null,x=-1,w=async()=>{k(y);let S=y;for(m.decode(S);S.sequenceNumber<x;){let T=Yf(s.length);for(;s.length+m.getDecodeQueueSize()>T&&!u;)({promise:a,resolve:c}=Fe()),await a;if(u)break;let v=await p.getNextPacket(S);k(v),m.decode(v),S=v}x=-1},_=async()=>{await m.flush();for(let S=0;S<r.length;S++)d(null);r.length=0};for await(let S of t){if(Or(S),u)break;let T=await p.getPacket(S),v=T&&await p.getKeyPacket(S,{verifyKeyPackets:!0});if(!v){x!==-1&&(await w(),await _()),d(null),g=null;continue}g&&(v.sequenceNumber!==y.sequenceNumber||T.timestamp<g.timestamp)&&(await w(),await _()),r.push(T.timestamp),x=Math.max(T.sequenceNumber,x),g=T,y=v}u||(x!==-1&&await w(),await _()),m.close(),l=!0,o()})().catch(f=>{h||(h=f,o())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let f=s.shift();return k(f!==void 0),c(),{value:f,done:!1}}else if(!l)await n;else return{value:void 0,done:!0}}},async return(){u=!0,c(),o();for(let f of s)f?.close();return{value:void 0,done:!0}},async throw(f){throw f},[Symbol.asyncIterator](){return this}}}},Yf=i=>i===0?40:8,Al=class extends El{constructor(e,t,r,s,n,o){super(e,t),this.codec=r,this.decoderConfig=s,this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new io,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1;let a=Io.find(c=>c.supports(r,s));if(a)this.customDecoder=new a,this.customDecoder.codec=r,this.customDecoder.config=s,this.customDecoder.onSample=c=>{if(!(c instanceof Ps))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(c)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let c=l=>{if(fo()){if(this.sampleQueue.length>0&&l.timestamp>=ve(this.sampleQueue).timestamp){for(let u of this.sampleQueue)this.finalizeAndEmitSample(u);this.sampleQueue.length=0}ot(this.sampleQueue,l,u=>u.timestamp)}else{let u=this.inputTimestamps.shift();k(u!==void 0),l.setTimestamp(u),this.finalizeAndEmitSample(l)}};this.decoder=new VideoDecoder({output:l=>c(new Ps(l)),error:t}),this.decoder.configure(s)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(k(this.decoder),this.decoder.decodeQueueSize)}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(yl(e.data,this.decoderConfig).some(s=>{let n=zt(s);return n===De.RASL_N||n===De.RASL_R}))return;this.raslSkipped=!0}this.currentPacketIndex++,this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(k(this.decoder),fo()||ot(this.inputTimestamps,e.timestamp,t=>t),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(k(this.decoder),await this.decoder.flush()),fo()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(k(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Bo=class extends Mo{constructor(e){if(!(e instanceof wt))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let r=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return k(r&&n),new Al(e,t,r,n,s,o)}_createPacketSink(){return new Si(this._videoTrack)}async getSample(e){Or(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}},Cs=class{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof wt))throw new TypeError("videoTrack must be an InputVideoTrack.");if(t&&typeof t!="object")throw new TypeError("options must be an object.");if(t.width!==void 0&&(!Number.isInteger(t.width)||t.width<=0))throw new TypeError("options.width, when defined, must be a positive integer.");if(t.height!==void 0&&(!Number.isInteger(t.height)||t.height<=0))throw new TypeError("options.height, when defined, must be a positive integer.");if(t.fit!==void 0&&!["fill","contain","cover"].includes(t.fit))throw new TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(t.width!==void 0&&t.height!==void 0&&t.fit===void 0)throw new TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180 or 270.");if(t.poolSize!==void 0&&(typeof t.poolSize!="number"||!Number.isInteger(t.poolSize)||t.poolSize<0))throw new TypeError("poolSize must be a non-negative integer.");let r=t.rotation??e.rotation,[s,n]=r%180===0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],o=s/n;t.width!==void 0&&t.height===void 0?(s=t.width,n=Math.round(s/o)):t.width===void 0&&t.height!==void 0?(n=t.height,s=Math.round(n*o)):t.width!==void 0&&t.height!==void 0&&(s=t.width,n=t.height),this._videoTrack=e,this._width=s,this._height=n,this._rotation=r,this._fit=t.fit??"fill",this._videoSampleSink=new Bo(e),this._canvasPool=Array.from({length:t.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let t=this._canvasPool[this._nextCanvasIndex],r=!1;t||(typeof document<"u"?(t=document.createElement("canvas"),t.width=this._width,t.height=this._height):t=new OffscreenCanvas(this._width,this._height),this._canvasPool.length>0&&(this._canvasPool[this._nextCanvasIndex]=t),r=!0),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let s=t.getContext("2d",{alpha:!1});k(s),s.resetTransform(),r||s.clearRect(0,0,this._width,this._height),e.drawWithFit(s,{fit:this._fit,rotation:this._rotation});let n={canvas:t,timestamp:e.timestamp,duration:e.duration};return e.close(),n}async getCanvas(e){Or(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return fl(this._videoSampleSink.samples(e,t),r=>this._videoSampleToWrappedCanvas(r))}canvasesAtTimestamps(e){return fl(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var Ti=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof wt}isAudioTrack(){return this instanceof Ae}get id(){return this._backing.getId()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Si(this),r=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;r=Math.min(r,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-r)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-r)).toPrecision(16)):0}}},wt=class extends Ti{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return k(t!==null),Io.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:Ef(this,e)}},Ae=class extends Ti{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return k(t!==null),Pl.some(r=>r.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Wt;(function(i){i[i.PCM=1]="PCM",i[i.IEEE_FLOAT=3]="IEEE_FLOAT",i[i.ALAW=6]="ALAW",i[i.MULAW=7]="MULAW",i[i.EXTENSIBLE=65534]="EXTENSIBLE"})(Wt||(Wt={}));var Fo=class extends We{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),k(e);let t=de(e,4),r=t!=="RIFX",s=t==="RF64",n=Gt(e,r),o=s?this.reader.fileSize:Math.min(n+8,this.reader.fileSize??1/0);if(de(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let c=0,l=null,u=e.filePos;for(;o===null||u<o;){let d=this.reader.requestSlice(u,8);if(d instanceof Promise&&(d=await d),!d)break;let f=de(d,4),m=Gt(d,r),p=d.filePos;if(s&&c===0&&f!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(f==="fmt ")await this.parseFmtChunk(p,m,r);else if(f==="data"){if(l??=m,this.dataStart=d.filePos,this.dataSize=Math.min(l,(o??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(f==="ds64"){let g=bl(d,r);l=bl(d,r),o=Math.min(g+8,this.reader.fileSize??1/0)}else f==="LIST"&&await this.parseListChunk(p,m,r);u=p+m+(m&1),c++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let h=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/h)*h,this.tracks.push(new Ae(new Il(this)))})()}async parseFmtChunk(e,t,r){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=ui(s,r),o=ui(s,r),a=Gt(s,r);s.skip(4);let c=ui(s,r),l;if(t===14?l=8:l=ui(s,r),t>=18&&n!==357){let u=ui(s,r),h=t-18;if(Math.min(h,u)>=22&&n===Wt.EXTENSIBLE){s.skip(6);let f=W(s,16);n=f[0]|f[1]<<8}}(n===Wt.MULAW||n===Wt.ALAW)&&(l=8),this.audioInfo={format:n,numberOfChannels:o,sampleRate:a,sampleSizeInBytes:Math.ceil(l/8),blockSizeInBytes:c}}async parseListChunk(e,t,r){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=de(s,4);if(n!=="INFO"&&n!=="INF0")return;let o=s.filePos;for(;o<=e+t-8;){s.filePos=o;let a=de(s,4),c=Gt(s,r),l=W(s,c),u=0;for(let d=0;d<l.length&&l[d]!==0;d++)u++;let h=String.fromCharCode(...l.subarray(0,u));switch(this.metadataTags.raw??={},this.metadataTags.raw[a]=h,a){case"INAM":case"TITL":this.metadataTags.title??=h;break;case"TIT3":this.metadataTags.description??=h;break;case"IART":this.metadataTags.artist??=h;break;case"IPRD":this.metadataTags.album??=h;break;case"IPRT":case"ITRK":case"TRCK":{let d=h.split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),m&&Number.isInteger(m)&&m>0&&(this.metadataTags.tracksTotal??=m)}break;case"ICRD":case"IDIT":{let d=new Date(h);Number.isNaN(d.getTime())||(this.metadataTags.date??=d)}break;case"YEAR":{let d=Number.parseInt(h,10);Number.isInteger(d)&&d>0&&(this.metadataTags.date??=new Date(d,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=h;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=h;break}o+=8+c+(c&1)}}getCodec(){if(k(this.audioInfo),this.audioInfo.format===Wt.MULAW)return"ulaw";if(this.audioInfo.format===Wt.ALAW)return"alaw";if(this.audioInfo.format===Wt.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===Wt.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},ki=2048,Il=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(k(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getNumberOfChannels(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Pe}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){k(this.demuxer.audioInfo);let r=e*ki*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let s=Math.min(ki*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);if(c instanceof Promise&&(c=await c),!c)return null}let n;if(t.metadataOnly)n=Ee;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);c instanceof Promise&&(c=await c),k(c),n=W(c,s)}let o=e*ki/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,o),new ce(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,t){k(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/ki,(this.demuxer.dataSize-1)/(ki*this.demuxer.audioInfo.blockSizeInBytes))),s=await this.getPacketAtIndex(r,t);if(s)return s;if(r===0)return null;k(this.demuxer.reader.fileSize===null);let n=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,t);for(;n;){let o=await this.getNextPacket(n,t);if(!o)break;n=o}return n}getNextPacket(e,t){k(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/ki);return this.getPacketAtIndex(r+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var Ur=class{constructor(){this._sizePromise=null,this.onread=null}async getSizeOrNull(){return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}};var Es=class extends Ur{constructor(e,t={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._readers=new WeakMap,this._blob=e,this._orchestrator=new Do({maxCacheSize:t.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:Zf.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){let t=this._readers.get(e);for(t||(t=this._blob.slice(e.currentPos).stream().getReader(),this._readers.set(e,t));e.currentPos<e.targetPos&&!e.aborted;){let{done:r,value:s}=await t.read();if(r){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Blob reader stopped unexpectedly before all requested data was read.");break}this.onread?.(e.currentPos,e.currentPos+s.length),this._orchestrator.supplyWorkerData(e,s)}e.running=!1}get _supportsRandomAccess(){return!0}},Kf=.5*2**20,As=class extends Ur{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._existingResponses=new WeakMap,this._url=e instanceof URL?e:new URL(e,typeof location<"u"?location.href:void 0),this._options=t,this._getRetryDelay=t.getRetryDelay??(r=>Math.min(2**(r-2),8)),this._orchestrator=new Do({maxCacheSize:t.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:Zf.network})}async _retrieveSize(){let e=new AbortController,t=await ml(this._url,ho(this._options.requestInit??{},{headers:{Range:"bytes=0-"},signal:e.signal}),this._getRetryDelay);if(!t.ok)throw new Error(`Error fetching ${this._url}: ${t.status} ${t.statusText}`);let r,s;if(t.status===206)s=this._getPartialLengthFromRangeResponse(t),r=this._orchestrator.createWorker(0,Math.min(s,Kf));else{let n=t.headers.get("Content-Length");if(n)s=Number(n),r=this._orchestrator.createWorker(0,s),this._orchestrator.options.maxCacheSize=1/0,console.warn("HTTP server did not respond with 206 Partial Content, meaning the entire remote resource now has to be downloaded. For efficient media file streaming across a network, please make sure your server supports range requests.");else throw new Error(`HTTP response (status ${t.status}) must surface Content-Length header.`)}return this._orchestrator.fileSize=s,this._existingResponses.set(r,{response:t,abortController:e}),this._orchestrator.runWorker(r),s}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){for(;!e.aborted;){let t=this._existingResponses.get(e);this._existingResponses.delete(e);let r=t?.abortController,s=t?.response;if(r||(r=new AbortController,s=await ml(this._url,ho(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:r.signal}),this._getRetryDelay)),k(s),!s.ok)throw new Error(`Error fetching ${this._url}: ${s.status} ${s.statusText}`);if(e.currentPos>0&&s.status!==206)throw new Error("HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests.");let n=this._getPartialLengthFromRangeResponse(s),o=e.targetPos-e.currentPos;if(n<o)throw new Error(`HTTP response unexpectedly too short: Needed at least ${o} bytes, got only ${n}.`);if(!s.body)throw new Error("Missing HTTP response body.");let a=s.body.getReader();for(;;){let c;try{c=await a.read()}catch(h){let d=this._getRetryDelay(1);if(d!==null){console.error("Error while reading response stream. Attempting to resume.",h),await new Promise(f=>setTimeout(f,1e3*d));break}else throw h}let{done:l,value:u}=c;if(l){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Response stream reader stopped unexpectedly before all requested data was read.");e.running=!1;return}if(this.onread?.(e.currentPos,e.currentPos+u.length),this._orchestrator.supplyWorkerData(e,u),e.currentPos>=e.targetPos||e.aborted){r.abort(),e.running=!1;return}}}e.running=!1}_getPartialLengthFromRangeResponse(e){let t=e.headers.get("Content-Range");if(t){let r=/\/(\d+)/.exec(t);if(r)return Number(r[1]);throw new Error(`Invalid Content-Range header: ${t}`)}else{let r=e.headers.get("Content-Length");if(r)return Number(r);throw new Error("Partial HTTP response (status 206) must surface either Content-Range or Content-Length header.")}}get _supportsRandomAccess(){return!0}};var Zf={none:(i,e)=>({start:i,end:e}),fileSystem:(i,e)=>(i=Math.floor((i-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:i,end:e}),network:(i,e,t)=>{i=Math.max(0,Math.floor((i-65536)/65536)*65536);for(let s of t){let o=Math.max((s.startPos+s.targetPos)/2,s.targetPos-8388608);if(mo(i,e,o,s.targetPos)){let a=s.targetPos-s.startPos,c=Math.ceil((a+1)/8388608)*8388608,l=2**Math.ceil(Math.log2(a+1)),u=Math.min(l,c);e=Math.max(e,s.startPos+u)}}return e=Math.max(e,i+Kf),{start:i,end:e}}},Do=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0}read(e,t){k(this.fileSize!==null);let r=this.options.prefetchProfile(e,t,this.workers),s=Math.max(r.start,0),n=Math.min(r.end,this.fileSize);k(s<=e&&t<=n);let o=null,a=Q(this.cache,e,x=>x.start),c=a!==-1?this.cache[a]:null;c&&c.start<=e&&t<=c.end&&(c.age=this.nextAge++,o={bytes:c.bytes,view:c.view,offset:c.start});let l=Q(this.cache,s,x=>x.start),u=o?null:new Uint8Array(t-e),h=0,d=s,f=[];if(l!==-1){for(let x=l;x<this.cache.length;x++){let w=this.cache[x];if(w.start>=n)break;if(w.end<=s)continue;let _=Math.max(s,w.start),S=Math.min(n,w.end);if(k(_<=S),d<_&&f.push({start:d,end:_}),d=S,u){let T=Math.max(e,w.start),v=Math.min(t,w.end);if(T<v){let M=T-e;u.set(w.bytes.subarray(T-w.start,v-w.start),M),M===h&&(h=v-e)}}w.age=this.nextAge++}d<n&&f.push({start:d,end:n})}else f.push({start:s,end:n});if(u&&h>=u.length&&(o={bytes:u,view:oe(u),offset:e}),f.length===0)return k(o),o;let{promise:m,resolve:p,reject:g}=Fe(),y=[];for(let x of f){let w=Math.max(e,x.start),_=Math.min(t,x.end);w===x.start&&_===x.end?y.push(x):w<_&&y.push({start:w,end:_})}for(let x of f){let w=u&&{start:e,bytes:u,holes:y,resolve:p,reject:g},_=!1;for(let S of this.workers)if(mo(x.start-131072,x.start,S.currentPos,S.targetPos)){S.targetPos=Math.max(S.targetPos,x.end),_=!0,w&&!S.pendingSlices.includes(w)&&S.pendingSlices.push(w),S.running||this.runWorker(S);break}if(!_){let S=this.createWorker(x.start,x.end);w&&(S.pendingSlices=[w]),this.runWorker(S)}}return o||(k(u),o=m.then(x=>({bytes:x,view:oe(x),offset:e}))),o}createWorker(e,t){let r={startPos:e,currentPos:e,targetPos:t,running:!1,aborted:!1,pendingSlices:[],age:this.nextAge++};for(this.workers.push(r);this.workers.length>this.options.maxWorkerCount;){let s=0,n=this.workers[0];for(let o=1;o<this.workers.length;o++){let a=this.workers[o];a.age<n.age&&(s=o,n=a)}if(n.running&&n.pendingSlices.length>0)break;n.aborted=!0,this.workers.splice(s,1)}return r}runWorker(e){k(!e.running),k(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(t=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(r=>r.reject(t)),e.pendingSlices.length=0;else throw t})}supplyWorkerData(e,t){let r=e.currentPos,s=r+t.length;this.insertIntoCache({start:r,end:s,bytes:t,view:oe(t),age:this.nextAge++}),e.currentPos+=t.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let n=0;n<e.pendingSlices.length;n++){let o=e.pendingSlices[n],a=Math.max(r,o.start),c=Math.min(s,o.start+o.bytes.length);a<c&&o.bytes.set(t.subarray(a-r,c-r),a-o.start);for(let l=0;l<o.holes.length;l++){let u=o.holes[l];r<=u.start&&s>u.start&&(u.start=s),u.end<=u.start&&(o.holes.splice(l,1),l--)}o.holes.length===0&&(o.resolve(o.bytes),e.pendingSlices.splice(n,1),n--)}for(let n=0;n<this.workers.length;n++){let o=this.workers[n];e===o||o.running||mo(r,s,o.currentPos,o.targetPos)&&(this.workers.splice(n,1),n--)}}forgetWorker(e){let t=this.workers.indexOf(e);k(t!==-1),this.workers.splice(t,1)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let t=Q(this.cache,e.start,r=>r.start)+1;if(t>0){let r=this.cache[t-1];if(r.end>=e.end)return;if(r.end>e.start){let s=new Uint8Array(e.end-r.start);s.set(r.bytes,0),s.set(e.bytes,e.start-r.start),this.currentCacheSize+=e.end-r.end,r.bytes=s,r.view=oe(s),r.end=e.end,t--,e=r}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length;for(let r=t+1;r<this.cache.length;r++){let s=this.cache[r];if(e.end<=s.start)break;if(e.end>=s.end){this.cache.splice(r,1),this.currentCacheSize-=s.bytes.length,r--;continue}let n=new Uint8Array(s.end-e.start);n.set(e.bytes,0),n.set(s.bytes,s.start-e.start),this.currentCacheSize-=e.end-s.start,e.bytes=n,e.view=oe(n),e.end=s.end,this.cache.splice(r,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let r=0,s=this.cache[0];for(let n=1;n<this.cache.length;n++){let o=this.cache[n];o.age<s.age&&(r=n,s=o)}if(this.currentCacheSize-s.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(r,1),this.currentCacheSize-=s.bytes.length}}};var N_=new Set(["@day","@mak","@mod","@swr","@xyz","CAME","CNCV","CNFV","CNMN","FIRM","FOV\0","GoPr","LENS","PXMN","SIGM","SNum","TAGS","albm","albr","angl","auth","ccid","cdis","clfn","clid","clsf","cmid","cmnm","coll","cprt","cver","cvru","date","dscp","fsid","gnre","hinv","icnu","info","infu","kgtt","loci","lrcu","mcvr","name","perf","pmcc","reel","rtng","scen","shot","slno","thmb","titl","tnam","urat","uuid","vndr","yrrc","\xA9ART","\xA9TIM","\xA9TSC","\xA9TSZ","\xA9alb","\xA9arg","\xA9ark","\xA9cmt","\xA9cok","\xA9com","\xA9cpy","\xA9day","\xA9dir","\xA9ed1","\xA9ed2","\xA9ed3","\xA9ed4","\xA9ed5","\xA9ed6","\xA9ed7","\xA9ed8","\xA9ed9","\xA9enc","\xA9fmt","\xA9fpt","\xA9frl","\xA9fyw","\xA9gen","\xA9gpt","\xA9grl","\xA9grp","\xA9gyw","\xA9inf","\xA9isr","\xA9lab","\xA9lal","\xA9lyr","\xA9mak","\xA9mal","\xA9mdl","\xA9mod","\xA9nam","\xA9pdk","\xA9phg","\xA9prd","\xA9prf","\xA9prk","\xA9prl","\xA9req","\xA9snk","\xA9snm","\xA9src","\xA9swf","\xA9swk","\xA9swr","\xA9too","\xA9trk","\xA9wrt","\xA9xsp","\xA9xyz","\xA9ysp","\xA9zsp"]),Ro=class extends We{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new Je,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Af({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,Lt,Dr);if(t instanceof Promise&&(t=await t),!t)break;let r=e,s=bt(t);if(!s)break;if(s.name==="ftyp"){let n=de(t,4);this.isQuickTime=n==="qt "}else if(s.name==="moov"){let n=this.reader.requestSlice(t.filePos,s.contentSize);if(n instanceof Promise&&(n=await n),!n)break;this.moovSlice=n,this.readContiguousBoxes(this.moovSlice);for(let o of this.tracks){let a=o.editListPreviousSegmentDurations/this.movieTimescale;o.editListOffset-=Math.round(a*o.timescale)}break}e=r+s.totalSize}if(this.isFragmented&&this.reader.fileSize!==null){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),k(t);let r=B(t),s=this.reader.fileSize-r;if(s>=0&&s<=this.reader.fileSize-Dr){let n=this.reader.requestSliceRange(s,Lt,Dr);if(n instanceof Promise&&(n=await n),n){let o=bt(n);if(o&&o.name==="mfra"){let a=this.reader.requestSlice(n.filePos,o.contentSize);a instanceof Promise&&(a=await a),a&&this.readContiguousBoxes(a)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=t,k(this.moovSlice);let r=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(r),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&ws.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){k(e.info?.type==="audio");let n=bf(e.info.codec),o=[],a=[];for(let c=0;c<t.sampleToChunk.length;c++){let l=t.sampleToChunk[c],u=t.sampleToChunk[c+1],h=(u?u.startChunkIndex:t.chunkOffsets.length)-l.startChunkIndex;for(let d=0;d<h;d++){let f=l.startSampleIndex+d*l.samplesPerChunk,m=f+l.samplesPerChunk,p=Q(t.sampleTimingEntries,f,M=>M.startIndex),g=t.sampleTimingEntries[p],y=Q(t.sampleTimingEntries,m,M=>M.startIndex),x=t.sampleTimingEntries[y],w=g.startDecodeTimestamp+(f-g.startIndex)*g.delta,S=x.startDecodeTimestamp+(m-x.startIndex)*x.delta-w,T=ve(o);T&&T.delta===S?T.count++:o.push({startIndex:l.startChunkIndex+d,startDecodeTimestamp:w,count:1,delta:S});let v=l.samplesPerChunk*n.sampleSize*e.info.numberOfChannels;a.push(v)}l.startSampleIndex=l.startChunkIndex,l.samplesPerChunk=1}t.sampleTimingEntries=o,t.sampleSizes=a}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let n of t.sampleTimingEntries)for(let o=0;o<n.count;o++)t.presentationTimestamps.push({presentationTimestamp:n.startDecodeTimestamp+o*n.delta,sampleIndex:n.startIndex+o});for(let n of t.sampleCompositionTimeOffsets)for(let o=0;o<n.count;o++){let a=n.startIndex+o,c=t.presentationTimestamps[a];c&&(c.presentationTimestamp+=n.offset)}t.presentationTimestamps.sort((n,o)=>n.presentationTimestamp-o.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let n=0;n<t.presentationTimestamps.length;n++)t.presentationTimestampIndexMap[t.presentationTimestamps[n].sampleIndex]=n}return t}async readFragment(e){let t=this.reader.requestSliceRange(e,Lt,Dr);t instanceof Promise&&(t=await t),k(t);let r=bt(t);k(r?.name==="moof");let s=this.reader.requestSlice(e,r.totalSize);s instanceof Promise&&(s=await s),k(s),this.traverseBox(s);let n=ae(this.fragments,e,a=>a.moofOffset);k(n!==-1);let o=this.fragments[n];k(o.moofOffset===e);for(let[a,c]of o.trackData){if(c.startTimestampIsFinal)continue;let l=this.tracks.find(p=>p.id===a),u=0,h=null,d=null,f=Q(l.fragments,e-1,p=>p.moofOffset);f!==-1&&(h=l.fragments[f],d=h,u=h.moofOffset+h.moofSize);let m=u===0;for(;u<=e-Lt;){if(h?.nextFragment)h=h.nextFragment,u=h.moofOffset+h.moofSize;else{let p=this.reader.requestSliceRange(u,Lt,Dr);if(p instanceof Promise&&(p=await p),!p)break;let g=u,y=bt(p);if(!y)break;if(y.name==="moof"){let x=ae(this.fragments,g,_=>_.moofOffset),w;x===-1?w=await this.readFragment(g):w=this.fragments[x],h&&(h.nextFragment=w),h=w,m&&(w.isKnownToBeFirstFragment=!0,m=!1)}u=g+y.totalSize}h&&h.trackData.has(a)&&(d=h)}if(d){let p=d.trackData.get(a);k(p.startTimestampIsFinal),Jf(c,p.endTimestamp)}c.startTimestampIsFinal=!0}return o}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Lt&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Lt;){let r=e.filePos,s=bt(e);if(!s)break;yield{boxInfo:s,slice:e},e.filePos=r+s.totalSize}}traverseBox(e){let t=e.filePos,r=bt(e);if(!r)return!1;let s=e.filePos,n=t+r.totalSize;switch(r.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"mvhd":{let o=z(e);e.skip(3),o===1?(e.skip(16),this.movieTimescale=B(e),this.movieDurationInTimescale=Ye(e)):(e.skip(8),this.movieTimescale=B(e),this.movieDurationInTimescale=B(e))}break;case"trak":{let o={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Pe,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=o,this.readContiguousBoxes(e.slice(s,r.contentSize)),o.id!==-1&&o.timescale!==-1&&o.info!==null){if(o.info.type==="video"&&o.info.width!==-1){let a=o;o.inputTrack=new wt(new Ml(a)),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let a=o;o.inputTrack=new Ae(new Bl(a)),this.tracks.push(o)}}this.currentTrack=null}break;case"tkhd":{let o=this.currentTrack;if(!o)break;let a=z(e);if(!((hi(e)&1)!==0))break;if(a===0)e.skip(8),o.id=B(e),e.skip(4),o.durationInMovieTimescale=B(e);else if(a===1)e.skip(16),o.id=B(e),e.skip(4),o.durationInMovieTimescale=Ye(e);else throw new Error(`Incorrect track header version ${a}.`);e.skip(16);let u=[or(e),or(e),To(e),or(e),or(e),To(e),or(e),or(e),To(e)],h=so(ff(H_(u),90));k(h===0||h===90||h===180||h===270),o.rotation=h}break;case"elst":{let o=this.currentTrack;if(!o)break;let a=z(e);e.skip(3);let c=!1,l=0,u=B(e);for(let h=0;h<u;h++){let d=a===1?Ye(e):B(e),f=a===1?If(e):Nt(e),m=or(e);if(d!==0){if(c){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){l+=d;continue}if(m!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}o.editListPreviousSegmentDurations=l,o.editListOffset=f,c=!0}}}break;case"mdhd":{let o=this.currentTrack;if(!o)break;let a=z(e);e.skip(3),a===0?(e.skip(8),o.timescale=B(e),o.durationInMediaTimescale=B(e)):a===1&&(e.skip(16),o.timescale=B(e),o.durationInMediaTimescale=Ye(e));let c=Ce(e);if(c>0){o.languageCode="";for(let l=0;l<3;l++)o.languageCode=String.fromCharCode(96+(c&31))+o.languageCode,c>>=5;uo(o.languageCode)||(o.languageCode=Pe)}}break;case"hdlr":{let o=this.currentTrack;if(!o)break;e.skip(8);let a=de(e,4);a==="vide"?o.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:a==="soun"&&(o.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let o=this.currentTrack;if(!o)break;o.sampleTableByteOffset=t,this.readContiguousBoxes(e.slice(s,r.contentSize))}break;case"stsd":{let o=this.currentTrack;if(!o||o.info===null||o.sampleTable)break;let a=z(e);e.skip(3);let c=B(e);for(let l=0;l<c;l++){let u=e.filePos,h=bt(e);if(!h)break;o.internalCodecId=h.name;let d=h.name.toLowerCase();if(o.info.type==="video")d==="avc1"?o.info.codec="avc":d==="hvc1"||d==="hev1"?o.info.codec="hevc":d==="vp08"?o.info.codec="vp8":d==="vp09"?o.info.codec="vp9":d==="av01"?o.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${h.name}').`),e.skip(24),o.info.width=Ce(e),o.info.height=Ce(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,u+h.totalSize-e.filePos));else{d==="mp4a"||(d==="opus"?o.info.codec="opus":d==="flac"?o.info.codec="flac":d==="twos"||d==="sowt"||d==="raw "||d==="in24"||d==="in32"||d==="fl32"||d==="fl64"||d==="lpcm"||d==="ipcm"||d==="fpcm"||(d==="ulaw"?o.info.codec="ulaw":d==="alaw"?o.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${h.name}').`))),e.skip(8);let f=Ce(e);e.skip(6);let m=Ce(e),p=Ce(e);e.skip(4);let g=B(e)/65536;if(a===0&&f>0){if(f===1)e.skip(4),p=8*B(e),e.skip(8);else if(f===2){e.skip(4),g=So(e),m=B(e),e.skip(4),p=B(e);let y=B(e);if(e.skip(8),d==="lpcm"){let x=p+7>>3,w=!!(y&1),_=!!(y&2),S=y&4?-1:0;p>0&&p<=64&&(w?p===32&&(o.info.codec=_?"pcm-f32be":"pcm-f32"):S&1<<x-1?x===1?o.info.codec="pcm-s8":x===2?o.info.codec=_?"pcm-s16be":"pcm-s16":x===3?o.info.codec=_?"pcm-s24be":"pcm-s24":x===4&&(o.info.codec=_?"pcm-s32be":"pcm-s32"):x===1&&(o.info.codec="pcm-u8")),o.info.codec===null&&console.warn("Unsupported PCM format.")}}}o.info.numberOfChannels=m,o.info.sampleRate=g,d==="twos"?p===8?o.info.codec="pcm-s8":p===16?o.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${p} for codec 'twos'.`),o.info.codec=null):d==="sowt"?p===8?o.info.codec="pcm-s8":p===16?o.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${p} for codec 'sowt'.`),o.info.codec=null):d==="raw "?o.info.codec="pcm-u8":d==="in24"?o.info.codec="pcm-s24be":d==="in32"?o.info.codec="pcm-s32be":d==="fl32"?o.info.codec="pcm-f32be":d==="fl64"?o.info.codec="pcm-f64be":d==="ipcm"?o.info.codec="pcm-s16be":d==="fpcm"&&(o.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,u+h.totalSize-e.filePos))}}}break;case"avcC":{let o=this.currentTrack;if(!o)break;k(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"hvcC":{let o=this.currentTrack;if(!o)break;k(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"vpcC":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="video"),e.skip(4);let a=z(e),c=z(e),l=z(e),u=l>>4,h=l>>1&7,d=l&1,f=z(e),m=z(e),p=z(e);o.info.vp9CodecInfo={profile:a,level:c,bitDepth:u,chromaSubsampling:h,videoFullRangeFlag:d,colourPrimaries:f,transferCharacteristics:m,matrixCoefficients:p}}break;case"av1C":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="video"),e.skip(1);let a=z(e),c=a>>5,l=a&31,u=z(e),h=u>>7,d=u>>6&1,f=u>>5&1,m=u>>4&1,p=u>>3&1,g=u>>2&1,y=u&3,x=c===2&&d?f?12:10:d?10:8;o.info.av1CodecInfo={profile:c,level:l,tier:h,bitDepth:x,monochrome:m,chromaSubsamplingX:p,chromaSubsamplingY:g,chromaSamplePosition:y}}break;case"colr":{let o=this.currentTrack;if(!o||(k(o.info?.type==="video"),de(e,4)!=="nclx"))break;let c=Ce(e),l=Ce(e),u=Ce(e),h=!!(z(e)&128);o.info.colorSpace={primaries:no[c],transfer:oo[l],matrix:ao[u],fullRange:h}}break;case"wave":this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"esds":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let a=z(e);k(a===3),ko(e),e.skip(2);let c=z(e),l=(c&128)!==0,u=(c&64)!==0,h=(c&32)!==0;if(l&&e.skip(2),u){let g=z(e);e.skip(g)}h&&e.skip(2);let d=z(e);k(d===4);let f=ko(e),m=e.filePos,p=z(e);if(p===64||p===103?(o.info.codec="aac",o.info.aacCodecInfo={isMpeg2:p===103}):p===105||p===107?o.info.codec="mp3":p===221?o.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${p}) - discarding track.`),e.skip(12),f>e.filePos-m){let g=z(e);k(g===5);let y=ko(e);if(o.info.codecDescription=W(e,y),o.info.codec==="aac"){let x=gl(o.info.codecDescription);x.numberOfChannels!==null&&(o.info.numberOfChannels=x.numberOfChannels),x.sampleRate!==null&&(o.info.sampleRate=x.sampleRate)}}}break;case"enda":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),Ce(e)&255&&(o.info.codec==="pcm-s16be"?o.info.codec="pcm-s16":o.info.codec==="pcm-s24be"?o.info.codec="pcm-s24":o.info.codec==="pcm-s32be"?o.info.codec="pcm-s32":o.info.codec==="pcm-f32be"?o.info.codec="pcm-f32":o.info.codec==="pcm-f64be"&&(o.info.codec="pcm-f64"))}break;case"pcmC":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let c=!!(z(e)&1),l=z(e);o.info.codec==="pcm-s16be"?c?l===16?o.info.codec="pcm-s16":l===24?o.info.codec="pcm-s24":l===32?o.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${l}.`),o.info.codec=null):l===16?o.info.codec="pcm-s16be":l===24?o.info.codec="pcm-s24be":l===32?o.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${l}.`),o.info.codec=null):o.info.codec==="pcm-f32be"&&(c?l===32?o.info.codec="pcm-f32":l===64?o.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${l}.`),o.info.codec=null):l===32?o.info.codec="pcm-f32be":l===64?o.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${l}.`),o.info.codec=null));break}case"dOps":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(1);let a=z(e),c=Ce(e),l=B(e),u=_s(e),h=z(e),d;h!==0?d=W(e,2+a):d=new Uint8Array(0);let f=new Uint8Array(19+d.byteLength),m=new DataView(f.buffer);m.setUint32(0,1332770163,!1),m.setUint32(4,1214603620,!1),m.setUint8(8,1),m.setUint8(9,a),m.setUint16(10,c,!0),m.setUint32(12,l,!0),m.setInt16(16,u,!0),m.setUint8(18,h),f.set(d,19),o.info.codecDescription=f,o.info.numberOfChannels=a,o.info.sampleRate=l}break;case"dfLa":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let a=127,c=128,l=e.filePos;for(;e.filePos<n;){let m=z(e),p=hi(e);if((m&a)===0){e.skip(10);let y=B(e),x=y>>>12,w=(y>>9&7)+1;o.info.sampleRate=x,o.info.numberOfChannels=w,e.skip(20)}else e.skip(p);if(m&c)break}let u=e.filePos;e.filePos=l;let h=W(e,u-l),d=new Uint8Array(4+h.byteLength);new DataView(d.buffer).setUint32(0,1716281667,!1),d.set(h,4),o.info.codecDescription=d}break;case"stts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=0,l=0;for(let u=0;u<a;u++){let h=B(e),d=B(e);o.sampleTable.sampleTimingEntries.push({startIndex:c,startDecodeTimestamp:l,count:h,delta:d}),c+=h,l+=h*d}}break;case"ctts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=0;for(let l=0;l<a;l++){let u=B(e),h=Nt(e);o.sampleTable.sampleCompositionTimeOffsets.push({startIndex:c,count:u,offset:h}),c+=u}}break;case"stsz":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=B(e);if(a===0)for(let l=0;l<c;l++){let u=B(e);o.sampleTable.sampleSizes.push(u)}else o.sampleTable.sampleSizes.push(a)}break;case"stz2":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),e.skip(3);let a=z(e),c=B(e),l=W(e,Math.ceil(c*a/8)),u=new fe(l);for(let h=0;h<c;h++){let d=u.readBits(a);o.sampleTable.sampleSizes.push(d)}}break;case"stss":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),o.sampleTable.keySampleIndices=[];let a=B(e);for(let c=0;c<a;c++){let l=B(e)-1;o.sampleTable.keySampleIndices.push(l)}o.sampleTable.keySampleIndices[0]!==0&&o.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let l=0;l<a;l++){let u=B(e)-1,h=B(e),d=B(e);o.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:u,samplesPerChunk:h,sampleDescriptionIndex:d})}let c=0;for(let l=0;l<o.sampleTable.sampleToChunk.length;l++)if(o.sampleTable.sampleToChunk[l].startSampleIndex=c,l<o.sampleTable.sampleToChunk.length-1){let h=o.sampleTable.sampleToChunk[l+1].startChunkIndex-o.sampleTable.sampleToChunk[l].startChunkIndex;c+=h*o.sampleTable.sampleToChunk[l].samplesPerChunk}}break;case"stco":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let c=0;c<a;c++){let l=B(e);o.sampleTable.chunkOffsets.push(l)}}break;case"co64":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let c=0;c<a;c++){let l=Ye(e);o.sampleTable.chunkOffsets.push(l)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"mehd":{let o=z(e);e.skip(3);let a=o===1?Ye(e):B(e);this.movieDurationInTimescale=a}break;case"trex":{e.skip(4);let o=B(e),a=B(e),c=B(e),l=B(e),u=B(e);this.fragmentTrackDefaults.push({trackId:o,defaultSampleDescriptionIndex:a,defaultSampleDuration:c,defaultSampleSize:l,defaultSampleFlags:u})}break;case"tfra":{let o=z(e);e.skip(3);let a=B(e),c=this.tracks.find(x=>x.id===a);if(!c)break;c.fragmentLookupTable=[];let l=B(e),u=(l&48)>>4,h=(l&12)>>2,d=l&3,f=[z,Ce,hi,B],m=f[u],p=f[h],g=f[d],y=B(e);for(let x=0;x<y;x++){let w=o===1?Ye(e):B(e),_=o===1?Ye(e):B(e);m(e),p(e),g(e),c.fragmentLookupTable.push({timestamp:w,moofOffset:_})}}break;case"moof":{this.currentFragment={moofOffset:t,moofSize:r.totalSize,implicitBaseDataOffset:t,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(e.slice(s,r.contentSize)),ot(this.fragments,this.currentFragment,o=>o.moofOffset);for(let[,o]of this.currentFragment.trackData){let a=o.samples[0],c=ve(o.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,a.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,c.byteOffset+c.byteSize)}this.currentFragment=null}break;case"traf":if(k(this.currentFragment),this.readContiguousBoxes(e.slice(s,r.contentSize)),this.currentTrack){let o=this.currentFragment.trackData.get(this.currentTrack.id);if(o){ot(this.currentTrack.fragments,this.currentFragment,l=>l.moofOffset),o.firstKeyFrameTimestamp!==null&&ot(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment,l=>l.moofOffset);let{currentFragmentState:c}=this.currentTrack;k(c),c.startTimestamp!==null&&(Jf(o,c.startTimestamp),o.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{k(this.currentFragment),e.skip(1);let o=hi(e),a=!!(o&1),c=!!(o&2),l=!!(o&8),u=!!(o&16),h=!!(o&32),d=!!(o&65536),f=!!(o&131072),m=B(e),p=this.tracks.find(y=>y.id===m);if(!p)break;let g=this.fragmentTrackDefaults.find(y=>y.trackId===m);this.currentTrack=p,p.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:g?.defaultSampleDescriptionIndex??null,defaultSampleDuration:g?.defaultSampleDuration??null,defaultSampleSize:g?.defaultSampleSize??null,defaultSampleFlags:g?.defaultSampleFlags??null,startTimestamp:null},a?p.currentFragmentState.baseDataOffset=Ye(e):f&&(p.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),c&&(p.currentFragmentState.sampleDescriptionIndex=B(e)),l&&(p.currentFragmentState.defaultSampleDuration=B(e)),u&&(p.currentFragmentState.defaultSampleSize=B(e)),h&&(p.currentFragmentState.defaultSampleFlags=B(e)),d&&(p.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let o=this.currentTrack;if(!o)break;k(o.currentFragmentState);let a=z(e);e.skip(3);let c=a===0?B(e):Ye(e);o.currentFragmentState.startTimestamp=c}break;case"trun":{let o=this.currentTrack;if(!o)break;if(k(this.currentFragment),k(o.currentFragmentState),this.currentFragment.trackData.has(o.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let a=z(e),c=hi(e),l=!!(c&1),u=!!(c&4),h=!!(c&256),d=!!(c&512),f=!!(c&1024),m=!!(c&2048),p=B(e),g=o.currentFragmentState.baseDataOffset;l&&(g+=Nt(e));let y=null;u&&(y=B(e));let x=g;if(p===0){this.currentFragment.implicitBaseDataOffset=x;break}let w=0,_={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(o.id,_);for(let v=0;v<p;v++){let M;h?M=B(e):(k(o.currentFragmentState.defaultSampleDuration!==null),M=o.currentFragmentState.defaultSampleDuration);let P;d?P=B(e):(k(o.currentFragmentState.defaultSampleSize!==null),P=o.currentFragmentState.defaultSampleSize);let C;f?C=B(e):(k(o.currentFragmentState.defaultSampleFlags!==null),C=o.currentFragmentState.defaultSampleFlags),v===0&&y!==null&&(C=y);let E=0;m&&(a===0?E=B(e):E=Nt(e));let D=!(C&65536);_.samples.push({presentationTimestamp:w+E,duration:M,byteOffset:x,byteSize:P,isKeyFrame:D}),x+=P,w+=M}_.presentationTimestamps=_.samples.map((v,M)=>({presentationTimestamp:v.presentationTimestamp,sampleIndex:M})).sort((v,M)=>v.presentationTimestamp-M.presentationTimestamp);for(let v=0;v<_.presentationTimestamps.length;v++){let M=_.presentationTimestamps[v],P=_.samples[M.sampleIndex];if(_.firstKeyFrameTimestamp===null&&P.isKeyFrame&&(_.firstKeyFrameTimestamp=P.presentationTimestamp),v<_.presentationTimestamps.length-1){let C=_.presentationTimestamps[v+1];P.duration=C.presentationTimestamp-M.presentationTimestamp}}let S=_.samples[_.presentationTimestamps[0].sampleIndex],T=_.samples[ve(_.presentationTimestamps).sampleIndex];_.startTimestamp=S.presentationTimestamp,_.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=x}break;case"udta":{let o=this.iterateContiguousBoxes(e.slice(s,r.contentSize));for(let{boxInfo:a,slice:c}of o){if(a.name!=="meta"&&!this.currentTrack){let l=c.filePos;this.metadataTags.raw??={},N_.has(a.name)?this.metadataTags.raw[a.name]??=at(c):this.metadataTags.raw[a.name]??=W(c,a.contentSize),c.filePos=l}switch(a.name){case"meta":c.skip(-a.headerSize),this.traverseBox(c);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=Be.decode(W(c,a.contentSize)):this.metadataTags.title??=at(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=at(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=at(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=at(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=at(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=at(c));break;case"\xA9day":if(!this.currentTrack){let l=new Date(at(c));Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=at(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=at(c));break}}}break;case"meta":{if(this.currentTrack)break;let a=B(e)!==0;this.currentMetadataKeys=new Map,a?this.readContiguousBoxes(e.slice(s,r.contentSize)):this.readContiguousBoxes(e.slice(s+4,r.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let o=B(e);for(let a=0;a<o;a++){let c=B(e);e.skip(4);let l=Be.decode(W(e,c-8));this.currentMetadataKeys.set(a+1,l)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let o=this.iterateContiguousBoxes(e.slice(s,r.contentSize));for(let{boxInfo:a,slice:c}of o){let l=a.name,u=(l.charCodeAt(0)<<24)+(l.charCodeAt(1)<<16)+(l.charCodeAt(2)<<8)+l.charCodeAt(3);this.currentMetadataKeys.has(u)&&(l=this.currentMetadataKeys.get(u));let h=Ff(c);switch(this.metadataTags.raw??={},this.metadataTags.raw[l]??=h,l){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof h=="string"&&(this.metadataTags.title??=h);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof h=="string"&&(this.metadataTags.description??=h);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof h=="string"&&(this.metadataTags.artist??=h);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof h=="string"&&(this.metadataTags.album??=h);break;case"aART":case"album_artist":typeof h=="string"&&(this.metadataTags.albumArtist??=h);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof h=="string"&&(this.metadataTags.comment??=h);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof h=="string"&&(this.metadataTags.genre??=h);break;case"\xA9lyr":case"lyrics":typeof h=="string"&&(this.metadataTags.lyrics??=h);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof h=="string"){let d=new Date(h);Number.isNaN(d.getTime())||(this.metadataTags.date??=d)}break;case"covr":case"com.apple.quicktime.artwork":h instanceof nr?(this.metadataTags.images??=[],this.metadataTags.images.push({data:h.data,kind:"coverFront",mimeType:h.mimeType})):h instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:h,kind:"coverFront",mimeType:"image/*"}));break;case"trkn":if(h instanceof Uint8Array){let d=oe(h),f=d.getUint16(2,!1),m=d.getUint16(4,!1);f>0&&(this.metadataTags.trackNumber??=f),m>0&&(this.metadataTags.tracksTotal??=m)}break;case"disc":case"disk":if(h instanceof Uint8Array){let d=oe(h),f=d.getUint16(2,!1),m=d.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),m>0&&(this.metadataTags.discsTotal??=m)}break}}}break}return e.filePos=n,!0}},Oo=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let r=this.internalTrack.demuxer.fragments[0]??null;if(r?.isKnownToBeFirstFragment){let s=r;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:ae(this.internalTrack.fragments,s.moofOffset,o=>o.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return Ir(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let r=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Qf(s,r),o=await this.fetchPacketForSampleIndex(n,t);return!em(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(r),r,r,t)}async getNextPacket(e,t){let r=this.packetToSampleIndex.get(e);if(r!==void 0)return this.fetchPacketForSampleIndex(r+1,t);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=ae(this.internalTrack.fragments,s.fragment.moofOffset,a=>a.moofOffset);return k(o!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:o,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let a=s.fragment;for(;a.nextFragment;)if(a=a.nextFragment,a.trackData.get(this.internalTrack.id)){let l=ae(this.internalTrack.fragments,a.moofOffset,u=>u.moofOffset);return k(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:o,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let r=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Qf(s,r),o=n===-1?-1:V_(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!em(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(r),r,r,t)}async getNextKeyPacket(e,t){let r=this.packetToSampleIndex.get(e);if(r!==void 0){let a=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),c=W_(a,r);return this.fetchPacketForSampleIndex(c,t)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=ae(this.internalTrack.fragments,s.fragment.moofOffset,a=>a.moofOffset);return k(o!==-1),this.performFragmentedLookup(()=>{let a=n.samples.findIndex((c,l)=>c.isKeyFrame&&l>s.sampleIndex);if(a!==-1)return{fragmentIndex:o,sampleIndex:a,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;){c=c.nextFragment;let l=c.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let u=ae(this.internalTrack.fragments,c.moofOffset,d=>d.moofOffset);k(u!==-1);let h=l.samples.findIndex(d=>d.isKeyFrame);return k(h!==-1),{fragmentIndex:u,sampleIndex:h,correctSampleFound:!0}}}return{fragmentIndex:o,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=L_(r,e);if(!s)return null;let n;if(t.metadataOnly)n=Ee;else{let l=this.internalTrack.demuxer.reader.requestSlice(s.sampleOffset,s.sampleSize);l instanceof Promise&&(l=await l),k(l),n=W(l,s.sampleSize)}let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new ce(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,r){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];k(n);let o;if(r.metadataOnly)o=Ee;else{let u=this.internalTrack.demuxer.reader.requestSlice(n.byteOffset,n.byteSize);u instanceof Promise&&(u=await u),k(u),o=W(u,n.byteSize)}let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,l=new ce(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:t}),l}findSampleInFragmentsForTimestamp(e){let t=Q(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=Q(o.presentationTimestamps,e,c=>c.presentationTimestamp);k(a!==-1),r=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:r,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=Q(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];r=ae(this.internalTrack.fragments,o.moofOffset,u=>u.moofOffset),k(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=co(a.presentationTimestamps,u=>a.samples[u.sampleIndex].isKeyFrame&&u.presentationTimestamp<=e);k(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:r,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,r,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:l}=e();if(l){let x=this.internalTrack.fragments[a];return this.fetchPacketInFragment(x,c,s)}let u=null,h=a,d=c,f=this.internalTrack.fragmentLookupTable?Q(this.internalTrack.fragmentLookupTable,t,x=>x.timestamp):-1,m=f!==-1?this.internalTrack.fragmentLookupTable[f]:null,p,g=!1;if(a===-1)p=m?.moofOffset??0,g=p===0;else{let x=this.internalTrack.fragments[a];!m||x.moofOffset>=m.moofOffset?(p=x.moofOffset+x.moofSize,u=x):p=m.moofOffset}for(;;){if(u){let S=u.trackData.get(this.internalTrack.id);if(S&&S.startTimestamp>r)break;if(u.nextFragment){p=u.nextFragment.moofOffset+u.nextFragment.moofSize,u=u.nextFragment;continue}}let x=n.reader.requestSliceRange(p,Lt,Dr);if(x instanceof Promise&&(x=await x),!x)break;let w=p,_=bt(x);if(!_)break;if(_.name==="moof"){let S=ae(n.fragments,w,C=>C.moofOffset),T;S===-1?T=await n.readFragment(w):T=n.fragments[S],u&&(u.nextFragment=T),u=T,g&&(T.isKnownToBeFirstFragment=!0,g=!1);let{fragmentIndex:v,sampleIndex:M,correctSampleFound:P}=e();if(P){let C=this.internalTrack.fragments[v];return this.fetchPacketInFragment(C,M,s)}v!==-1&&(h=v,d=M)}p=w+_.totalSize}let y=h!==-1?this.internalTrack.fragments[h]:null;if(m&&(!y||y.moofOffset<m.moofOffset)){let w=this.internalTrack.fragmentLookupTable[f-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,w,r,s)}return y?this.fetchPacketInFragment(y,d,s):null}finally{o()}}},Ml=class extends Oo{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&bo(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&wo(e.data)}return{codec:po(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},Bl=class extends Oo{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:go(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Qf=(i,e)=>{if(i.presentationTimestamps){let t=Q(i.presentationTimestamps,e,r=>r.presentationTimestamp);return t===-1?-1:i.presentationTimestamps[t].sampleIndex}else{let t=Q(i.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let r=i.sampleTimingEntries[t];return r.startIndex+Math.min(Math.floor((e-r.startDecodeTimestamp)/r.delta),r.count-1)}},L_=(i,e)=>{let t=Q(i.sampleTimingEntries,e,y=>y.startIndex),r=i.sampleTimingEntries[t];if(!r||r.startIndex+r.count<=e)return null;let n=r.startDecodeTimestamp+(e-r.startIndex)*r.delta,o=Q(i.sampleCompositionTimeOffsets,e,y=>y.startIndex),a=i.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=i.sampleSizes[Math.min(e,i.sampleSizes.length-1)],l=Q(i.sampleToChunk,e,y=>y.startSampleIndex),u=i.sampleToChunk[l];k(u);let h=u.startChunkIndex+Math.floor((e-u.startSampleIndex)/u.samplesPerChunk),d=i.chunkOffsets[h],f=u.startSampleIndex+(h-u.startChunkIndex)*u.samplesPerChunk,m=0,p=d;if(i.sampleSizes.length===1)p+=c*(e-f),m+=c*u.samplesPerChunk;else for(let y=f;y<f+u.samplesPerChunk;y++){let x=i.sampleSizes[y];y<e&&(p+=x),m+=x}let g=r.delta;if(i.presentationTimestamps){let y=i.presentationTimestampIndexMap[e];k(y!==void 0),y<i.presentationTimestamps.length-1&&(g=i.presentationTimestamps[y+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:p,sampleSize:c,chunkOffset:d,chunkSize:m,isKeyFrame:i.keySampleIndices?ae(i.keySampleIndices,e,y=>y)!==-1:!0}},V_=(i,e)=>{if(!i.keySampleIndices)return e;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t]??-1},W_=(i,e)=>{if(!i.keySampleIndices)return e+1;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t+1]??-1},Jf=(i,e)=>{i.startTimestamp+=e,i.endTimestamp+=e;for(let t of i.samples)t.presentationTimestamp+=e;for(let t of i.presentationTimestamps)t.presentationTimestamp+=e},H_=i=>{let[e,,,t]=i,r=Math.hypot(e,t),s=e/r,n=t/r,o=-Math.atan2(n,s)*(180/Math.PI);return Number.isFinite(o)?o:0},em=i=>i.sampleSizes.length===0;var Ht;(function(i){i[i.None=0]="None",i[i.Xiph=1]="Xiph",i[i.FixedSize=2]="FixedSize",i[i.Ebml=3]="Ebml"})(Ht||(Ht={}));var Fl=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],tm=10*2**20,Uo=class extends We{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.getCodecParameterString()));return Rf({isWebM:this.isWebM,hasVideo:this.segments.some(r=>r.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(r=>r.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let t of this.segments)t.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(t),t.metadataTagsCollected=!0);let e={};for(let t of this.segments)e={...e,...t.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,Ve,ct);if(t instanceof Promise&&(t=await t),!t)break;let r=lt(t);if(!r)break;let s=r.id,n=r.size,o=t.filePos;if(s===I.EBML){Vt(n);let a=this.reader.requestSlice(o,n);if(a instanceof Promise&&(a=await a),!a)break;this.readContiguousElements(a)}else if(s===I.Segment){if(await this.readSegment(o,n),n===null||this.reader.fileSize===null)break}else if(s===I.Cluster){if(this.reader.fileSize===null)break;n===null&&(n=(await Eo(this.reader,o,vo,this.reader.fileSize)).pos-o);let a=ve(this.segments);a&&(a.elementEndPos=o+n)}Vt(n),e=o+n}})()}async readSegment(e,t){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:t===null?null:e+t,clusterSeekStartPos:e,clusters:[],clusterLookupMutex:new Je,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let r=e;for(;this.currentSegment.elementEndPos===null||r<this.currentSegment.elementEndPos;){let c=this.reader.requestSliceRange(r,Ve,ct);if(c instanceof Promise&&(c=await c),!c)break;let l=r,u=lt(c);if(!u||!di.includes(u.id)&&u.id!==I.Void){let p=await Tl(this.reader,l,di,Math.min(this.currentSegment.elementEndPos??1/0,l+tm));if(p){r=p;continue}else break}let{id:h,size:d}=u,f=c.filePos,m=Fl.findIndex(p=>p.id===h);if(m!==-1){let p=Fl[m].flag;this.currentSegment[p]=!0,Vt(d);let g=this.reader.requestSlice(f,d);g instanceof Promise&&(g=await g),g&&this.readContiguousElements(g)}else if(h===I.Tags||h===I.Attachments){h===I.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,Vt(d);let p=this.reader.requestSlice(f,d);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(h===I.Cluster){this.currentSegment.clusterSeekStartPos=l;break}if(d===null)break;r=f+d}if(this.currentSegment.seekEntries.sort((c,l)=>c.segmentPosition-l.segmentPosition),this.reader.fileSize!==null)for(let c of this.currentSegment.seekEntries){let l=Fl.find(p=>p.id===c.id);if(!l||this.currentSegment[l.flag])continue;let u=this.reader.requestSliceRange(e+c.segmentPosition,Ve,ct);if(u instanceof Promise&&(u=await u),!u)continue;let h=lt(u);if(!h)continue;let{id:d,size:f}=h;if(d!==l.id)continue;Vt(f),this.currentSegment[l.flag]=!0;let m=this.reader.requestSlice(u.filePos,f);m instanceof Promise&&(m=await m),m&&this.readContiguousElements(m)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((c,l)=>Number(l.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,l)=>c.clusterPosition-l.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let u of n)k(a),this.currentSegment.tracks.find(d=>d.id===u).cuePoints.push(a);for(let u of s)n.add(u)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(u=>u.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)k(a),this.currentSegment.tracks.find(u=>u.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((l,u)=>l.time-u.time);this.currentSegment=null}async readCluster(e,t){let r=this.reader.requestSliceRange(e,Ve,ct);r instanceof Promise&&(r=await r),k(r);let s=e,n=lt(r);k(n);let o=n.id,a=n.size,c=r.filePos;a===null&&(a=(await Eo(this.reader,c,vo,t.elementEndPos)).pos-c),k(o===I.Cluster);let l=this.reader.requestSlice(c,a);l instanceof Promise&&(l=await l);let u={elementStartPos:s,elementEndPos:c+a,dataStartPos:c,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=u,l&&this.readContiguousElements(l);for(let[h,d]of u.trackData){let f=t.tracks.find(x=>x.id===h)??null;k(d.blocks.length>0);let m=!1,p=!1;for(let x=0;x<d.blocks.length;x++){let w=d.blocks[x];w.timestamp+=u.timestamp,m||=w.referencedTimestamps.length>0,p||=w.lacing!==Ht.None}m&&(d.blocks=j_(d.blocks)),d.presentationTimestamps=d.blocks.map((x,w)=>({timestamp:x.timestamp,blockIndex:w})).sort((x,w)=>x.timestamp-w.timestamp);for(let x=0;x<d.presentationTimestamps.length;x++){let w=d.presentationTimestamps[x],_=d.blocks[w.blockIndex];if(d.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(d.firstKeyFrameTimestamp=_.timestamp),x<d.presentationTimestamps.length-1){let S=d.presentationTimestamps[x+1];_.duration=S.timestamp-_.timestamp}else _.duration===0&&f?.defaultDuration!=null&&_.lacing===Ht.None&&(_.duration=f.defaultDuration)}p&&(this.expandLacedBlocks(d.blocks,f),d.presentationTimestamps=d.blocks.map((x,w)=>({timestamp:x.timestamp,blockIndex:w})).sort((x,w)=>x.timestamp-w.timestamp));let g=d.blocks[d.presentationTimestamps[0].blockIndex],y=d.blocks[ve(d.presentationTimestamps).blockIndex];d.startTimestamp=g.timestamp,d.endTimestamp=y.timestamp+y.duration,f&&(ot(f.clusters,u,w=>w.elementStartPos),d.firstKeyFrameTimestamp!==null&&ot(f.clustersWithKeyFrame,u,w=>w.elementStartPos))}return ot(t.clusters,u,h=>h.elementStartPos),this.currentCluster=null,u}getTrackDataInCluster(e,t){let r=e.trackData.get(t);return r||(r={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,r)),r}expandLacedBlocks(e,t){for(let r=0;r<e.length;r++){let s=e[r];if(s.lacing===Ht.None)continue;let n=li.tempFromBytes(s.data),o=[],a=z(n)+1;switch(s.lacing){case Ht.Xiph:{let c=0;for(let l=0;l<a-1;l++){let u=0;for(;n.bufferPos<n.length;){let h=z(n);if(u+=h,h<255){o.push(u),c+=u;break}}}o.push(n.length-(n.bufferPos+c))}break;case Ht.FixedSize:{let c=n.length-1,l=Math.floor(c/a);for(let u=0;u<a;u++)o.push(l)}break;case Ht.Ebml:{let c=fi(n);k(c!==null);let l=c;o.push(l);let u=l;for(let h=1;h<a-1;h++){let d=n.bufferPos,f=fi(n);k(f!==null);let m=f,g=(1<<(n.bufferPos-d)*7-1)-1,y=m-g;l+=y,o.push(l),u+=l}o.push(n.length-(n.bufferPos+u))}break;default:k(!1)}k(o.length===a),e.splice(r,1);for(let c=0;c<a;c++){let l=o[c],u=W(n,l),h=s.duration||a*(t?.defaultDuration??0),d=s.timestamp+h*c/a,f=h/a;e.splice(r+c,0,{timestamp:d,duration:f,isKeyFrame:s.isKeyFrame,referencedTimestamps:s.referencedTimestamps,data:u,lacing:Ht.None})}r+=a,r--}}async loadSegmentMetadata(e){for(let t of e.seekEntries){if(!(t.id===I.Tags&&!e.tagsSeen)){if(!(t.id===I.Attachments&&!e.attachmentsSeen))continue}let r=this.reader.requestSliceRange(e.dataStartPos+t.segmentPosition,Ve,ct);if(r instanceof Promise&&(r=await r),!r)continue;let s=lt(r);if(!s||s.id!==t.id)continue;let{size:n}=s;Vt(n),k(!this.currentSegment),this.currentSegment=e;let o=this.reader.requestSlice(r.filePos,n);o instanceof Promise&&(o=await o),o&&this.readContiguousElements(o),this.currentSegment=null,t.id===I.Tags?e.tagsSeen=!0:t.id===I.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e){let t=e.filePos;for(;e.filePos-t<=e.length-Ve&&this.traverseElement(e););}traverseElement(e){let t=lt(e);if(!t)return!1;let{id:r,size:s}=t,n=e.filePos;switch(Vt(s),r){case I.DocType:this.isWebM=ar(e,s)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let o={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(o),this.readContiguousElements(e.slice(n,s)),(o.id===-1||o.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.id=J(e,s)}break;case I.SeekPosition:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.segmentPosition=J(e,s)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=J(e,s),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=Co(e,s)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:Pe,info:null},this.readContiguousElements(e.slice(n,s)),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let o=this.currentTrack.codecId.indexOf("/"),a=o===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,o);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===ut.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ut.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.vp8?this.currentTrack.info.codec="vp8":a===ut.vp9?this.currentTrack.info.codec="vp9":a===ut.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack,l=new wt(new Dl(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){a===ut.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ut.mp3?this.currentTrack.info.codec="mp3":a===ut.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let c=this.currentTrack,l=new Ae(new Rl(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=J(e,s)}break;case I.TrackType:{if(!this.currentTrack)break;let o=J(e,s);o===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:o===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;J(e,s)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!J(e,s)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=ar(e,s)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=W(e,s)}break;case I.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*J(e,s)/1e9}break;case I.Name:{if(!this.currentTrack)break;this.currentTrack.name=mi(e,s)}break;case I.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==Pe)break;this.currentTrack.languageCode=ar(e,s),uo(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Pe)}break;case I.LanguageBCP47:{if(!this.currentTrack)break;let a=ar(e,s).split("-")[0];a?this.currentTrack.languageCode=a:this.currentTrack.languageCode=Pe}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s))}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=J(e,s)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=J(e,s)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(n,s))}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=ao[o]??null;this.currentTrack.info.colorSpace.matrix=a}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=J(e,s)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=oo[o]??null;this.currentTrack.info.colorSpace.transfer=a}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=no[o]??null;this.currentTrack.info.colorSpace.primaries=a}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s))}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let a=-Co(e,s);try{this.currentTrack.info.rotation=so(a)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(n,s))}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=Co(e,s)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=J(e,s)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=J(e,s)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(n,s)),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=J(e,s);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;k(this.currentSegment);let o={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(o),this.readContiguousElements(e.slice(n,s)),(o.trackId===-1||o.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;o.trackId=J(e,s)}break;case I.CueClusterPosition:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;k(this.currentSegment),o.clusterPosition=this.currentSegment.dataStartPos+J(e,s)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=J(e,s)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let o=fi(e);if(o===null)break;let a=_s(e),c=z(e),l=!!(c&128),u=c>>1&3;this.getTrackDataInCluster(this.currentCluster,o).blocks.push({timestamp:a,duration:0,isKeyFrame:l,referencedTimestamps:[],data:W(e,s-(e.filePos-n)),lacing:u})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e.slice(n,s)),this.currentBlock){for(let o=0;o<this.currentBlock.referencedTimestamps.length;o++)this.currentBlock.referencedTimestamps[o]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let o=fi(e);if(o===null)break;let a=_s(e),l=z(e)>>1&3,u=this.getTrackDataInCluster(this.currentCluster,o);this.currentBlock={timestamp:a,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:W(e,s-(e.filePos-n)),lacing:l},u.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=J(e,s)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let o=Df(e,s);this.currentBlock.referencedTimestamps.push(o)}break;case I.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(n,s));break;case I.Targets:this.readContiguousElements(e.slice(n,s));break;case I.TargetTypeValue:J(e,s)!==50&&(this.currentTagTargetIsMovie=!1);break;case I.TagTrackUID:case I.TagEditionUID:case I.TagChapterUID:case I.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case I.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(n,s))}break;case I.TagName:this.currentSimpleTagName=mi(e,s);break;case I.TagString:{if(!this.currentSimpleTagName)break;let o=mi(e,s);this.processTagValue(this.currentSimpleTagName,o)}break;case I.TagBinary:{if(!this.currentSimpleTagName)break;let o=W(e,s);this.processTagValue(this.currentSimpleTagName,o)}break;case I.AttachedFile:{if(!this.currentSegment)break;if(this.currentAttachedFile={fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(n,s)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let o=this.currentAttachedFile.fileName,a="unknown";if(o){let c=o.toLowerCase();c.startsWith("cover.")?a="coverFront":c.startsWith("back.")&&(a="coverBack")}this.currentSegment.metadataTags.images??=[],this.currentSegment.metadataTags.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:a,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case I.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=mi(e,s)}break;case I.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=ar(e,s)}break;case I.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=W(e,s)}break;case I.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=mi(e,s)}break}return e.filePos=n+s,!0}processTagValue(e,t){if(!this.currentSegment?.metadataTags)return;let r=this.currentSegment.metadataTags;if(r.raw??={},r.raw[e]??=t,typeof t=="string")switch(e.toLowerCase()){case"title":r.title??=t;break;case"description":r.description??=t;break;case"artist":r.artist??=t;break;case"album":r.album??=t;break;case"album_artist":r.albumArtist??=t;break;case"genre":r.genre??=t;break;case"comment":r.comment??=t;break;case"lyrics":r.lyrics??=t;break;case"date":{let s=new Date(t);Number.isNaN(s.getTime())||(r.date??=s)}break;case"track_number":case"part_number":{let s=t.split("/"),n=Number.parseInt(s[0],10),o=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(r.trackNumber??=n),o&&Number.isInteger(o)&&o>0&&(r.tracksTotal??=o)}break;case"disc_number":case"disc":{let s=t.split("/"),n=Number.parseInt(s[0],10),o=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(r.discNumber??=n),o&&Number.isInteger(o)&&o>0&&(r.discsTotal??=o)}break}}},zo=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let r=t;for(;r;){if(r.trackData.get(this.internalTrack.id))return{clusterIndex:ae(this.internalTrack.clusters,r.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};r=r.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return Ir(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let r=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(r),r,r,t)}async getNextPacket(e,t){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");let s=r.cluster.trackData.get(this.internalTrack.id),n=ae(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return k(n!==-1),this.performClusterLookup(()=>{if(r.blockIndex+1<s.blocks.length)return{clusterIndex:n,blockIndex:r.blockIndex+1,correctBlockFound:!0};{let o=r.cluster;for(;o.nextCluster;)if(o=o.nextCluster,o.trackData.get(this.internalTrack.id)){let c=ae(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos);return k(c!==-1),{clusterIndex:c,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:n,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let r=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(r),r,r,t)}async getNextKeyPacket(e,t){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");let s=r.cluster.trackData.get(this.internalTrack.id),n=ae(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return k(n!==-1),this.performClusterLookup(()=>{let o=s.blocks.findIndex((a,c)=>a.isKeyFrame&&c>r.blockIndex);if(o!==-1)return{clusterIndex:n,blockIndex:o,correctBlockFound:!0};{let a=r.cluster;for(;a.nextCluster;){a=a.nextCluster;let c=a.trackData.get(this.internalTrack.id);if(c&&c.firstKeyFrameTimestamp!==null){let l=ae(this.internalTrack.clusters,a.elementStartPos,h=>h.elementStartPos);k(l!==-1);let u=c.blocks.findIndex(h=>h.isKeyFrame);return k(u!==-1),{clusterIndex:l,blockIndex:u,correctBlockFound:!0}}}return{clusterIndex:n,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async fetchPacketInCluster(e,t,r){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];k(n);let o=r.metadataOnly?Ee:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,l=new ce(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:t}),l}findBlockInClustersForTimestamp(e){let t=Q(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=Q(o.presentationTimestamps,e,c=>c.timestamp);k(a!==-1),r=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:r,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=Q(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),r=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];r=ae(this.internalTrack.clusters,o.elementStartPos,u=>u.elementStartPos),k(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=co(a.presentationTimestamps,u=>a.blocks[u.blockIndex].isKeyFrame&&u.timestamp<=e);k(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:r,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,r,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:l,correctBlockFound:u}=e();if(u){let w=this.internalTrack.clusters[c];return this.fetchPacketInCluster(w,l,s)}let h=null,d=c,f=l,m=Q(this.internalTrack.cuePoints,t,w=>w.time),p=m!==-1?this.internalTrack.cuePoints[m]:null,g,y=!1;if(c===-1)g=p?.clusterPosition??o.clusterSeekStartPos,y=g===o.clusterSeekStartPos;else{let w=this.internalTrack.clusters[c];!p||w.elementStartPos>=p.clusterPosition?(g=w.elementEndPos,h=w):g=p.clusterPosition}for(;o.elementEndPos===null||g<=o.elementEndPos-Ve;){if(h){let P=h.trackData.get(this.internalTrack.id);if(P&&P.startTimestamp>r)break;if(h.nextCluster){g=h.nextCluster.elementEndPos,h=h.nextCluster;continue}}let w=n.reader.requestSliceRange(g,Ve,ct);if(w instanceof Promise&&(w=await w),!w)break;let _=g,S=lt(w);if(!S||!di.includes(S.id)&&S.id!==I.Void){let P=await Tl(n.reader,_,di,Math.min(o.elementEndPos??1/0,_+tm));if(P){g=P;continue}else break}let T=S.id,v=S.size,M=w.filePos;if(T===I.Cluster){let P=ae(o.clusters,_,he=>he.elementStartPos),C;P===-1?C=await n.readCluster(_,o):C=o.clusters[P],h&&(h.nextCluster=C),h=C,y&&(C.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:E,blockIndex:D,correctBlockFound:j}=e();if(j){let he=this.internalTrack.clusters[E];return this.fetchPacketInCluster(he,D,s)}E!==-1&&(d=E,f=D)}if(v===null){T===I.Cluster?(k(h),v=h.elementEndPos-M):v=(await Eo(n.reader,M,vo,o.elementEndPos)).pos-M;let P=M+v;if(o.elementEndPos!==null&&P>o.elementEndPos-Ve)break;{let C=n.reader.requestSliceRange(P,Ve,ct);if(C instanceof Promise&&(C=await C),!C)break;if(Po(C)===I.Segment){o.elementEndPos=P;break}}}g=M+v}let x=d!==-1?this.internalTrack.clusters[d]:null;if(p&&(!x||x.elementStartPos<p.clusterPosition)){let _=this.internalTrack.cuePoints[m-1]?.time??-1/0;return this.performClusterLookup(e,_,r,s)}return x?this.fetchPacketInCluster(x,f,s):null}finally{a()}}},Dl=class extends zo{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:po({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Sf(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Tf(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?bo(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?wo(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},Rl=class extends zo{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:go({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},j_=i=>{let e=new Map;for(let n=0;n<i.length;n++){let o=i[n];e.set(o.timestamp,o)}let t=new Set,r=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}r.push(n)}};for(let n=0;n<i.length;n++)s(i[n]);return r};var Go=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new Je,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.tracks=[new Ae(new Ol(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let a=this.reader.requestSlice(this.lastLoadedPos,bi);if(a instanceof Promise&&(a=await a),!a){this.lastSampleLoaded=!0;return}let c=ks(a);if(!c)break;this.lastLoadedPos=a.filePos+c.size}let e=await Ts(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let t=e.header;this.lastLoadedPos=e.startPos+t.totalSize-1;let r=zf(t.mpegVersionId,t.channel),s=this.reader.requestSlice(e.startPos+r,4);if(s instanceof Promise&&(s=await s),s){let a=B(s);if(a===Of||a===Uf)return}this.firstFrameHeader||(this.firstFrameHeader=t);let n=t.audioSamplesInFrame/t.sampleRate,o={timestamp:this.nextTimestampInSamples/t.sampleRate,duration:n,dataStart:e.startPos,dataSize:t.totalSize};this.loadedSamples.push(o),this.nextTimestampInSamples+=t.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let t=0,r=!1;for(;;){let s=this.reader.requestSlice(t,bi);if(s instanceof Promise&&(s=await s),!s)break;let n=ks(s);if(!n)break;r=!0;let o=this.reader.requestSlice(s.filePos,n.size);if(o instanceof Promise&&(o=await o),!o)break;Vf(o,n,this.metadataTags),t=s.filePos+n.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Ss){let s=this.reader.requestSlice(this.reader.fileSize-Ss,Ss);s instanceof Promise&&(s=await s),k(s),de(s,3)==="TAG"&&Lf(s,this.metadataTags)}return this.metadataTags}finally{e()}}},Ol=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return Pe}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return k(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,t){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let s;if(t.metadataOnly)s=Ee;else{let n=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=W(n,r.dataSize)}return new ce(s,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{let s=ae(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,t)}finally{r()}}async getPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let s=Q(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var No=class extends We{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.tracks=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,cr,Rr);if(t instanceof Promise&&(t=await t),!t)break;let r=wi(t);if(!r||!!!(r.headerType&2))break;this.bitstreams.push({serialNumber:r.serialNumber,bosPage:r,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=r.headerStartPos+r.totalSize}for(let t of this.bitstreams){let r=await this.readPacket(t.bosPage,0);r&&(r.data.byteLength>=7&&r.data[0]===1&&r.data[1]===118&&r.data[2]===111&&r.data[3]===114&&r.data[4]===98&&r.data[5]===105&&r.data[6]===115?await this.readVorbisMetadata(r,t):r.data.byteLength>=8&&r.data[0]===79&&r.data[1]===112&&r.data[2]===117&&r.data[3]===115&&r.data[4]===72&&r.data[5]===101&&r.data[6]===97&&r.data[7]===100&&await this.readOpusMetadata(r,t),t.codecInfo.codec!==null&&this.tracks.push(new Ae(new Ul(t,this))))}})()}async readVorbisMetadata(e,t){let r=await this.findNextPacketStart(e);if(!r)return;let s=await this.readPacket(r.startPage,r.startSegmentIndex);if(!s||(r=await this.findNextPacketStart(s),!r))return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let l=oe(e.data);t.numberOfChannels=l.getUint8(11),t.sampleRate=l.getUint32(12,!0);let u=l.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(u&15),1<<(u>>4)],modeBlockflags:Cf(n.data).modeBlockflags},this.readVorbisComments(s.data.subarray(7))}async readOpusMetadata(e,t){let r=await this.findNextPacketStart(e);if(!r)return;let s=await this.readPacket(r.startPage,r.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=vf(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip},this.readVorbisComments(s.data.subarray(8))}readVorbisComments(e){let t=oe(e),r=0,s=t.getUint32(r,!0);r+=4;let n=Be.decode(e.subarray(r,r+s));r+=s,s>0&&(this.metadataTags.raw??={},this.metadataTags.raw.vendor??=n);let o=t.getUint32(r,!0);r+=4;for(let a=0;a<o;a++){let c=t.getUint32(r,!0);r+=4;let l=Be.decode(e.subarray(r,r+c));r+=c;let u=l.indexOf("=");if(u===-1)continue;let h=l.slice(0,u).toUpperCase(),d=l.slice(u+1);switch(this.metadataTags.raw??={},this.metadataTags.raw[h]??=d,h){case"TITLE":this.metadataTags.title??=d;break;case"DESCRIPTION":this.metadataTags.description??=d;break;case"ARTIST":this.metadataTags.artist??=d;break;case"ALBUM":this.metadataTags.album??=d;break;case"ALBUMARTIST":this.metadataTags.albumArtist??=d;break;case"COMMENT":this.metadataTags.comment??=d;break;case"LYRICS":this.metadataTags.lyrics??=d;break;case"TRACKNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"TRACKTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.tracksTotal??=f)}break;case"DISCNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.discNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.discsTotal??=p)}break;case"DISCTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.discsTotal??=f)}break;case"DATE":{let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"GENRE":this.metadataTags.genre??=d;break;case"METADATA_BLOCK_PICTURE":{let f=pf(d),m=oe(f),p=m.getUint32(0,!1),g=m.getUint32(4,!1),y=String.fromCharCode(...f.subarray(8,8+g)),x=m.getUint32(8+g,!1),w=Be.decode(f.subarray(12+g,12+g+x)),_=m.getUint32(g+x+28),S=f.subarray(g+x+32,g+x+32+_);this.metadataTags.images??=[],this.metadataTags.images.push({data:S,mimeType:y,kind:p===3?"coverFront":p===4?"coverBack":"unknown",name:void 0,description:w||void 0})}break}}}async readPacket(e,t){k(t<e.lacingValues.length);let r=0;for(let h=0;h<t;h++)r+=e.lacingValues[h];let s=e,n=r,o=t,a=[];e:for(;;){let h=this.reader.requestSlice(s.dataStartPos,s.dataSize);h instanceof Promise&&(h=await h),k(h);let d=W(h,s.dataSize);for(;;){if(o===s.lacingValues.length){a.push(d.subarray(r,n));break}let m=s.lacingValues[o];if(n+=m,m<255){a.push(d.subarray(r,n));break e}o++}let f=s.headerStartPos+s.totalSize;for(;;){let m=this.reader.requestSliceRange(f,cr,Rr);if(m instanceof Promise&&(m=await m),!m)return null;let p=wi(m);if(!p)return null;if(s=p,s.serialNumber===e.serialNumber)break;f=s.headerStartPos+s.totalSize}r=0,n=0,o=0}let c=a.reduce((h,d)=>h+d.length,0),l=new Uint8Array(c),u=0;for(let h=0;h<a.length;h++){let d=a[h];l.set(d,u),u+=d.length}return{data:l,endPage:s,endSegmentIndex:o}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let r=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let s=this.reader.requestSliceRange(r,cr,Rr);if(s instanceof Promise&&(s=await s),!s)return null;let n=wi(s);if(!n)return null;if(n.serialNumber===e.endPage.serialNumber)return{startPage:n,startSegmentIndex:0};r=n.headerStartPos+n.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return $f({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Ul=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new Je,this.internalSampleRate=e.codecInfo.codec==="opus"?yf:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return k(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return Pe}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(k(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,r){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=jf(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new ce(r.metadataOnly?Ee:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisLastBlockSize:t.vorbisLastBlocksize,vorbisBlockSize:n}),o}async getFirstPacket(e){k(this.bitstream.lastMetadataPacket);let t=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!t)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(k(this.bitstream.codecInfo.opusInfo),r-=this.bitstream.codecInfo.opusInfo.preSkip);let s=await this.demuxer.readPacket(t.startPage,t.startSegmentIndex);return this.createEncodedPacketFromOggPacket(s,{timestampInSamples:r,vorbisLastBlocksize:null},e)}async getNextPacket(e,t){let r=this.encodedPacketToMetadata.get(e);if(!r)throw new Error("Packet was not created from this track.");let s=await this.demuxer.findNextPacketStart(r.packet);if(!s)return null;let n=r.timestampInSamples+r.durationInSamples,o=await this.demuxer.readPacket(s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:r.vorbisBlockSize},t)}async getPacket(e,t){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,t);let r=Ir(e*this.internalSampleRate,14);if(r===0)return this.getFirstPacket(t);if(r<0)return null;k(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!s)return null;let n=s.startPage,o=this.demuxer.reader.fileSize,a=[n];e:for(;n.headerStartPos+n.totalSize<o;){let x=n.headerStartPos,w=Math.floor((x+o)/2),_=w;for(;;){let S=Math.min(_+qf,o-cr),T=this.demuxer.reader.requestSlice(_,S-_);if(T instanceof Promise&&(T=await T),k(T),!Xf(T,S)){o=w+cr;continue e}let M=this.demuxer.reader.requestSliceRange(T.filePos,cr,Rr);M instanceof Promise&&(M=await M),k(M);let P=wi(M);k(P);let C=!1;if(P.serialNumber===this.bitstream.serialNumber)C=!0;else{let D=this.demuxer.reader.requestSlice(P.headerStartPos,P.totalSize);D instanceof Promise&&(D=await D),k(D);let j=W(D,P.totalSize);C=Hf(j)===P.checksum}if(!C){_=P.headerStartPos+4;continue}if(C&&P.serialNumber!==this.bitstream.serialNumber){_=P.headerStartPos+P.totalSize;continue}if(P.granulePosition===-1){_=P.headerStartPos+P.totalSize;continue}this.granulePositionToTimestampInSamples(P.granulePosition)>r?o=P.headerStartPos:(n=P,a.push(P));continue e}}let c=s.startPage;for(let x of a){if(x.granulePosition===n.granulePosition)break;(!c||x.headerStartPos>c.headerStartPos)&&(c=x)}let l=c,u=[l];for(;!(l.serialNumber===this.bitstream.serialNumber&&l.granulePosition===n.granulePosition);){let x=l.headerStartPos+l.totalSize,w=this.demuxer.reader.requestSliceRange(x,cr,Rr);w instanceof Promise&&(w=await w),k(w);let _=wi(w);k(_),l=_,l.serialNumber===this.bitstream.serialNumber&&u.push(l)}k(l.granulePosition!==-1);let h=null,d,f,m=l,p=0;if(l.headerStartPos===s.startPage.headerStartPos)d=this.granulePositionToTimestampInSamples(0),f=!0,h=0;else{d=0,f=!1;for(let _=l.lacingValues.length-1;_>=0;_--)if(l.lacingValues[_]<255){h=_+1;break}if(h===null)throw new Error("Invalid page with granule position: no packets end on this page.");p=h-1;let x={data:Ee,endPage:m,endSegmentIndex:p};if(await this.demuxer.findNextPacketStart(x)){let _=im(u,l,h);k(_);let S=rm(u,_.page,_.segmentIndex);S&&(l=S.page,h=S.segmentIndex)}else for(;;){let _=im(u,l,h);if(!_)break;let S=rm(u,_.page,_.segmentIndex);if(!S)break;if(l=S.page,h=S.segmentIndex,_.page.headerStartPos!==m.headerStartPos){m=_.page,p=_.segmentIndex;break}}}let g=null,y=null;for(;l!==null;){k(h!==null);let x=await this.demuxer.readPacket(l,h);if(!x)break;if(!(l.headerStartPos===s.startPage.headerStartPos&&h<s.startSegmentIndex)){let S=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:d,vorbisLastBlocksize:y?.vorbisBlockSize??null},t);k(S);let T=this.encodedPacketToMetadata.get(S);if(k(T),!f&&x.endPage.headerStartPos===m.headerStartPos&&x.endSegmentIndex===p?(d=this.granulePositionToTimestampInSamples(l.granulePosition),f=!0,S=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:d-T.durationInSamples,vorbisLastBlocksize:y?.vorbisBlockSize??null},t),k(S),T=this.encodedPacketToMetadata.get(S),k(T)):d+=T.durationInSamples,g=S,y=T,f&&(Math.max(d,0)>r||Math.max(T.timestampInSamples,0)===r))break}let _=await this.demuxer.findNextPacketStart(x);if(!_)break;l=_.startPage,h=_.startSegmentIndex}return g}async getPacketSequential(e,t){let r=await this.sequentialScanMutex.acquire();try{let s=Ir(e*this.internalSampleRate,14);e=s/this.internalSampleRate;let n=Q(this.sequentialScanCache,s,c=>c.timestampInSamples),o;if(n!==-1){let c=this.sequentialScanCache[n];o=this.createEncodedPacketFromOggPacket(c.packet,{timestampInSamples:c.timestampInSamples,vorbisLastBlocksize:c.vorbisLastBlockSize},t)}else o=await this.getFirstPacket(t);let a=0;for(;o&&o.timestamp<e;){let c=await this.getNextPacket(o,t);if(!c||c.timestamp>e)break;if(o=c,a++,a===100){a=0;let l=this.encodedPacketToMetadata.get(o);k(l),this.sequentialScanCache.length>0&&k(ve(this.sequentialScanCache).timestampInSamples<=l.timestampInSamples),this.sequentialScanCache.push(l)}}return o}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},rm=(i,e,t)=>{let r=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(r.lacingValues[s]<255){s++;break e}if(k(s===-1),!(r.headerType&1)){s=0;break}let o=dl(i,a=>a.headerStartPos<r.headerStartPos);if(!o)return null;r=o,s=r.lacingValues.length}if(k(s!==-1),s===r.lacingValues.length){let n=i[i.indexOf(r)+1];k(n),r=n,s=0}return{page:r,segmentIndex:s}},im=(i,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let r=dl(i,s=>s.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var vi=7,Pi=9,Is=i=>{let e=i.filePos,t=W(i,9),r=new fe(t);if(r.readBits(12)!==4095||(r.skipBits(1),r.readBits(2)!==0))return null;let o=r.readBits(1),a=r.readBits(2)+1,c=r.readBits(4);if(c===15)return null;r.skipBits(1);let l=r.readBits(3);if(l===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let u=r.readBits(13);r.skipBits(11);let h=r.readBits(2)+1;if(h!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let d=null;return o===1?i.filePos-=2:d=r.readBits(16),{objectType:a,samplingFrequencyIndex:c,channelConfiguration:l,frameLength:u,numberOfAacFrames:h,crcCheck:d,startPos:e}};var zl=1024,Lo=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new Je,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();k(this.firstFrameHeader),this.tracks=[new Ae(new Gl(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,vi,Pi);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=Is(e);if(!t){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&t.startPos+t.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=t);let r=bs[t.samplingFrequencyIndex];k(r!==void 0);let s=zl/r,n=t.crcCheck?Pi:vi,o={timestamp:this.nextTimestampInSamples/r,duration:s,dataStart:t.startPos+n,dataSize:t.frameLength-n};this.loadedSamples.push(o),this.nextTimestampInSamples+=zl,this.lastLoadedPos=t.startPos+t.frameLength}async getMimeType(){return"audio/aac"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getMetadataTags(){return{}}},Gl=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/zl}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return Pe}getCodec(){return"aac"}getInternalCodecId(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){k(this.demuxer.firstFrameHeader);let e=pl[this.demuxer.firstFrameHeader.channelConfiguration];return k(e!==void 0),e}getSampleRate(){k(this.demuxer.firstFrameHeader);let e=bs[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return k(e!==void 0),e}async getDecoderConfig(){k(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),t=new fe(e),{objectType:r,samplingFrequencyIndex:s,channelConfiguration:n}=this.demuxer.firstFrameHeader;return r>31?(t.writeBits(5,31),t.writeBits(6,r-32)):t.writeBits(5,r),t.writeBits(4,s),t.writeBits(4,n),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate(),description:e.subarray(0,Math.ceil((t.pos-1)/8))}}async getPacketAtIndex(e,t){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let s;if(t.metadataOnly)s=Ee;else{let n=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=W(n,r.dataSize)}return new ce(s,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{let s=ae(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,t)}finally{r()}}async getPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let s=Q(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var ht=class{},Ms=class extends ht{async _getMajorBrand(e){let t=e._reader.requestSlice(0,12);return t instanceof Promise&&(t=await t),!t||(t.skip(4),de(t,4)!=="ftyp")?null:de(t,4)}_createDemuxer(e){return new Ro(e)}},Vo=class extends Ms{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Wo=class extends Ms{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Bs=class extends ht{async isSupportedEBMLOfDocType(e,t){let r=e._reader.requestSlice(0,ct);if(r instanceof Promise&&(r=await r),!r)return!1;let s=_l(r);if(s===null||s<1||s>8||J(r,s)!==I.EBML)return!1;let o=Sl(r);if(o===null)return!1;let a=e._reader.requestSlice(r.filePos,o);if(a instanceof Promise&&(a=await a),!a)return!1;let c=r.filePos;for(;a.filePos<=c+o-Ve;){let l=lt(a);if(!l)break;let{id:u,size:h}=l,d=a.filePos;if(h===null)return!1;switch(u){case I.EBMLVersion:if(J(a,h)!==1)return!1;break;case I.EBMLReadVersion:if(J(a,h)!==1)return!1;break;case I.DocType:if(ar(a,h)!==t)return!1;break;case I.DocTypeVersion:if(J(a,h)>4)return!1;break}a.filePos=d+h}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Uo(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},Ho=class extends Bs{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},jo=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,10);if(t instanceof Promise&&(t=await t),!t)return!1;let r=0,s=!1;for(;;){let l=e._reader.requestSlice(r,bi);if(l instanceof Promise&&(l=await l),!l)break;let u=ks(l);if(!u)break;s=!0,r=l.filePos+u.size}let n=await Ts(e._reader,r,r+4096);if(!n)return!1;if(s)return!0;r=n.startPos+=n.header.totalSize;let o=await Ts(e._reader,r,r+4);if(!o)return!1;let a=n.header,c=o.header;return!(a.channel!==c.channel||a.sampleRate!==c.sampleRate)}_createDemuxer(e){return new Go(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},$o=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,12);if(t instanceof Promise&&(t=await t),!t)return!1;let r=de(t,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(t.skip(4),de(t,4)==="WAVE")}_createDemuxer(e){return new Fo(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},qo=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,4);return t instanceof Promise&&(t=await t),t?de(t,4)==="OggS":!1}_createDemuxer(e){return new No(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},Xo=class extends ht{async _canReadInput(e){let t=e._reader.requestSliceRange(0,vi,Pi);if(t instanceof Promise&&(t=await t),!t)return!1;let r=Is(t);if(!r||(t=e._reader.requestSliceRange(r.frameLength,vi,Pi),t instanceof Promise&&(t=await t),!t))return!1;let s=Is(t);return s?r.objectType===s.objectType&&r.samplingFrequencyIndex===s.samplingFrequencyIndex&&r.channelConfiguration===s.channelConfiguration:!1}_createDemuxer(e){return new Lo(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},sm=new Vo,nm=new Wo,om=new Bs,am=new Ho,cm=new jo,lm=new $o,um=new qo,hm=new Xo,lr=[sm,nm,om,am,lm,um,cm,hm];var _t=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof ht)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Ur))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._reader=new _o(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),k(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}};var Yo=class{count=0;#e=new Map;register(e,t){this.#e.set(e,t)}unregister(e){this.#e.delete(e)}dispatch(e,t){this.#e.get(e)?.(t)}};var dm=i=>ro.host(e=>({async world(){i.count++}}));async function zr(i){return i instanceof Blob?new Es(i):new As(i)}var Ko=class{machina;thread;static async setup(e){let t=new Yo,r=await ro.thread({label:"OmnitoolDriver",workerUrl:e?.workerUrl??"/node_modules/@omnimedia/omnitool/x/driver/driver.bundle.min.js",setupHost:dm(t)});return new this(t,r)}constructor(e,t){this.machina=e,this.thread=t}async hello(){return this.thread.work.hello()}async getAudioDuration(e){return await(await new _t({source:await zr(e),formats:lr}).getPrimaryAudioTrack())?.computeDuration()}async getVideoDuration(e){return await(await new _t({source:await zr(e),formats:lr}).getPrimaryVideoTrack())?.computeDuration()}decodeVideo(e){let t=null,r=new TransformStream({async transform(s,n){let o=await e.onFrame?.(s)??s;t?.close(),n.enqueue(o),t=o}});return this.thread.work.decodeVideo[Pr]({transfer:[r.writable]})({source:e.source,video:r.writable,start:e.start,end:e.end}),r.readable}decodeAudio(e){let t=new TransformStream;return this.thread.work.decodeAudio[Pr]({transfer:[t.writable]})({source:e.source,audio:t.writable,start:e.start,end:e.end}),t.readable}async encode({video:e,audio:t,config:r}){let n=await(await window.showSaveFilePicker()).createWritable(),o=new WritableStream({async write(a){await n.write(a)},async close(){await n.close()}});return await this.thread.work.encode[Pr]({transfer:[t??[],e??[],o]})({video:e,audio:t,config:r,bridge:o})}async composite(e){let t=this.#e(e);return await this.thread.work.composite[Pr]({transfer:t})(e)}#e(e){let t=[],r=s=>{if(Array.isArray(s))for(let n of s)r(n);else s&&typeof s=="object"&&"kind"in s&&s.kind==="image"&&s.frame instanceof VideoFrame&&t.push(s.frame)};return r(e),t}};function Se(i,e,t,r){return new(t||(t=Promise))(function(s,n){function o(l){try{c(r.next(l))}catch(u){n(u)}}function a(l){try{c(r.throw(l))}catch(u){n(u)}}function c(l){var u;l.done?s(l.value):(u=l.value,u instanceof t?u:new t(function(h){h(u)})).then(o,a)}c((r=r.apply(i,e||[])).next())})}var Gr=class{constructor(){this.listeners={}}on(e,t,r){if(this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t),r?.once){let s=()=>{this.un(e,s),this.un(e,t)};return this.on(e,s),s}return()=>this.un(e,t)}un(e,t){var r;(r=this.listeners[e])===null||r===void 0||r.delete(t)}once(e,t){return this.on(e,t,{once:!0})}unAll(){this.listeners={}}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach(r=>r(...t))}},Zo={decode:function(i,e){return Se(this,void 0,void 0,function*(){let t=new AudioContext({sampleRate:e});return t.decodeAudioData(i).finally(()=>t.close())})},createBuffer:function(i,e){return typeof i[0]=="number"&&(i=[i]),function(t){let r=t[0];if(r.some(s=>s>1||s<-1)){let s=r.length,n=0;for(let o=0;o<s;o++){let a=Math.abs(r[o]);a>n&&(n=a)}for(let o of t)for(let a=0;a<s;a++)o[a]/=n}}(i),{duration:e,length:i[0].length,sampleRate:i[0].length/e,numberOfChannels:i.length,getChannelData:t=>i?.[t],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function mm(i,e){let t=e.xmlns?document.createElementNS(e.xmlns,i):document.createElement(i);for(let[r,s]of Object.entries(e))if(r==="children"&&s)for(let[n,o]of Object.entries(s))o instanceof Node?t.appendChild(o):typeof o=="string"?t.appendChild(document.createTextNode(o)):t.appendChild(mm(n,o));else r==="style"?Object.assign(t.style,s):r==="textContent"?t.textContent=s:t.setAttribute(r,s.toString());return t}function fm(i,e,t){let r=mm(i,e||{});return t?.appendChild(r),r}var $_=Object.freeze({__proto__:null,createElement:fm,default:fm}),q_={fetchBlob:function(i,e,t){return Se(this,void 0,void 0,function*(){let r=yield fetch(i,t);if(r.status>=400)throw new Error(`Failed to fetch ${i}: ${r.status} (${r.statusText})`);return function(s,n){Se(this,void 0,void 0,function*(){if(!s.body||!s.headers)return;let o=s.body.getReader(),a=Number(s.headers.get("Content-Length"))||0,c=0,l=h=>Se(this,void 0,void 0,function*(){c+=h?.length||0;let d=Math.round(c/a*100);n(d)}),u=()=>Se(this,void 0,void 0,function*(){let h;try{h=yield o.read()}catch{return}h.done||(l(h.value),yield u())});u()})}(r.clone(),e),r.blob()})}},Nl=class extends Gr{constructor(e){super(),this.isExternalMedia=!1,e.media?(this.media=e.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),e.mediaControls&&(this.media.controls=!0),e.autoplay&&(this.media.autoplay=!0),e.playbackRate!=null&&this.onMediaEvent("canplay",()=>{e.playbackRate!=null&&(this.media.playbackRate=e.playbackRate)},{once:!0})}onMediaEvent(e,t,r){return this.media.addEventListener(e,t,r),()=>this.media.removeEventListener(e,t,r)}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){let e=this.getSrc();e.startsWith("blob:")&&URL.revokeObjectURL(e)}canPlayType(e){return this.media.canPlayType(e)!==""}setSrc(e,t){let r=this.getSrc();if(e&&r===e)return;this.revokeSrc();let s=t instanceof Blob&&(this.canPlayType(t.type)||!e)?URL.createObjectURL(t):e;if(r&&this.media.removeAttribute("src"),s||e)try{this.media.src=s}catch{this.media.src=e}}destroy(){this.isExternalMedia||(this.media.pause(),this.media.remove(),this.revokeSrc(),this.media.removeAttribute("src"),this.media.load())}setMediaElement(e){this.media=e}play(){return Se(this,void 0,void 0,function*(){return this.media.play()})}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(e){this.media.currentTime=Math.max(0,Math.min(e,this.getDuration()))}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(e){this.media.volume=e}getMuted(){return this.media.muted}setMuted(e){this.media.muted=e}getPlaybackRate(){return this.media.playbackRate}isSeeking(){return this.media.seeking}setPlaybackRate(e,t){t!=null&&(this.media.preservesPitch=t),this.media.playbackRate=e}getMediaElement(){return this.media}setSinkId(e){return this.media.setSinkId(e)}},Ds=class i extends Gr{constructor(e,t){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.subscriptions=[],this.unsubscribeOnScroll=[],this.subscriptions=[],this.options=e;let r=this.parentFromOptionsContainer(e.container);this.parent=r;let[s,n]=this.initHtml();r.appendChild(s),this.container=s,this.scrollContainer=n.querySelector(".scroll"),this.wrapper=n.querySelector(".wrapper"),this.canvasWrapper=n.querySelector(".canvases"),this.progressWrapper=n.querySelector(".progress"),this.cursor=n.querySelector(".cursor"),t&&n.appendChild(t),this.initEvents()}parentFromOptionsContainer(e){let t;if(typeof e=="string"?t=document.querySelector(e):e instanceof HTMLElement&&(t=e),!t)throw new Error("Container not found");return t}initEvents(){let e=t=>{let r=this.wrapper.getBoundingClientRect(),s=t.clientX-r.left,n=t.clientY-r.top;return[s/r.width,n/r.height]};if(this.wrapper.addEventListener("click",t=>{let[r,s]=e(t);this.emit("click",r,s)}),this.wrapper.addEventListener("dblclick",t=>{let[r,s]=e(t);this.emit("dblclick",r,s)}),this.options.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{let{scrollLeft:t,scrollWidth:r,clientWidth:s}=this.scrollContainer,n=t/r,o=(t+s)/r;this.emit("scroll",n,o,t,t+s)}),typeof ResizeObserver=="function"){let t=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{t().then(()=>this.onContainerResize()).catch(()=>{})}),this.resizeObserver.observe(this.scrollContainer)}}onContainerResize(){let e=this.parent.clientWidth;e===this.lastContainerWidth&&this.options.height!=="auto"||(this.lastContainerWidth=e,this.reRender())}initDrag(){this.subscriptions.push(function(e,t,r,s,n=3,o=0,a=100){if(!e)return()=>{};let c=matchMedia("(pointer: coarse)").matches,l=()=>{},u=h=>{if(h.button!==o)return;h.preventDefault(),h.stopPropagation();let d=h.clientX,f=h.clientY,m=!1,p=Date.now(),g=S=>{if(S.preventDefault(),S.stopPropagation(),c&&Date.now()-p<a)return;let T=S.clientX,v=S.clientY,M=T-d,P=v-f;if(m||Math.abs(M)>n||Math.abs(P)>n){let C=e.getBoundingClientRect(),{left:E,top:D}=C;m||(r?.(d-E,f-D),m=!0),t(M,P,T-E,v-D),d=T,f=v}},y=S=>{if(m){let T=S.clientX,v=S.clientY,M=e.getBoundingClientRect(),{left:P,top:C}=M;s?.(T-P,v-C)}l()},x=S=>{S.relatedTarget&&S.relatedTarget!==document.documentElement||y(S)},w=S=>{m&&(S.stopPropagation(),S.preventDefault())},_=S=>{m&&S.preventDefault()};document.addEventListener("pointermove",g),document.addEventListener("pointerup",y),document.addEventListener("pointerout",x),document.addEventListener("pointercancel",x),document.addEventListener("touchmove",_,{passive:!1}),document.addEventListener("click",w,{capture:!0}),l=()=>{document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",y),document.removeEventListener("pointerout",x),document.removeEventListener("pointercancel",x),document.removeEventListener("touchmove",_),setTimeout(()=>{document.removeEventListener("click",w,{capture:!0})},10)}};return e.addEventListener("pointerdown",u),()=>{l(),e.removeEventListener("pointerdown",u)}}(this.wrapper,(e,t,r)=>{this.emit("drag",Math.max(0,Math.min(1,r/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!0,this.emit("dragstart",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!1,this.emit("dragend",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))}))}getHeight(e,t){var r;let s=((r=this.audioData)===null||r===void 0?void 0:r.numberOfChannels)||1;if(e==null)return 128;if(!isNaN(Number(e)))return Number(e);if(e==="auto"){let n=this.parent.clientHeight||128;return t?.every(o=>!o.overlay)?n/s:n}return 128}initHtml(){let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),r=this.options.cspNonce&&typeof this.options.cspNonce=="string"?this.options.cspNonce.replace(/"/g,""):"";return t.innerHTML=`
|
|
575
|
+
`)});var Xn=()=>({stdout:async i=>console.log(i),stderr:async i=>console.error(i)});var tf=()=>rl()?$n():il()?qn():Xn();var rf=()=>({stdout:async()=>{},stderr:async()=>{}});function sf(){return()=>({stdout:i=>i,stderr:i=>i})}var ni=class i{static writers={auto:tf,void:rf,deno:$n,node:qn,console:Xn};static colors={auto:sl,colorful:()=>ps,colorless:()=>ms};static themes={auto:Zd,basic:Vn};static shapers={auto:ef,none:sf,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 vr=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 vr.fromBytes(i)},bytes(i){return vr.toBytes(i)}});var nl=58,Yn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ol=Object.freeze({fromBytes(i){let e=BigInt("0x"+vr.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(nl);e=e/BigInt(nl),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(nl)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=vr.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 ol.fromBytes(i)},bytes(i){return ol.toBytes(i)}});var nf=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let h=this.lookup[u];if(h===void 0)throw new Error(`Invalid character: ${u}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,l.push(a>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);r=r*s+BigInt(c)}let o=[];for(;r>0n;)o.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let l of e)for(o=o<<8|l,a+=8;a>=t;){a-=t;let u=o>>a&(1<<t)-1;c+=this.lexicon.characters[u]}if(a>0){let l=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let o of e)r=(r<<8n)+BigInt(o);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return n}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(bt.random(e))}};var al=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 al.fromBytes(i)},bytes(i){return al.toBytes(i)}});var of=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return of.fromBytes(i)},bytes(i){return of.toBytes(i)}});var 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 kr(){let i,e,t=new Promise((s,n)=>{i=s,e=n});function r(s){return s.then(i).catch(e),t}return{promise:t,resolve:i,reject:e,entangle:r}}function af(i,e){let t=i;for(let r of e)if(t=t[r],Kn.unset(t))break;return t}function k_(i){return{map:e=>cf(i,e),filter:e=>lf(i,e)}}k_.pipe=Object.freeze({map:i=>e=>cf(e,i),filter:i=>e=>lf(e,i)});var cf=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),lf=(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}=kr(),a=e((...c)=>{o(c),a()});return n}function s(){i.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=r,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=r,t.clear=s,[t,e]}function Qn(i){let e=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 uf({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=af(i.fns,r),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await uf({tap:e,request:t,action:n})}}var Cr=Symbol("tune"),C_=Symbol("query"),E_=Symbol("notify"),A_=Symbol("settings");function hf(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 hf(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 df(i,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=kr();return e(t,r,s.promise),i.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,r,s),s}}}function ff(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 mf(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 cl=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var io=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=kr();return this.pending.set(e,{method:t,deferred:r}),await 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??cl.timeout),this.remoteEndpoint=df(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Er({endpoint:this.remoteEndpoint,tap:r&&tl(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}=ff(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),l=eo({fns:c,tap:n&&tl(n,{remote:!1})}),u=await mf(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 pf(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 Le=Object.freeze({fromBytes(i){return[...i].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(i){if(i.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(i.length/2);for(let t=0;t<i.length;t+=2)e[t/2]=parseInt(i.slice(t,t+2),16);return e},random(i=32){return this.fromBytes(nt.random(i))},string(i){return Le.fromBytes(i)},bytes(i){return Le.toBytes(i)}});var ll=["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 ul=["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?ll:ul;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?ll:ul).findIndex(c=>c===s);if(a===-1)throw new Error(`unknown triplet ${s}`);return a}))},toHex(i){return Le.fromBytes(zt.toBytes(i))},fromHex(i,e){return zt.fromBytes(Le.toBytes(i),e)}};var hl=58,so="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ws=Object.freeze({fromBytes(i){let e=BigInt("0x"+Le.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(hl);e=e/BigInt(hl),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(hl)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Le.toBytes(t),s=0;for(let o of i)if(o===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=Le.toBytes(i);return ot.build.fromBytes(t,e)}},toHex(i){let e=ot.toBytes(i);return Le.fromBytes(e)},fromBytes(i,e){return ot.build.fromBytes(i,e).thumbprint},fromHex(i,e){return ot.fromBytes(Le.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 gf=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 dl=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 dl.fromBytes(i)},bytes(i){return dl.toBytes(i)}});var xf=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return xf.fromBytes(i)},bytes(i){return xf.toBytes(i)}});var fl=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=>yf(i,e),filter:e=>bf(i,e)}}F_.pipe=Object.freeze({map:i=>e=>yf(e,i),filter:i=>e=>bf(e,i)});var yf=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),bf=(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 wf=i=>({thread:e=>ai.make(i,e),cluster:e=>oo.make(i,e),worker:(e,t={})=>pf(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 _f=()=>({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_=_f(),ao=wf(R_);function v(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}.`)},ke=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 pl=i=>Object.fromEntries(Object.entries(i).map(([e,t])=>[t,e])),gl={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},uo=pl(gl),xl={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},ho=pl(xl),yl={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},fo=pl(yl);var bl=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}},wl=i=>[...i].map(e=>e.toString(16).padStart(2,"0")).join(""),_l=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 Sl=(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},Sf=async function*(i){Symbol.iterator in i?yield*i[Symbol.iterator]():yield*i[Symbol.asyncIterator]()},Tf=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 Tl=(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,kf=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)}},ml=null,yo=()=>{if(ml!==null)return ml;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 ml=i,i},Br=(i,e)=>i!==-1?i:e,bo=(i,e,t,r)=>i<=r&&t<=e;var Pf=i=>{let e=atob(i),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t};var or=class{constructor(e,t){this.data=e,this.mimeType=t}};var vs=["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"],iM=[...U_,...vs];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 Cf=".01.01.01.01.00",Ef=".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.${wl(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.${wl(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,u,h,d,f;if(n)c=n.generalProfileSpace,l=n.generalProfileIdc,u=_l(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=_l(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=ke(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(Cf)&&(g=g.slice(0,-Cf.length)),g}else if(e==="av1"){if(!a){let w=i.width*i.height,_=ke(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?gl[r.primaries]:1,p=r?.transfer?xl[r.transfer]:1,g=r?.matrix?yl[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(Ef)&&(x=x.slice(0,-Ef.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.${Pl(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&&vs.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Ts=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],kl=[-1,1,2,3,4,5,6,8],Pl=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=kl[n]),{objectType:t,frequencyIndex:r,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},Af=48e3,z_=/^pcm-([usf])(\d+)+(be)?$/,If=i=>{if(v(vs.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);v(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},Bf=(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),v(!1)),r+=e;let o=i.subarray(r,r+n);t.push(o),r+=n}return t},Cl=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 Bf(i,s)}else return To(i)},So=i=>i[0]&31,Ff=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(Cl(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 El=(i,e)=>{if(e.description){let s=(sr(e.description)[21]&3)+1;return Bf(i,s)}else return To(i)},Gt=i=>i[0]>>1&63,Rf=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(Cl(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}=N_(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)&&L_(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 k=0;if(s.length>0){let C=s[0],E=new fe(Cl(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?k=0:R&&!j?k=2:!R&&j?k=3:k=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:k,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}},N_=(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}},L_=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&&Mf(i,u,n),s&&Mf(i,u,n)}},Mf=(i,e,t)=>{for(let r=0;r<e;r++)D(i),D(i),t&&(D(i),D(i)),i.readBits(1)};var vo=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 k=e.readBits(1),M=e.readBits(1);h=!k&&!M?3:k&&!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=ke(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}},Df=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);v(e.pos%8===0),yield{type:r,data:i.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}},ko=i=>{for(let{type:e,data:t}of Df(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 k=l+1;r.skipBits(k),r.skipBits(k),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},Of=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],Uf=i=>{let e=i[0]>>3;return{durationInSamples:$_[e]}},zf=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}},Gf=async(i,e)=>{switch(v(i.codec),i.codec){case"avc":{let t=await i.getDecoderConfig();return v(t),G_(e.data,t).some(n=>So(n)===li.IDR)?"key":"delta"}case"hevc":{let t=await i.getDecoderConfig();return v(t),El(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 Df(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),v(!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=>(v(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},ks=i=>{let e=i.view.getInt16(i.bufferPos,!1);return i.bufferPos+=2,e},Nt=(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},Lt=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},Al=(i,e)=>{let t,r;return e?(t=Nt(i,!0),r=Nt(i,!0)):(r=Nt(i,!1),t=Nt(i,!1)),r*4294967296+t},Ye=i=>{let e=B(i),t=B(i);return e*4294967296+t},Lf=i=>{let e=Lt(i),t=B(i);return e*4294967296+t},Vf=i=>{let e=Rr(i);return q_(i)*4294967296+e},Wf=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=>Lt(i)/65536,Eo=i=>Lt(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))},Hf=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 Il=8,Ve=2,lt=2*Il,Ml=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},jf=(i,e)=>{let t=J(i,e);return t&1<<e*8-1&&(t-=2**(e*8)),t},Mo=i=>{let e=Ml(i);return e===null?null:J(i,e)},Bl=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=Bl(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?Wf(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}},Fl=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<Il)break;for(let c=0;c<a.length-Il;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 $f=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]},qf=1483304551,Xf=1231971951,Q_=(i,e,t,r)=>Math.floor(i===3?(12*e/t+r)*4:144*e/t+r),Yf=(i,e)=>i===3?e===3?21:36:e===3?13:21,Kf=(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=Kf(n,i.fileSize!==null?i.fileSize-r:null);if(o.header)return{header:o.header,startPos:r};r+=o.bytesAdvanced}return null},Qf=(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}},Jf=(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 Rl(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}},Rl=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 Dl=1399285583,J_=79764919,em=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;em[i]=e>>>0&4294967295}var tm=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^em[r>>>24^n])>>>0}return e.setUint32(22,t,!0),r},rm=(i,e,t)=>{let r=0,s=null;if(i.length>0)if(e.codec==="vorbis"){v(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<kf(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=Uf(i).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},im=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,sm=Or+65025,_i=i=>{let e=i.filePos;if(Rr(i)!==Dl)return null;i.skip(1);let r=z(i),s=Vf(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}},nm=(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===Dl)return!0;i.skip(1)}}return!1};var We=class{constructor(e){this.input=e}};var Do=[],Ol=[];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});v(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 v(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 v(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(!bl(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(v(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});v(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 v(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(v(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.")},Ul=(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 vi))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return Si(e),Ul(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Ur(e),Si(t),Ul(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),Ul(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}}}},zl=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=om(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){Tf(e);let t=Sf(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 k=0;k<T;k++)d(k<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()=>{v(y);let S=y;for(m.decode(S);S.sequenceNumber<x;){let T=om(s.length);for(;s.length+m.getDecodeQueueSize()>T&&!u;)({promise:a,resolve:c}=Fe()),await a;if(u)break;let k=await p.getNextPacket(S);v(k),m.decode(k),S=k}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),k=T&&await p.getKeyPacket(S,{verifyKeyPackets:!0});if(!k){x!==-1&&(await w(),await _()),d(null),g=null;continue}g&&(k.sequenceNumber!==y.sequenceNumber||T.timestamp<g.timestamp)&&(await w(),await _()),r.push(T.timestamp),x=Math.max(T.sequenceNumber,x),g=T,y=k}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 v(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}}}},om=i=>i===0?40:8,Gl=class extends zl{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>=ke(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();v(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:(v(this.decoder),this.decoder.decodeQueueSize)}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(El(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--)):(v(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()):(v(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()):(v(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 v(r&&n),new Gl(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});v(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 Tl(this._videoSampleSink.samples(e,t),r=>this._videoSampleToWrappedCanvas(r))}canvasesAtTimestamps(e){return Tl(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var vi=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 vi{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 v(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:Gf(this,e)}},Ae=class extends vi{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 v(t!==null),Ol.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),v(e);let t=de(e,4),r=t!=="RIFX",s=t==="RF64",n=Nt(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=Nt(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=Al(d,r);l=Al(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=Nt(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=Nt(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(v(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 v(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},ki=2048,Nl=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return v(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(v(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 v(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return v(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return v(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Pe}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){v(this.demuxer.audioInfo);let r=e*ki*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let s=Math.min(ki*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);if(c instanceof Promise&&(c=await c),!c)return null}let n;if(t.metadataOnly)n=Ee;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);c instanceof Promise&&(c=await c),v(c),n=W(c,s)}let o=e*ki/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,o),new ce(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,t){v(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/ki,(this.demuxer.dataSize-1)/(ki*this.demuxer.audioInfo.blockSizeInBytes))),s=await this.getPacketAtIndex(r,t);if(s)return s;if(r===0)return null;v(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){v(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/ki);return this.getPacketAtIndex(r+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var 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:cm.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}},am=.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:cm.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,am));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)),v(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 cm={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+am),{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){v(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);v(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(v(_<=S),d<_&&f.push({start:d,end:_}),d=S,u){let T=Math.max(e,w.start),k=Math.min(t,w.end);if(T<k){let M=T-e;u.set(w.bytes.subarray(T-w.start,k-w.start),M),M===h&&(h=k-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 v(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||(v(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){v(!e.running),v(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);v(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"]),No=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),v(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,v(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&&vs.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){v(e.info?.type==="audio");let n=If(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=ke(o);T&&T.delta===S?T.count++:o.push({startIndex:l.startChunkIndex+d,startDecodeTimestamp:w,count:1,delta:S});let k=l.samplesPerChunk*n.sampleSize*e.info.numberOfChannels;a.push(k)}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),v(t);let r=wt(t);v(r?.name==="moof");let s=this.reader.requestSlice(e,r.totalSize);s instanceof Promise&&(s=await s),v(s),this.traverseBox(s);let n=ae(this.fragments,e,a=>a.moofOffset);v(n!==-1);let o=this.fragments[n];v(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);v(p.startTimestampIsFinal),um(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 Ll(a)),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let a=o;o.inputTrack=new Ae(new Vl(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));v(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?Lf(e):Lt(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;v(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"hvcC":{let o=this.currentTrack;if(!o)break;v(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"vpcC":{let o=this.currentTrack;if(!o)break;v(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;v(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||(v(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;v(o.info?.type==="audio"),e.skip(4);let a=z(e);v(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);v(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);v(g===5);let y=Ao(e);if(o.info.codecDescription=W(e,y),o.info.codec==="aac"){let x=Pl(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;v(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;v(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;v(o.info?.type==="audio"),e.skip(1);let a=z(e),c=Ce(e),l=B(e),u=ks(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;v(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=Lt(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=ke(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(v(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;v(c),c.startTimestamp!==null&&(um(o,c.startTimestamp),o.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{v(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;v(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(v(this.currentFragment),v(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+=Lt(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 k=0;k<p;k++){let M;h?M=B(e):(v(o.currentFragmentState.defaultSampleDuration!==null),M=o.currentFragmentState.defaultSampleDuration);let P;d?P=B(e):(v(o.currentFragmentState.defaultSampleSize!==null),P=o.currentFragmentState.defaultSampleSize);let C;f?C=B(e):(v(o.currentFragmentState.defaultSampleFlags!==null),C=o.currentFragmentState.defaultSampleFlags),k===0&&y!==null&&(C=y);let E=0;m&&(a===0?E=B(e):E=Lt(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((k,M)=>({presentationTimestamp:k.presentationTimestamp,sampleIndex:M})).sort((k,M)=>k.presentationTimestamp-M.presentationTimestamp);for(let k=0;k<_.presentationTimestamps.length;k++){let M=_.presentationTimestamps[k],P=_.samples[M.sampleIndex];if(_.firstKeyFrameTimestamp===null&&P.isKeyFrame&&(_.firstKeyFrameTimestamp=P.presentationTimestamp),k<_.presentationTimestamps.length-1){let C=_.presentationTimestamps[k+1];P.duration=C.presentationTimestamp-M.presentationTimestamp}}let S=_.samples[_.presentationTimestamps[0].sampleIndex],T=_.samples[ke(_.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=Hf(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}},Lo=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=lm(s,r),o=await this.fetchPacketForSampleIndex(n,t);return!hm(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 v(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 v(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=lm(s,r),o=n===-1?-1:rS(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!hm(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 v(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);v(u!==-1);let h=l.samples.findIndex(d=>d.isKeyFrame);return v(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),v(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];v(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),v(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);v(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),v(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=mo(a.presentationTimestamps,u=>a.samples[u.sampleIndex].isKeyFrame&&u.presentationTimestamp<=e);v(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:k,sampleIndex:M,correctSampleFound:P}=e();if(P){let C=this.internalTrack.fragments[k];return this.fetchPacketInFragment(C,M,s)}k!==-1&&(h=k,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()}}},Ll=class extends Lo{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&&vo(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&ko(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}},Vl=class extends Lo{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}},lm=(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];v(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];v(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},um=(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},hm=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 Wl=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],dm=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 $f({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=ke(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 Fl(this.reader,l,fi,Math.min(this.currentSegment.elementEndPos??1/0,l+dm));if(p){r=p;continue}else break}let{id:h,size:d}=u,f=c.filePos,m=Wl.findIndex(p=>p.id===h);if(m!==-1){let p=Wl[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=Wl.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)v(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)v(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),v(r);let s=e,n=ut(r);v(n);let o=n.id,a=n.size,c=r.filePos;a===null&&(a=(await Fo(this.reader,c,Io,t.elementEndPos)).pos-c),v(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;v(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[ke(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);v(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);v(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:v(!1)}v(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),v(!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 Hl(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 jl(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;v(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;v(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=ks(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=ks(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=jf(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 v(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 v(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 v(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);v(l!==-1);let u=c.blocks.findIndex(h=>h.isKeyFrame);return v(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];v(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);v(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),v(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=mo(a.presentationTimestamps,u=>a.blocks[u.blockIndex].isKeyFrame&&u.timestamp<=e);v(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 Fl(n.reader,_,fi,Math.min(o.elementEndPos??1/0,_+dm));if(P){g=P;continue}else break}let T=S.id,k=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(k===null){T===I.Cluster?(v(h),k=h.elementEndPos-M):k=(await Fo(n.reader,M,Io,o.elementEndPos)).pos-M;let P=M+k;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+k}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()}}},Hl=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?Ff(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Rf(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?vo(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?ko(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}},jl=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 $l(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=Yf(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===qf||a===Xf)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 v(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;Jf(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),v(s),de(s,3)==="TAG"&&Qf(s,this.metadataTags)}return this.metadataTags}finally{e()}}},$l=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return v(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 v(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return v(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return v(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 ql(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:zf(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=Of(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip},this.readVorbisComments(s.data.subarray(8))}readVorbisComments(e){let t=oe(e),r=0,s=t.getUint32(r,!0);r+=4;let n=Be.decode(e.subarray(r,r+s));r+=s,s>0&&(this.metadataTags.raw??={},this.metadataTags.raw.vendor??=n);let o=t.getUint32(r,!0);r+=4;for(let a=0;a<o;a++){let c=t.getUint32(r,!0);r+=4;let l=Be.decode(e.subarray(r,r+c));r+=c;let u=l.indexOf("=");if(u===-1)continue;let h=l.slice(0,u).toUpperCase(),d=l.slice(u+1);switch(this.metadataTags.raw??={},this.metadataTags.raw[h]??=d,h){case"TITLE":this.metadataTags.title??=d;break;case"DESCRIPTION":this.metadataTags.description??=d;break;case"ARTIST":this.metadataTags.artist??=d;break;case"ALBUM":this.metadataTags.album??=d;break;case"ALBUMARTIST":this.metadataTags.albumArtist??=d;break;case"COMMENT":this.metadataTags.comment??=d;break;case"LYRICS":this.metadataTags.lyrics??=d;break;case"TRACKNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"TRACKTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.tracksTotal??=f)}break;case"DISCNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.discNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.discsTotal??=p)}break;case"DISCTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.discsTotal??=f)}break;case"DATE":{let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"GENRE":this.metadataTags.genre??=d;break;case"METADATA_BLOCK_PICTURE":{let f=Pf(d),m=oe(f),p=m.getUint32(0,!1),g=m.getUint32(4,!1),y=String.fromCharCode(...f.subarray(8,8+g)),x=m.getUint32(8+g,!1),w=Be.decode(f.subarray(12+g,12+g+x)),_=m.getUint32(g+x+28),S=f.subarray(g+x+32,g+x+32+_);this.metadataTags.images??=[],this.metadataTags.images.push({data:S,mimeType:y,kind:p===3?"coverFront":p===4?"coverBack":"unknown",name:void 0,description:w||void 0})}break}}}async readPacket(e,t){v(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),v(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 im({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}},ql=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"?Af: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 v(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"?(v(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,r){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=rm(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){v(this.bitstream.lastMetadataPacket);let t=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!t)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(v(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;v(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(_+sm,o-lr),T=this.demuxer.reader.requestSlice(_,S-_);if(T instanceof Promise&&(T=await T),v(T),!nm(T,S)){o=w+lr;continue e}let M=this.demuxer.reader.requestSliceRange(T.filePos,lr,Or);M instanceof Promise&&(M=await M),v(M);let P=_i(M);v(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),v(R);let j=W(R,P.totalSize);C=tm(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),v(w);let _=_i(w);v(_),l=_,l.serialNumber===this.bitstream.serialNumber&&u.push(l)}v(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 _=mm(u,l,h);v(_);let S=fm(u,_.page,_.segmentIndex);S&&(l=S.page,h=S.segmentIndex)}else for(;;){let _=mm(u,l,h);if(!_)break;let S=fm(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;){v(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);v(S);let T=this.encodedPacketToMetadata.get(S);if(v(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),v(S),T=this.encodedPacketToMetadata.get(S),v(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);v(l),this.sequentialScanCache.length>0&&v(ke(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)}},fm=(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(v(s===-1),!(r.headerType&1)){s=0;break}let o=Sl(i,a=>a.headerStartPos<r.headerStartPos);if(!o)return null;r=o,s=r.lacingValues.length}if(v(s!==-1),s===r.lacingValues.length){let n=i[i.indexOf(r)+1];v(n),r=n,s=0}return{page:r,segmentIndex:s}},mm=(i,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let r=Sl(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 Xl=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();v(this.firstFrameHeader),this.tracks=[new Ae(new Yl(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];v(r!==void 0);let s=Xl/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+=Xl,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 v(e),e.computeDuration()}async getMetadataTags(){return{}}},Yl=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/Xl}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 v(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){v(this.demuxer.firstFrameHeader);let e=kl[this.demuxer.firstFrameHeader.channelConfiguration];return v(e!==void 0),e}getSampleRate(){v(this.demuxer.firstFrameHeader);let e=Ts[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return v(e!==void 0),e}async getDecoderConfig(){v(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 No(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=Ml(r);if(s===null||s<1||s>8||J(r,s)!==I.EBML)return!1;let o=Bl(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"}},pm=new qo,gm=new Xo,xm=new Os,ym=new Yo,bm=new Ko,wm=new Zo,_m=new Qo,Sm=new Jo,ur=[pm,gm,xm,ym,wm,_m,bm,Sm];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(),v(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 Tm=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:Tm(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 Nr=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 km(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(km(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=km(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()})}},Kl=class extends Nr{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 Nr{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,k=S.clientY,M=T-d,P=k-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,k-R),d=T,f=k}},y=S=>{if(m){let T=S.clientX,k=S.clientY,M=e.getBoundingClientRect(),{left:P,top:C}=M;s?.(T-P,k-C)}l()},x=S=>{S.relatedTarget&&S.relatedTarget!==document.documentElement||y(S)},w=S=>{m&&(S.stopPropagation(),S.preventDefault())},_=S=>{m&&S.preventDefault()};document.addEventListener("pointermove",g),document.addEventListener("pointerup",y),document.addEventListener("pointerout",x),document.addEventListener("pointercancel",x),document.addEventListener("touchmove",_,{passive:!1}),document.addEventListener("click",w,{capture:!0}),l=()=>{document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",y),document.removeEventListener("pointerout",x),document.removeEventListener("pointercancel",x),document.removeEventListener("touchmove",_),setTimeout(()=>{document.removeEventListener("click",w,{capture:!0})},10)}};return e.addEventListener("pointerdown",u),()=>{l(),e.removeEventListener("pointerdown",u)}}(this.wrapper,(e,t,r)=>{this.emit("drag",Math.max(0,Math.min(1,r/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!0,this.emit("dragstart",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!1,this.emit("dragend",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))}))}getHeight(e,t){var r;let s=((r=this.audioData)===null||r===void 0?void 0:r.numberOfChannels)||1;if(e==null)return 128;if(!isNaN(Number(e)))return Number(e);if(e==="auto"){let n=this.parent.clientHeight||128;return t?.every(o=>!o.overlay)?n/s:n}return 128}initHtml(){let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),r=this.options.cspNonce&&typeof this.options.cspNonce=="string"?this.options.cspNonce.replace(/"/g,""):"";return t.innerHTML=`
|
|
576
576
|
<style${r?` nonce="${r}"`:""}>
|
|
577
577
|
:host {
|
|
578
578
|
user-select: none;
|
|
@@ -644,7 +644,7 @@ fn mainFragment(
|
|
|
644
644
|
<div class="cursor" part="cursor"></div>
|
|
645
645
|
</div>
|
|
646
646
|
</div>
|
|
647
|
-
`,[e,t]}setOptions(e){if(this.options.container!==e.container){let t=this.parentFromOptionsContainer(e.container);t.appendChild(this.container),this.parent=t}e.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.options=e,this.reRender()}getWrapper(){return this.wrapper}getWidth(){return this.scrollContainer.clientWidth}getScroll(){return this.scrollContainer.scrollLeft}setScroll(e){this.scrollContainer.scrollLeft=e}setScrollPercentage(e){let{scrollWidth:t}=this.scrollContainer,r=t*e;this.setScroll(r)}destroy(){var e,t;this.subscriptions.forEach(r=>r()),this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.unsubscribeOnScroll)===null||t===void 0||t.forEach(r=>r()),this.unsubscribeOnScroll=[]}createDelay(e=10){let t,r,s=()=>{t&&clearTimeout(t),r&&r()};return this.timeouts.push(s),()=>new Promise((n,o)=>{s(),r=o,t=setTimeout(()=>{t=void 0,r=void 0,n()},e)})}convertColorValues(e){if(!Array.isArray(e))return e||"";if(e.length<2)return e[0]||"";let t=document.createElement("canvas"),r=t.getContext("2d"),s=t.height*(window.devicePixelRatio||1),n=r.createLinearGradient(0,0,0,s),o=1/(e.length-1);return e.forEach((a,c)=>{let l=c*o;n.addColorStop(l,a)}),n}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(e,t,r,s){let n=e[0],o=e[1]||e[0],a=n.length,{width:c,height:l}=r.canvas,u=l/2,h=this.getPixelRatio(),d=t.barWidth?t.barWidth*h:1,f=t.barGap?t.barGap*h:t.barWidth?d/2:0,m=t.barRadius||0,p=c/(d+f)/a,g=m&&"roundRect"in r?"roundRect":"rect";r.beginPath();let y=0,x=0,w=0;for(let _=0;_<=a;_++){let S=Math.round(_*p);if(S>y){let M=Math.round(x*u*s),P=M+Math.round(w*u*s)||1,C=u-M;t.barAlign==="top"?C=0:t.barAlign==="bottom"&&(C=l-P),r[g](y*(d+f),C,d,P,m),y=S,x=0,w=0}let T=Math.abs(n[_]||0),v=Math.abs(o[_]||0);T>x&&(x=T),v>w&&(w=v)}r.fill(),r.closePath()}renderLineWaveform(e,t,r,s){let n=o=>{let a=e[o]||e[0],c=a.length,{height:l}=r.canvas,u=l/2,h=r.canvas.width/c;r.moveTo(0,u);let d=0,f=0;for(let m=0;m<=c;m++){let p=Math.round(m*h);if(p>d){let y=u+(Math.round(f*u*s)||1)*(o===0?-1:1);r.lineTo(d,y),d=p,f=0}let g=Math.abs(a[m]||0);g>f&&(f=g)}r.lineTo(d,u)};r.beginPath(),n(0),n(1),r.fill(),r.closePath()}renderWaveform(e,t,r){if(r.fillStyle=this.convertColorValues(t.waveColor),t.renderFunction)return void t.renderFunction(e,r);let s=t.barHeight||1;if(t.normalize){let n=Array.from(e[0]).reduce((o,a)=>Math.max(o,Math.abs(a)),0);s=n?1/n:1}t.barWidth||t.barGap||t.barAlign?this.renderBarWaveform(e,t,r,s):this.renderLineWaveform(e,t,r,s)}renderSingleCanvas(e,t,r,s,n,o,a){let c=this.getPixelRatio(),l=document.createElement("canvas");l.width=Math.round(r*c),l.height=Math.round(s*c),l.style.width=`${r}px`,l.style.height=`${s}px`,l.style.left=`${Math.round(n)}px`,o.appendChild(l);let u=l.getContext("2d");if(this.renderWaveform(e,t,u),l.width>0&&l.height>0){let h=l.cloneNode(),d=h.getContext("2d");d.drawImage(l,0,0),d.globalCompositeOperation="source-in",d.fillStyle=this.convertColorValues(t.progressColor),d.fillRect(0,0,l.width,l.height),a.appendChild(h)}}renderMultiCanvas(e,t,r,s,n,o){let a=this.getPixelRatio(),{clientWidth:c}=this.scrollContainer,l=r/a,u=Math.min(i.MAX_CANVAS_WIDTH,c,l),h={};if(t.barWidth||t.barGap){let g=t.barWidth||.5,y=g+(t.barGap||g/2);u%y!=0&&(u=Math.floor(u/y)*y)}if(u===0)return;let d=g=>{if(g<0||g>=f||h[g])return;h[g]=!0;let y=g*u,x=Math.min(l-y,u);if(t.barWidth||t.barGap){let _=t.barWidth||.5,S=_+(t.barGap||_/2);x=Math.floor(x/S)*S}if(x<=0)return;let w=e.map(_=>{let S=Math.floor(y/l*_.length),T=Math.floor((y+x)/l*_.length);return _.slice(S,T)});this.renderSingleCanvas(w,t,x,s,y,n,o)},f=Math.ceil(l/u);if(!this.isScrollable){for(let g=0;g<f;g++)d(g);return}let m=this.scrollContainer.scrollLeft/l,p=Math.floor(m*f);if(d(p-1),d(p),d(p+1),f>1){let g=this.on("scroll",()=>{let{scrollLeft:y}=this.scrollContainer,x=Math.floor(y/l*f);Object.keys(h).length>i.MAX_NODES&&(n.innerHTML="",o.innerHTML="",h={}),d(x-1),d(x),d(x+1)});this.unsubscribeOnScroll.push(g)}}renderChannel(e,t,r,s){var{overlay:n}=t,o=function(u,h){var d={};for(var f in u)Object.prototype.hasOwnProperty.call(u,f)&&h.indexOf(f)<0&&(d[f]=u[f]);if(u!=null&&typeof Object.getOwnPropertySymbols=="function"){var m=0;for(f=Object.getOwnPropertySymbols(u);m<f.length;m++)h.indexOf(f[m])<0&&Object.prototype.propertyIsEnumerable.call(u,f[m])&&(d[f[m]]=u[f[m]])}return d}(t,["overlay"]);let a=document.createElement("div"),c=this.getHeight(o.height,o.splitChannels);a.style.height=`${c}px`,n&&s>0&&(a.style.marginTop=`-${c}px`),this.canvasWrapper.style.minHeight=`${c}px`,this.canvasWrapper.appendChild(a);let l=a.cloneNode();this.progressWrapper.appendChild(l),this.renderMultiCanvas(e,o,r,c,a,l)}render(e){return Se(this,void 0,void 0,function*(){var t;this.timeouts.forEach(c=>c()),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",this.options.width!=null&&(this.scrollContainer.style.width=typeof this.options.width=="number"?`${this.options.width}px`:this.options.width);let r=this.getPixelRatio(),s=this.scrollContainer.clientWidth,n=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=n>s;let o=this.options.fillParent&&!this.isScrollable,a=(o?s:n)*r;if(this.wrapper.style.width=o?"100%":`${n}px`,this.scrollContainer.style.overflowX=this.isScrollable?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.audioData=e,this.emit("render"),this.options.splitChannels)for(let c=0;c<e.numberOfChannels;c++){let l=Object.assign(Object.assign({},this.options),(t=this.options.splitChannels)===null||t===void 0?void 0:t[c]);this.renderChannel([e.getChannelData(c)],l,a,c)}else{let c=[e.getChannelData(0)];e.numberOfChannels>1&&c.push(e.getChannelData(1)),this.renderChannel(c,this.options,a,0)}Promise.resolve().then(()=>this.emit("rendered"))})}reRender(){if(this.unsubscribeOnScroll.forEach(r=>r()),this.unsubscribeOnScroll=[],!this.audioData)return;let{scrollWidth:e}=this.scrollContainer,{right:t}=this.progressWrapper.getBoundingClientRect();if(this.render(this.audioData),this.isScrollable&&e!==this.scrollContainer.scrollWidth){let{right:r}=this.progressWrapper.getBoundingClientRect(),s=r-t;s*=2,s=s<0?Math.floor(s):Math.ceil(s),s/=2,this.scrollContainer.scrollLeft+=s}}zoom(e){this.options.minPxPerSec=e,this.reRender()}scrollIntoView(e,t=!1){let{scrollLeft:r,scrollWidth:s,clientWidth:n}=this.scrollContainer,o=e*s,a=r,c=r+n,l=n/2;if(this.isDragging)o+30>c?this.scrollContainer.scrollLeft+=30:o-30<a&&(this.scrollContainer.scrollLeft-=30);else{(o<a||o>c)&&(this.scrollContainer.scrollLeft=o-(this.options.autoCenter?l:0));let u=o-r-l;t&&this.options.autoCenter&&u>0&&(this.scrollContainer.scrollLeft+=Math.min(u,10))}{let u=this.scrollContainer.scrollLeft,h=u/s,d=(u+n)/s;this.emit("scroll",h,d,u,u+n)}}renderProgress(e,t){if(isNaN(e))return;let r=100*e;this.canvasWrapper.style.clipPath=`polygon(${r}% 0%, 100% 0%, 100% 100%, ${r}% 100%)`,this.progressWrapper.style.width=`${r}%`,this.cursor.style.left=`${r}%`,this.cursor.style.transform=`translateX(-${Math.round(r)===100?this.options.cursorWidth:0}px)`,this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(e,t)}exportImage(e,t,r){return Se(this,void 0,void 0,function*(){let s=this.canvasWrapper.querySelectorAll("canvas");if(!s.length)throw new Error("No waveform data");if(r==="dataURL"){let n=Array.from(s).map(o=>o.toDataURL(e,t));return Promise.resolve(n)}return Promise.all(Array.from(s).map(n=>new Promise((o,a)=>{n.toBlob(c=>{c?o(c):a(new Error("Could not export image"))},e,t)})))})}};Ds.MAX_CANVAS_WIDTH=8e3,Ds.MAX_NODES=10;var Ll=class extends Gr{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}},Fs=class extends Gr{constructor(e=new AudioContext){super(),this.bufferNode=null,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this._playbackRate=1,this._duration=void 0,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.seeking=!1,this.autoplay=!1,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=e,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return Se(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(e){if(this.currentSrc=e,this._duration=void 0,!e)return this.buffer=null,void this.emit("emptied");fetch(e).then(t=>{if(t.status>=400)throw new Error(`Failed to fetch ${e}: ${t.status} (${t.statusText})`);return t.arrayBuffer()}).then(t=>this.currentSrc!==e?null:this.audioContext.decodeAudioData(t)).then(t=>{this.currentSrc===e&&(this.buffer=t,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play())})}_play(){var e;if(!this.paused)return;this.paused=!1,(e=this.bufferNode)===null||e===void 0||e.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.buffer&&(this.bufferNode.buffer=this.buffer),this.bufferNode.playbackRate.value=this._playbackRate,this.bufferNode.connect(this.gainNode);let t=this.playedDuration*this._playbackRate;(t>=this.duration||t<0)&&(t=0,this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,t),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))}}_pause(){var e;this.paused=!0,(e=this.bufferNode)===null||e===void 0||e.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime}play(){return Se(this,void 0,void 0,function*(){this.paused&&(this._play(),this.emit("play"))})}pause(){this.paused||(this._pause(),this.emit("pause"))}stopAt(e){let t=e-this.currentTime,r=this.bufferNode;r?.stop(this.audioContext.currentTime+t),r?.addEventListener("ended",()=>{r===this.bufferNode&&(this.bufferNode=null,this.pause())},{once:!0})}setSinkId(e){return Se(this,void 0,void 0,function*(){return this.audioContext.setSinkId(e)})}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this.bufferNode&&(this.bufferNode.playbackRate.value=e)}get currentTime(){return(this.paused?this.playedDuration:this.playedDuration+(this.audioContext.currentTime-this.playStartTime))*this._playbackRate}set currentTime(e){let t=!this.paused;t&&this._pause(),this.playedDuration=e/this._playbackRate,t&&this._play(),this.emit("seeking"),this.emit("timeupdate")}get duration(){var e,t;return(e=this._duration)!==null&&e!==void 0?e:((t=this.buffer)===null||t===void 0?void 0:t.duration)||0}set duration(e){this._duration=e}get volume(){return this.gainNode.gain.value}set volume(e){this.gainNode.gain.value=e,this.emit("volumechange")}get muted(){return this._muted}set muted(e){this._muted!==e&&(this._muted=e,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(e){return/^(audio|video)\//.test(e)}getGainNode(){return this.gainNode}getChannelData(){let e=[];if(!this.buffer)return e;let t=this.buffer.numberOfChannels;for(let r=0;r<t;r++)e.push(this.buffer.getChannelData(r));return e}},X_={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},Ci=class i extends Nl{static create(e){return new i(e)}constructor(e){let t=e.media||(e.backend==="WebAudio"?new Fs:void 0);super({media:t,mediaControls:e.mediaControls,autoplay:e.autoplay,playbackRate:e.audioRate}),this.plugins=[],this.decodedData=null,this.stopAtPosition=null,this.subscriptions=[],this.mediaSubscriptions=[],this.abortController=null,this.options=Object.assign({},X_,e),this.timer=new Ll;let r=t?void 0:this.getMediaElement();this.renderer=new Ds(this.options,r),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();let s=this.options.url||this.getSrc()||"";Promise.resolve().then(()=>{this.emit("init");let{peaks:n,duration:o}=this.options;(s||n&&o)&&this.load(s,n,o).catch(()=>null)})}updateProgress(e=this.getCurrentTime()){return this.renderer.renderProgress(e/this.getDuration(),this.isPlaying()),e}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{if(!this.isSeeking()){let e=this.updateProgress();this.emit("timeupdate",e),this.emit("audioprocess",e),this.stopAtPosition!=null&&this.isPlaying()&&e>=this.stopAtPosition&&this.pause()}}))}initPlayerEvents(){this.isPlaying()&&(this.emit("play"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{let e=this.updateProgress();this.emit("timeupdate",e)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("emptied",()=>{this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("ended",()=>{this.emit("timeupdate",this.getDuration()),this.emit("finish"),this.stopAtPosition=null}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}),this.onMediaEvent("error",()=>{var e;this.emit("error",(e=this.getMediaElement().error)!==null&&e!==void 0?e:new Error("Media error")),this.stopAtPosition=null}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(e,t)=>{this.options.interact&&(this.seekTo(e),this.emit("interaction",e*this.getDuration()),this.emit("click",e,t))}),this.renderer.on("dblclick",(e,t)=>{this.emit("dblclick",e,t)}),this.renderer.on("scroll",(e,t,r,s)=>{let n=this.getDuration();this.emit("scroll",e*n,t*n,r,s)}),this.renderer.on("render",()=>{this.emit("redraw")}),this.renderer.on("rendered",()=>{this.emit("redrawcomplete")}),this.renderer.on("dragstart",e=>{this.emit("dragstart",e)}),this.renderer.on("dragend",e=>{this.emit("dragend",e)}));{let e;this.subscriptions.push(this.renderer.on("drag",t=>{if(!this.options.interact)return;let r;this.renderer.renderProgress(t),clearTimeout(e),this.isPlaying()?r=0:this.options.dragToSeek===!0?r=200:typeof this.options.dragToSeek=="object"&&this.options.dragToSeek!==void 0&&(r=this.options.dragToSeek.debounceTime),e=setTimeout(()=>{this.seekTo(t)},r),this.emit("interaction",t*this.getDuration()),this.emit("drag",t)}))}}initPlugins(){var e;!((e=this.options.plugins)===null||e===void 0)&&e.length&&this.options.plugins.forEach(t=>{this.registerPlugin(t)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(e=>e()),this.mediaSubscriptions=[]}setOptions(e){this.options=Object.assign({},this.options,e),e.duration&&!e.peaks&&(this.decodedData=Zo.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=Zo.createBuffer(e.peaks,e.duration)),this.renderer.setOptions(this.options),e.audioRate&&this.setPlaybackRate(e.audioRate),e.mediaControls!=null&&(this.getMediaElement().controls=e.mediaControls)}registerPlugin(e){if(this.plugins.includes(e))return e;e._init(this),this.plugins.push(e);let t=e.once("destroy",()=>{this.plugins=this.plugins.filter(r=>r!==e),this.subscriptions=this.subscriptions.filter(r=>r!==t)});return this.subscriptions.push(t),e}unregisterPlugin(e){this.plugins=this.plugins.filter(t=>t!==e),e.destroy()}getWrapper(){return this.renderer.getWrapper()}getWidth(){return this.renderer.getWidth()}getScroll(){return this.renderer.getScroll()}setScroll(e){return this.renderer.setScroll(e)}setScrollTime(e){let t=e/this.getDuration();this.renderer.setScrollPercentage(t)}getActivePlugins(){return this.plugins}loadAudio(e,t,r,s){return Se(this,void 0,void 0,function*(){var n;if(this.emit("load",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!t&&!r){let a=this.options.fetchParams||{};window.AbortController&&!a.signal&&(this.abortController=new AbortController,a.signal=(n=this.abortController)===null||n===void 0?void 0:n.signal);let c=u=>this.emit("loading",u);t=yield q_.fetchBlob(e,c,a);let l=this.options.blobMimeType;l&&(t=new Blob([t],{type:l}))}this.setSrc(e,t);let o=yield new Promise(a=>{let c=s||this.getDuration();c?a(c):this.mediaSubscriptions.push(this.onMediaEvent("loadedmetadata",()=>a(this.getDuration()),{once:!0}))});if(!e&&!t){let a=this.getMediaElement();a instanceof Fs&&(a.duration=o)}if(r)this.decodedData=Zo.createBuffer(r,o||0);else if(t){let a=yield t.arrayBuffer();this.decodedData=yield Zo.decode(a,this.options.sampleRate)}this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData)),this.emit("ready",this.getDuration())})}load(e,t,r){return Se(this,void 0,void 0,function*(){try{return yield this.loadAudio(e,void 0,t,r)}catch(s){throw this.emit("error",s),s}})}loadBlob(e,t,r){return Se(this,void 0,void 0,function*(){try{return yield this.loadAudio("",e,t,r)}catch(s){throw this.emit("error",s),s}})}zoom(e){if(!this.decodedData)throw new Error("No audio loaded");this.renderer.zoom(e),this.emit("zoom",e)}getDecodedData(){return this.decodedData}exportPeaks({channels:e=2,maxLength:t=8e3,precision:r=1e4}={}){if(!this.decodedData)throw new Error("The audio has not been decoded yet");let s=Math.min(e,this.decodedData.numberOfChannels),n=[];for(let o=0;o<s;o++){let a=this.decodedData.getChannelData(o),c=[],l=a.length/t;for(let u=0;u<t;u++){let h=a.slice(Math.floor(u*l),Math.ceil((u+1)*l)),d=0;for(let f=0;f<h.length;f++){let m=h[f];Math.abs(m)>Math.abs(d)&&(d=m)}c.push(Math.round(d*r)/r)}n.push(c)}return n}getDuration(){let e=super.getDuration()||0;return e!==0&&e!==1/0||!this.decodedData||(e=this.decodedData.duration),e}toggleInteraction(e){this.options.interact=e}setTime(e){this.stopAtPosition=null,super.setTime(e),this.updateProgress(e),this.emit("timeupdate",e)}seekTo(e){let t=this.getDuration()*e;this.setTime(t)}play(e,t){let r=Object.create(null,{play:{get:()=>super.play}});return Se(this,void 0,void 0,function*(){e!=null&&this.setTime(e);let s=yield r.play.call(this);return t!=null&&(this.media instanceof Fs?this.media.stopAt(t):this.stopAtPosition=t),s})}playPause(){return Se(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(e){this.setTime(this.getCurrentTime()+e)}empty(){this.load("",[[0]],.001)}setMediaElement(e){this.unsubscribePlayerEvents(),super.setMediaElement(e),this.initPlayerEvents()}exportImage(){return Se(this,arguments,void 0,function*(e="image/png",t=1,r="dataURL"){return this.renderer.exportImage(e,t,r)})}destroy(){var e;this.emit("destroy"),(e=this.abortController)===null||e===void 0||e.abort(),this.plugins.forEach(t=>t.destroy()),this.subscriptions.forEach(t=>t()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}};Ci.BasePlugin=class extends Gr{constructor(i){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=i}onInit(){}_init(i){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=i,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(i=>i()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},Ci.dom=$_;var Qo=class i{wavesurfer;constructor(e,t,r){this.wavesurfer=Ci.create({container:t,waveColor:"rgb(200, 0, 200)",progressColor:"rgb(100, 0, 100)",barWidth:10,barRadius:10,barGap:2,peaks:[e],duration:r})}static async init(e,t,r){let s=e.decodeAudio({source:t}).getReader(),n=[],o=[],a=1024,c=await e.getAudioDuration(t);for(;;){let{done:l,value:u}=await s.read();if(l)break;let h=u.numberOfFrames,d=new Float32Array(h);u.copyTo(d,{planeIndex:0});for(let f=0;f<d.length;f++)if(o.push(d[f]),o.length>=a){let m=o.splice(0,a),p=Math.min(...m),g=Math.max(...m);n.push(p,g)}u.close()}return new i(n,r,c??0)}set width(e){this.wavesurfer.setOptions({width:e})}};async function pm(i){let e=document.querySelector(".waveform-demo"),t=document.querySelector(".width"),r=await Qo.init(i,"/assets/temp/gl.mp4",e);t.addEventListener("change",()=>{let s=+t.value;r.width=s})}var Jo=class i{videoTrack;options;#e;#t=new Map;#r=[0,0];constructor(e,t){this.videoTrack=e,this.options=t,this.#e=new Cs(e,t.canvasSinkOptions)}static async init(e,t){let s=await new _t({formats:lr,source:await zr(e)}).getPrimaryVideoTrack();if(s)return new i(s,{frequency:t.frequency??1,canvasSinkOptions:t.canvasSinkOptions??{width:80,height:50,fit:"fill"},onChange:t.onChange});throw new Error("Source has no video track")}set frequency(e){e!==this.options.frequency&&(this.options.frequency=e,this.#a())}get frequency(){return this.options.frequency}#i([e,t]){let r=t-e;return[e-r,t+r]}async#n(){let[e,t]=this.#r,r=new Set,s=await this.videoTrack.computeDuration();for(let c=e;c<=t;c+=this.options.frequency)c>=0&&c<=s&&r.add(+c.toFixed(3));let n=[...r].filter(c=>!this.#t.has(c)),o=0;for await(let c of this.#e.canvasesAtTimestamps(n))if(c){let l=n[o++];this.#t.set(l,c)}for(let c of this.#t.keys())r.has(c)||this.#t.delete(c);let a=[...this.#t.entries()].map(([c,l])=>({time:c,canvas:l}));this.options.onChange(a)}set range(e){let t=this.#i(e);this.#r[0]===t[0]&&this.#r[1]===t[1]||(this.#r=t,this.#a())}#s=null;#o=!1;async#a(){if(this.#s){this.#o=!0;return}this.#s=this.#n(),await this.#s,this.#s=null,this.#o&&(this.#o=!1,await this.#a())}getThumbnail(e){return this.#t.get(e)}};async function gm(i){let e=document.querySelector(".range"),t=document.querySelector(".range-view"),r=document.querySelector(".range-size"),s=document.querySelector(".frequency"),n=document.querySelector(".frequency-view"),o=document.querySelector("#filmstrip"),a=1e3/10/1e3,c=.5,l=await Jo.init(i,{onChange(u){let h=u.sort((d,f)=>d.time-f.time);o.replaceChildren(...h.map(({time:d,canvas:f})=>Y_(d,f.canvas)))},frequency:a,canvasSinkOptions:{width:80,height:50,fit:"fill"}});r.addEventListener("change",()=>{c=+r.value;let[u,h]=[+e.value,+e.value+c];l.range=[u,h],t.textContent=`visible time range: [${u}, ${h}]`}),e.addEventListener("change",()=>{let[u,h]=[+e.value,+e.value+c];l.range=[u,h],t.textContent=`visible time range: [${u}, ${h}]`}),s.addEventListener("change",()=>{l.frequency=1e3/+s.value/1e3,n.textContent=`frame every ${l.frequency.toFixed(3)} second (${s.value} frames per second)`}),l.range=[10,10.5]}function Y_(i,e){let t=document.createElement("div");t.style.position="relative",t.style.display="inline-block",t.style.marginRight="4px",t.appendChild(e);let r=document.createElement("div");return r.textContent=`${i.toFixed(2)}s`,r.style.position="absolute",r.style.top="2px",r.style.right="4px",r.style.fontSize="10px",r.style.color="white",r.style.background="rgba(0,0,0,0.6)",r.style.padding="2px 4px",r.style.borderRadius="4px",r.style.pointerEvents="none",t.appendChild(r),t}function Vl(i,e){let t={width:1920,height:1080},r=document.createElement("canvas");r.width=t.width,r.height=t.height;let s=r.getContext("2d");async function n(){let o=i.decodeVideo({source:e,async onFrame(c){let l=await i.composite([{kind:"image",frame:c},{kind:"text",content:"omnitool",fontSize:50,color:"green"}]);return c.close(),s?.drawImage(l,0,0),l}}),a=i.decodeAudio({source:e});await i.encode({video:o,audio:a,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}})}return{canvas:r,run:n}}var me;(function(i){i[i.Sequence=0]="Sequence",i[i.Stack=1]="Stack",i[i.Video=2]="Video",i[i.Audio=3]="Audio",i[i.Text=4]="Text",i[i.Gap=5]="Gap",i[i.Spatial=6]="Spatial",i[i.Transition=7]="Transition"})(me||(me={}));var ea;(function(i){i[i.Crossfade=0]="Crossfade"})(ea||(ea={}));var ta=class{datafile;duration=0;hasVideo=!1;hasAudio=!1;constructor(e){this.datafile=e}static async analyze(e){let t=new this(e);t.duration=10;let{video:r,audio:s}=await this.#e("/assets/temp/gl.mp4");return t.hasAudio=s,t.hasVideo=r,t}static async#e(e){let t=new _t({formats:lr,source:await zr(e)});return{audio:!!await t.getPrimaryAudioTrack(),video:!!await t.getPrimaryVideoTrack()}}};var ra=class{#e=new eo;async store(e){let t=await ta.analyze(e),{hash:r}=t.datafile.checksum,{filename:s,bytes:n}=t.datafile;if(this.#e.has(r)){let o=this.#e.require(r);o.filename=s}else this.#e.set(r,{kind:"media",filename:s,bytes:n});return t}};var xm=i=>{let e=!1,t=null,r=60,s=1e3/r,n=0,o=0,a=0,c=l=>{if(!e)return;let u=l-o;for(o=l,a+=u;a>=s;)i(n),n+=s/1e3,a-=s;t=requestAnimationFrame(c)};return{play(){e||(e=!0,o=performance.now(),t=requestAnimationFrame(c))},pause(){e&&(e=!1,t!==null&&cancelAnimationFrame(t),t=null)},seek(l){n=Math.max(0,l),a=0},dispose(){this.pause()},isPlaying(){return e},setFPS(l){r=l,s=1e3/r}}},ym=async(i,e)=>{let t=1/i.fps,r=Math.ceil(i.duration*i.fps);for(let s=0;s<r&&!i.abort?.aborted;s++){let n=s*t;await e(n,s)}};var bm=i=>i instanceof Blob?URL.createObjectURL(i):String(i);function _m(i){let e=new Map,t=new Map;function r(o){let a=e.get(o.id);return a||(a=document.createElement("video"),a.playsInline=!0,a.muted=!0,a.preload="auto",a.crossOrigin="anonymous",a.src=bm(i(o.mediaHash)),e.set(o.id,a)),a}function s(o){let a=t.get(o.id);return a||(a=document.createElement("audio"),a.preload="auto",a.crossOrigin="anonymous",a.src=bm(i(o.mediaHash)),a.volume=.2,t.set(o.id,a)),a}let n=!0;return{async video(o,a){let c=r(o);return{duration:o.duration,visuals:{sampleAt:async l=>{if(l<0||l>=o.duration)return[];c.paused&&n&&await wm(c,l),c.paused&&!n&&await c.play();let u=new VideoFrame(c);return u?[{kind:"image",frame:u,matrix:a}]:[]}}}},async audio(o){let a=s(o);return{duration:o.duration,audio:{onTimeUpdate:async c=>{let l=o.start+c;return a.paused&&n&&await wm(a,l),a.paused&&!n&&await a.play(),[]}}}},async dispose(){let o=[...e.values(),...t.values()];for(let a of o)a.pause(),a.src.startsWith("blob:")&&URL.revokeObjectURL(a.src),a.remove();e.clear(),t.clear()},async setPaused(o){n=o;let a=[...e.values(),...t.values()];for(let c of a)o&&c.pause()}}}function wm(i,e){return new Promise(t=>{let r=()=>{i.removeEventListener("seeked",r),t()};i.addEventListener("seeked",r),i.fastSeek?i.fastSeek(e):i.currentTime=e})}G();var zw={extension:{type:A.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Uw(),ak))}};G();var Nw={extension:{type:A.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(Gw(),ck))}};G();Ba();Pa();ju();He();L.add(zw,Nw);var Lw=i=>{let[e,t,r]=i,[s,n]=e,[o,a]=t,c=r*Math.PI/180,l=Math.cos(c),u=Math.sin(c);return[l*o,u*o,-u*a,l*a,s,n]};var Vw=(i,e)=>{let[t,r,s,n,o,a]=i,[c,l,u,h,d,f]=e;return[t*c+s*l,r*c+n*l,t*u+s*h,r*u+n*h,t*d+s*f+o,r*d+n*f+a]},Ww=[1,0,0,1,0,0];var Ed=(i,e)=>i.get(e),Rc=(i,e,t)=>{let r=t??Ww;if(e.spatialId){let s=Ed(i,e.spatialId),n=Lw(s.transform);r=Vw(n,r)}return r},ss=class{items;sampler;constructor(e,t){this.items=e,this.sampler=t}async build(e,t){switch(e.kind){case me.Video:return this.sampler.video(e,Rc(this.items,e,t));case me.Audio:return this.sampler.audio(e);case me.Text:{let r=Rc(this.items,e,t);return{duration:1/0,visuals:{sampleAt:async()=>[{kind:"text",content:e.content,color:"white",fontSize:48,matrix:r}]}}}case me.Gap:return{duration:e.duration,visuals:{sampleAt:async()=>[]}};case me.Stack:{let r=Rc(this.items,e,t),s=await Promise.all(e.childrenIds.map(n=>this.build(Ed(this.items,n),r)));return this.#r(s)}case me.Sequence:{let r=Rc(this.items,e,t);return this.#i(e,r)}default:return{duration:0}}}#e(e){return{sampleAt:async t=>(await Promise.all(e.map(s=>s.visuals?s.visuals.sampleAt(t):Promise.resolve([])))).flat()}}#t(e){return{sampleAt:async t=>{let r=t;for(let s of e){if(r<s.duration)return s.visuals?s.visuals.sampleAt(r):[];r-=s.duration}return[]}}}#r(e){return{duration:Math.max(0,...e.map(r=>Number.isFinite(r.duration)?r.duration:0)),visuals:this.#e(e),audio:this.composeAudio_Stack(e)}}async#i(e,t){let r=e.childrenIds.map(o=>Ed(this.items,o)),s=await this.#n(r,t);return{duration:s.reduce((o,a)=>o+a.duration,0),visuals:this.#t(s),audio:this.composeAudio_Sequence(s)}}async#n(e,t){let r=[];for(let s=0;s<e.length;s++){let n=e[s];if(n.kind!==me.Transition){r.push(await this.build(n,t));continue}let o=r.pop(),a=e[s+1];if(!o||!a||a.kind===me.Transition){o&&r.push(o);continue}let c=await this.build(a,t),l=await this.#s(n,o,c);r.push(l),s++}return r}async#s(e,t,r){let s=Math.max(0,Math.min(e.duration,t.duration,r.duration)),n=Math.max(0,t.duration-s);return{duration:t.duration+r.duration-s,visuals:{sampleAt:async a=>{if(!t.visuals||!r.visuals)return[];if(a<n)return t.visuals.sampleAt(a);if(a<t.duration){let c=a-n,l=s>0?c/s:1,u=await t.visuals.sampleAt(a),h=await r.visuals.sampleAt(c);return!u[0]?.frame||!h[0]?.frame?[]:[{kind:"transition",name:"circle",progress:l,from:u[0].frame,to:h[0].frame}]}return r.visuals.sampleAt(a-t.duration+s)}},audio:this.composeAudio_Sequence([t,r])}}};var Ad=class extends ss{items;sampler;constructor(e,t){super(e,t),this.items=e,this.sampler=t}composeAudio_Stack(e){return{onTimeUpdate:t=>{for(let r of e)r.audio&&r.audio.onTimeUpdate(t)}}}composeAudio_Sequence(e){return{onTimeUpdate:t=>{let r=t;for(let s of e){if(r<s.duration){s.audio&&s.audio.onTimeUpdate(r);break}r-=s.duration}}}}};function Hw(i,e,t){return new Ad(e,t).build(i)}var Oc=class{driver;canvas;root;sampler;resolveMedia;#e=xm(e=>this.#t(e));constructor(e,t,r,s,n=o=>"/assets/temp/gl.mp4"){this.driver=e,this.canvas=t,this.root=r,this.sampler=s,this.resolveMedia=n,this.#e.setFPS(30)}get context(){return this.canvas.getContext("2d")}static async create(e,t){let r=new Map(t.items.map(c=>[c.id,c])).get(t.rootId),s=new Map(t.items.map(c=>[c.id,c])),n=_m(()=>"/assets/temp/gl.mp4"),o=await Hw(r,s,n),a=document.createElement("canvas");return a.width=1920,a.height=1080,new this(e,a,o,n)}async#t(e){let t=this.root.duration,r=e>t?t:e;this.root.audio?.onTimeUpdate(r);for(let s of await this.root.visuals?.sampleAt(r)??[]){let n=await this.driver.composite(s);this.context.drawImage(n,0,0),n.close()}e>=t&&this.pause()}async play(){this.#e.isPlaying()||(this.sampler.setPaused(!1),this.#e.play())}pause(){this.#e.isPlaying()&&(this.#e.pause(),this.sampler.setPaused(!0))}async seek(e){this.pause(),this.#e.seek(e),this.root.audio?.onTimeUpdate(e);for(let t of await this.root.visuals?.sampleAt(e)??[]){let r=await this.driver.composite(t);this.context.drawImage(r,0,0),r.close()}}setFPS(e){this.#e.setFPS(e)}};var Uc=class{state;#e=0;constructor(e){this.state=e}require(e){return this.state.project.items.find(r=>r.id===e)}#t(){return this.#e++}#r(e){this.state.project=e(this.state.project)}spatial=e=>({id:this.#t(),kind:me.Spatial,transform:e});sequence=(...e)=>{let t={id:this.#t(),kind:me.Sequence,childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};stack=(...e)=>{let t={kind:me.Stack,id:this.#t(),childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};video=(e,t)=>{if(!e.hasVideo)throw new Error(`Video clip error: media "${e.datafile.filename}" has no video track.`);return{kind:me.Video,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};audio=(e,t)=>{if(!e.hasAudio)throw new Error(`Audio clip error: media "${e.datafile.filename}" has no audio track.`);return{kind:me.Audio,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};text=e=>({id:this.#t(),content:e,kind:me.Text,color:"#FFFFF"});gap=e=>({id:this.#t(),kind:me.Gap,duration:e});transition={crossfade:e=>({id:this.#t(),kind:me.Transition,effect:ea.Crossfade,duration:e})};transform=e=>{let t=[e?.position?.[0]??0,e?.position?.[1]??0],r=[e?.scale?.[0]??1,e?.scale?.[1]??1],s=e?.rotation??0;return[t,r,s]};addChildren(e,...t){this.#r(r=>(r.items.find(({id:n})=>n===e.id).childrenIds.push(...t.map(n=>n.id)),r.items.push(...t),r))}};var zc=class{reader;constructor(e){this.reader=e}async atOrNear(e){let t=null;for(;;){let{done:r,value:s}=await this.reader.read();if(r){let o=t?new VideoFrame(t):void 0;return t?.close(),o}let n=s.timestamp??0;if(n>=e){let o=t?.timestamp??Number.NEGATIVE_INFINITY,a=!!t&&Math.abs(o-e)<Math.abs(n-e),c=a?t:s,l=a?s:t,u=new VideoFrame(c);return c.close(),l?.close(),u}t?.close(),t=s}}cancel=async()=>await this.reader.cancel()};var Gc=class{reader;constructor(e){this.reader=e}async*stream(){for(;;){let{done:e,value:t}=await this.reader.read();if(e)break;yield t}}cancel=async()=>await this.reader.cancel()};var jw=i=>Math.round(i*1e6);function $w(i,e){let t=new Map;async function r(s){let n=t.get(s.id);if(n)return n;let o=e(s.mediaHash),a=i.decodeVideo({source:o}),c=new zc(a.getReader());return t.set(s.id,c),c}return{async video(s,n){let o=await r(s),a=jw(s.start??0);return{duration:s.duration,visuals:{sampleAt:async c=>{let l=await o.atOrNear(a+jw(c));return l?[{kind:"image",frame:l,matrix:n}]:[]}}}},async audio(s){return{duration:s.duration,audio:{getStream:async function*(){let n=e(s.mediaHash),o=s.start,a=s.start+s.duration,c=i.decodeAudio({source:n,start:o,end:a});yield*new Gc(c.getReader()).stream()}}}},async dispose(){let s=Array.from([...t.values()],n=>n.cancel());t.clear(),await Promise.all(s)}}}var Id=class extends ss{composeAudio_Stack(e){return{getStream:async function*(){for(let t of e)t.audio&&(yield*t.audio.getStream())}}}composeAudio_Sequence(e){return{getStream:async function*(){for(let t of e)t.audio&&(yield*t.audio.getStream())}}}};function qw(i,e,t){return new Id(e,t).build(i)}var Nc=class{driver;framerate;resolveMedia;#e;constructor(e,t=30,r=s=>"/assets/temp/gl.mp4"){this.driver=e,this.framerate=t,this.resolveMedia=r,this.#e=$w(this.driver,this.resolveMedia)}async#t(e){let t=new Map(e.items.map(s=>[s.id,s])).get(e.rootId),r=new Map(e.items.map(s=>[s.id,s]));return await qw(t,r,this.#e)}async render(e){let t=await this.#t(e),r=new TransformStream,s=new TransformStream,n=this.driver.encode({video:r.readable,audio:s.readable,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}}),o=r.writable.getWriter(),a=s.writable.getWriter(),c=(async()=>{if(t.audio)for await(let u of t.audio.getStream())await a.write(u);await a.close()})(),l=(async()=>{let u=0,h=1/this.framerate;await ym({fps:this.framerate,duration:t.duration??0},async d=>{let f=await t.visuals?.sampleAt(d)??[],m=await this.driver.composite(f),p=new VideoFrame(m,{timestamp:Math.round(u*h*1e6),duration:Math.round(h*1e6)});await o.write(p),m.close(),u++}),await o.close()})();await c,await l,await n}};var Lc=class{driver;resources=new ra;#e;constructor(e){this.driver=e,this.#e=new Nc(e)}load=async e=>Object.fromEntries(await Promise.all(Object.entries(e).map(async([t,r])=>[t,await this.resources.store(await r)])));timeline=e=>{let t=new Uc({project:{format:"timeline",info:"https://omniclip.app/",version:0,items:[],rootId:0}}),r=e(t);return t.state.project.rootId=r.id,t.state.project};render=async(e,t)=>{await this.#e.render(e)}};var Vc=class{data;bytes;hash;nickname;constructor(e,t,r,s){this.data=e,this.bytes=t,this.hash=r,this.nickname=s}static async make(e){let t=new Uint8Array(e),r=new Uint8Array(await crypto.subtle.digest("SHA-256",t)),s=Le.fromBytes(r),n=nt.sigil.fromBytes(r);return new this(e,r,s,n)}};var Wc=class{bytes;filename;checksum;constructor(e,t,r){this.bytes=e,this.filename=t,this.checksum=r}static async make(e,t){let r=await Vc.make(e),s=t??r.nickname;return new this(e,s,r)}static async load(e){throw new Error("TODO implement")}};var ii=await Ko.setup(),lk=document.querySelector(".results"),uk=document.querySelector(".fetch"),hk=document.querySelector(".import"),dk=document.querySelector(".play"),fk=document.querySelector(".stop");uk?.addEventListener("click",bk);hk?.addEventListener("click",yk);var Xw=new Lc(ii),mk=await fetch("/assets/temp/gl.mp4"),pk=await mk.arrayBuffer(),gk=new Uint8Array(pk),{videoA:Md}=await Xw.load({videoA:Wc.make(gk)}),xk=Xw.timeline(i=>i.sequence(i.stack(i.video(Md,{duration:5e3}),i.audio(Md,{duration:8e3})),i.video(Md,{duration:7e3}))),Bd=await Oc.create(ii,xk);document.body.appendChild(Bd.canvas);dk.addEventListener("click",()=>Bd.play());fk.addEventListener("click",()=>Bd.pause());pm(ii);await ii.thread.work.hello(),ii.machina.count===1?console.log("\u2705 driver works"):console.error("\u274C FAIL driver call didn't work");async function yk(){let[i]=await window.showOpenFilePicker(),e=await i.getFile(),t=Vl(ii,e);await gm(e),Yw(t,i.name)}async function bk(){let i=["/assets/temp/gl.mp4"];for(let e of i){let t=Vl(ii,"/assets/temp/gl.mp4");Yw(t,e)}}async function Yw(i,e){let t=document.createElement("div");lk.append(t);let r=document.createElement("p");r.textContent=e,t.append(r),t.append(i.canvas),await i.run()}
|
|
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),k=Math.abs(o[_]||0);T>x&&(x=T),k>w&&(w=k)}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 Zl=class extends Nr{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 Nr{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 Kl{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 Zl;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 Nr{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 Pm(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 Cm(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 Ql(i,e){let t={width:1920,height:1080},r=document.createElement("canvas");r.width=t.width,r.height=t.height;let s=r.getContext("2d");async function n(){let o=i.decodeVideo({source:e,async onFrame(c){let l=await i.composite([{kind:"image",frame:c},{kind:"text",content:"omnitool",fontSize:50,color:"green"}]);return c.close(),s?.drawImage(l,0,0),l}}),a=i.decodeAudio({source:e});await i.encode({video:o,audio:a,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}})}return{canvas:r,run:n}}var me;(function(i){i[i.Sequence=0]="Sequence",i[i.Stack=1]="Stack",i[i.Video=2]="Video",i[i.Audio=3]="Audio",i[i.Text=4]="Text",i[i.Gap=5]="Gap",i[i.Spatial=6]="Spatial",i[i.Transition=7]="Transition"})(me||(me={}));var 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 Em(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 Am(){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}=Am(),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 Jl=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 Jl;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=Em(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 Im(i,e){return new ua(i,e).fn()}function Gs(i,e){return new da(i,e).fn()}Gs.lazy=hS;Gs.derived=Im;var Mm=(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/1e3,e(l);c>=n;)i(o),o+=n/1e3,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=Math.max(0,h),c=0,l=h},dispose(){this.pause()},isPlaying(){return t},setFPS(h){s=h,n=1e3/s}}},Bm=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 Fm=i=>i instanceof Blob?URL.createObjectURL(i):String(i);function Dm(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=Fm(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=Fm(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 Rm(c,l),c.paused&&!n&&await c.play();let u=new VideoFrame(c);return u?[{kind:"image",frame:u,matrix:a}]:[]}}}},async audio(o){let a=s(o);return{duration:o.duration,audio:{onTimeUpdate:async c=>{let l=o.start+c;return a.paused&&n&&await Rm(a,l),a.paused&&!n&&await a.play(),[]}}}},async dispose(){let o=[...e.values(),...t.values()];for(let a of o)a.pause(),a.src.startsWith("blob:")&&URL.revokeObjectURL(a.src),a.remove();e.clear(),t.clear()},async setPaused(o){n=o;let a=[...e.values(),...t.values()];for(let c of a)o&&c.pause()}}}function Rm(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 Qw={extension:{type:A.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Zw(),vv))}};G();var e_={extension:{type:A.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(Jw(),kv))}};G();Va();Oa();rh();He();L.add(Qw,e_);var t_=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 r_=(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]},i_=[1,0,0,1,0,0];var Gd=(i,e)=>i.get(e),jc=(i,e,t)=>{let r=t??i_;if(e.spatialId){let s=Gd(i,e.spatialId),n=t_(s.transform);r=r_(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);return{duration:1/0,visuals:{sampleAt:async()=>[{kind:"text",content:e.content,color:"white",fontSize:48,matrix:r}]}}}case me.Gap:return{duration:e.duration,visuals:{sampleAt:async()=>[]}};case me.Stack:{let r=jc(this.items,e,t),s=await Promise.all(e.childrenIds.map(n=>this.build(Gd(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=>Gd(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 s_(i,e,t){return new Nd(e,t).build(i)}var $c=class{driver;canvas;root;sampler;resolveMedia;currentTime=Gs(0);#e=Mm(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=Dm(()=>"/assets/temp/gl.mp4"),o=await s_(r,s,n),a=document.createElement("canvas");return a.width=1920,a.height=1080,new this(e,a,o,n)}async#t(e){let t=this.root.duration,r=e>t?t:e;this.root.audio?.onTimeUpdate(r);for(let s of await this.root.visuals?.sampleAt(r)??[]){let n=await this.driver.composite(s);this.context.drawImage(n,0,0),n.close()}e>=t&&this.pause()}async play(){this.#e.isPlaying()||(this.sampler.setPaused(!1),this.#e.play())}pause(){this.#e.isPlaying()&&(this.#e.pause(),this.sampler.setPaused(!0))}async seek(e){this.pause(),this.#e.seek(e),this.root.audio?.onTimeUpdate(e);for(let t of await this.root.visuals?.sampleAt(e)??[]){let r=await this.driver.composite(t);this.context.drawImage(r,0,0),r.close()}}setFPS(e){this.#e.setFPS(e)}};var qc=class{state;#e=0;constructor(e){this.state=e}require(e){return this.state.project.items.find(r=>r.id===e)}#t(){return this.#e++}#r(e){this.state.project=e(this.state.project)}spatial=e=>({id:this.#t(),kind:me.Spatial,transform:e});sequence=(...e)=>{let t={id:this.#t(),kind:me.Sequence,childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};stack=(...e)=>{let t={kind:me.Stack,id:this.#t(),childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};video=(e,t)=>{if(!e.hasVideo)throw new Error(`Video clip error: media "${e.datafile.filename}" has no video track.`);return{kind:me.Video,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};audio=(e,t)=>{if(!e.hasAudio)throw new Error(`Audio clip error: media "${e.datafile.filename}" has no audio track.`);return{kind:me.Audio,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};text=e=>({id:this.#t(),content:e,kind:me.Text,color:"#FFFFF"});gap=e=>({id:this.#t(),kind:me.Gap,duration:e});transition={crossfade:e=>({id:this.#t(),kind:me.Transition,effect:na.Crossfade,duration:e})};transform=e=>{let t=[e?.position?.[0]??0,e?.position?.[1]??0],r=[e?.scale?.[0]??1,e?.scale?.[1]??1],s=e?.rotation??0;return[t,r,s]};addChildren(e,...t){this.#r(r=>(r.items.find(({id:n})=>n===e.id).childrenIds.push(...t.map(n=>n.id)),r.items.push(...t),r))}};var 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 Ld=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 Ld(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 Bm({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=Le.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)}),Pv=document.querySelector(".results"),Cv=document.querySelector(".fetch"),Ev=document.querySelector(".import"),Av=document.querySelector(".play"),Iv=document.querySelector(".stop");Cv?.addEventListener("click",Ov);Ev?.addEventListener("click",Dv);var c_=new Zc(si),Mv=await fetch("/assets/temp/gl.mp4"),Bv=await Mv.arrayBuffer(),Fv=new Uint8Array(Bv),{videoA:Vd}=await c_.load({videoA:Jc.make(Fv)}),Rv=c_.timeline(i=>i.sequence(i.stack(i.video(Vd,{duration:5e3}),i.audio(Vd,{duration:8e3})),i.video(Vd,{duration:7e3}))),Wd=await $c.create(si,Rv);document.body.appendChild(Wd.canvas);Av.addEventListener("click",()=>Wd.play());Iv.addEventListener("click",()=>Wd.pause());Pm(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 Dv(){let[i]=await window.showOpenFilePicker(),e=await i.getFile(),t=Ql(si,e);await Cm(e),l_(t,i.name)}async function Ov(){let i=["/assets/temp/gl.mp4"];for(let e of i){let t=Ql(si,"/assets/temp/gl.mp4");l_(t,e)}}async function l_(i,e){let t=document.createElement("div");Pv.append(t);let r=document.createElement("p");r.textContent=e,t.append(r),t.append(i.canvas),await i.run()}
|
|
648
648
|
/*! Bundled license information:
|
|
649
649
|
|
|
650
650
|
mediabunny/dist/modules/src/misc.js:
|