modern-canvas 0.6.5 → 0.6.7
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/dist/index.cjs +9 -4
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/index.mjs +9 -4
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(function(h,pA){typeof exports=="object"&&typeof module<"u"?pA(exports):typeof define=="function"&&define.amd?define(["exports"],pA):(h=typeof globalThis<"u"?globalThis:h||self,pA(h.modernCanvas={}))})(this,function(h){"use strict";var pA=typeof document<"u"?document.currentScript:null,Pu={grad:.9,turn:360,rad:360/(2*Math.PI)},Le=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},St=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*r)/e+0},fe=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),r>e?e:r>t?r:t},to=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},eo=function(r){return{r:fe(r.r,0,255),g:fe(r.g,0,255),b:fe(r.b,0,255),a:fe(r.a)}},os=function(r){return{r:St(r.r),g:St(r.g),b:St(r.b),a:St(r.a,3)}},ku=/^#([0-9a-f]{3,8})$/i,er=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},Ao=function(r){var t=r.r,e=r.g,A=r.b,i=r.a,s=Math.max(t,e,A),n=s-Math.min(t,e,A),o=n?s===t?(e-A)/n:s===e?2+(A-t)/n:4+(t-e)/n:0;return{h:60*(o<0?o+6:o),s:s?n/s*100:0,v:s/255*100,a:i}},io=function(r){var t=r.h,e=r.s,A=r.v,i=r.a;t=t/360*6,e/=100,A/=100;var s=Math.floor(t),n=A*(1-e),o=A*(1-(t-s)*e),a=A*(1-(1-t+s)*e),l=s%6;return{r:255*[A,o,n,n,a,A][l],g:255*[a,A,A,o,n,n][l],b:255*[n,n,a,A,A,o][l],a:i}},ro=function(r){return{h:to(r.h),s:fe(r.s,0,100),l:fe(r.l,0,100),a:fe(r.a)}},so=function(r){return{h:St(r.h),s:St(r.s),l:St(r.l),a:St(r.a,3)}},no=function(r){return io((e=(t=r).s,{h:t.h,s:(e*=((A=t.l)<50?A:100-A)/100)>0?2*e/(A+e)*100:0,v:A+e,a:t.a}));var t,e,A},ai=function(r){return{h:(t=Ao(r)).h,s:(i=(200-(e=t.s))*(A=t.v)/100)>0&&i<200?e*A/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,e,A,i},Uu=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Nu=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Tu=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Lu=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,as={string:[[function(r){var t=ku.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?St(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?St(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=Tu.exec(r)||Lu.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:eo({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(r){var t=Uu.exec(r)||Nu.exec(r);if(!t)return null;var e,A,i=ro({h:(e=t[1],A=t[2],A===void 0&&(A="deg"),Number(e)*(Pu[A]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return no(i)},"hsl"]],object:[[function(r){var t=r.r,e=r.g,A=r.b,i=r.a,s=i===void 0?1:i;return Le(t)&&Le(e)&&Le(A)?eo({r:Number(t),g:Number(e),b:Number(A),a:Number(s)}):null},"rgb"],[function(r){var t=r.h,e=r.s,A=r.l,i=r.a,s=i===void 0?1:i;if(!Le(t)||!Le(e)||!Le(A))return null;var n=ro({h:Number(t),s:Number(e),l:Number(A),a:Number(s)});return no(n)},"hsl"],[function(r){var t=r.h,e=r.s,A=r.v,i=r.a,s=i===void 0?1:i;if(!Le(t)||!Le(e)||!Le(A))return null;var n=function(o){return{h:to(o.h),s:fe(o.s,0,100),v:fe(o.v,0,100),a:fe(o.a)}}({h:Number(t),s:Number(e),v:Number(A),a:Number(s)});return io(n)},"hsv"]]},oo=function(r,t){for(var e=0;e<t.length;e++){var A=t[e][0](r);if(A)return[A,t[e][1]]}return[null,void 0]},Gu=function(r){return typeof r=="string"?oo(r.trim(),as.string):typeof r=="object"&&r!==null?oo(r,as.object):[null,void 0]},ls=function(r,t){var e=ai(r);return{h:e.h,s:fe(e.s+100*t,0,100),l:e.l,a:e.a}},us=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},ao=function(r,t){var e=ai(r);return{h:e.h,s:e.s,l:fe(e.l+100*t,0,100),a:e.a}},cs=function(){function r(t){this.parsed=Gu(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return St(us(this.rgba),2)},r.prototype.isDark=function(){return us(this.rgba)<.5},r.prototype.isLight=function(){return us(this.rgba)>=.5},r.prototype.toHex=function(){return t=os(this.rgba),e=t.r,A=t.g,i=t.b,n=(s=t.a)<1?er(St(255*s)):"","#"+er(e)+er(A)+er(i)+n;var t,e,A,i,s,n},r.prototype.toRgb=function(){return os(this.rgba)},r.prototype.toRgbString=function(){return t=os(this.rgba),e=t.r,A=t.g,i=t.b,(s=t.a)<1?"rgba("+e+", "+A+", "+i+", "+s+")":"rgb("+e+", "+A+", "+i+")";var t,e,A,i,s},r.prototype.toHsl=function(){return so(ai(this.rgba))},r.prototype.toHslString=function(){return t=so(ai(this.rgba)),e=t.h,A=t.s,i=t.l,(s=t.a)<1?"hsla("+e+", "+A+"%, "+i+"%, "+s+")":"hsl("+e+", "+A+"%, "+i+"%)";var t,e,A,i,s},r.prototype.toHsv=function(){return t=Ao(this.rgba),{h:St(t.h),s:St(t.s),v:St(t.v),a:St(t.a,3)};var t},r.prototype.invert=function(){return we({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},r.prototype.saturate=function(t){return t===void 0&&(t=.1),we(ls(this.rgba,t))},r.prototype.desaturate=function(t){return t===void 0&&(t=.1),we(ls(this.rgba,-t))},r.prototype.grayscale=function(){return we(ls(this.rgba,-1))},r.prototype.lighten=function(t){return t===void 0&&(t=.1),we(ao(this.rgba,t))},r.prototype.darken=function(t){return t===void 0&&(t=.1),we(ao(this.rgba,-t))},r.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},r.prototype.alpha=function(t){return typeof t=="number"?we({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):St(this.rgba.a,3);var e},r.prototype.hue=function(t){var e=ai(this.rgba);return typeof t=="number"?we({h:t,s:e.s,l:e.l,a:e.a}):St(e.h)},r.prototype.isEqual=function(t){return this.toHex()===we(t).toHex()},r}(),we=function(r){return r instanceof cs?r:new cs(r)},lo=[],Ou=function(r){r.forEach(function(t){lo.indexOf(t)<0&&(t(cs,as),lo.push(t))})};const Hu="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Ju=(r=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)t+=Hu[e[r]&63];return t};class Ge{eventListeners=new Map;addEventListener(t,e,A){const i={value:e,options:A},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(i):this.eventListeners.set(t,[s,i]):this.eventListeners.set(t,i),this}removeEventListener(t,e,A){if(!e)return this.eventListeners.delete(t),this;const i=this.eventListeners.get(t);if(!i)return this;if(Array.isArray(i)){const s=[];for(let n=0,o=i.length;n<o;n++){const a=i[n];(a.value!==e||typeof A=="object"&&A?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else i.value===e&&(typeof A=="boolean"||!A?.once||typeof i.options=="boolean"||i.options?.once)&&this.eventListeners.delete(t);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}dispatchEvent(t,...e){const A=this.eventListeners.get(t);if(A){if(Array.isArray(A))for(let i=A.length,s=0;s<i;s++){const n=A[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,e)}else typeof A.options=="object"&&A.options?.once&&this.off(t,A.value,A.options),A.value.apply(this,e);return!0}else return!1}on(t,e,A){return this.addEventListener(t,e,A)}once(t,e){return this.addEventListener(t,e,{once:!0})}off(t,e,A){return this.removeEventListener(t,e,A)}emit(t,...e){this.dispatchEvent(t,...e)}}function lt(r){return r==null||r==="none"}function SA(r,t=0,e=10**t){return Math.round(e*r)/e+0}function li(r,t=!1){if(typeof r!="object"||!r)return r;if(Array.isArray(r))return t?r.map(A=>li(A,t)):r;const e={};for(const A in r){const i=r[A];i!=null&&(t?e[A]=li(i,t):e[A]=i)}return e}function hs(r,t){const e={};return t.forEach(A=>{A in r&&(e[A]=r[A])}),e}function Ku(r,t,e){const A=t.length-1;if(A<0)return r===void 0?e:r;for(let i=0;i<A;i++){if(r==null)return e;r=r[t[i]]}return r==null||r[t[A]]===void 0?e:r[t[A]]}function Yu(r,t,e){const A=t.length-1;for(let i=0;i<A;i++)typeof r[t[i]]!="object"&&(r[t[i]]={}),r=r[t[i]];r[t[A]]=e}function Vu(r,t,e){return r==null||!t||typeof t!="string"?e:r[t]!==void 0?r[t]:(t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Ku(r,t.split("."),e))}function zu(r,t,e){if(!(typeof r!="object"||!t))return t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Yu(r,t.split("."),e)}let uo=class{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}};function gs(r){let t;return typeof r=="number"?t={r:r>>24&255,g:r>>16&255,b:r>>8&255,a:(r&255)/255}:t=r,we(t)}function Wu(r){return{r:SA(r.r),g:SA(r.g),b:SA(r.b),a:SA(r.a,3)}}function Ar(r){const t=r.toString(16);return t.length<2?`0${t}`:t}const co="#000000FF";function qu(r){return gs(r).isValid()}function se(r,t=!1){const e=gs(r);if(!e.isValid()){if(typeof r=="string")return r;const o=`Failed to normalizeColor ${r}`;if(t)throw new Error(o);return console.warn(o),co}const{r:A,g:i,b:s,a:n}=Wu(e.rgba);return`#${Ar(A)}${Ar(i)}${Ar(s)}${Ar(SA(n*255))}`}var ir=ir||{};ir.parse=function(){const r={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let t="";function e(k){const P=new Error(`${t}: ${k}`);throw P.source=t,P}function A(){const k=i();return t.length>0&&e("Invalid input not EOF"),k}function i(){return y(s)}function s(){return n("linear-gradient",r.linearGradient,a)||n("repeating-linear-gradient",r.repeatingLinearGradient,a)||n("radial-gradient",r.radialGradient,c)||n("repeating-radial-gradient",r.repeatingRadialGradient,c)}function n(k,P,q){return o(P,Z=>{const st=q();return st&&(T(r.comma)||e("Missing comma before color stops")),{type:k,orientation:st,colorStops:y(_)}})}function o(k,P){const q=T(k);if(q){T(r.startCall)||e("Missing (");const Z=P(q);return T(r.endCall)||e("Missing )"),Z}}function a(){const k=l();if(k)return k;const P=At("position-keyword",r.positionKeywords,1);return P?{type:"directional",value:P.value}:u()}function l(){return At("directional",r.sideOrCorner,1)}function u(){return At("angular",r.angleValue,1)||At("angular",r.radianValue,1)}function c(){let k,P=g(),q;return P&&(k=[],k.push(P),q=t,T(r.comma)&&(P=g(),P?k.push(P):t=q)),k}function g(){let k=f()||d();if(k)k.at=I();else{const P=B();if(P){k=P;const q=I();q&&(k.at=q)}else{const q=I();if(q)k={type:"default-radial",at:q};else{const Z=F();Z&&(k={type:"default-radial",at:Z})}}}return k}function f(){const k=At("shape",/^(circle)/i,0);return k&&(k.style=W()||B()),k}function d(){const k=At("shape",/^(ellipse)/i,0);return k&&(k.style=F()||L()||B()),k}function B(){return At("extent-keyword",r.extentKeywords,1)}function I(){if(At("position",/^at/,0)){const k=F();return k||e("Missing positioning value"),k}}function F(){const k=b();if(k.x||k.y)return{type:"position",value:k}}function b(){return{x:L(),y:L()}}function y(k){let P=k();const q=[];if(P)for(q.push(P);T(r.comma);)P=k(),P?q.push(P):e("One extra comma");return q}function _(){const k=Q();return k||e("Expected color definition"),k.length=L(),k}function Q(){return S()||J()||z()||V()||M()||et()||D()}function D(){return At("literal",r.literalColor,0)}function S(){return At("hex",r.hexColor,1)}function M(){return o(r.rgbColor,()=>({type:"rgb",value:y(K)}))}function V(){return o(r.rgbaColor,()=>({type:"rgba",value:y(K)}))}function et(){return o(r.varColor,()=>({type:"var",value:$()}))}function z(){return o(r.hslColor,()=>{T(r.percentageValue)&&e("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const P=K();T(r.comma);let q=T(r.percentageValue);const Z=q?q[1]:null;T(r.comma),q=T(r.percentageValue);const st=q?q[1]:null;return(!Z||!st)&&e("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[P,Z,st]}})}function J(){return o(r.hslaColor,()=>{const k=K();T(r.comma);let P=T(r.percentageValue);const q=P?P[1]:null;T(r.comma),P=T(r.percentageValue);const Z=P?P[1]:null;T(r.comma);const st=K();return(!q||!Z)&&e("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[k,q,Z,st]}})}function $(){return T(r.variableName)[1]}function K(){return T(r.number)[1]}function L(){return At("%",r.percentageValue,1)||it()||G()||W()}function it(){return At("position-keyword",r.positionKeywords,1)}function G(){return o(r.calcValue,()=>{let k=1,P=0;for(;k>0&&P<t.length;){const Z=t.charAt(P);Z==="("?k++:Z===")"&&k--,P++}k>0&&e("Missing closing parenthesis in calc() expression");const q=t.substring(0,P-1);return tt(P-1),{type:"calc",value:q}})}function W(){return At("px",r.pixelValue,1)||At("em",r.emValue,1)}function At(k,P,q){const Z=T(P);if(Z)return{type:k,value:Z[q]}}function T(k){let P,q;return q=/^\s+/.exec(t),q&&tt(q[0].length),P=k.exec(t),P&&tt(P[0].length),P}function tt(k){t=t.substr(k)}return function(k){return t=k.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),A()}}();const Xu=ir.parse.bind(ir);var rr=rr||{};rr.stringify=function(){var r={"visit_linear-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return r.visit_gradient(t)},"visit_radial-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return r.visit_gradient(t)},visit_gradient:function(t){var e=r.visit(t.orientation);return e&&(e+=", "),t.type+"("+e+r.visit(t.colorStops)+")"},visit_shape:function(t){var e=t.value,A=r.visit(t.at),i=r.visit(t.style);return i&&(e+=" "+i),A&&(e+=" at "+A),e},"visit_default-radial":function(t){var e="",A=r.visit(t.at);return A&&(e+=A),e},"visit_extent-keyword":function(t){var e=t.value,A=r.visit(t.at);return A&&(e+=" at "+A),e},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return r.visit(t.value.x)+" "+r.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return r.visit_color(t.value,t)},visit_hex:function(t){return r.visit_color("#"+t.value,t)},visit_rgb:function(t){return r.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return r.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return r.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return r.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return r.visit_color("var("+t.value+")",t)},visit_color:function(t,e){var A=t,i=r.visit(e.length);return i&&(A+=" "+i),A},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var e="",A=t.length;return t.forEach(function(i,s){e+=r.visit(i),s<A-1&&(e+=", ")}),e},visit_object:function(t){return t.width&&t.height?r.visit(t.width)+" "+r.visit(t.height):""},visit:function(t){if(!t)return"";if(t instanceof Array)return r.visit_array(t);if(typeof t=="object"&&!t.type)return r.visit_object(t);if(t.type){var e=r["visit_"+t.type];if(e)return e(t);throw Error("Missing visitor visit_"+t.type)}else throw Error("Invalid node.")}};return function(t){return r.visit(t)}}(),rr.stringify.bind(rr);function ho(r){const t=r.length-1;return r.map((e,A)=>{const i=e.value;let s=SA(A/t,3),n="#00000000";switch(e.type){case"rgb":n=se({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":n=se({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":n=se(e.value);break;case"hex":n=se(`#${e.value}`);break}switch(e.length?.type){case"%":s=Number(e.length.value)/100;break}return{offset:s,color:n}})}function go(r){let t=0;switch(r.orientation?.type){case"angular":t=Number(r.orientation.value);break}return{type:"linear-gradient",angle:t,stops:ho(r.colorStops)}}function fo(r){return r.orientation?.map(t=>{switch(t?.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:ho(r.colorStops)}}function ui(r){return r.startsWith("linear-gradient(")||r.startsWith("radial-gradient(")}function ju(r){return Xu(r).map(t=>{switch(t?.type){case"linear-gradient":return go(t);case"repeating-linear-gradient":return{...go(t),repeat:!0};case"radial-gradient":return fo(t);case"repeating-radial-gradient":return{...fo(t),repeat:!0};default:return}}).filter(Boolean)}function Zu(r){let t;return typeof r=="string"?t={color:r}:t=r,{color:se(t.color)}}function $u(r){let t;if(typeof r=="string"?t={image:r}:t=r,t.image){const{type:e,...A}=ju(t.image)[0]??{};switch(e){case"radial-gradient":return{radialGradient:A};case"linear-gradient":return{linearGradient:A}}}return t}function tc(r){let t;return typeof r=="string"?t={image:r}:t=r,t}function ec(r){let t;return typeof r=="string"?t={preset:r}:t=r,{preset:t.preset,foregroundColor:lt(t.foregroundColor)?void 0:se(t.foregroundColor),backgroundColor:lt(t.backgroundColor)?void 0:se(t.backgroundColor)}}function Ac(r){return!lt(r.color)}function ic(r){return typeof r=="string"?qu(r):Ac(r)}function rc(r){return!lt(r.image)&&ui(r.image)||!!r.linearGradient||!!r.radialGradient}function sc(r){return typeof r=="string"?ui(r):rc(r)}function nc(r){return!lt(r.image)&&!ui(r.image)}function oc(r){return typeof r=="string"?!ui(r):nc(r)}function ac(r){return!lt(r.preset)}function lc(r){return typeof r=="string"?!1:ac(r)}function EA(r){return ic(r)?Zu(r):sc(r)?$u(r):oc(r)?tc(r):lc(r)?ec(r):{}}function uc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["fillWithShape"])}}const fs=Symbol("properties");function ds(r){const t=Object.getPrototypeOf(r);let e;return t&&Object.hasOwn(t,fs)?e=t[fs]:(e=new Map(t?ds(t):void 0),t&&(t[fs]=e)),e}function cc(r,t={}){const e=Symbol.for(r),{default:A,fallback:i,alias:s}=t,n={declaration:t,internalKey:e},o=()=>typeof A=="function"?A():A,a=()=>typeof i=="function"?i():i;let l=!0;function u(){let g;if(s&&s!==r?g=Vu(this,s):typeof this.getter<"u"?g=this.getter(r,n):g=this[e],g=g??a(),g===void 0&&l){l=!1;const f=o();f!==void 0&&(c.call(this,f),g=f)}return g}function c(g){s&&s!==r?zu(this,s,g):typeof this.setter<"u"?this.setter(r,g,n):this[e]=g}return{get:u,set:c}}function sr(r,t,e={}){ds(typeof r=="function"?r:r.constructor).set(t,e);const A=cc(t,e);Object.defineProperty(r,t,{get(){return A.get.call(this)},set(i){const s=A.get.call(this);A.set.call(this,i),this.onUpdateProperty?.(t,i,s,e)},configurable:!0,enumerable:!0})}function w(r){return function(t,e){if(typeof e!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");sr(t,e,r)}}function hc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["fillWithShape"])}}const Io=()=>Ju(10);function gc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["width","style","headEnd","tailEnd"])}}function fc(r){return typeof r=="string"?{color:se(r)}:{...r,color:lt(r.color)?co:se(r.color)}}function dc(){return{boxShadow:"none"}}function Ic(r){return typeof r=="string"?r.startsWith("<svg")?{svg:r}:{paths:[{data:r}]}:Array.isArray(r)?{paths:r.map(t=>typeof t=="string"?{data:t}:t)}:r}function pc(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Ec(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function Bc(){return{...pc(),...Ec(),...dc(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Cc(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function Qc(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function yc(){return{...Cc(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function Dc(){return{...Qc(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function mc(){return{...Dc(),...yc(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function nr(r){return li({...r,color:lt(r.color)?void 0:se(r.color),backgroundColor:lt(r.backgroundColor)?void 0:se(r.backgroundColor),borderColor:lt(r.borderColor)?void 0:se(r.borderColor),outlineColor:lt(r.outlineColor)?void 0:se(r.outlineColor),shadowColor:lt(r.shadowColor)?void 0:se(r.shadowColor)})}function po(){return{...Bc(),...mc()}}const Eo=/\r\n|\n\r|\n|\r/,wc=new RegExp(`${Eo.source}|<br\\/>`,"g"),vc=new RegExp(`^(${Eo.source})$`),or=`
|
|
2
|
-
`;function MA(r){return vc.test(r)}function ci(r){return r.replace(wc,or)}function _c(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(A=>r[A]===t[A])}function RA(r){const t=[];function e(){return t[t.length-1]}function A(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function i(o="",a={}){Array.from(o).forEach(l=>{if(MA(l)){const{fragments:u,...c}=e()||A();u.length||u.push({...a,content:or}),A(c)}else{const u=e()||A(),c=u.fragments[u.fragments.length-1];if(c){const{content:g,...f}=c;if(_c(a,f)){c.content=`${g}${l}`;return}}u.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")A(),i(o);else if("content"in o){const{content:a,...l}=o;A(nr(l)),i(a)}else if("fragments"in o){const{fragments:a,...l}=o;A(nr(l)),a.forEach(u=>{const{content:c,...g}=u;i(c,nr(g))})}else Array.isArray(o)?(A(),o.forEach(a=>{if(typeof a=="string")i(a);else{const{content:l,...u}=a;i(l,nr(u))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:or}),t}function bc(r){return typeof r=="string"?{content:RA(r)}:"content"in r?{...r,content:RA(r.content)}:{content:RA(r)}}function Bo(r){return RA(r).map(t=>{const e=ci(t.fragments.flatMap(A=>A.content).join(""));return MA(e)?"":e}).join(or)}const ar=new Map;function nt(r,t){return function(e){Object.defineProperty(e.prototype,"is",{value:r,enumerable:!0,configurable:!0}),t&&Object.keys(t).forEach(A=>{sr(e.prototype,A,{fallback:t[A]})}),ar.set(r,e)}}function xc(r="node",t={}){const e=ar.get(r);if(!e)throw new Error(`Failed to createNode, tag: ${r}`);return new e().setProperties(t)}class Kt{static _queue=[];static _currentTime=0;static _elapsed=0;static _requestId;static get currentTime(){return this._currentTime}static get elapsed(){return this._elapsed}static on(t,e={}){const{sort:A=0,once:i=!1}=e;this._queue[A]||(this._queue[A]=[]),this._queue[A].push({cb:t,once:i})}static off(t,e={}){const{sort:A=0}=e,i=this._queue[A];if(!i)return;const s=[];for(let n=i.length,o=0;o<n;o++){const a=i[o];a.cb!==t&&s.push(a)}s.length?this._queue[A]=s:this._queue.splice(A,1)}static start(){"requestAnimationFrame"in globalThis&&(this._currentTime=performance.now(),this._requestId=requestAnimationFrame(t=>this._update(t)))}static stop(){this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=void 0)}static _update(t){this._elapsed=t-this._currentTime,this._currentTime=t,this._requestId=requestAnimationFrame(e=>this._update(e)),this._performUpdate()}static _performUpdate(){const t=this._queue,e=[];for(let A=t.length,i=A;i>=0;i--){const s=t[i];if(!s)continue;const n=[];for(let o=s.length,a=0;a<o;a++){const l=s[a];try{l.cb()}catch(u){console.warn(u)}l.once||n.push(l)}n.length&&(e[i]=n)}this._queue=e}}Kt.start();async function Is(r){return new Promise(t=>{Kt.on(()=>{r?.(),t()},{sort:1,once:!0})})}const lr=Math.PI,oe=lr*2;let Fc=0;function Co(r){return r?.__SPECTOR_Object_TAG?.id??++Fc}function ps(r){return!(r&r-1)&&!!r}const Sc=/([\w-]+)\((.+?)\)/g,Mc=/[^,]+/g,Rc=/([-e.\d]+)(.*)/;function Es(r){return Array.isArray(r)?r.map(t=>({name:t.name,args:t.args.map(e=>({...e,normalizedIntValue:e.normalizedDefaultIntValue}))})):{...r,normalizedIntValue:r.normalizedDefaultIntValue}}function hi(r,t,e={}){const A=gi(t,e);return A.length?A:Qo(r,t,e)}function gi(r,t={}){const e=[];let A;for(;(A=Sc.exec(r))!==null;){const[,i,s]=A;i&&e.push({name:i,args:Pc(i,s,t)})}return e}function Pc(r,t,e={}){const A=[];let i,s=0;for(;(i=Mc.exec(t))!==null;)A.push(Qo(r,i[0],{...e,index:s++}));return A}function Qo(r,t,e={}){const{width:A=1,height:i=1,index:s=0}=e,n=t.match(Rc),o={unit:n?.[2]??null,value:t,intValue:Number(n?.[1]),normalizedIntValue:0,normalizedDefaultIntValue:0};switch(r){case"scale":case"scaleX":case"scaleY":case"scale3d":o.normalizedDefaultIntValue=1;break}switch(o.unit){case"%":o.normalizedIntValue=o.intValue/100;break;case"rad":o.normalizedIntValue=o.intValue/oe;break;case"deg":o.normalizedIntValue=o.intValue/360;break;case"px":switch(s){case 0:o.normalizedIntValue=o.intValue/A;break;case 1:o.normalizedIntValue=o.intValue/i;break}break;case"turn":case"em":case"rem":default:o.normalizedIntValue=o.intValue;break}return o}const yo="WebGL2RenderingContext"in globalThis,Do="ImageBitmap"in globalThis,mo="ResizeObserver"in globalThis,PA="PointerEvent"in globalThis,wo="WheelEvent"in globalThis,kc="MouseEvent"in globalThis,Oe="ontouchstart"in globalThis,vo="onclick"in globalThis,Bs="createImageBitmap"in globalThis,Cs="AudioContext"in globalThis,Qs="webkitAudioContext"in globalThis,ys="OfflineAudioContext"in globalThis,_o="webkitOfflineAudioContext"in globalThis,bo=Cs||Qs,fi=typeof window<"u",Ds=globalThis.devicePixelRatio||1,ms=r=>r!==null&&typeof r=="object"&&r.nodeType===1,xo=r=>ms(r)&&r.tagName==="VIDEO",Uc=r=>ms(r)&&r.tagName==="IMG";function Fo(r){return typeof r=="object"&&r!==null&&r.nodeType===1&&r.tagName==="CANVAS"}function So(r){return yo&&r instanceof globalThis.WebGL2RenderingContext}function Mo(){if(fi)return globalThis.document.createElement("canvas")}function Ro(r,t=globalThis.location){if(r.startsWith("data:"))return"";t=t||globalThis.location;const e=new URL(r,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}function Po(r,t,e){e===null&&!t.startsWith("data:")?r.crossOrigin=Ro(t):e!==!1&&(r.crossOrigin=typeof e=="string"?e:"anonymous")}class ws{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}}class ur{bubbles=!0;cancelable=!1;which;cancelBubble=!0;returnValue;srcElement;composed=!1;currentTarget;defaultPrevented=!1;eventPhase=ur.prototype.NONE;isTrusted;target;timeStamp;type;nativeEvent;originalEvent;propagationStopped=!1;propagationImmediatelyStopped=!1;path;detail;view;layer={x:0,y:0};get layerX(){return this.layer.x}get layerY(){return this.layer.y}page={x:0,y:0};get pageX(){return this.page.x}get pageY(){return this.page.y}initEvent(...t){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(...t){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}composedPath(){return this.path}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3}class vs extends ur{altKey;button;buttons;ctrlKey;metaKey;relatedTarget;shiftKey;client={x:0,y:0};get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}movement={x:0,y:0};get movementX(){return this.movement.x}get movementY(){return this.movement.y}offset={x:0,y:0};get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}global={x:0,y:0};get globalX(){return this.global.x}get globalY(){return this.global.y}screen={x:0,y:0};get screenX(){return this.screen.x}get screenY(){return this.screen.y}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(...t){throw new Error("Method not implemented.")}}class ko extends vs{width=0;height=0;isPrimary=!1;pointerType;pressure;tangentialPressure;tiltX;tiltY;twist;getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class Uo extends vs{deltaMode;deltaX;deltaY;deltaZ;static DOM_DELTA_PIXEL=0;DOM_DELTA_PIXEL=0;static DOM_DELTA_LINE=1;DOM_DELTA_LINE=1;static DOM_DELTA_PAGE=2;DOM_DELTA_PAGE=2}const Nc={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"};class No extends Ge{target;cursor="default";cursorStyles={default:"inherit",pointer:"pointer"};setuped=!1;event;enableMoveEvent=!0;enableWheelEvent=!0;enableClickEvent=!0;setTarget(t){this.removeEventListeners(),this.target=t,this.addEventListeners()}removeEventListeners(){if(!this.setuped||!this.target)return;const t=this.target.style;globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):PA&&(t.touchAction=""),PA?(this.target.removeEventListener("pointerdown",this.onPointerDown),this.target.removeEventListener("pointerleave",this.onPointerOver),this.target.removeEventListener("pointerover",this.onPointerOver),this.target.removeEventListener("pointermove",this.onPointerMove),this.target.removeEventListener("pointerup",this.onPointerUp)):(this.target.removeEventListener("mousedown",this.onPointerDown),this.target.removeEventListener("mouseout",this.onPointerOver),this.target.removeEventListener("mouseover",this.onPointerOver),this.target.removeEventListener("mousemove",this.onPointerMove),this.target.removeEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.removeEventListener("touchstart",this.onPointerDown),this.target.removeEventListener("touchmove",this.onPointerMove),this.target.removeEventListener("touchend",this.onPointerUp)),this.target.removeEventListener("wheel",this.onWheel),this.target=void 0,this.setuped=!1}addEventListeners(){if(this.setuped||!this.target)return;const t=this.target.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):PA&&(t.touchAction="none")),PA?(this.target.addEventListener("pointerdown",this.onPointerDown),this.target.addEventListener("pointerleave",this.onPointerOver),this.target.addEventListener("pointerover",this.onPointerOver),this.target.addEventListener("pointermove",this.onPointerMove),this.target.addEventListener("pointerup",this.onPointerUp)):(this.target.addEventListener("mousedown",this.onPointerDown),this.target.addEventListener("mouseout",this.onPointerOver),this.target.addEventListener("mouseover",this.onPointerOver),this.target.addEventListener("mousemove",this.onPointerMove),this.target.addEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.addEventListener("touchstart",this.onPointerDown),this.target.addEventListener("touchmove",this.onPointerMove),this.target.addEventListener("touchend",this.onPointerUp)),this.target.addEventListener("wheel",this.onWheel),this.setuped=!0}normalize(t){const e=[];if(Oe&&t instanceof globalThis.TouchEvent)for(let A=0,i=t.changedTouches.length;A<i;A++){const s=t.changedTouches[A];typeof s.button>"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.type=t.type,e.push(s)}else if(wo&&t instanceof globalThis.WheelEvent)e.push(t);else if(PA&&t instanceof globalThis.PointerEvent)e.push(t);else{const A=t;typeof A.isPrimary>"u"&&(A.isPrimary=!0),typeof A.width>"u"&&(A.width=1),typeof A.height>"u"&&(A.height=1),typeof A.tiltX>"u"&&(A.tiltX=0),typeof A.tiltY>"u"&&(A.tiltY=0),typeof A.pointerType>"u"&&(A.pointerType="mouse"),typeof A.pointerId>"u"&&(A.pointerId=1),typeof A.pressure>"u"&&(A.pressure=.5),typeof A.twist>"u"&&(A.twist=0),typeof A.tangentialPressure>"u"&&(A.tangentialPressure=0),e.push(A)}return e}cloneWheelEvent(t){const e=new Uo;return this.copyMouseEvent(e,t),e.wheelDeltaY=t.wheelDeltaY,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.nativeEvent=t,e.type=t.type,e}clonePointerEvent(t){const e=new ko;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,e.isTrusted=t.isTrusted,this.copyMouseEvent(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.type==="pointerleave"?e.type="pointerout":e.type.startsWith("mouse")?e.type=e.type.replace("mouse","pointer"):e.type.startsWith("touch")&&(e.type=Nc[e.type]||e.type),e}copyMouseEvent(t,e){t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t.isTrusted=e.isTrusted,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}setCursor(t){if(!this.target||(t=t||"default",this.cursor===t))return;this.cursor=t;const e=!(globalThis.OffscreenCanvas&&this.target instanceof OffscreenCanvas),A=this.cursorStyles[t];if(A)switch(typeof A){case"string":e&&(this.target.style.cursor=A);break;case"function":A(t);break;case"object":e&&Object.assign(this.target.style,A);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.target.style.cursor=t)}mapPositionToPoint(t,e,A){if(!this.target)return;const i=Number(this.target.getAttribute("width"))||0,s=Number(this.target.getAttribute("height"))||0,n=Number(this.target.getAttribute("data-pixel-ratio"))||1,o=this.target.isConnected?this.target.getBoundingClientRect():{width:i,height:s,left:0,top:0},a=1/n;t.x=(e-o.left)*(i/o.width)*a,t.y=(A-o.top)*(s/o.height)*a}onPointerDown=t=>{if(Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointerdown",this.event=this.clonePointerEvent(e[A]));this.setCursor(this.cursor)};onPointerOver=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointerover",this.event=this.clonePointerEvent(e[A]))};onPointerMove=t=>{if(!this.enableMoveEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointermove",this.event=this.clonePointerEvent(e[A]))};onPointerUp=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);const A=e!==this.target?"outside":"",i=this.normalize(t);for(let s=0,n=i.length;s<n;s++){const o=this.clonePointerEvent(i[s]);o.type+=A,this.emit("pointerup",this.event=o)}};onWheel=t=>{if(!this.enableWheelEvent)return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("wheel",this.event=this.cloneWheelEvent(e[A]))}}let Tc=0;class tA extends Ge{instanceId=++Tc;_customPropertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;useCustomPropertyAccessor(t){return this._customPropertyAccessor=t,this.getPropertyDeclarations().forEach((e,A)=>{const i=t.get(A,()=>{}),s=this._properties.get(A);i===void 0?s!==void 0&&t.set(A,s):i!==s&&(e.alias&&e.alias!==A?this.setProperty(A,i):this._properties.set(A,i),this._updateProperty(A,i,s,e),this.emit("updateProperty",A,i,s,e))}),this}getter(t,e){return e?.declaration.protected?this[e.internalKey]:this._customPropertyAccessor?this._customPropertyAccessor.get(t,()=>this._properties.get(t)):this._properties.get(t)}setter(t,e,A){A?.declaration.protected?this[A.internalKey]=e:(this._customPropertyAccessor&&this._customPropertyAccessor.set(t,e),this._properties.set(t,e))}equal(t){return!!(t&&this.instanceId===t.instanceId)}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(t){Promise.reject(t)}await Is(),this._updating&&(this.update(),this._updating=!1)}update(){this._update(this._updatedProperties),this._updatedProperties=new Map}_update(t){}_updateProperty(t,e,A,i){}isDirty(t){return this._updatedProperties.has(t)}getPropertyDeclarations(){return ds(this.constructor)}getPropertyDeclaration(t){return this.getPropertyDeclarations().get(t)}getProperty(t){return this[t]}setProperty(t,e){return this[t]=e,this}getProperties(t){const e={};for(const[A,i]of this.getPropertyDeclarations())!i.protected&&!i.alias&&(!t||t.includes(A))&&(e[A]=this.getProperty(A));return e}setProperties(t){if(t&&typeof t=="object")for(const[e]of this.getPropertyDeclarations())e in t&&this.setProperty(e,t[e]);return this}resetProperties(){for(const[t,e]of this.getPropertyDeclarations())this.setProperty(t,typeof e.fallback=="function"?e.fallback():e.fallback);return this}onUpdateProperty(t,e,A,i){this.requestUpdate(t,e,A,i)}requestUpdate(t,e,A,i){if(t!==void 0)if(!Object.is(e,A))this._updatedProperties.set(t,A),this._changedProperties.add(t),i??=this.getPropertyDeclaration(t),this._updateProperty(t,e,A,i),this.emit("updateProperty",t,e,A,i);else return;this._updating||(this._updatingPromise=this._enqueueUpdate())}toJSON(){const t={};return this._properties.forEach((e,A)=>{e!==void 0&&(e&&typeof e=="object"?"toJSON"in e&&typeof e.toJSON=="function"?t[A]=e.toJSON():t[A]={...e}:t[A]=e)}),t}clone(){return new this.constructor(this.toJSON())}free(){this.removeAllListeners()}}class To extends tA{}class He extends To{}function Lc(r,t){var e={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"},A={};for(var i in e)A[e[i]]=i;var s={};r.prototype.toName=function(n){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var o,a,l=A[this.toHex()];if(l)return l;if(n?.closest){var u=this.toRgb(),c=1/0,g="black";if(!s.length)for(var f in e)s[f]=new r(e[f]).toRgb();for(var d in e){var B=(o=u,a=s[d],Math.pow(o.r-a.r,2)+Math.pow(o.g-a.g,2)+Math.pow(o.b-a.b,2));B<c&&(c=B,g=d)}return g}},t.string.push([function(n){var o=n.toLowerCase(),a=o==="transparent"?"#0000":e[o];return a?new r(a).toRgb():null},"name"])}Ou([Lc]);class Je{get value(){return this._value}set value(t){this._colord=gs(t??"none")}get r8(){return this._colord.rgba.r}get g8(){return this._colord.rgba.g}get b8(){return this._colord.rgba.b}get a8(){return this._colord.rgba.a*255&255}get r(){return this.r8/255}get g(){return this.g8/255}get b(){return this.b8/255}get a(){return this._colord.rgba.a}get rgb(){return(this.r8<<16)+(this.g8<<8)+this.b8}get bgr(){return(this.b8<<16)+(this.g8<<8)+this.r8}get abgr(){return(this.a8<<24)+this.bgr}constructor(t=0){this.value=t}toHex(){return this._colord.toHex()}toRgb(){return this._colord.toRgb()}toRgbString(){return this._colord.toRgbString()}toHsl(){return this._colord.toHsl()}toHslString(){return this._colord.toHslString()}toHsv(){return this._colord.toHsv()}toArgb(t=this.a,e=!0){if(t===1)return(255<<24)+this.rgb;if(t===0)return e?0:this.rgb;let A=this.r8,i=this.g8,s=this.b8;return e&&(A=A*t+.5|0,i=i*t+.5|0,s=s*t+.5|0),(t*255<<24)+(A<<16)+(i<<8)+s}toArray(){return[this.r,this.g,this.b,this.a]}}class Ee extends Ge{constructor(t){super(),this.dim=t}_array=[];get length(){return this.dim}_operate(t,e,A){const{dim:i,_array:s}=this;let n;typeof e=="number"?n=Array.from({length:i},()=>e):e instanceof ve||e instanceof Ee?n=e.toArray():n=e;let o,a=[];if(A?A instanceof Ee?o=A:a=A:o=this,e instanceof ve){const{cols:l}=e;switch(t){case"*":for(let u=0;u<i;u++){let c=0;for(let g=0;g<i;g++)c+=s[u]*n[g*l+u];a[u]=c}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"+":for(let l=0;l<i;l++)a[l]=s[l]+n[l];break;case"-":for(let l=0;l<i;l++)a[l]=s[l]-n[l];break;case"*":for(let l=0;l<i;l++)a[l]=s[l]*n[l];break;case"/":for(let l=0;l<i;l++)a[l]=s[l]/n[l];break;case"rot":{const l=Math.cos(n[0]),u=Math.sin(n[0]);a[0]=s[0]*l-s[1]*u,a[1]=s[1]*l+s[0]*u;break}case"==":{let l=!0;for(let u=0;u<i;u++)l=l&&s[u]===n[u];return l}case"=":for(let l=0;l<i;l++){const u=n[l];u!==void 0&&(s[l]=u)}return this._onUpdate(s),this.emit("update",s),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Vector'`)}return o?.set(a)??a}add(t,e){return this._operate("+",t,e)}sub(t,e){return this._operate("-",t,e)}multiply(t,e){return this._operate("*",t,e)}divide(t,e){return this._operate("/",t,e)}rotate(t){return this._operate("rot",t)}set(t,...e){return e.length&&typeof t=="number"&&(t=[t,...e]),this._operate("=",t)}equals(t){return this._operate("==",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}_onUpdate(t){}toArray(){return this._array.slice()}toName(){return`Vector${this.dim}`}}class ve extends Ge{constructor(t,e,A){super(),this.rows=t,this.cols=e,A?this.set(A):this.identity()}_array=[];dirtyId=0;get length(){return this.cols*this.rows}_operate(t,e,A){const{cols:i,rows:s,length:n,_array:o}=this;let a;typeof e=="number"?a=Array.from({length:n},()=>e):e instanceof Ee||e instanceof ve?a=e.toArray():a=e;let l,u=[];if(A?A instanceof Ee||A instanceof ve?l=A:u=A:e instanceof Ee?l=new e.constructor:l=this,e instanceof Ee){const{dim:c}=e;switch(t){case"*":for(let g=0;g<c;g++){let f=0;for(let d=0;d<i;d++)d<c&&(f+=o[g*i+d]*(a[d]??0));u[g]=f}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"*":for(let c=0;c<i;c++)for(let g=0;g<s;g++){const f=g*i;let d=0;for(let B=0;B<s;B++){const I=f+B,F=B*i+c;d+=o[I]*(a[F]??0)}u[f+c]=d}break;case"=":for(let c=0;c<n;c++){const g=a[c];g!==void 0&&(o[c]=g)}return this._onUpdate(o),this.emit("update",o),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Matrix2'`)}return l?.set(u)??u}identity(){const{cols:t,rows:e}=this,A=[];for(let i=0;i<t;i++)for(let s=0;s<e;s++){const n=s*t,o=i+n;A[o]=s+n===o?1:0}return this.set(A)}set(t){return this._operate("=",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}multiply(t,e){return this._operate("*",t,e)}_onUpdate(t){this.dirtyId++}toArray(t=!1){const{cols:e,rows:A,_array:i}=this;if(t){const s=[];for(let n=0;n<A;n++)for(let o=0;o<e;o++)s[n+o*e]=i[o+n*e];return s}return i.slice()}toName(){return`Matrix${this.rows}(${this.rows}x${this.cols})`}toJSON(){return this._array}}class Lo extends ve{constructor(t){super(4,4,t)}}const Go=lr/180,Gc=180/lr;function Ke(r,t,e){return Math.max(r,Math.min(t,e))}function bt(r,t,e){return(1-e)*r+e*t}const Oc={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,t=20){if(!this.adaptive||!r||Number.isNaN(r))return t;let e=Math.ceil(r/this.maxLength);return e<this.minSegments?e=this.minSegments:e>this.maxSegments&&(e=this.maxSegments),e}};class Oo extends Ee{constructor(t=0,e=0,A=0,i=0){super(4),this.set([t,e,A,i])}}class _s extends ve{constructor(t){super(4,5,t)}hueRotate(t=0){const e=Math.sin(t),A=Math.cos(t),i=.213,s=.715,n=.072;return this.multiply([i+A*(1-i)+e*-i,s+A*-s+e*-s,n+A*-n+e*(1-n),0,0,i+A*-i+e*.143,s+A*(1-s)+e*.14,n+A*-n+e*-.283,0,0,i+A*-i+e*-.787,s+A*-s+e*s,n+A*(1-n)+e*n,0,0,0,0,0,1,0])}saturate(t=1){const e=(t-1)*2/3+1,A=(e-1)*-.5;return this.multiply([e,A,A,0,0,A,e,A,0,0,A,A,e,0,0,0,0,0,1,0])}brightness(t=1){const e=t;return this.multiply([e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0])}contrast(t=1){const e=t,A=-128*(e-1);return this.multiply([e,0,0,0,A,0,e,0,0,A,0,0,e,0,A,0,0,0,1,0])}invert(t=1){const e=bt(1,-1,t),A=bt(0,255,t);return this.multiply([e,0,0,0,A,0,e,0,0,A,0,0,e,0,A,0,0,0,1,0])}sepia(t=1){const e=Ke(0,t,1);return this.multiply([bt(1,.393,e),bt(0,.7689999,e),bt(0,.18899999,e),0,0,bt(0,.349,e),bt(1,.6859999,e),bt(0,.16799999,e),0,0,bt(0,.272,e),bt(0,.5339999,e),bt(1,.13099999,e),0,0,0,0,0,1,0])}opacity(t=1){return this.multiply([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,t,0])}grayscale(t=1){const e=Ke(0,t,1),A=bt(1,.3,e),i=bt(0,.3,e),s=bt(1,.59,e),n=bt(0,.59,e),o=bt(1,.11,e),a=bt(0,.11,e);return this.multiply([A,n,a,0,0,i,s,a,0,0,i,n,o,0,0,0,0,0,1,0])}multiply(t){const e=t,A=this._array;return this.set([A[0]*e[0]+A[1]*e[5]+A[2]*e[10]+A[3]*e[15],A[0]*e[1]+A[1]*e[6]+A[2]*e[11]+A[3]*e[16],A[0]*e[2]+A[1]*e[7]+A[2]*e[12]+A[3]*e[17],A[0]*e[3]+A[1]*e[8]+A[2]*e[13]+A[3]*e[18],A[0]*e[4]+A[1]*e[9]+A[2]*e[14]+A[3]*e[19]+A[4],A[5]*e[0]+A[6]*e[5]+A[7]*e[10]+A[8]*e[15],A[5]*e[1]+A[6]*e[6]+A[7]*e[11]+A[8]*e[16],A[5]*e[2]+A[6]*e[7]+A[7]*e[12]+A[8]*e[17],A[5]*e[3]+A[6]*e[8]+A[7]*e[13]+A[8]*e[18],A[5]*e[4]+A[6]*e[9]+A[7]*e[14]+A[8]*e[19]+A[9],A[10]*e[0]+A[11]*e[5]+A[12]*e[10]+A[13]*e[15],A[10]*e[1]+A[11]*e[6]+A[12]*e[11]+A[13]*e[16],A[10]*e[2]+A[11]*e[7]+A[12]*e[12]+A[13]*e[17],A[10]*e[3]+A[11]*e[8]+A[12]*e[13]+A[13]*e[18],A[10]*e[4]+A[11]*e[9]+A[12]*e[14]+A[13]*e[19]+A[14],A[15]*e[0]+A[16]*e[5]+A[17]*e[10]+A[18]*e[15],A[15]*e[1]+A[16]*e[6]+A[17]*e[11]+A[18]*e[16],A[15]*e[2]+A[16]*e[7]+A[17]*e[12]+A[18]*e[17],A[15]*e[3]+A[16]*e[8]+A[17]*e[13]+A[18]*e[18],A[15]*e[4]+A[16]*e[9]+A[17]*e[14]+A[18]*e[19]+A[19]])}toMatrix4(){const t=this._array;return new Lo([t[0],t[1],t[2],t[3],t[5],t[6],t[7],t[8],t[10],t[11],t[12],t[13],t[15],t[16],t[17],t[18]])}toVector4(){const t=this._array;return new Oo(t[4]/255,t[9]/255,t[14]/255,t[19]/255)}}class Hc extends ve{constructor(t){super(2,2,t)}}let bs=class extends ve{constructor(t){super(3,3,t)}invert(){const[t,e,A,i,s,n,o,a,l]=this._array,u=l*s-n*a,c=n*o-l*i,g=a*i-s*o,f=t*u+e*c+A*g;if(f===0)return this.set([0,0,0,0,0,0,0,0,0]);const d=1/f;return this.set([u*d,(A*a-l*e)*d,(n*e-A*s)*d,c*d,(l*t-A*o)*d,(A*i-n*t)*d,g*d,(e*o-a*t)*d,(s*t-e*i)*d])}};class Ho extends bs{constructor(t=0,e=0,A=0,i=0,s=!1){super(),this._x=t,this._y=e,this._width=A,this._height=i,this._flipY=s,this._performUpdateArray()}flipY(t){return this._flipY!==t&&(this._flipY=t,this._performUpdateArray()),this}translate(t,e){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._performUpdateArray()),this}resize(t,e){return(this._width!==t||this._height!==e)&&(this._width=t,this._height=e,this._performUpdateArray()),this}_performUpdateArray(){const t=this._width,e=this._height;if(!t||!e)return;const A=this._x,i=this._y,s=this._flipY?-1:1,n=1/t*2,o=s*(1/e*2),a=-1-A*n,l=-s-i*o;this.set([n,0,a,0,o,l,0,0,1])}}let ae=class ns extends Ee{get x(){return this._array[0]}set x(t){const[e,A]=this._array;e!==t&&this.set(t,A)}get y(){return this._array[1]}set y(t){const[e,A]=this._array;A!==t&&this.set(e,t)}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}get left(){return this.x}set left(t){this.x=t}get top(){return this.y}set top(t){this.y=t}constructor(t=0,e){super(2),this.set(typeof t=="number"?[t,e??t]:t)}update(t,e){const[A,i]=this._array;return(A!==t||i!==e)&&this.set(t,e),this}getLength(){const[t,e]=this._array;return Math.sqrt(t*t+e*e)}getAngle(){const[t,e]=this._array;return Math.atan2(-t,-e)+Math.PI}distanceTo(t){return Math.hypot(t.x-this.x,t.y-this.y)}normalize(){const[t,e]=this._array,A=1/(this.getLength()||1);return this.set(t*A,e*A),this}static lerp(t,e,A){return new ns(e).clone().sub(new ns(t)).multiply(A).add(new ns(t))}};class xs{get x(){return this.position.x}get y(){return this.position.y}get left(){return this.position.x}get top(){return this.position.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get width(){return this.size.x}get height(){return this.size.y}end=new ae;position;size;constructor(...t){const e=new ae,A=new ae;switch(t.length){case 0:break;case 1:e.set(t[0].position),A.set(t[0].size);break;case 2:e.set(t[0]),A.set(t[1]);break;default:e.set(t[0],t[1]),A.set(t[2],t[3]);break}this.update=this.update.bind(this),this.position=e.on("update",this.update),this.size=A.on("update",this.update),this.update()}update(){return this.end.set(this.position.x+this.size.x,this.position.y+this.size.y),this}toArray(){return[this.x,this.y,this.width,this.height]}}class Yt extends bs{static _t2d=new Yt;premultiply(t){return t.multiply(this,this)}skewX(t){return this.skew(t,0)}skewY(t){return this.skew(0,t)}skew(t,e){return this.premultiply(Yt._t2d.makeSkew(t,e))}makeSkew(t,e){const A=Math.tan(t),i=Math.tan(e);return this.set([1,i,0,A,1,0,0,0,1]),this}translateX(t){return this.translate(t,0)}translateY(t){return this.translate(0,t)}translateZ(t){return this.translate(0,0,t)}translate3d(t,e,A){return this.translate(t,e,A)}translate(t,e,A=0){return this.premultiply(Yt._t2d.makeTranslation(t,e,A))}makeTranslation(t,e,A=0){return this.set([1,0,t,0,1,e,0,0,1]),this}scaleX(t){return this.scale(t,1)}scaleY(t){return this.scale(1,t)}scale3d(t,e,A=1){return this.scale(t,e,A)}scale(t,e,A=1){return this.premultiply(Yt._t2d.makeScale(t,e,A))}makeScale(t,e,A=1){return this.set([t,0,0,0,e,0,0,0,1]),this}rotateX(t){return this.scaleY(this._rotateToScale(t))}rotateY(t){return this.scaleX(this._rotateToScale(t))}rotateZ(t){return this.rotate(t)}rotate(t){return this.premultiply(Yt._t2d.makeRotation(t))}rotate3d(t,e,A,i){const[s,n,o]=this._rotate3d(t,e,A,i);return s&&this.rotateX(s),n&&this.rotateY(n),o&&this.rotateZ(o),this}_rotateToScale(t){const e=t/oe;return e<=.5?e*-4+1:(e-1)*4+1}_rotate3d(t,e,A,i){if(t===1&&e===0&&A===0)return[i,0,0];if(t===0&&e===1&&A===0)return[0,i,0];if(t===0&&e===0)return[0,0,i];{const s=Math.cos(i),n=Math.sin(i),o=s+t*t*(1-s),a=t*e*(1-s)-A*n,l=t*A*(1-s)+e*n,u=s+e*e*(1-s),c=e*A*(1-s)-t*n,g=s+A*A*(1-s),f=-Math.atan2(-c,u),d=-Math.atan2(l,Math.sqrt(c*c+g*g)),B=-Math.atan2(-a,o);return[f,d,B]}}makeRotation(t){const e=Math.cos(t),A=Math.sin(t);return this.set([e,-A,0,A,e,0,0,0,1]),this}applyToPoint(t,e){const{a:A,c:i,tx:s,b:n,d:o,ty:a}=this.toObject();return[A*t+i*e+s,n*t+o*e+a]}inverse(){return this.clone().invert()}isIdentity(){const{a:t,b:e,c:A,d:i,tx:s,ty:n}=this.toObject();return t===1&&e===0&&A===0&&i===1&&s===0&&n===0}toObject(){const[t,e,A,i,s,n,,,o]=this._array;return{a:t,c:e,tx:A,b:i,d:s,ty:n,tz:o}}}class Jc extends Ee{constructor(){super(3)}}var Kc=Object.defineProperty,Jo=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Kc(t,e,i),i};class cr extends tA{_starting=!1;_nextDeltaTime=0;get starting(){return this._starting}get spf(){return this.fps?Math.floor(1e3/this.fps):0}constructor(){super(),this._onNextTick=this._onNextTick.bind(this)}start(t){this._starting||(this._starting=!0,this.off("process"),this.on("process",t),Kt.on(this._onNextTick,{sort:0}))}stop(){this._starting&&(this._starting=!1,Kt.off(this._onNextTick,{sort:0}))}_onNextTick(){const t=Kt.elapsed*this.speed;if((this._nextDeltaTime-=t)<=0){const A=(this._nextDeltaTime=this.spf)||t;this.emit("process",A)}}free(){super.free(),this.stop()}}Jo([w({fallback:24})],cr.prototype,"fps"),Jo([w({fallback:1})],cr.prototype,"speed");class Ko{view;pixelRatio=Ds;screen={x:0,y:0,width:0,height:0};related=new ws;getRelated(t,e){let A=this.related.get(t);return A||(e?(this.related.set(t,A=e()),A):(console.warn("Failed to get related",t),null))}resize(t,e,A=!0){this.view&&(this.view.width=Math.floor(t*this.pixelRatio),this.view.height=Math.floor(e*this.pixelRatio)),this.screen.width=t,this.screen.height=e,A&&this.view&&(this.view.style.width=`${t}px`,this.view.style.height=`${e}px`)}}var kA=(r=>(r.NORMAL="normal",r.ADD="add",r.MULTIPLY="multiply",r.SCREEN="screen",r.NONE="none",r.NORMAL_NPM="normal_npm",r.ADD_NPM="add_npm",r.SCREEN_NPM="screen_npm",r.SRC_IN="src_in",r.SRC_OUT="src_out",r.SRC_ATOP="src_atop",r.DST_OVER="dst_over",r.DST_IN="dst_in",r.DST_OUT="dst_out",r.DST_ATOP="dst_atop",r.XOR="xor",r.SUBTRACT="subtract",r))(kA||{});function Yo(r){return{normal:[r.ONE,r.ONE_MINUS_SRC_ALPHA],add:[r.ONE,r.ONE],multiply:[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],screen:[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],none:[0,0],normal_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],add_npm:[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],screen_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],src_in:[r.DST_ALPHA,r.ZERO],src_out:[r.ONE_MINUS_DST_ALPHA,r.ZERO],src_atop:[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],dst_over:[r.ONE_MINUS_DST_ALPHA,r.ONE],dst_in:[r.ZERO,r.SRC_ALPHA],dst_out:[r.ZERO,r.ONE_MINUS_SRC_ALPHA],dst_atop:[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],xor:[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],subtract:[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD]}}class de{get gl(){return this._renderer.gl}install(t){this._renderer=t}onUpdateContext(){}flush(){}reset(){}free(){}}class BA{static _properties=["blend","offsets","culling","depthTest","clockwiseFrontFace","depthMask"];static _init(){this._properties.forEach((t,e)=>{Object.defineProperty(this.prototype,t,{get(){return!!(this.bitmap&1<<e)},set(A){!!(this.bitmap&1<<e)!==A&&(this.bitmap^=1<<e)},enumerable:!0,configurable:!0})})}static for2D(){const t=new BA;return t.depthTest=!1,t.blend=!0,t}_blendMode=kA.NORMAL;_polygonOffset=0;bitmap=0;get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!==kA.NONE,this._blendMode=t}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}constructor(t){if(t)for(const e in t)this[e]=t[e]}}BA._init();class Vo extends de{install(t){super.install(t),t.state=this}_blendEq=!1;_setters=BA._properties.map(t=>this[`set${t.replace(/^\S/,e=>e.toUpperCase())}`]);boundStateBitmap=0;boundBlendMode;blendModes;defaultState=new BA({blend:!0});onUpdateContext(){super.onUpdateContext(),this.blendModes=Yo(this._renderer.gl)}toggle(t,e){this._renderer.gl[e?"enable":"disable"](t)}setBlend(t){this.toggle(this._renderer.gl.BLEND,t)}setOffsets(t){this.toggle(this._renderer.gl.POLYGON_OFFSET_FILL,t)}setCulling(t){this.toggle(this._renderer.gl.CULL_FACE,t)}setDepthTest(t){this.toggle(this._renderer.gl.DEPTH_TEST,t)}setDepthMask(t){this._renderer.gl.depthMask(t)}setClockwiseFrontFace(t){const e=this._renderer.gl;e.frontFace(e[t?"CW":"CCW"])}setBlendMode(t){if(t===this.boundBlendMode)return;this.boundBlendMode=t;const e=this.blendModes[t],A=this._renderer.gl;e.length===2?A.blendFunc(e[0],e[1]):A.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,A.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,A.blendEquationSeparate(A.FUNC_ADD,A.FUNC_ADD))}setPolygonOffset(t,e){this._renderer.gl.polygonOffset(t,e)}bind(t){if(this.boundStateBitmap!==t.bitmap){let e=this.boundStateBitmap^t.bitmap,A=0;for(;e;)e&1&&this._setters[A]?.call(this,!!(t.bitmap&1<<A)),e=e>>1,A++;this.boundStateBitmap=t.bitmap}t.blend&&this.setBlendMode(t.blendMode),t.offsets&&this.setPolygonOffset(1,t.polygonOffset)}reset(){super.reset();const t=this._renderer.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),this.bind(this.defaultState),this._blendEq=!0,this.setBlendMode(kA.NORMAL)}}class zo extends de{install(t){super.install(t),t.batch2D=this}_state=BA.for2D();_batchSize=4096*4;_drawCallUid=0;_defaultModulate=4294967295;_defaultBackgroundColor=0;_defaultColorMatrixOffset=[0,0,0,0];_defaultColorMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];_batchables=[];_vertexCount=0;_indexCount=0;_attributeBuffer=[];_indexBuffers=[];_shaders=new Map;_attributes={aTextureId:{size:1,normalized:!0,type:"float"},aPosition:{size:2,normalized:!1,type:"float"},aUv:{size:2,normalized:!1,type:"float"},aModulate:{size:4,normalized:!0,type:"unsigned_byte"},aBackgroundColor:{size:4,normalized:!0,type:"unsigned_byte"},aDisableWrapMode:{size:4,normalized:!0,type:"float"},aColorMatrixOffset:{size:4,normalized:!1,type:"float"},aColorMatrix:{size:4,normalized:!1,type:"float"}};_vertexSize=31;_getShader(t){let e=this._shaders.get(t);return e||this._shaders.set(t,e=this._createShader(t)),e}_createShader(t){const e=this._renderer,A=e.program.create({vert:`precision highp float;
|
|
1
|
+
(function(h,pA){typeof exports=="object"&&typeof module<"u"?pA(exports):typeof define=="function"&&define.amd?define(["exports"],pA):(h=typeof globalThis<"u"?globalThis:h||self,pA(h.modernCanvas={}))})(this,function(h){"use strict";var pA=typeof document<"u"?document.currentScript:null,Pu={grad:.9,turn:360,rad:360/(2*Math.PI)},Le=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},St=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*r)/e+0},fe=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),r>e?e:r>t?r:t},to=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},eo=function(r){return{r:fe(r.r,0,255),g:fe(r.g,0,255),b:fe(r.b,0,255),a:fe(r.a)}},os=function(r){return{r:St(r.r),g:St(r.g),b:St(r.b),a:St(r.a,3)}},ku=/^#([0-9a-f]{3,8})$/i,er=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},Ao=function(r){var t=r.r,e=r.g,A=r.b,i=r.a,s=Math.max(t,e,A),n=s-Math.min(t,e,A),o=n?s===t?(e-A)/n:s===e?2+(A-t)/n:4+(t-e)/n:0;return{h:60*(o<0?o+6:o),s:s?n/s*100:0,v:s/255*100,a:i}},io=function(r){var t=r.h,e=r.s,A=r.v,i=r.a;t=t/360*6,e/=100,A/=100;var s=Math.floor(t),n=A*(1-e),o=A*(1-(t-s)*e),a=A*(1-(1-t+s)*e),l=s%6;return{r:255*[A,o,n,n,a,A][l],g:255*[a,A,A,o,n,n][l],b:255*[n,n,a,A,A,o][l],a:i}},ro=function(r){return{h:to(r.h),s:fe(r.s,0,100),l:fe(r.l,0,100),a:fe(r.a)}},so=function(r){return{h:St(r.h),s:St(r.s),l:St(r.l),a:St(r.a,3)}},no=function(r){return io((e=(t=r).s,{h:t.h,s:(e*=((A=t.l)<50?A:100-A)/100)>0?2*e/(A+e)*100:0,v:A+e,a:t.a}));var t,e,A},ai=function(r){return{h:(t=Ao(r)).h,s:(i=(200-(e=t.s))*(A=t.v)/100)>0&&i<200?e*A/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,e,A,i},Uu=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Nu=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Tu=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Lu=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,as={string:[[function(r){var t=ku.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?St(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?St(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=Tu.exec(r)||Lu.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:eo({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(r){var t=Uu.exec(r)||Nu.exec(r);if(!t)return null;var e,A,i=ro({h:(e=t[1],A=t[2],A===void 0&&(A="deg"),Number(e)*(Pu[A]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return no(i)},"hsl"]],object:[[function(r){var t=r.r,e=r.g,A=r.b,i=r.a,s=i===void 0?1:i;return Le(t)&&Le(e)&&Le(A)?eo({r:Number(t),g:Number(e),b:Number(A),a:Number(s)}):null},"rgb"],[function(r){var t=r.h,e=r.s,A=r.l,i=r.a,s=i===void 0?1:i;if(!Le(t)||!Le(e)||!Le(A))return null;var n=ro({h:Number(t),s:Number(e),l:Number(A),a:Number(s)});return no(n)},"hsl"],[function(r){var t=r.h,e=r.s,A=r.v,i=r.a,s=i===void 0?1:i;if(!Le(t)||!Le(e)||!Le(A))return null;var n=function(o){return{h:to(o.h),s:fe(o.s,0,100),v:fe(o.v,0,100),a:fe(o.a)}}({h:Number(t),s:Number(e),v:Number(A),a:Number(s)});return io(n)},"hsv"]]},oo=function(r,t){for(var e=0;e<t.length;e++){var A=t[e][0](r);if(A)return[A,t[e][1]]}return[null,void 0]},Gu=function(r){return typeof r=="string"?oo(r.trim(),as.string):typeof r=="object"&&r!==null?oo(r,as.object):[null,void 0]},ls=function(r,t){var e=ai(r);return{h:e.h,s:fe(e.s+100*t,0,100),l:e.l,a:e.a}},us=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},ao=function(r,t){var e=ai(r);return{h:e.h,s:e.s,l:fe(e.l+100*t,0,100),a:e.a}},cs=function(){function r(t){this.parsed=Gu(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return St(us(this.rgba),2)},r.prototype.isDark=function(){return us(this.rgba)<.5},r.prototype.isLight=function(){return us(this.rgba)>=.5},r.prototype.toHex=function(){return t=os(this.rgba),e=t.r,A=t.g,i=t.b,n=(s=t.a)<1?er(St(255*s)):"","#"+er(e)+er(A)+er(i)+n;var t,e,A,i,s,n},r.prototype.toRgb=function(){return os(this.rgba)},r.prototype.toRgbString=function(){return t=os(this.rgba),e=t.r,A=t.g,i=t.b,(s=t.a)<1?"rgba("+e+", "+A+", "+i+", "+s+")":"rgb("+e+", "+A+", "+i+")";var t,e,A,i,s},r.prototype.toHsl=function(){return so(ai(this.rgba))},r.prototype.toHslString=function(){return t=so(ai(this.rgba)),e=t.h,A=t.s,i=t.l,(s=t.a)<1?"hsla("+e+", "+A+"%, "+i+"%, "+s+")":"hsl("+e+", "+A+"%, "+i+"%)";var t,e,A,i,s},r.prototype.toHsv=function(){return t=Ao(this.rgba),{h:St(t.h),s:St(t.s),v:St(t.v),a:St(t.a,3)};var t},r.prototype.invert=function(){return we({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},r.prototype.saturate=function(t){return t===void 0&&(t=.1),we(ls(this.rgba,t))},r.prototype.desaturate=function(t){return t===void 0&&(t=.1),we(ls(this.rgba,-t))},r.prototype.grayscale=function(){return we(ls(this.rgba,-1))},r.prototype.lighten=function(t){return t===void 0&&(t=.1),we(ao(this.rgba,t))},r.prototype.darken=function(t){return t===void 0&&(t=.1),we(ao(this.rgba,-t))},r.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},r.prototype.alpha=function(t){return typeof t=="number"?we({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):St(this.rgba.a,3);var e},r.prototype.hue=function(t){var e=ai(this.rgba);return typeof t=="number"?we({h:t,s:e.s,l:e.l,a:e.a}):St(e.h)},r.prototype.isEqual=function(t){return this.toHex()===we(t).toHex()},r}(),we=function(r){return r instanceof cs?r:new cs(r)},lo=[],Ou=function(r){r.forEach(function(t){lo.indexOf(t)<0&&(t(cs,as),lo.push(t))})};const Hu="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Ju=(r=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)t+=Hu[e[r]&63];return t};class Ge{eventListeners=new Map;addEventListener(t,e,A){const i={value:e,options:A},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(i):this.eventListeners.set(t,[s,i]):this.eventListeners.set(t,i),this}removeEventListener(t,e,A){if(!e)return this.eventListeners.delete(t),this;const i=this.eventListeners.get(t);if(!i)return this;if(Array.isArray(i)){const s=[];for(let n=0,o=i.length;n<o;n++){const a=i[n];(a.value!==e||typeof A=="object"&&A?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else i.value===e&&(typeof A=="boolean"||!A?.once||typeof i.options=="boolean"||i.options?.once)&&this.eventListeners.delete(t);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}dispatchEvent(t,...e){const A=this.eventListeners.get(t);if(A){if(Array.isArray(A))for(let i=A.length,s=0;s<i;s++){const n=A[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,e)}else typeof A.options=="object"&&A.options?.once&&this.off(t,A.value,A.options),A.value.apply(this,e);return!0}else return!1}on(t,e,A){return this.addEventListener(t,e,A)}once(t,e){return this.addEventListener(t,e,{once:!0})}off(t,e,A){return this.removeEventListener(t,e,A)}emit(t,...e){this.dispatchEvent(t,...e)}}function lt(r){return r==null||r==="none"}function SA(r,t=0,e=10**t){return Math.round(e*r)/e+0}function li(r,t=!1){if(typeof r!="object"||!r)return r;if(Array.isArray(r))return t?r.map(A=>li(A,t)):r;const e={};for(const A in r){const i=r[A];i!=null&&(t?e[A]=li(i,t):e[A]=i)}return e}function hs(r,t){const e={};return t.forEach(A=>{A in r&&(e[A]=r[A])}),e}function Ku(r,t,e){const A=t.length-1;if(A<0)return r===void 0?e:r;for(let i=0;i<A;i++){if(r==null)return e;r=r[t[i]]}return r==null||r[t[A]]===void 0?e:r[t[A]]}function Yu(r,t,e){const A=t.length-1;for(let i=0;i<A;i++)typeof r[t[i]]!="object"&&(r[t[i]]={}),r=r[t[i]];r[t[A]]=e}function Vu(r,t,e){return r==null||!t||typeof t!="string"?e:r[t]!==void 0?r[t]:(t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Ku(r,t.split("."),e))}function zu(r,t,e){if(!(typeof r!="object"||!t))return t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Yu(r,t.split("."),e)}let uo=class{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}};function gs(r){let t;return typeof r=="number"?t={r:r>>24&255,g:r>>16&255,b:r>>8&255,a:(r&255)/255}:t=r,we(t)}function Wu(r){return{r:SA(r.r),g:SA(r.g),b:SA(r.b),a:SA(r.a,3)}}function Ar(r){const t=r.toString(16);return t.length<2?`0${t}`:t}const co="#000000FF";function qu(r){return gs(r).isValid()}function se(r,t=!1){const e=gs(r);if(!e.isValid()){if(typeof r=="string")return r;const o=`Failed to normalizeColor ${r}`;if(t)throw new Error(o);return console.warn(o),co}const{r:A,g:i,b:s,a:n}=Wu(e.rgba);return`#${Ar(A)}${Ar(i)}${Ar(s)}${Ar(SA(n*255))}`}var ir=ir||{};ir.parse=function(){const r={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let t="";function e(k){const P=new Error(`${t}: ${k}`);throw P.source=t,P}function A(){const k=i();return t.length>0&&e("Invalid input not EOF"),k}function i(){return y(s)}function s(){return n("linear-gradient",r.linearGradient,a)||n("repeating-linear-gradient",r.repeatingLinearGradient,a)||n("radial-gradient",r.radialGradient,c)||n("repeating-radial-gradient",r.repeatingRadialGradient,c)}function n(k,P,q){return o(P,Z=>{const st=q();return st&&(T(r.comma)||e("Missing comma before color stops")),{type:k,orientation:st,colorStops:y(_)}})}function o(k,P){const q=T(k);if(q){T(r.startCall)||e("Missing (");const Z=P(q);return T(r.endCall)||e("Missing )"),Z}}function a(){const k=l();if(k)return k;const P=At("position-keyword",r.positionKeywords,1);return P?{type:"directional",value:P.value}:u()}function l(){return At("directional",r.sideOrCorner,1)}function u(){return At("angular",r.angleValue,1)||At("angular",r.radianValue,1)}function c(){let k,P=g(),q;return P&&(k=[],k.push(P),q=t,T(r.comma)&&(P=g(),P?k.push(P):t=q)),k}function g(){let k=f()||d();if(k)k.at=I();else{const P=B();if(P){k=P;const q=I();q&&(k.at=q)}else{const q=I();if(q)k={type:"default-radial",at:q};else{const Z=F();Z&&(k={type:"default-radial",at:Z})}}}return k}function f(){const k=At("shape",/^(circle)/i,0);return k&&(k.style=W()||B()),k}function d(){const k=At("shape",/^(ellipse)/i,0);return k&&(k.style=F()||L()||B()),k}function B(){return At("extent-keyword",r.extentKeywords,1)}function I(){if(At("position",/^at/,0)){const k=F();return k||e("Missing positioning value"),k}}function F(){const k=b();if(k.x||k.y)return{type:"position",value:k}}function b(){return{x:L(),y:L()}}function y(k){let P=k();const q=[];if(P)for(q.push(P);T(r.comma);)P=k(),P?q.push(P):e("One extra comma");return q}function _(){const k=Q();return k||e("Expected color definition"),k.length=L(),k}function Q(){return S()||J()||z()||V()||M()||et()||D()}function D(){return At("literal",r.literalColor,0)}function S(){return At("hex",r.hexColor,1)}function M(){return o(r.rgbColor,()=>({type:"rgb",value:y(K)}))}function V(){return o(r.rgbaColor,()=>({type:"rgba",value:y(K)}))}function et(){return o(r.varColor,()=>({type:"var",value:$()}))}function z(){return o(r.hslColor,()=>{T(r.percentageValue)&&e("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const P=K();T(r.comma);let q=T(r.percentageValue);const Z=q?q[1]:null;T(r.comma),q=T(r.percentageValue);const st=q?q[1]:null;return(!Z||!st)&&e("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[P,Z,st]}})}function J(){return o(r.hslaColor,()=>{const k=K();T(r.comma);let P=T(r.percentageValue);const q=P?P[1]:null;T(r.comma),P=T(r.percentageValue);const Z=P?P[1]:null;T(r.comma);const st=K();return(!q||!Z)&&e("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[k,q,Z,st]}})}function $(){return T(r.variableName)[1]}function K(){return T(r.number)[1]}function L(){return At("%",r.percentageValue,1)||it()||G()||W()}function it(){return At("position-keyword",r.positionKeywords,1)}function G(){return o(r.calcValue,()=>{let k=1,P=0;for(;k>0&&P<t.length;){const Z=t.charAt(P);Z==="("?k++:Z===")"&&k--,P++}k>0&&e("Missing closing parenthesis in calc() expression");const q=t.substring(0,P-1);return tt(P-1),{type:"calc",value:q}})}function W(){return At("px",r.pixelValue,1)||At("em",r.emValue,1)}function At(k,P,q){const Z=T(P);if(Z)return{type:k,value:Z[q]}}function T(k){let P,q;return q=/^\s+/.exec(t),q&&tt(q[0].length),P=k.exec(t),P&&tt(P[0].length),P}function tt(k){t=t.substr(k)}return function(k){return t=k.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),A()}}();const Xu=ir.parse.bind(ir);var rr=rr||{};rr.stringify=function(){var r={"visit_linear-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return r.visit_gradient(t)},"visit_radial-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return r.visit_gradient(t)},visit_gradient:function(t){var e=r.visit(t.orientation);return e&&(e+=", "),t.type+"("+e+r.visit(t.colorStops)+")"},visit_shape:function(t){var e=t.value,A=r.visit(t.at),i=r.visit(t.style);return i&&(e+=" "+i),A&&(e+=" at "+A),e},"visit_default-radial":function(t){var e="",A=r.visit(t.at);return A&&(e+=A),e},"visit_extent-keyword":function(t){var e=t.value,A=r.visit(t.at);return A&&(e+=" at "+A),e},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return r.visit(t.value.x)+" "+r.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return r.visit_color(t.value,t)},visit_hex:function(t){return r.visit_color("#"+t.value,t)},visit_rgb:function(t){return r.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return r.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return r.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return r.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return r.visit_color("var("+t.value+")",t)},visit_color:function(t,e){var A=t,i=r.visit(e.length);return i&&(A+=" "+i),A},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var e="",A=t.length;return t.forEach(function(i,s){e+=r.visit(i),s<A-1&&(e+=", ")}),e},visit_object:function(t){return t.width&&t.height?r.visit(t.width)+" "+r.visit(t.height):""},visit:function(t){if(!t)return"";if(t instanceof Array)return r.visit_array(t);if(typeof t=="object"&&!t.type)return r.visit_object(t);if(t.type){var e=r["visit_"+t.type];if(e)return e(t);throw Error("Missing visitor visit_"+t.type)}else throw Error("Invalid node.")}};return function(t){return r.visit(t)}}(),rr.stringify.bind(rr);function ho(r){const t=r.length-1;return r.map((e,A)=>{const i=e.value;let s=SA(A/t,3),n="#00000000";switch(e.type){case"rgb":n=se({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0)});break;case"rgba":n=se({r:Number(i[0]??0),g:Number(i[1]??0),b:Number(i[2]??0),a:Number(i[3]??0)});break;case"literal":n=se(e.value);break;case"hex":n=se(`#${e.value}`);break}switch(e.length?.type){case"%":s=Number(e.length.value)/100;break}return{offset:s,color:n}})}function go(r){let t=0;switch(r.orientation?.type){case"angular":t=Number(r.orientation.value);break}return{type:"linear-gradient",angle:t,stops:ho(r.colorStops)}}function fo(r){return r.orientation?.map(t=>{switch(t?.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:ho(r.colorStops)}}function ui(r){return r.startsWith("linear-gradient(")||r.startsWith("radial-gradient(")}function ju(r){return Xu(r).map(t=>{switch(t?.type){case"linear-gradient":return go(t);case"repeating-linear-gradient":return{...go(t),repeat:!0};case"radial-gradient":return fo(t);case"repeating-radial-gradient":return{...fo(t),repeat:!0};default:return}}).filter(Boolean)}function Zu(r){let t;return typeof r=="string"?t={color:r}:t=r,{color:se(t.color)}}function $u(r){let t;if(typeof r=="string"?t={image:r}:t=r,t.image){const{type:e,...A}=ju(t.image)[0]??{};switch(e){case"radial-gradient":return{radialGradient:A};case"linear-gradient":return{linearGradient:A}}}return t}function tc(r){let t;return typeof r=="string"?t={image:r}:t=r,t}function ec(r){let t;return typeof r=="string"?t={preset:r}:t=r,{preset:t.preset,foregroundColor:lt(t.foregroundColor)?void 0:se(t.foregroundColor),backgroundColor:lt(t.backgroundColor)?void 0:se(t.backgroundColor)}}function Ac(r){return!lt(r.color)}function ic(r){return typeof r=="string"?qu(r):Ac(r)}function rc(r){return!lt(r.image)&&ui(r.image)||!!r.linearGradient||!!r.radialGradient}function sc(r){return typeof r=="string"?ui(r):rc(r)}function nc(r){return!lt(r.image)&&!ui(r.image)}function oc(r){return typeof r=="string"?!ui(r):nc(r)}function ac(r){return!lt(r.preset)}function lc(r){return typeof r=="string"?!1:ac(r)}function EA(r){return ic(r)?Zu(r):sc(r)?$u(r):oc(r)?tc(r):lc(r)?ec(r):{}}function uc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["fillWithShape"])}}const fs=Symbol("properties");function ds(r){let t;if(Object.hasOwn(r,fs))t=r[fs];else{const e=Object.getPrototypeOf(r);t=new Map(e?ds(e):void 0),r[fs]=t}return t}function cc(r,t={}){const e=Symbol.for(r),{default:A,fallback:i,alias:s}=t,n={declaration:t,internalKey:e},o=()=>typeof A=="function"?A():A,a=()=>typeof i=="function"?i():i;let l=!0;function u(){let g;if(s&&s!==r?g=Vu(this,s):typeof this.getter<"u"?g=this.getter(r,n):g=this[e],g=g??a(),g===void 0&&l){l=!1;const f=o();f!==void 0&&(c.call(this,f),g=f)}return g}function c(g){s&&s!==r?zu(this,s,g):typeof this.setter<"u"?this.setter(r,g,n):this[e]=g}return{get:u,set:c}}function sr(r,t,e={}){ds(r).set(t,e);const A=cc(t,e);Object.defineProperty(r.prototype,t,{get(){return A.get.call(this)},set(i){const s=A.get.call(this);A.set.call(this,i),this.onUpdateProperty?.(t,i,s,e)},configurable:!0,enumerable:!0})}function w(r){return function(t,e){if(typeof e!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");sr(t.constructor,e,r)}}function hc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["fillWithShape"])}}const Io=()=>Ju(10);function gc(r){return typeof r=="string"?{...EA(r)}:{...EA(r),...hs(r,["width","style","headEnd","tailEnd"])}}function fc(r){return typeof r=="string"?{color:se(r)}:{...r,color:lt(r.color)?co:se(r.color)}}function dc(){return{boxShadow:"none"}}function Ic(r){return typeof r=="string"?r.startsWith("<svg")?{svg:r}:{paths:[{data:r}]}:Array.isArray(r)?{paths:r.map(t=>typeof t=="string"?{data:t}:t)}:r}function pc(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Ec(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function Bc(){return{...pc(),...Ec(),...dc(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Cc(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function Qc(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function yc(){return{...Cc(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function Dc(){return{...Qc(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function mc(){return{...Dc(),...yc(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function nr(r){return li({...r,color:lt(r.color)?void 0:se(r.color),backgroundColor:lt(r.backgroundColor)?void 0:se(r.backgroundColor),borderColor:lt(r.borderColor)?void 0:se(r.borderColor),outlineColor:lt(r.outlineColor)?void 0:se(r.outlineColor),shadowColor:lt(r.shadowColor)?void 0:se(r.shadowColor)})}function po(){return{...Bc(),...mc()}}const Eo=/\r\n|\n\r|\n|\r/,wc=new RegExp(`${Eo.source}|<br\\/>`,"g"),vc=new RegExp(`^(${Eo.source})$`),or=`
|
|
2
|
+
`;function MA(r){return vc.test(r)}function ci(r){return r.replace(wc,or)}function _c(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(A=>r[A]===t[A])}function RA(r){const t=[];function e(){return t[t.length-1]}function A(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function i(o="",a={}){Array.from(o).forEach(l=>{if(MA(l)){const{fragments:u,...c}=e()||A();u.length||u.push({...a,content:or}),A(c)}else{const u=e()||A(),c=u.fragments[u.fragments.length-1];if(c){const{content:g,...f}=c;if(_c(a,f)){c.content=`${g}${l}`;return}}u.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")A(),i(o);else if("content"in o){const{content:a,...l}=o;A(nr(l)),i(a)}else if("fragments"in o){const{fragments:a,...l}=o;A(nr(l)),a.forEach(u=>{const{content:c,...g}=u;i(c,nr(g))})}else Array.isArray(o)?(A(),o.forEach(a=>{if(typeof a=="string")i(a);else{const{content:l,...u}=a;i(l,nr(u))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:or}),t}function bc(r){return typeof r=="string"?{content:RA(r)}:"content"in r?{...r,content:RA(r.content)}:{content:RA(r)}}function Bo(r){return RA(r).map(t=>{const e=ci(t.fragments.flatMap(A=>A.content).join(""));return MA(e)?"":e}).join(or)}const ar=new Map;function nt(r,t){return function(e){Object.defineProperty(e.prototype,"is",{value:r,enumerable:!0,configurable:!0}),t&&Object.keys(t).forEach(A=>{sr(e,A,{fallback:t[A]})}),ar.set(r,e)}}function xc(r="node",t={}){const e=ar.get(r);if(!e)throw new Error(`Failed to createNode, tag: ${r}`);return new e().setProperties(t)}class Kt{static _queue=[];static _currentTime=0;static _elapsed=0;static _requestId;static get currentTime(){return this._currentTime}static get elapsed(){return this._elapsed}static on(t,e={}){const{sort:A=0,once:i=!1}=e;this._queue[A]||(this._queue[A]=[]),this._queue[A].push({cb:t,once:i})}static off(t,e={}){const{sort:A=0}=e,i=this._queue[A];if(!i)return;const s=[];for(let n=i.length,o=0;o<n;o++){const a=i[o];a.cb!==t&&s.push(a)}s.length?this._queue[A]=s:this._queue.splice(A,1)}static start(){"requestAnimationFrame"in globalThis&&(this._currentTime=performance.now(),this._requestId=requestAnimationFrame(t=>this._update(t)))}static stop(){this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=void 0)}static _update(t){this._elapsed=t-this._currentTime,this._currentTime=t,this._requestId=requestAnimationFrame(e=>this._update(e)),this._performUpdate()}static _performUpdate(){const t=this._queue,e=[];for(let A=t.length,i=A;i>=0;i--){const s=t[i];if(!s)continue;const n=[];for(let o=s.length,a=0;a<o;a++){const l=s[a];try{l.cb()}catch(u){console.warn(u)}l.once||n.push(l)}n.length&&(e[i]=n)}this._queue=e}}Kt.start();async function Is(r){return new Promise(t=>{Kt.on(()=>{r?.(),t()},{sort:1,once:!0})})}const lr=Math.PI,oe=lr*2;let Fc=0;function Co(r){return r?.__SPECTOR_Object_TAG?.id??++Fc}function ps(r){return!(r&r-1)&&!!r}const Sc=/([\w-]+)\((.+?)\)/g,Mc=/[^,]+/g,Rc=/([-e.\d]+)(.*)/;function Es(r){return Array.isArray(r)?r.map(t=>({name:t.name,args:t.args.map(e=>({...e,normalizedIntValue:e.normalizedDefaultIntValue}))})):{...r,normalizedIntValue:r.normalizedDefaultIntValue}}function hi(r,t,e={}){const A=gi(t,e);return A.length?A:Qo(r,t,e)}function gi(r,t={}){const e=[];let A;for(;(A=Sc.exec(r))!==null;){const[,i,s]=A;i&&e.push({name:i,args:Pc(i,s,t)})}return e}function Pc(r,t,e={}){const A=[];let i,s=0;for(;(i=Mc.exec(t))!==null;)A.push(Qo(r,i[0],{...e,index:s++}));return A}function Qo(r,t,e={}){const{width:A=1,height:i=1,index:s=0}=e,n=t.match(Rc),o={unit:n?.[2]??null,value:t,intValue:Number(n?.[1]),normalizedIntValue:0,normalizedDefaultIntValue:0};switch(r){case"scale":case"scaleX":case"scaleY":case"scale3d":o.normalizedDefaultIntValue=1;break}switch(o.unit){case"%":o.normalizedIntValue=o.intValue/100;break;case"rad":o.normalizedIntValue=o.intValue/oe;break;case"deg":o.normalizedIntValue=o.intValue/360;break;case"px":switch(s){case 0:o.normalizedIntValue=o.intValue/A;break;case 1:o.normalizedIntValue=o.intValue/i;break}break;case"turn":case"em":case"rem":default:o.normalizedIntValue=o.intValue;break}return o}const yo="WebGL2RenderingContext"in globalThis,Do="ImageBitmap"in globalThis,mo="ResizeObserver"in globalThis,PA="PointerEvent"in globalThis,wo="WheelEvent"in globalThis,kc="MouseEvent"in globalThis,Oe="ontouchstart"in globalThis,vo="onclick"in globalThis,Bs="createImageBitmap"in globalThis,Cs="AudioContext"in globalThis,Qs="webkitAudioContext"in globalThis,ys="OfflineAudioContext"in globalThis,_o="webkitOfflineAudioContext"in globalThis,bo=Cs||Qs,fi=typeof window<"u",Ds=globalThis.devicePixelRatio||1,ms=r=>r!==null&&typeof r=="object"&&r.nodeType===1,xo=r=>ms(r)&&r.tagName==="VIDEO",Uc=r=>ms(r)&&r.tagName==="IMG";function Fo(r){return typeof r=="object"&&r!==null&&r.nodeType===1&&r.tagName==="CANVAS"}function So(r){return yo&&r instanceof globalThis.WebGL2RenderingContext}function Mo(){if(fi)return globalThis.document.createElement("canvas")}function Ro(r,t=globalThis.location){if(r.startsWith("data:"))return"";t=t||globalThis.location;const e=new URL(r,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}function Po(r,t,e){e===null&&!t.startsWith("data:")?r.crossOrigin=Ro(t):e!==!1&&(r.crossOrigin=typeof e=="string"?e:"anonymous")}class ws{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}}class ur{bubbles=!0;cancelable=!1;which;cancelBubble=!0;returnValue;srcElement;composed=!1;currentTarget;defaultPrevented=!1;eventPhase=ur.prototype.NONE;isTrusted;target;timeStamp;type;nativeEvent;originalEvent;propagationStopped=!1;propagationImmediatelyStopped=!1;path;detail;view;layer={x:0,y:0};get layerX(){return this.layer.x}get layerY(){return this.layer.y}page={x:0,y:0};get pageX(){return this.page.x}get pageY(){return this.page.y}initEvent(...t){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(...t){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}composedPath(){return this.path}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3}class vs extends ur{altKey;button;buttons;ctrlKey;metaKey;relatedTarget;shiftKey;client={x:0,y:0};get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}movement={x:0,y:0};get movementX(){return this.movement.x}get movementY(){return this.movement.y}offset={x:0,y:0};get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}global={x:0,y:0};get globalX(){return this.global.x}get globalY(){return this.global.y}screen={x:0,y:0};get screenX(){return this.screen.x}get screenY(){return this.screen.y}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(...t){throw new Error("Method not implemented.")}}class ko extends vs{width=0;height=0;isPrimary=!1;pointerType;pressure;tangentialPressure;tiltX;tiltY;twist;getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class Uo extends vs{deltaMode;deltaX;deltaY;deltaZ;static DOM_DELTA_PIXEL=0;DOM_DELTA_PIXEL=0;static DOM_DELTA_LINE=1;DOM_DELTA_LINE=1;static DOM_DELTA_PAGE=2;DOM_DELTA_PAGE=2}const Nc={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"};class No extends Ge{target;cursor="default";cursorStyles={default:"inherit",pointer:"pointer"};setuped=!1;event;enableMoveEvent=!0;enableWheelEvent=!0;enableClickEvent=!0;setTarget(t){this.removeEventListeners(),this.target=t,this.addEventListeners()}removeEventListeners(){if(!this.setuped||!this.target)return;const t=this.target.style;globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):PA&&(t.touchAction=""),PA?(this.target.removeEventListener("pointerdown",this.onPointerDown),this.target.removeEventListener("pointerleave",this.onPointerOver),this.target.removeEventListener("pointerover",this.onPointerOver),this.target.removeEventListener("pointermove",this.onPointerMove),this.target.removeEventListener("pointerup",this.onPointerUp)):(this.target.removeEventListener("mousedown",this.onPointerDown),this.target.removeEventListener("mouseout",this.onPointerOver),this.target.removeEventListener("mouseover",this.onPointerOver),this.target.removeEventListener("mousemove",this.onPointerMove),this.target.removeEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.removeEventListener("touchstart",this.onPointerDown),this.target.removeEventListener("touchmove",this.onPointerMove),this.target.removeEventListener("touchend",this.onPointerUp)),this.target.removeEventListener("wheel",this.onWheel),this.target=void 0,this.setuped=!1}addEventListeners(){if(this.setuped||!this.target)return;const t=this.target.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):PA&&(t.touchAction="none")),PA?(this.target.addEventListener("pointerdown",this.onPointerDown),this.target.addEventListener("pointerleave",this.onPointerOver),this.target.addEventListener("pointerover",this.onPointerOver),this.target.addEventListener("pointermove",this.onPointerMove),this.target.addEventListener("pointerup",this.onPointerUp)):(this.target.addEventListener("mousedown",this.onPointerDown),this.target.addEventListener("mouseout",this.onPointerOver),this.target.addEventListener("mouseover",this.onPointerOver),this.target.addEventListener("mousemove",this.onPointerMove),this.target.addEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.addEventListener("touchstart",this.onPointerDown),this.target.addEventListener("touchmove",this.onPointerMove),this.target.addEventListener("touchend",this.onPointerUp)),this.target.addEventListener("wheel",this.onWheel),this.setuped=!0}normalize(t){const e=[];if(Oe&&t instanceof globalThis.TouchEvent)for(let A=0,i=t.changedTouches.length;A<i;A++){const s=t.changedTouches[A];typeof s.button>"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.type=t.type,e.push(s)}else if(wo&&t instanceof globalThis.WheelEvent)e.push(t);else if(PA&&t instanceof globalThis.PointerEvent)e.push(t);else{const A=t;typeof A.isPrimary>"u"&&(A.isPrimary=!0),typeof A.width>"u"&&(A.width=1),typeof A.height>"u"&&(A.height=1),typeof A.tiltX>"u"&&(A.tiltX=0),typeof A.tiltY>"u"&&(A.tiltY=0),typeof A.pointerType>"u"&&(A.pointerType="mouse"),typeof A.pointerId>"u"&&(A.pointerId=1),typeof A.pressure>"u"&&(A.pressure=.5),typeof A.twist>"u"&&(A.twist=0),typeof A.tangentialPressure>"u"&&(A.tangentialPressure=0),e.push(A)}return e}cloneWheelEvent(t){const e=new Uo;return this.copyMouseEvent(e,t),e.wheelDeltaY=t.wheelDeltaY,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.nativeEvent=t,e.type=t.type,e}clonePointerEvent(t){const e=new ko;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,e.isTrusted=t.isTrusted,this.copyMouseEvent(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.type==="pointerleave"?e.type="pointerout":e.type.startsWith("mouse")?e.type=e.type.replace("mouse","pointer"):e.type.startsWith("touch")&&(e.type=Nc[e.type]||e.type),e}copyMouseEvent(t,e){t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t.isTrusted=e.isTrusted,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}setCursor(t){if(!this.target||(t=t||"default",this.cursor===t))return;this.cursor=t;const e=!(globalThis.OffscreenCanvas&&this.target instanceof OffscreenCanvas),A=this.cursorStyles[t];if(A)switch(typeof A){case"string":e&&(this.target.style.cursor=A);break;case"function":A(t);break;case"object":e&&Object.assign(this.target.style,A);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.target.style.cursor=t)}mapPositionToPoint(t,e,A){if(!this.target)return;const i=Number(this.target.getAttribute("width"))||0,s=Number(this.target.getAttribute("height"))||0,n=Number(this.target.getAttribute("data-pixel-ratio"))||1,o=this.target.isConnected?this.target.getBoundingClientRect():{width:i,height:s,left:0,top:0},a=1/n;t.x=(e-o.left)*(i/o.width)*a,t.y=(A-o.top)*(s/o.height)*a}onPointerDown=t=>{if(Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointerdown",this.event=this.clonePointerEvent(e[A]));this.setCursor(this.cursor)};onPointerOver=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointerover",this.event=this.clonePointerEvent(e[A]))};onPointerMove=t=>{if(!this.enableMoveEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("pointermove",this.event=this.clonePointerEvent(e[A]))};onPointerUp=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);const A=e!==this.target?"outside":"",i=this.normalize(t);for(let s=0,n=i.length;s<n;s++){const o=this.clonePointerEvent(i[s]);o.type+=A,this.emit("pointerup",this.event=o)}};onWheel=t=>{if(!this.enableWheelEvent)return;const e=this.normalize(t);for(let A=0,i=e.length;A<i;A++)this.emit("wheel",this.event=this.cloneWheelEvent(e[A]))}}let Tc=0;class tA extends Ge{instanceId=++Tc;_customPropertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;useCustomPropertyAccessor(t){return this._customPropertyAccessor=t,this.getPropertyDeclarations().forEach((e,A)=>{const i=t.get(A,()=>{}),s=this._properties.get(A);i===void 0?s!==void 0&&t.set(A,s):i!==s&&(e.alias&&e.alias!==A?this.setProperty(A,i):this._properties.set(A,i),this._updateProperty(A,i,s,e),this.emit("updateProperty",A,i,s,e))}),this}getter(t,e){return e?.declaration.protected?this[e.internalKey]:this._customPropertyAccessor?this._customPropertyAccessor.get(t,()=>this._properties.get(t)):this._properties.get(t)}setter(t,e,A){A?.declaration.protected?this[A.internalKey]=e:(this._customPropertyAccessor&&this._customPropertyAccessor.set(t,e),this._properties.set(t,e))}equal(t){return!!(t&&this.instanceId===t.instanceId)}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(t){Promise.reject(t)}await Is(),this._updating&&(this.update(),this._updating=!1)}update(){this._update(this._updatedProperties),this._updatedProperties=new Map}_update(t){}_updateProperty(t,e,A,i){}isDirty(t){return this._updatedProperties.has(t)}getPropertyDeclarations(){return ds(this.constructor)}getPropertyDeclaration(t){return this.getPropertyDeclarations().get(t)}getProperty(t){return this[t]}setProperty(t,e){return this[t]=e,this}getProperties(t){const e={};for(const[A,i]of this.getPropertyDeclarations())!i.protected&&!i.alias&&(!t||t.includes(A))&&(e[A]=this.getProperty(A));return e}setProperties(t){if(t&&typeof t=="object")for(const[e]of this.getPropertyDeclarations())e in t&&this.setProperty(e,t[e]);return this}resetProperties(){for(const[t,e]of this.getPropertyDeclarations())this.setProperty(t,typeof e.fallback=="function"?e.fallback():e.fallback);return this}onUpdateProperty(t,e,A,i){this.requestUpdate(t,e,A,i)}requestUpdate(t,e,A,i){if(t!==void 0)if(!Object.is(e,A))this._updatedProperties.set(t,A),this._changedProperties.add(t),i??=this.getPropertyDeclaration(t),this._updateProperty(t,e,A,i),this.emit("updateProperty",t,e,A,i);else return;this._updating||(this._updatingPromise=this._enqueueUpdate())}toJSON(){const t={};return this._properties.forEach((e,A)=>{e!==void 0&&(e&&typeof e=="object"?"toJSON"in e&&typeof e.toJSON=="function"?t[A]=e.toJSON():t[A]={...e}:t[A]=e)}),t}clone(){return new this.constructor(this.toJSON())}free(){this.removeAllListeners()}}class To extends tA{}class He extends To{}function Lc(r,t){var e={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"},A={};for(var i in e)A[e[i]]=i;var s={};r.prototype.toName=function(n){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var o,a,l=A[this.toHex()];if(l)return l;if(n?.closest){var u=this.toRgb(),c=1/0,g="black";if(!s.length)for(var f in e)s[f]=new r(e[f]).toRgb();for(var d in e){var B=(o=u,a=s[d],Math.pow(o.r-a.r,2)+Math.pow(o.g-a.g,2)+Math.pow(o.b-a.b,2));B<c&&(c=B,g=d)}return g}},t.string.push([function(n){var o=n.toLowerCase(),a=o==="transparent"?"#0000":e[o];return a?new r(a).toRgb():null},"name"])}Ou([Lc]);class Je{get value(){return this._value}set value(t){this._colord=gs(t??"none")}get r8(){return this._colord.rgba.r}get g8(){return this._colord.rgba.g}get b8(){return this._colord.rgba.b}get a8(){return this._colord.rgba.a*255&255}get r(){return this.r8/255}get g(){return this.g8/255}get b(){return this.b8/255}get a(){return this._colord.rgba.a}get rgb(){return(this.r8<<16)+(this.g8<<8)+this.b8}get bgr(){return(this.b8<<16)+(this.g8<<8)+this.r8}get abgr(){return(this.a8<<24)+this.bgr}constructor(t=0){this.value=t}toHex(){return this._colord.toHex()}toRgb(){return this._colord.toRgb()}toRgbString(){return this._colord.toRgbString()}toHsl(){return this._colord.toHsl()}toHslString(){return this._colord.toHslString()}toHsv(){return this._colord.toHsv()}toArgb(t=this.a,e=!0){if(t===1)return(255<<24)+this.rgb;if(t===0)return e?0:this.rgb;let A=this.r8,i=this.g8,s=this.b8;return e&&(A=A*t+.5|0,i=i*t+.5|0,s=s*t+.5|0),(t*255<<24)+(A<<16)+(i<<8)+s}toArray(){return[this.r,this.g,this.b,this.a]}}class Ee extends Ge{constructor(t){super(),this.dim=t}_array=[];get length(){return this.dim}_operate(t,e,A){const{dim:i,_array:s}=this;let n;typeof e=="number"?n=Array.from({length:i},()=>e):e instanceof ve||e instanceof Ee?n=e.toArray():n=e;let o,a=[];if(A?A instanceof Ee?o=A:a=A:o=this,e instanceof ve){const{cols:l}=e;switch(t){case"*":for(let u=0;u<i;u++){let c=0;for(let g=0;g<i;g++)c+=s[u]*n[g*l+u];a[u]=c}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"+":for(let l=0;l<i;l++)a[l]=s[l]+n[l];break;case"-":for(let l=0;l<i;l++)a[l]=s[l]-n[l];break;case"*":for(let l=0;l<i;l++)a[l]=s[l]*n[l];break;case"/":for(let l=0;l<i;l++)a[l]=s[l]/n[l];break;case"rot":{const l=Math.cos(n[0]),u=Math.sin(n[0]);a[0]=s[0]*l-s[1]*u,a[1]=s[1]*l+s[0]*u;break}case"==":{let l=!0;for(let u=0;u<i;u++)l=l&&s[u]===n[u];return l}case"=":for(let l=0;l<i;l++){const u=n[l];u!==void 0&&(s[l]=u)}return this._onUpdate(s),this.emit("update",s),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Vector'`)}return o?.set(a)??a}add(t,e){return this._operate("+",t,e)}sub(t,e){return this._operate("-",t,e)}multiply(t,e){return this._operate("*",t,e)}divide(t,e){return this._operate("/",t,e)}rotate(t){return this._operate("rot",t)}set(t,...e){return e.length&&typeof t=="number"&&(t=[t,...e]),this._operate("=",t)}equals(t){return this._operate("==",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}_onUpdate(t){}toArray(){return this._array.slice()}toName(){return`Vector${this.dim}`}}class ve extends Ge{constructor(t,e,A){super(),this.rows=t,this.cols=e,A?this.set(A):this.identity()}_array=[];dirtyId=0;get length(){return this.cols*this.rows}_operate(t,e,A){const{cols:i,rows:s,length:n,_array:o}=this;let a;typeof e=="number"?a=Array.from({length:n},()=>e):e instanceof Ee||e instanceof ve?a=e.toArray():a=e;let l,u=[];if(A?A instanceof Ee||A instanceof ve?l=A:u=A:e instanceof Ee?l=new e.constructor:l=this,e instanceof Ee){const{dim:c}=e;switch(t){case"*":for(let g=0;g<c;g++){let f=0;for(let d=0;d<i;d++)d<c&&(f+=o[g*i+d]*(a[d]??0));u[g]=f}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"*":for(let c=0;c<i;c++)for(let g=0;g<s;g++){const f=g*i;let d=0;for(let B=0;B<s;B++){const I=f+B,F=B*i+c;d+=o[I]*(a[F]??0)}u[f+c]=d}break;case"=":for(let c=0;c<n;c++){const g=a[c];g!==void 0&&(o[c]=g)}return this._onUpdate(o),this.emit("update",o),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Matrix2'`)}return l?.set(u)??u}identity(){const{cols:t,rows:e}=this,A=[];for(let i=0;i<t;i++)for(let s=0;s<e;s++){const n=s*t,o=i+n;A[o]=s+n===o?1:0}return this.set(A)}set(t){return this._operate("=",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}multiply(t,e){return this._operate("*",t,e)}_onUpdate(t){this.dirtyId++}toArray(t=!1){const{cols:e,rows:A,_array:i}=this;if(t){const s=[];for(let n=0;n<A;n++)for(let o=0;o<e;o++)s[n+o*e]=i[o+n*e];return s}return i.slice()}toName(){return`Matrix${this.rows}(${this.rows}x${this.cols})`}toJSON(){return this._array}}class Lo extends ve{constructor(t){super(4,4,t)}}const Go=lr/180,Gc=180/lr;function Ke(r,t,e){return Math.max(r,Math.min(t,e))}function bt(r,t,e){return(1-e)*r+e*t}const Oc={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,t=20){if(!this.adaptive||!r||Number.isNaN(r))return t;let e=Math.ceil(r/this.maxLength);return e<this.minSegments?e=this.minSegments:e>this.maxSegments&&(e=this.maxSegments),e}};class Oo extends Ee{constructor(t=0,e=0,A=0,i=0){super(4),this.set([t,e,A,i])}}class _s extends ve{constructor(t){super(4,5,t)}hueRotate(t=0){const e=Math.sin(t),A=Math.cos(t),i=.213,s=.715,n=.072;return this.multiply([i+A*(1-i)+e*-i,s+A*-s+e*-s,n+A*-n+e*(1-n),0,0,i+A*-i+e*.143,s+A*(1-s)+e*.14,n+A*-n+e*-.283,0,0,i+A*-i+e*-.787,s+A*-s+e*s,n+A*(1-n)+e*n,0,0,0,0,0,1,0])}saturate(t=1){const e=(t-1)*2/3+1,A=(e-1)*-.5;return this.multiply([e,A,A,0,0,A,e,A,0,0,A,A,e,0,0,0,0,0,1,0])}brightness(t=1){const e=t;return this.multiply([e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0])}contrast(t=1){const e=t,A=-128*(e-1);return this.multiply([e,0,0,0,A,0,e,0,0,A,0,0,e,0,A,0,0,0,1,0])}invert(t=1){const e=bt(1,-1,t),A=bt(0,255,t);return this.multiply([e,0,0,0,A,0,e,0,0,A,0,0,e,0,A,0,0,0,1,0])}sepia(t=1){const e=Ke(0,t,1);return this.multiply([bt(1,.393,e),bt(0,.7689999,e),bt(0,.18899999,e),0,0,bt(0,.349,e),bt(1,.6859999,e),bt(0,.16799999,e),0,0,bt(0,.272,e),bt(0,.5339999,e),bt(1,.13099999,e),0,0,0,0,0,1,0])}opacity(t=1){return this.multiply([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,t,0])}grayscale(t=1){const e=Ke(0,t,1),A=bt(1,.3,e),i=bt(0,.3,e),s=bt(1,.59,e),n=bt(0,.59,e),o=bt(1,.11,e),a=bt(0,.11,e);return this.multiply([A,n,a,0,0,i,s,a,0,0,i,n,o,0,0,0,0,0,1,0])}multiply(t){const e=t,A=this._array;return this.set([A[0]*e[0]+A[1]*e[5]+A[2]*e[10]+A[3]*e[15],A[0]*e[1]+A[1]*e[6]+A[2]*e[11]+A[3]*e[16],A[0]*e[2]+A[1]*e[7]+A[2]*e[12]+A[3]*e[17],A[0]*e[3]+A[1]*e[8]+A[2]*e[13]+A[3]*e[18],A[0]*e[4]+A[1]*e[9]+A[2]*e[14]+A[3]*e[19]+A[4],A[5]*e[0]+A[6]*e[5]+A[7]*e[10]+A[8]*e[15],A[5]*e[1]+A[6]*e[6]+A[7]*e[11]+A[8]*e[16],A[5]*e[2]+A[6]*e[7]+A[7]*e[12]+A[8]*e[17],A[5]*e[3]+A[6]*e[8]+A[7]*e[13]+A[8]*e[18],A[5]*e[4]+A[6]*e[9]+A[7]*e[14]+A[8]*e[19]+A[9],A[10]*e[0]+A[11]*e[5]+A[12]*e[10]+A[13]*e[15],A[10]*e[1]+A[11]*e[6]+A[12]*e[11]+A[13]*e[16],A[10]*e[2]+A[11]*e[7]+A[12]*e[12]+A[13]*e[17],A[10]*e[3]+A[11]*e[8]+A[12]*e[13]+A[13]*e[18],A[10]*e[4]+A[11]*e[9]+A[12]*e[14]+A[13]*e[19]+A[14],A[15]*e[0]+A[16]*e[5]+A[17]*e[10]+A[18]*e[15],A[15]*e[1]+A[16]*e[6]+A[17]*e[11]+A[18]*e[16],A[15]*e[2]+A[16]*e[7]+A[17]*e[12]+A[18]*e[17],A[15]*e[3]+A[16]*e[8]+A[17]*e[13]+A[18]*e[18],A[15]*e[4]+A[16]*e[9]+A[17]*e[14]+A[18]*e[19]+A[19]])}toMatrix4(){const t=this._array;return new Lo([t[0],t[1],t[2],t[3],t[5],t[6],t[7],t[8],t[10],t[11],t[12],t[13],t[15],t[16],t[17],t[18]])}toVector4(){const t=this._array;return new Oo(t[4]/255,t[9]/255,t[14]/255,t[19]/255)}}class Hc extends ve{constructor(t){super(2,2,t)}}let bs=class extends ve{constructor(t){super(3,3,t)}invert(){const[t,e,A,i,s,n,o,a,l]=this._array,u=l*s-n*a,c=n*o-l*i,g=a*i-s*o,f=t*u+e*c+A*g;if(f===0)return this.set([0,0,0,0,0,0,0,0,0]);const d=1/f;return this.set([u*d,(A*a-l*e)*d,(n*e-A*s)*d,c*d,(l*t-A*o)*d,(A*i-n*t)*d,g*d,(e*o-a*t)*d,(s*t-e*i)*d])}};class Ho extends bs{constructor(t=0,e=0,A=0,i=0,s=!1){super(),this._x=t,this._y=e,this._width=A,this._height=i,this._flipY=s,this._performUpdateArray()}flipY(t){return this._flipY!==t&&(this._flipY=t,this._performUpdateArray()),this}translate(t,e){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._performUpdateArray()),this}resize(t,e){return(this._width!==t||this._height!==e)&&(this._width=t,this._height=e,this._performUpdateArray()),this}_performUpdateArray(){const t=this._width,e=this._height;if(!t||!e)return;const A=this._x,i=this._y,s=this._flipY?-1:1,n=1/t*2,o=s*(1/e*2),a=-1-A*n,l=-s-i*o;this.set([n,0,a,0,o,l,0,0,1])}}let ae=class ns extends Ee{get x(){return this._array[0]}set x(t){const[e,A]=this._array;e!==t&&this.set(t,A)}get y(){return this._array[1]}set y(t){const[e,A]=this._array;A!==t&&this.set(e,t)}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}get left(){return this.x}set left(t){this.x=t}get top(){return this.y}set top(t){this.y=t}constructor(t=0,e){super(2),this.set(typeof t=="number"?[t,e??t]:t)}update(t,e){const[A,i]=this._array;return(A!==t||i!==e)&&this.set(t,e),this}getLength(){const[t,e]=this._array;return Math.sqrt(t*t+e*e)}getAngle(){const[t,e]=this._array;return Math.atan2(-t,-e)+Math.PI}distanceTo(t){return Math.hypot(t.x-this.x,t.y-this.y)}normalize(){const[t,e]=this._array,A=1/(this.getLength()||1);return this.set(t*A,e*A),this}static lerp(t,e,A){return new ns(e).clone().sub(new ns(t)).multiply(A).add(new ns(t))}};class xs{get x(){return this.position.x}get y(){return this.position.y}get left(){return this.position.x}get top(){return this.position.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get width(){return this.size.x}get height(){return this.size.y}end=new ae;position;size;constructor(...t){const e=new ae,A=new ae;switch(t.length){case 0:break;case 1:e.set(t[0].position),A.set(t[0].size);break;case 2:e.set(t[0]),A.set(t[1]);break;default:e.set(t[0],t[1]),A.set(t[2],t[3]);break}this.update=this.update.bind(this),this.position=e.on("update",this.update),this.size=A.on("update",this.update),this.update()}update(){return this.end.set(this.position.x+this.size.x,this.position.y+this.size.y),this}toArray(){return[this.x,this.y,this.width,this.height]}}class Yt extends bs{static _t2d=new Yt;premultiply(t){return t.multiply(this,this)}skewX(t){return this.skew(t,0)}skewY(t){return this.skew(0,t)}skew(t,e){return this.premultiply(Yt._t2d.makeSkew(t,e))}makeSkew(t,e){const A=Math.tan(t),i=Math.tan(e);return this.set([1,i,0,A,1,0,0,0,1]),this}translateX(t){return this.translate(t,0)}translateY(t){return this.translate(0,t)}translateZ(t){return this.translate(0,0,t)}translate3d(t,e,A){return this.translate(t,e,A)}translate(t,e,A=0){return this.premultiply(Yt._t2d.makeTranslation(t,e,A))}makeTranslation(t,e,A=0){return this.set([1,0,t,0,1,e,0,0,1]),this}scaleX(t){return this.scale(t,1)}scaleY(t){return this.scale(1,t)}scale3d(t,e,A=1){return this.scale(t,e,A)}scale(t,e,A=1){return this.premultiply(Yt._t2d.makeScale(t,e,A))}makeScale(t,e,A=1){return this.set([t,0,0,0,e,0,0,0,1]),this}rotateX(t){return this.scaleY(this._rotateToScale(t))}rotateY(t){return this.scaleX(this._rotateToScale(t))}rotateZ(t){return this.rotate(t)}rotate(t){return this.premultiply(Yt._t2d.makeRotation(t))}rotate3d(t,e,A,i){const[s,n,o]=this._rotate3d(t,e,A,i);return s&&this.rotateX(s),n&&this.rotateY(n),o&&this.rotateZ(o),this}_rotateToScale(t){const e=t/oe;return e<=.5?e*-4+1:(e-1)*4+1}_rotate3d(t,e,A,i){if(t===1&&e===0&&A===0)return[i,0,0];if(t===0&&e===1&&A===0)return[0,i,0];if(t===0&&e===0)return[0,0,i];{const s=Math.cos(i),n=Math.sin(i),o=s+t*t*(1-s),a=t*e*(1-s)-A*n,l=t*A*(1-s)+e*n,u=s+e*e*(1-s),c=e*A*(1-s)-t*n,g=s+A*A*(1-s),f=-Math.atan2(-c,u),d=-Math.atan2(l,Math.sqrt(c*c+g*g)),B=-Math.atan2(-a,o);return[f,d,B]}}makeRotation(t){const e=Math.cos(t),A=Math.sin(t);return this.set([e,-A,0,A,e,0,0,0,1]),this}applyToPoint(t,e){const{a:A,c:i,tx:s,b:n,d:o,ty:a}=this.toObject();return[A*t+i*e+s,n*t+o*e+a]}inverse(){return this.clone().invert()}isIdentity(){const{a:t,b:e,c:A,d:i,tx:s,ty:n}=this.toObject();return t===1&&e===0&&A===0&&i===1&&s===0&&n===0}toObject(){const[t,e,A,i,s,n,,,o]=this._array;return{a:t,c:e,tx:A,b:i,d:s,ty:n,tz:o}}}class Jc extends Ee{constructor(){super(3)}}var Kc=Object.defineProperty,Jo=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Kc(t,e,i),i};class cr extends tA{_starting=!1;_nextDeltaTime=0;get starting(){return this._starting}get spf(){return this.fps?Math.floor(1e3/this.fps):0}constructor(){super(),this._onNextTick=this._onNextTick.bind(this)}start(t){this._starting||(this._starting=!0,this.off("process"),this.on("process",t),Kt.on(this._onNextTick,{sort:0}))}stop(){this._starting&&(this._starting=!1,Kt.off(this._onNextTick,{sort:0}))}_onNextTick(){const t=Kt.elapsed*this.speed;if((this._nextDeltaTime-=t)<=0){const A=(this._nextDeltaTime=this.spf)||t;this.emit("process",A)}}free(){super.free(),this.stop()}}Jo([w({fallback:24})],cr.prototype,"fps"),Jo([w({fallback:1})],cr.prototype,"speed");class Ko{view;pixelRatio=Ds;screen={x:0,y:0,width:0,height:0};related=new ws;getRelated(t,e){let A=this.related.get(t);return A||(e?(this.related.set(t,A=e()),A):(console.warn("Failed to get related",t),null))}resize(t,e,A=!0){this.view&&(this.view.width=Math.floor(t*this.pixelRatio),this.view.height=Math.floor(e*this.pixelRatio)),this.screen.width=t,this.screen.height=e,A&&this.view&&(this.view.style.width=`${t}px`,this.view.style.height=`${e}px`)}}var kA=(r=>(r.NORMAL="normal",r.ADD="add",r.MULTIPLY="multiply",r.SCREEN="screen",r.NONE="none",r.NORMAL_NPM="normal_npm",r.ADD_NPM="add_npm",r.SCREEN_NPM="screen_npm",r.SRC_IN="src_in",r.SRC_OUT="src_out",r.SRC_ATOP="src_atop",r.DST_OVER="dst_over",r.DST_IN="dst_in",r.DST_OUT="dst_out",r.DST_ATOP="dst_atop",r.XOR="xor",r.SUBTRACT="subtract",r))(kA||{});function Yo(r){return{normal:[r.ONE,r.ONE_MINUS_SRC_ALPHA],add:[r.ONE,r.ONE],multiply:[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],screen:[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],none:[0,0],normal_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],add_npm:[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],screen_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],src_in:[r.DST_ALPHA,r.ZERO],src_out:[r.ONE_MINUS_DST_ALPHA,r.ZERO],src_atop:[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],dst_over:[r.ONE_MINUS_DST_ALPHA,r.ONE],dst_in:[r.ZERO,r.SRC_ALPHA],dst_out:[r.ZERO,r.ONE_MINUS_SRC_ALPHA],dst_atop:[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],xor:[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],subtract:[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD]}}class de{get gl(){return this._renderer.gl}install(t){this._renderer=t}onUpdateContext(){}flush(){}reset(){}free(){}}class BA{static _properties=["blend","offsets","culling","depthTest","clockwiseFrontFace","depthMask"];static _init(){this._properties.forEach((t,e)=>{Object.defineProperty(this.prototype,t,{get(){return!!(this.bitmap&1<<e)},set(A){!!(this.bitmap&1<<e)!==A&&(this.bitmap^=1<<e)},enumerable:!0,configurable:!0})})}static for2D(){const t=new BA;return t.depthTest=!1,t.blend=!0,t}_blendMode=kA.NORMAL;_polygonOffset=0;bitmap=0;get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!==kA.NONE,this._blendMode=t}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}constructor(t){if(t)for(const e in t)this[e]=t[e]}}BA._init();class Vo extends de{install(t){super.install(t),t.state=this}_blendEq=!1;_setters=BA._properties.map(t=>this[`set${t.replace(/^\S/,e=>e.toUpperCase())}`]);boundStateBitmap=0;boundBlendMode;blendModes;defaultState=new BA({blend:!0});onUpdateContext(){super.onUpdateContext(),this.blendModes=Yo(this._renderer.gl)}toggle(t,e){this._renderer.gl[e?"enable":"disable"](t)}setBlend(t){this.toggle(this._renderer.gl.BLEND,t)}setOffsets(t){this.toggle(this._renderer.gl.POLYGON_OFFSET_FILL,t)}setCulling(t){this.toggle(this._renderer.gl.CULL_FACE,t)}setDepthTest(t){this.toggle(this._renderer.gl.DEPTH_TEST,t)}setDepthMask(t){this._renderer.gl.depthMask(t)}setClockwiseFrontFace(t){const e=this._renderer.gl;e.frontFace(e[t?"CW":"CCW"])}setBlendMode(t){if(t===this.boundBlendMode)return;this.boundBlendMode=t;const e=this.blendModes[t],A=this._renderer.gl;e.length===2?A.blendFunc(e[0],e[1]):A.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,A.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,A.blendEquationSeparate(A.FUNC_ADD,A.FUNC_ADD))}setPolygonOffset(t,e){this._renderer.gl.polygonOffset(t,e)}bind(t){if(this.boundStateBitmap!==t.bitmap){let e=this.boundStateBitmap^t.bitmap,A=0;for(;e;)e&1&&this._setters[A]?.call(this,!!(t.bitmap&1<<A)),e=e>>1,A++;this.boundStateBitmap=t.bitmap}t.blend&&this.setBlendMode(t.blendMode),t.offsets&&this.setPolygonOffset(1,t.polygonOffset)}reset(){super.reset();const t=this._renderer.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),this.bind(this.defaultState),this._blendEq=!0,this.setBlendMode(kA.NORMAL)}}class zo extends de{install(t){super.install(t),t.batch2D=this}_state=BA.for2D();_batchSize=4096*4;_drawCallUid=0;_defaultModulate=4294967295;_defaultBackgroundColor=0;_defaultColorMatrixOffset=[0,0,0,0];_defaultColorMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];_batchables=[];_vertexCount=0;_indexCount=0;_attributeBuffer=[];_indexBuffers=[];_shaders=new Map;_attributes={aTextureId:{size:1,normalized:!0,type:"float"},aPosition:{size:2,normalized:!1,type:"float"},aUv:{size:2,normalized:!1,type:"float"},aModulate:{size:4,normalized:!0,type:"unsigned_byte"},aBackgroundColor:{size:4,normalized:!0,type:"unsigned_byte"},aDisableWrapMode:{size:4,normalized:!0,type:"float"},aColorMatrixOffset:{size:4,normalized:!1,type:"float"},aColorMatrix:{size:4,normalized:!1,type:"float"}};_vertexSize=31;_getShader(t){let e=this._shaders.get(t);return e||this._shaders.set(t,e=this._createShader(t)),e}_createShader(t){const e=this._renderer,A=e.program.create({vert:`precision highp float;
|
|
3
3
|
attribute float aTextureId;
|
|
4
4
|
attribute vec2 aPosition;
|
|
5
5
|
attribute vec2 aUv;
|
|
@@ -855,7 +855,7 @@ void main() {
|
|
|
855
855
|
color /= total;
|
|
856
856
|
|
|
857
857
|
gl_FragColor = color;
|
|
858
|
-
}`})),Si([w()],h.ZoomBlurEffect.prototype,"center",2),Si([w()],h.ZoomBlurEffect.prototype,"innerRadius",2),Si([w()],h.ZoomBlurEffect.prototype,"radius",2),Si([w()],h.ZoomBlurEffect.prototype,"strength",2),h.ZoomBlurEffect=Si([nt("ZoomBlurEffect")],h.ZoomBlurEffect);var Ff=Object.defineProperty,Be=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Ff(t,e,i),i};class Vt extends tA{constructor(t){super(),this.parent=t}_texture;_setProperties(t){return super.setProperties(t)}setProperties(t){return this._setProperties(lt(t)?void 0:EA(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"color":case"cropRect":case"stretchRect":case"dpi":case"rotateWithShape":case"tile":case"opacity":case"enabled":this.parent.requestRedraw();break;case"image":case"linearGradient":case"radialGradient":this._updateTexture();break}}async loadTexture(){return this.linearGradient||this.radialGradient?new fr(this.linearGradient??this.radialGradient,this.parent.size.width,this.parent.size.height):lt(this.image)?void 0:(this.parent.tree?.log(`load image ${this.image}`),await Ue.texture.load(this.image))}async _updateTexture(){this._texture=await this.loadTexture(),this.parent.requestRedraw()}canDraw(){return!!(this.enabled&&(this._texture||this.color))}_getDrawOptions(){let t=!1;const{width:e,height:A}=this.parent.size,i=new Yt().scale(1/e,1/A);if(this.cropRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.cropRect;i.scale(Math.abs(1-(s+o)),Math.abs(1-(n+a))).translate(s,n),t=!0}if(this.tile){const{translateX:s=0,translateY:n=0,scaleX:o=1,scaleY:a=1}=this.tile;i.translate(-s/e,-n/A).scale(1/o,1/a),t=!0}else if(this.stretchRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.stretchRect;i.scale(Math.abs(1-(-s+-o)),Math.abs(1-(-n+-a))).translate(-s,-n),t=!0}return{disableWrapMode:t,uvTransform:i}}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:A}=this._getDrawOptions();t.uvTransform=e,t.fillStyle=this._texture??this.color,t.fill({disableWrapMode:A})}}Be([w({fallback:!0})],Vt.prototype,"enabled"),Be([w()],Vt.prototype,"color"),Be([w()],Vt.prototype,"image"),Be([w()],Vt.prototype,"linearGradient"),Be([w()],Vt.prototype,"radialGradient"),Be([w()],Vt.prototype,"cropRect"),Be([w()],Vt.prototype,"stretchRect"),Be([w()],Vt.prototype,"dpi"),Be([w()],Vt.prototype,"rotateWithShape"),Be([w()],Vt.prototype,"tile"),Be([w()],Vt.prototype,"opacity");var Sf=Object.defineProperty,Mf=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Sf(t,e,i),i};class $s extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:uc(t))}}Mf([w()],$s.prototype,"fillWithShape");var Rf=Object.defineProperty,Pf=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Rf(t,e,i),i};class tn extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:hc(t))}}Pf([w()],tn.prototype,"fillWithShape");var kf=Object.defineProperty,en=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&kf(t,e,i),i};class Mi extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:gc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"width":case"style":case"enabled":this.parent.requestRedraw();break}}canDraw(){return!!(this.enabled&&(this.width||this.color||super.canDraw()))}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:A}=this._getDrawOptions();t.lineWidth=this.width||1,t.uvTransform=e,t.strokeStyle=this._texture??this.color,t.stroke({disableWrapMode:A})}}en([w({fallback:"#00000000"})],Mi.prototype,"color"),en([w({fallback:0})],Mi.prototype,"width"),en([w({fallback:"solid"})],Mi.prototype,"style");var Uf=Object.defineProperty,Ri=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Uf(t,e,i),i};class DA extends tA{constructor(t){super(),this.parent=t}setProperties(t){return super.setProperties(lt(t)?void 0:fc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"color":case"blur":case"offsetX":case"offsetY":this.updateEffect();break}}updateEffect(){const t="__$shadow";let e=this.parent.getNode(t);this.blur||this.offsetX||this.offsetY?(e||(e=new h.DropShadowEffect({name:t}),this.parent.appendChild(e,"back")),e.setProperties(this.getProperties())):e&&this.parent.removeChild(e)}}Ri([w({fallback:!0})],DA.prototype,"enabled"),Ri([w({fallback:"#000000FF"})],DA.prototype,"color"),Ri([w({fallback:0})],DA.prototype,"blur"),Ri([w({fallback:0})],DA.prototype,"offsetY"),Ri([w({fallback:0})],DA.prototype,"offsetX");var Nf=Object.defineProperty,Pi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Nf(t,e,i),i};class mA extends tA{constructor(t){super(),this.parent=t,this._updatePath2DSet()}_path2DSet=new iA;setProperties(t){return super.setProperties(lt(t)?void 0:Ic(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"svg":case"paths":case"viewBox":case"enabled":this._updatePath2DSet(),this.parent.requestRedraw();break}}_updatePath2DSet(){let t;if(this.svg){const n=Hs(this.svg);this._path2DSet=Ks(n),t=this._path2DSet.viewBox}else this.paths?.forEach((n,o)=>{const{data:a,...l}=n,u=new Mt;u.style=l,u.addData(a),this._path2DSet.paths[o]=u});if(!t){const n=this._path2DSet.getBoundingBox();t=n?[n.x,n.y,n.width,n.height]:[0,0,1,1]}const[e,A,i,s]=t;this._path2DSet.paths.forEach(n=>{n.applyTransform(new Lt().translate(-e,-A).scale(1/i,1/s))})}draw(){if(this.enabled&&this._path2DSet.paths.length){const t=this.parent.context,{width:e,height:A}=this.parent.size;this._path2DSet.paths.forEach(i=>{t.addPath(i.clone().applyTransform(new Lt().scale(e,A)))})}else this.drawRect()}drawRect(){const t=this.parent.context,{width:e,height:A}=this.parent.size,{borderRadius:i}=this.parent.style;e&&A&&(i?t.roundRect(0,0,e,A,i):t.rect(0,0,e,A))}}Pi([w({fallback:!0})],mA.prototype,"enabled"),Pi([w()],mA.prototype,"preset"),Pi([w()],mA.prototype,"svg"),Pi([w()],mA.prototype,"viewBox"),Pi([w()],mA.prototype,"paths");class ki extends He{constructor(t){super(),this.setProperties(t)}}const cl=po();for(const r in cl){const t=cl[r];sr(ki.prototype,r,{fallback:t})}var zt=Uint8Array,ue=Uint16Array,An=Int32Array,yr=new zt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Dr=new zt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),rn=new zt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hl=function(r,t){for(var e=new ue(31),A=0;A<31;++A)e[A]=t+=1<<r[A-1];for(var i=new An(e[30]),A=1;A<30;++A)for(var s=e[A];s<e[A+1];++s)i[s]=s-e[A]<<5|A;return{b:e,r:i}},gl=hl(yr,2),fl=gl.b,sn=gl.r;fl[28]=258,sn[258]=28;for(var dl=hl(Dr,0),Tf=dl.b,Il=dl.r,nn=new ue(32768),Et=0;Et<32768;++Et){var nA=(Et&43690)>>1|(Et&21845)<<1;nA=(nA&52428)>>2|(nA&13107)<<2,nA=(nA&61680)>>4|(nA&3855)<<4,nn[Et]=((nA&65280)>>8|(nA&255)<<8)>>1}for(var Fe=function(r,t,e){for(var A=r.length,i=0,s=new ue(t);i<A;++i)r[i]&&++s[r[i]-1];var n=new ue(t);for(i=1;i<t;++i)n[i]=n[i-1]+s[i-1]<<1;var o;if(e){o=new ue(1<<t);var a=15-t;for(i=0;i<A;++i)if(r[i])for(var l=i<<4|r[i],u=t-r[i],c=n[r[i]-1]++<<u,g=c|(1<<u)-1;c<=g;++c)o[nn[c]>>a]=l}else for(o=new ue(A),i=0;i<A;++i)r[i]&&(o[i]=nn[n[r[i]-1]++]>>15-r[i]);return o},oA=new zt(288),Et=0;Et<144;++Et)oA[Et]=8;for(var Et=144;Et<256;++Et)oA[Et]=9;for(var Et=256;Et<280;++Et)oA[Et]=7;for(var Et=280;Et<288;++Et)oA[Et]=8;for(var Ui=new zt(32),Et=0;Et<32;++Et)Ui[Et]=5;var Lf=Fe(oA,9,0),Gf=Fe(oA,9,1),Of=Fe(Ui,5,0),Hf=Fe(Ui,5,1),on=function(r){for(var t=r[0],e=1;e<r.length;++e)r[e]>t&&(t=r[e]);return t},Ce=function(r,t,e){var A=t/8|0;return(r[A]|r[A+1]<<8)>>(t&7)&e},an=function(r,t){var e=t/8|0;return(r[e]|r[e+1]<<8|r[e+2]<<16)>>(t&7)},ln=function(r){return(r+7)/8|0},pl=function(r,t,e){return(e==null||e>r.length)&&(e=r.length),new zt(r.subarray(t,e))},Jf=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Qe=function(r,t,e){var A=new Error(t||Jf[r]);if(A.code=r,Error.captureStackTrace&&Error.captureStackTrace(A,Qe),!e)throw A;return A},Kf=function(r,t,e,A){var i=r.length,s=0;if(!i||t.f&&!t.l)return e||new zt(0);var n=!e,o=n||t.i!=2,a=t.i;n&&(e=new zt(i*3));var l=function(Nt){var ct=e.length;if(Nt>ct){var yt=new zt(Math.max(ct*2,Nt));yt.set(e),e=yt}},u=t.f||0,c=t.p||0,g=t.b||0,f=t.l,d=t.d,B=t.m,I=t.n,F=i*8;do{if(!f){u=Ce(r,c,1);var b=Ce(r,c+1,3);if(c+=3,b)if(b==1)f=Gf,d=Hf,B=9,I=5;else if(b==2){var D=Ce(r,c,31)+257,S=Ce(r,c+10,15)+4,M=D+Ce(r,c+5,31)+1;c+=14;for(var V=new zt(M),et=new zt(19),z=0;z<S;++z)et[rn[z]]=Ce(r,c+z*3,7);c+=S*3;for(var J=on(et),$=(1<<J)-1,K=Fe(et,J,1),z=0;z<M;){var L=K[Ce(r,c,$)];c+=L&15;var y=L>>4;if(y<16)V[z++]=y;else{var it=0,G=0;for(y==16?(G=3+Ce(r,c,3),c+=2,it=V[z-1]):y==17?(G=3+Ce(r,c,7),c+=3):y==18&&(G=11+Ce(r,c,127),c+=7);G--;)V[z++]=it}}var W=V.subarray(0,D),At=V.subarray(D);B=on(W),I=on(At),f=Fe(W,B,1),d=Fe(At,I,1)}else Qe(1);else{var y=ln(c)+4,_=r[y-4]|r[y-3]<<8,Q=y+_;if(Q>i){a&&Qe(0);break}o&&l(g+_),e.set(r.subarray(y,Q),g),t.b=g+=_,t.p=c=Q*8,t.f=u;continue}if(c>F){a&&Qe(0);break}}o&&l(g+131072);for(var T=(1<<B)-1,tt=(1<<I)-1,k=c;;k=c){var it=f[an(r,c)&T],P=it>>4;if(c+=it&15,c>F){a&&Qe(0);break}if(it||Qe(2),P<256)e[g++]=P;else if(P==256){k=c,f=null;break}else{var q=P-254;if(P>264){var z=P-257,Z=yr[z];q=Ce(r,c,(1<<Z)-1)+fl[z],c+=Z}var st=d[an(r,c)&tt],X=st>>4;st||Qe(3),c+=st&15;var At=Tf[X];if(X>3){var Z=Dr[X];At+=an(r,c)&(1<<Z)-1,c+=Z}if(c>F){a&&Qe(0);break}o&&l(g+131072);var It=g+q;if(g<At){var ie=s-At,re=Math.min(At,It);for(ie+g<0&&Qe(3);g<re;++g)e[g]=A[ie+g]}for(;g<It;++g)e[g]=e[g-At]}}t.l=f,t.p=k,t.b=g,t.f=u,f&&(u=1,t.m=B,t.d=d,t.n=I)}while(!u);return g!=e.length&&n?pl(e,0,g):e.subarray(0,g)},We=function(r,t,e){e<<=t&7;var A=t/8|0;r[A]|=e,r[A+1]|=e>>8},Ni=function(r,t,e){e<<=t&7;var A=t/8|0;r[A]|=e,r[A+1]|=e>>8,r[A+2]|=e>>16},un=function(r,t){for(var e=[],A=0;A<r.length;++A)r[A]&&e.push({s:A,f:r[A]});var i=e.length,s=e.slice();if(!i)return{t:Ql,l:0};if(i==1){var n=new zt(e[0].s+1);return n[e[0].s]=1,{t:n,l:1}}e.sort(function(Q,D){return Q.f-D.f}),e.push({s:-1,f:25001});var o=e[0],a=e[1],l=0,u=1,c=2;for(e[0]={s:-1,f:o.f+a.f,l:o,r:a};u!=i-1;)o=e[e[l].f<e[c].f?l++:c++],a=e[l!=u&&e[l].f<e[c].f?l++:c++],e[u++]={s:-1,f:o.f+a.f,l:o,r:a};for(var g=s[0].s,A=1;A<i;++A)s[A].s>g&&(g=s[A].s);var f=new ue(g+1),d=cn(e[u-1],f,0);if(d>t){var A=0,B=0,I=d-t,F=1<<I;for(s.sort(function(D,S){return f[S.s]-f[D.s]||D.f-S.f});A<i;++A){var b=s[A].s;if(f[b]>t)B+=F-(1<<d-f[b]),f[b]=t;else break}for(B>>=I;B>0;){var y=s[A].s;f[y]<t?B-=1<<t-f[y]++-1:++A}for(;A>=0&&B;--A){var _=s[A].s;f[_]==t&&(--f[_],++B)}d=t}return{t:new zt(f),l:d}},cn=function(r,t,e){return r.s==-1?Math.max(cn(r.l,t,e+1),cn(r.r,t,e+1)):t[r.s]=e},El=function(r){for(var t=r.length;t&&!r[--t];);for(var e=new ue(++t),A=0,i=r[0],s=1,n=function(a){e[A++]=a},o=1;o<=t;++o)if(r[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)n(32754);s>2&&(n(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(n(i),--s;s>6;s-=6)n(8304);s>2&&(n(s-3<<5|8208),s=0)}for(;s--;)n(i);s=1,i=r[o]}return{c:e.subarray(0,A),n:t}},Ti=function(r,t){for(var e=0,A=0;A<t.length;++A)e+=r[A]*t[A];return e},Bl=function(r,t,e){var A=e.length,i=ln(t+2);r[i]=A&255,r[i+1]=A>>8,r[i+2]=r[i]^255,r[i+3]=r[i+1]^255;for(var s=0;s<A;++s)r[i+s+4]=e[s];return(i+4+A)*8},Cl=function(r,t,e,A,i,s,n,o,a,l,u){We(t,u++,e),++i[256];for(var c=un(i,15),g=c.t,f=c.l,d=un(s,15),B=d.t,I=d.l,F=El(g),b=F.c,y=F.n,_=El(B),Q=_.c,D=_.n,S=new ue(19),M=0;M<b.length;++M)++S[b[M]&31];for(var M=0;M<Q.length;++M)++S[Q[M]&31];for(var V=un(S,7),et=V.t,z=V.l,J=19;J>4&&!et[rn[J-1]];--J);var $=l+5<<3,K=Ti(i,oA)+Ti(s,Ui)+n,L=Ti(i,g)+Ti(s,B)+n+14+3*J+Ti(S,et)+2*S[16]+3*S[17]+7*S[18];if(a>=0&&$<=K&&$<=L)return Bl(t,u,r.subarray(a,a+l));var it,G,W,At;if(We(t,u,1+(L<K)),u+=2,L<K){it=Fe(g,f,0),G=g,W=Fe(B,I,0),At=B;var T=Fe(et,z,0);We(t,u,y-257),We(t,u+5,D-1),We(t,u+10,J-4),u+=14;for(var M=0;M<J;++M)We(t,u+3*M,et[rn[M]]);u+=3*J;for(var tt=[b,Q],k=0;k<2;++k)for(var P=tt[k],M=0;M<P.length;++M){var q=P[M]&31;We(t,u,T[q]),u+=et[q],q>15&&(We(t,u,P[M]>>5&127),u+=P[M]>>12)}}else it=Lf,G=oA,W=Of,At=Ui;for(var M=0;M<o;++M){var Z=A[M];if(Z>255){var q=Z>>18&31;Ni(t,u,it[q+257]),u+=G[q+257],q>7&&(We(t,u,Z>>23&31),u+=yr[q]);var st=Z&31;Ni(t,u,W[st]),u+=At[st],st>3&&(Ni(t,u,Z>>5&8191),u+=Dr[st])}else Ni(t,u,it[Z]),u+=G[Z]}return Ni(t,u,it[256]),u+G[256]},Yf=new An([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ql=new zt(0),Vf=function(r,t,e,A,i,s){var n=s.z||r.length,o=new zt(A+n+5*(1+Math.ceil(n/7e3))+i),a=o.subarray(A,o.length-i),l=s.l,u=(s.r||0)&7;if(t){u&&(a[0]=s.r>>3);for(var c=Yf[t-1],g=c>>13,f=c&8191,d=(1<<e)-1,B=s.p||new ue(32768),I=s.h||new ue(d+1),F=Math.ceil(e/3),b=2*F,y=function(Tt){return(r[Tt]^r[Tt+1]<<F^r[Tt+2]<<b)&d},_=new An(25e3),Q=new ue(288),D=new ue(32),S=0,M=0,V=s.i||0,et=0,z=s.w||0,J=0;V+2<n;++V){var $=y(V),K=V&32767,L=I[$];if(B[K]=L,I[$]=K,z<=V){var it=n-V;if((S>7e3||et>24576)&&(it>423||!l)){u=Cl(r,a,0,_,Q,D,M,et,J,V-J,u),et=S=M=0,J=V;for(var G=0;G<286;++G)Q[G]=0;for(var G=0;G<30;++G)D[G]=0}var W=2,At=0,T=f,tt=K-L&32767;if(it>2&&$==y(V-tt))for(var k=Math.min(g,it)-1,P=Math.min(32767,V),q=Math.min(258,it);tt<=P&&--T&&K!=L;){if(r[V+W]==r[V+W-tt]){for(var Z=0;Z<q&&r[V+Z]==r[V+Z-tt];++Z);if(Z>W){if(W=Z,At=tt,Z>k)break;for(var st=Math.min(tt,Z-2),X=0,G=0;G<st;++G){var It=V-tt+G&32767,ie=B[It],re=It-ie&32767;re>X&&(X=re,L=It)}}}K=L,L=B[K],tt+=K-L&32767}if(At){_[et++]=268435456|sn[W]<<18|Il[At];var Nt=sn[W]&31,ct=Il[At]&31;M+=yr[Nt]+Dr[ct],++Q[257+Nt],++D[ct],z=V+W,++S}else _[et++]=r[V],++Q[r[V]]}}for(V=Math.max(V,z);V<n;++V)_[et++]=r[V],++Q[r[V]];u=Cl(r,a,l,_,Q,D,M,et,J,V-J,u),l||(s.r=u&7|a[u/8|0]<<3,u-=7,s.h=I,s.p=B,s.i=V,s.w=z)}else{for(var V=s.w||0;V<n+l;V+=65535){var yt=V+65535;yt>=n&&(a[u/8|0]=l,yt=n),u=Bl(a,u+1,r.subarray(V,yt))}s.i=n}return pl(o,0,A+ln(u)+i)},yl=function(){var r=1,t=0;return{p:function(e){for(var A=r,i=t,s=e.length|0,n=0;n!=s;){for(var o=Math.min(n+2655,s);n<o;++n)i+=A+=e[n];A=(A&65535)+15*(A>>16),i=(i&65535)+15*(i>>16)}r=A,t=i},d:function(){return r%=65521,t%=65521,(r&255)<<24|(r&65280)<<8|(t&255)<<8|t>>8}}},zf=function(r,t,e,A,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),n=new zt(s.length+r.length);n.set(s),n.set(r,s.length),r=n,i.w=s.length}return Vf(r,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+t.mem,e,A,i)},Dl=function(r,t,e){for(;e;++t)r[t]=e,e>>>=8},Wf=function(r,t){var e=t.level,A=e==0?0:e<6?1:e==9?3:2;if(r[0]=120,r[1]=A<<6|(t.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,t.dictionary){var i=yl();i.p(t.dictionary),Dl(r,2,i.d())}},qf=function(r,t){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&Qe(6,"invalid zlib data"),(r[1]>>5&1)==1&&Qe(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function Xf(r,t){t||(t={});var e=yl();e.p(r);var A=zf(r,t,t.dictionary?6:2,4);return Wf(A,t),Dl(A,A.length-4,e.d()),A}function jf(r,t){return Kf(r.subarray(qf(r),-4),{i:2},t,t)}var Zf=typeof TextDecoder<"u"&&new TextDecoder,$f=0;try{Zf.decode(Ql,{stream:!0}),$f=1}catch{}const td="modern-font";function Li(r,t){if(!r)throw new Error(`[${td}] ${t}`)}function ed(r){if("buffer"in r){const t=r.buffer;return r.byteOffset>0||r.byteLength<r.buffer.byteLength?t.slice(r.byteOffset,r.byteOffset+r.byteLength):t}else return r}function HA(r){return"buffer"in r?new DataView(r.buffer,r.byteOffset,r.byteLength):new DataView(r)}function Ad(r){let t="";for(let e=0,A=r.length,i;e<A;e++)i=r.charCodeAt(e),i!==0&&(t+=String.fromCharCode(i));return t}function mr(r){r=Ad(r);const t=[];for(let e=0,A=r.length,i;e<A;e++)i=r.charCodeAt(e),t.push(i>>8),t.push(i&255);return t}function id(r){let t="";for(let e=0,A=r.length;e<A;e++)r[e]<127?t+=String.fromCharCode(r[e]):t+=`%${(256+r[e]).toString(16).slice(1)}`;return unescape(t)}function rd(r){let t="";for(let e=0,A=r.length;e<A;e+=2)t+=String.fromCharCode((r[e]<<8)+r[e+1]);return t}var sd=Object.defineProperty,Wt=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&sd(t,e,i),i};const Gi={int8:1,int16:2,int32:4,uint8:1,uint16:2,uint32:4,float32:4,float64:8,fixed:4,longDateTime:8,char:1};function qt(){return function(r,t){Object.defineProperty(r.constructor.prototype,t,{get(){if(typeof t=="string"){if(t.startsWith("read"))return(...e)=>this.read(t.substring(4).toLowerCase(),...e);if(t.startsWith("write"))return(...e)=>this.write(t.substring(5).toLowerCase(),...e)}},configurable:!0,enumerable:!0})}}class Rt extends DataView{constructor(t,e,A,i){super(ed(t),e,A),this.littleEndian=i}cursor=0;readColumn(t){if(t.size){const e=Array.from({length:t.size},(A,i)=>this.read(t.type,t.offset+i));switch(t.type){case"char":return e.join("");default:return e}}else return this.read(t.type,t.offset)}writeColumn(t,e){t.size?Array.from({length:t.size},(A,i)=>{this.write(t.type,e[i],t.offset+i)}):this.write(t.type,e,t.offset)}read(t,e=this.cursor,A=this.littleEndian){switch(t){case"char":return this.readChar(e);case"fixed":return this.readFixed(e,A);case"longDateTime":return this.readLongDateTime(e,A)}const i=`get${t.replace(/^\S/,a=>a.toUpperCase())}`,s=this,o=s[i]?.bind(s)?.(e,A);return this.cursor+=Gi[t],o}readUint24(t=this.cursor){const[e,A,i]=this.readBytes(t,3);return(e<<16)+(A<<8)+i}readBytes(t,e){e==null&&(e=t,t=this.cursor);const A=[];for(let i=0;i<e;++i)A.push(this.getUint8(t+i));return this.cursor=t+e,A}readString(t,e){const A=this.readBytes(t,e);let i="";for(let s=0,n=A.length;s<n;s++)i+=String.fromCharCode(A[s]);return i}readFixed(t,e){const A=this.readInt32(t,e)/65536;return Math.ceil(A*1e5)/1e5}readLongDateTime(t=this.cursor,e){const A=this.readUint32(t+4,e),i=new Date;return i.setTime(A*1e3+-20775456e5),i}readChar(t){return this.readString(t,1)}write(t,e,A=this.cursor,i=this.littleEndian){switch(t){case"char":return this.writeChar(e,A);case"fixed":return this.writeFixed(e,A);case"longDateTime":return this.writeLongDateTime(e,A)}const s=`set${t.replace(/^\S/,l=>l.toUpperCase())}`,n=this,a=n[s]?.bind(n)?.(A,e,i);return this.cursor+=Gi[t.toLowerCase()],a}writeString(t="",e=this.cursor){const A=t.replace(/[^\x00-\xFF]/g,"11").length;this.seek(e);for(let i=0,s=t.length,n;i<s;++i)n=t.charCodeAt(i)||0,n>127?this.writeUint16(n):this.writeUint8(n);return this.cursor+=A,this}writeChar(t,e){return this.writeString(t,e)}writeFixed(t,e){return this.writeInt32(Math.round(t*65536),e),this}writeLongDateTime(t,e=this.cursor){typeof t>"u"?t=-20775456e5:typeof t.getTime=="function"?t=t.getTime():/^\d+$/.test(t)?t=+t:t=Date.parse(t);const i=Math.round((t- -20775456e5)/1e3);return this.writeUint32(0,e),this.writeUint32(i,e+4),this}writeBytes(t,e=this.cursor){let A;if(Array.isArray(t)){A=t.length;for(let i=0;i<A;++i)this.setUint8(e+i,t[i])}else{const i=HA(t);A=i.byteLength;for(let s=0;s<A;++s)this.setUint8(e+s,i.getUint8(s))}return this.cursor=e+A,this}seek(t){return this.cursor=t,this}}Wt([qt()],Rt.prototype,"readInt8"),Wt([qt()],Rt.prototype,"readInt16"),Wt([qt()],Rt.prototype,"readInt32"),Wt([qt()],Rt.prototype,"readUint8"),Wt([qt()],Rt.prototype,"readUint16"),Wt([qt()],Rt.prototype,"readUint32"),Wt([qt()],Rt.prototype,"readFloat32"),Wt([qt()],Rt.prototype,"readFloat64"),Wt([qt()],Rt.prototype,"writeInt8"),Wt([qt()],Rt.prototype,"writeInt16"),Wt([qt()],Rt.prototype,"writeInt32"),Wt([qt()],Rt.prototype,"writeUint8"),Wt([qt()],Rt.prototype,"writeUint16"),Wt([qt()],Rt.prototype,"writeUint32"),Wt([qt()],Rt.prototype,"writeFloat32"),Wt([qt()],Rt.prototype,"writeFloat64");const ml=new WeakMap;function m(r){const t=typeof r=="object"?r:{type:r},{size:e=1,type:A}=t;return(i,s)=>{if(typeof s!="string")return;let n=ml.get(i);n||(n={columns:[],byteLength:0},ml.set(i,n));const o={...t,name:s,byteLength:e*Gi[A],offset:t.offset??n.columns.reduce((a,l)=>a+l.byteLength,0)};n.columns.push(o),n.byteLength=n.columns.reduce((a,l)=>a+Gi[l.type]*(l.size??1),0),Object.defineProperty(i.constructor.prototype,s,{get(){return this.view.readColumn(o)},set(a){this.view.writeColumn(o,a)},configurable:!0,enumerable:!0})}}class ce{view;constructor(t,e,A,i){this.view=new Rt(t,e,A,i)}}class wr extends ce{get buffer(){return this.view.buffer}toBuffer(){return this.view.buffer.slice(this.view.byteOffset,this.view.byteOffset+this.view.byteLength)}toBlob(){return new Blob([new Uint8Array(this.view.buffer,this.view.byteOffset,this.view.byteLength)],{type:this.mimeType})}toFontFace(t){return new FontFace(t,this.view.buffer)}}var nd=Object.defineProperty,$t=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&nd(t,e,i),i};const te=class Fu extends wr{format="EmbeddedOpenType";mimeType="application/vnd.ms-fontobject";static from(t){const e=t.sfnt,i=e.name.names,s=mr(i.fontFamily||""),n=s.length,o=mr(i.fontStyle||""),a=o.length,l=mr(i.version||""),u=l.length,c=mr(i.fullName||""),g=c.length,f=86+n+4+a+4+u+4+g+2+t.view.byteLength,d=new Fu(new ArrayBuffer(f),0,f,!0);d.EOTSize=d.view.byteLength,d.FontDataSize=t.view.byteLength,d.Version=131073,d.Flags=0,d.Charset=1,d.MagicNumber=20556,d.Padding1=0,d.CheckSumAdjustment=e.head.checkSumAdjustment;const B=e.os2;return B&&(d.FontPANOSE=B.fontPANOSE,d.Italic=B.fsSelection,d.Weight=B.usWeightClass,d.fsType=B.fsType,d.UnicodeRange=B.ulUnicodeRange,d.CodePageRange=B.ulCodePageRange),d.view.writeUint16(n),d.view.writeBytes(s),d.view.writeUint16(0),d.view.writeUint16(a),d.view.writeBytes(o),d.view.writeUint16(0),d.view.writeUint16(u),d.view.writeBytes(l),d.view.writeUint16(0),d.view.writeUint16(g),d.view.writeBytes(c),d.view.writeUint16(0),d.view.writeUint16(0),d.view.writeBytes(t.view),d}};$t([m("uint32")],te.prototype,"EOTSize"),$t([m("uint32")],te.prototype,"FontDataSize"),$t([m("uint32")],te.prototype,"Version"),$t([m("uint32")],te.prototype,"Flags"),$t([m({type:"uint8",size:10})],te.prototype,"FontPANOSE"),$t([m("uint8")],te.prototype,"Charset"),$t([m("uint8")],te.prototype,"Italic"),$t([m("uint32")],te.prototype,"Weight"),$t([m("uint16")],te.prototype,"fsType"),$t([m("uint16")],te.prototype,"MagicNumber"),$t([m({type:"uint8",size:16})],te.prototype,"UnicodeRange"),$t([m({type:"uint8",size:8})],te.prototype,"CodePageRange"),$t([m("uint32")],te.prototype,"CheckSumAdjustment"),$t([m({type:"uint8",size:16})],te.prototype,"Reserved"),$t([m("uint16")],te.prototype,"Padding1");var od=Object.defineProperty,vr=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&od(t,e,i),i};class JA extends ce{constructor(t,e){super(t,e,16)}}vr([m({type:"char",size:4})],JA.prototype,"tag"),vr([m("uint32")],JA.prototype,"checkSum"),vr([m("uint32")],JA.prototype,"offset"),vr([m("uint32")],JA.prototype,"length");const hn=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],ad=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];class gn{index;name;isComposite=!1;components=[];pathCommands=[];constructor(t){const e={...t};if(this.index=e.index??0,e.name===".notdef"?e.unicode=void 0:e.name===".null"&&(e.unicode=0),e.unicode===0&&e.name!==".null")throw new Error('The unicode value "0" is reserved for the glyph name ".null" and cannot be used by any other glyph.');this.name=e.name??null,e.unicode&&(this.unicode=e.unicode),e.unicodes?this.unicodes=e.unicodes:e.unicode&&(this.unicodes=[e.unicode])}getPathCommands(t=0,e=0,A=72,i={},s){const n=1/(s?.unitsPerEm??1e3)*A,{xScale:o=n,yScale:a=n}=i,l=this.pathCommands,u=[];for(let c=0,g=l.length;c<g;c+=1){const f=l[c];f.type==="M"?u.push({type:"M",x:t+f.x*o,y:e+-f.y*a}):f.type==="L"?u.push({type:"L",x:t+f.x*o,y:e+-f.y*a}):f.type==="Q"?u.push({type:"Q",x1:t+f.x1*o,y1:e+-f.y1*a,x:t+f.x*o,y:e+-f.y*a}):f.type==="C"?u.push({type:"C",x1:t+f.x1*o,y1:e+-f.y1*a,x2:t+f.x2*o,y2:e+-f.y2*a,x:t+f.x*o,y:e+-f.y*a}):f.type==="Z"&&u.push({type:"Z"})}return u}}class ld extends gn{parse(t,e,A){const i=this,{nominalWidthX:s,defaultWidthX:n,gsubrsBias:o,subrsBias:a}=t,l=t.topDict.paintType,u=this.index;let c,g,f,d;const B=[],I=[];let F=0,b=!1,y=!1,_=n,Q=0,D=0;function S(K,L){B.push({type:"L",x:K,y:L})}function M(K,L,it,G,W,At){B.push({type:"C",x1:K,y1:L,x2:it,y2:G,x:W,y:At})}function V(K,L){y&&l!==2&&et(),y=!0,B.push({type:"M",x:K,y:L})}function et(){B.push({type:"Z"})}function z(K){B.push(...K)}function J(){I.length%2!==0&&!b&&(_=I.shift()+s),F+=I.length>>1,I.length=0,b=!0}function $(K){let L,it,G,W,At,T,tt,k,P,q,Z,st,X=0;for(;X<K.length;){let It=K[X++];switch(It){case 1:J();break;case 3:J();break;case 4:I.length>1&&!b&&(_=I.shift()+s,b=!0),D+=I.pop(),V(Q,D);break;case 5:for(;I.length>0;)Q+=I.shift(),D+=I.shift(),S(Q,D);break;case 6:for(;I.length>0&&(Q+=I.shift(),S(Q,D),I.length!==0);)D+=I.shift(),S(Q,D);break;case 7:for(;I.length>0&&(D+=I.shift(),S(Q,D),I.length!==0);)Q+=I.shift(),S(Q,D);break;case 8:for(;I.length>0;)c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);break;case 10:At=I.pop()+a,T=t.subrs[At],T&&$(T);break;case 11:return;case 12:switch(It=K[X],X+=1,It){case 35:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d+I.shift(),P=tt+I.shift(),q=k+I.shift(),Z=P+I.shift(),st=q+I.shift(),Q=Z+I.shift(),D=st+I.shift(),I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 34:c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d,P=tt+I.shift(),q=d,Z=P+I.shift(),st=D,Q=Z+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 36:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d,P=tt+I.shift(),q=d,Z=P+I.shift(),st=q+I.shift(),Q=Z+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 37:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d+I.shift(),P=tt+I.shift(),q=k+I.shift(),Z=P+I.shift(),st=q+I.shift(),Math.abs(Z-Q)>Math.abs(st-D)?Q=Z+I.shift():D=st+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;default:console.warn(`Glyph ${u}: unknown operator ${1200+It}`),I.length=0}break;case 14:if(I.length>=4){const ie=hn[I.pop()],re=hn[I.pop()],Nt=I.pop(),ct=I.pop();if(ie&&re){i.isComposite=!0,i.components=[];const yt=t.charset.indexOf(ie),Tt=t.charset.indexOf(re);i.components.push({glyphIndex:Tt,dx:0,dy:0}),i.components.push({glyphIndex:yt,dx:ct,dy:Nt}),z(A.get(Tt).pathCommands);const Jt=JSON.parse(JSON.stringify(A.get(yt).pathCommands));for(let _t=0;_t<Jt.length;_t+=1){const Zt=Jt[_t];Zt.type!=="Z"&&(Zt.x+=ct,Zt.y+=Nt),(Zt.type==="Q"||Zt.type==="C")&&(Zt.x1+=ct,Zt.y1+=Nt),Zt.type==="C"&&(Zt.x2+=ct,Zt.y2+=Nt)}z(Jt)}}else I.length>0&&!b&&(_=I.shift()+s,b=!0);y&&l!==2&&(et(),y=!1);break;case 18:J();break;case 19:case 20:J(),X+=F+7>>3;break;case 21:I.length>2&&!b&&(_=I.shift()+s,b=!0),D+=I.pop(),Q+=I.pop(),V(Q,D);break;case 22:I.length>1&&!b&&(_=I.shift()+s,b=!0),Q+=I.pop(),V(Q,D);break;case 23:J();break;case 24:for(;I.length>2;)c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);Q+=I.shift(),D+=I.shift(),S(Q,D);break;case 25:for(;I.length>6;)Q+=I.shift(),D+=I.shift(),S(Q,D);c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);break;case 26:for(I.length%2&&(Q+=I.shift());I.length>0;)c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f,D=d+I.shift(),M(c,g,f,d,Q,D);break;case 27:for(I.length%2&&(D+=I.shift());I.length>0;)c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d,M(c,g,f,d,Q,D);break;case 28:L=K[X],it=K[X+1],I.push((L<<24|it<<16)>>16),X+=2;break;case 29:At=I.pop()+o,T=t.gsubrs[At],T&&$(T);break;case 30:for(;I.length>0&&(c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+(I.length===1?I.shift():0),M(c,g,f,d,Q,D),I.length!==0);)c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),D=d+I.shift(),Q=f+(I.length===1?I.shift():0),M(c,g,f,d,Q,D);break;case 31:for(;I.length>0&&(c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),D=d+I.shift(),Q=f+(I.length===1?I.shift():0),M(c,g,f,d,Q,D),I.length!==0);)c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+(I.length===1?I.shift():0),M(c,g,f,d,Q,D);break;default:It<32?console.warn(`Glyph ${u}: unknown operator ${It}`):It<247?I.push(It-139):It<251?(L=K[X],X+=1,I.push((It-247)*256+L+108)):It<255?(L=K[X],X+=1,I.push(-(It-251)*256-L-108)):(L=K[X],it=K[X+1],G=K[X+2],W=K[X+3],X+=4,I.push((L<<24|it<<16|G<<8|W)/65536))}}}$(e),this.pathCommands=B,b&&(this.advanceWidth=_)}}class fn{constructor(t){this._sfnt=t}_items=[];get(t){const e=this._items[t];let A;if(e)A=e;else{A=this._get(t);const i=this._sfnt.hmtx.metrics[t];i&&(A.advanceWidth=A.advanceWidth||i.advanceWidth,A.leftSideBearing=A.leftSideBearing||i.leftSideBearing);const s=this._sfnt.cmap.glyphIndexToUnicodesMap.get(t);s&&(A.unicode??=s[0],A.unicodes??=s),this._items[t]=A}return A}}class ud extends fn{get length(){return this._sfnt.cff.charStringsIndex.offsets.length-1}_get(t){const e=this._sfnt.cff,A=new ld({index:t});return A.parse(e,e.charStringsIndex.get(t),this),A.name=e.charset[t],A}}var cd=Object.defineProperty,wl=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&cd(t,e,i),i};class _r extends ce{_offsets;get offsets(){return this._offsets??=this.readOffsets()}_objects;get objects(){return this._objects??=this.readObjects()}constructor(t,e,A,i){super(t,e,A,i),this._init()}_init(){const t=this.view,e=this.count,A=this.offsetSize;this.objectOffset=(e+1)*A+2,this.endOffset=t.byteOffset+this.objectOffset+this.offsets[e]}readOffsets(){const t=this.view,e=this.count,A=this.offsetSize;t.seek(3);const i=[];for(let s=0,n=e+1;s<n;s++){const o=this.view;let a=0;for(let l=0;l<A;l++)a<<=8,a+=o.readUint8();i.push(a)}return i}readObjects(){const t=[];for(let e=0,A=this.count;e<A;e++)t.push(this.get(e));return t}get(t){const e=this.offsets,A=this.objectOffset,i=A+e[t],n=A+e[t+1]-i;return this._isString?this.view.readString(i,n):this.view.readBytes(i,n)}}wl([m("uint16")],_r.prototype,"count"),wl([m("uint8")],_r.prototype,"offsetSize");class br extends _r{_isString=!1}class vl extends _r{_isString=!0}const hd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],gd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],fd=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],dd=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];function xr(r,t){return t<=390?hd[t]:r[t-391]}function Bt(r,t="number",e){return(A,i)=>{if(typeof i!="string")return;const s={type:t,operator:r,default:e??t==="number"?0:void 0};Object.defineProperty(A.constructor.prototype,i,{get(){return this._getProp(s)},set(n){this._setProp(s,n)},configurable:!0,enumerable:!0})}}class _l extends ce{_dict;get dict(){return this._dict??=this._readDict()}_stringIndex;setStringIndex(t){return this._stringIndex=t,this}_readFloatOperand(){const t=this.view;let e="";const A=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];for(;;){const s=t.readUint8(),n=s>>4,o=s&15;if(n===A||(e+=i[n],o===A))break;e+=i[o]}return Number.parseFloat(e)}_readOperand(t){const e=this.view;let A,i,s,n;if(t===28)return A=e.readUint8(),i=e.readUint8(),A<<8|i;if(t===29)return A=e.readUint8(),i=e.readUint8(),s=e.readUint8(),n=e.readUint8(),A<<24|i<<16|s<<8|n;if(t===30)return this._readFloatOperand();if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return A=e.readUint8(),(t-247)*256+A+108;if(t>=251&&t<=254)return A=e.readUint8(),-(t-251)*256-A-108;throw new Error(`invalid b0 ${t}, at: ${e.cursor}`)}_readDict(){const t=this.view;t.seek(0);let e=[];const A=t.cursor+t.byteLength,i={};for(;t.cursor<A;){let s=t.readUint8();s<=21?(s===12&&(s=1200+t.readUint8()),i[s]=e,e=[]):e.push(this._readOperand(s))}return i}_getProp(t){const e=this.dict[t.operator]??t.default;switch(t.type){case"number":return e[0];case"string":return xr(this._stringIndex?.objects??[],e[0]);case"number[]":return e}return e}_setProp(t,e){}}var Id=Object.defineProperty,dn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Id(t,e,i),i};class Fr extends _l{}dn([Bt(19)],Fr.prototype,"subrs"),dn([Bt(20)],Fr.prototype,"defaultWidthX"),dn([Bt(21)],Fr.prototype,"nominalWidthX");var pd=Object.defineProperty,vt=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&pd(t,e,i),i};class Dt extends _l{}vt([Bt(0,"string")],Dt.prototype,"version"),vt([Bt(1,"string")],Dt.prototype,"notice"),vt([Bt(1200,"string")],Dt.prototype,"copyright"),vt([Bt(2,"string")],Dt.prototype,"fullName"),vt([Bt(3,"string")],Dt.prototype,"familyName"),vt([Bt(4,"string")],Dt.prototype,"weight"),vt([Bt(1201)],Dt.prototype,"isFixedPitch"),vt([Bt(1202)],Dt.prototype,"italicAngle"),vt([Bt(1203,"number",-100)],Dt.prototype,"underlinePosition"),vt([Bt(1204,"number",50)],Dt.prototype,"underlineThickness"),vt([Bt(1205)],Dt.prototype,"paintType"),vt([Bt(1206,"number",2)],Dt.prototype,"charstringType"),vt([Bt(1207,"number[]",[.001,0,0,.001,0,0])],Dt.prototype,"fontMatrix"),vt([Bt(13)],Dt.prototype,"uniqueId"),vt([Bt(5,"number[]",[0,0,0,0])],Dt.prototype,"fontBBox"),vt([Bt(1208)],Dt.prototype,"strokeWidth"),vt([Bt(14)],Dt.prototype,"xuid"),vt([Bt(15)],Dt.prototype,"charset"),vt([Bt(16)],Dt.prototype,"encoding"),vt([Bt(17)],Dt.prototype,"charStrings"),vt([Bt(18,"number[]",[0,0])],Dt.prototype,"private");function Gt(r,t=r){return e=>{Se.tableDefinitions.set(r,{tag:r,prop:t,class:e}),Object.defineProperty(Se.prototype,t,{get(){return this.get(r)},set(A){return this.set(r,A)},configurable:!0,enumerable:!0})}}class Se{static tableDefinitions=new Map;tables=new Map;tableViews=new Map;get hasGlyf(){return this.tableViews.has("glyf")}get names(){return this.name.names}get unitsPerEm(){return this.head.unitsPerEm}get ascender(){return this.hhea.ascent}get descender(){return this.hhea.descent}get createdTimestamp(){return this.head.created}get modifiedTimestamp(){return this.head.modified}get numGlyphs(){return this.maxp.numGlyphs}get unicodes(){return this.cmap.glyphIndexToUnicodesMap}get glyphs(){return this.hasGlyf?this.glyf.glyphs:this.cff.glyphs}charToGlyphIndex(t){let e=this.cmap.unicodeToGlyphIndexMap.get(t.codePointAt(0));if(e===void 0&&!this.hasGlyf){const{encoding:A,charset:i}=this.cff;e=i.indexOf(A[t.codePointAt(0)])}return e??0}charToGlyph(t){return this.glyphs.get(this.charToGlyphIndex(t))}textToGlyphIndexes(t){const e=[];for(const A of t)e.push(this.charToGlyphIndex(A));return e}textToGlyphs(t){const e=this.glyphs,A=this.textToGlyphIndexes(t),i=A.length,s=Array.from({length:i}),n=e.get(0);for(let o=0;o<i;o+=1)s[o]=e.get(A[o])||n;return s}getPathCommands(t,e,A,i,s){const n=[];return this.forEachGlyph(t,e,A,i,s,(o,a,l,u,c)=>{n.push(...o.getPathCommands(a,l,u,c,this))}),n}getAdvanceWidth(t,e,A){return this.forEachGlyph(t,0,0,e,A,()=>{})}forEachGlyph(t,e=0,A=0,i=72,s={},n){const o=1/this.unitsPerEm*i,a=this.textToGlyphs(t);for(let l=0;l<a.length;l+=1){const u=a[l];n.call(this,u,e,A,i,s),u.advanceWidth&&(e+=u.advanceWidth*o),s.letterSpacing?e+=s.letterSpacing*i:s.tracking&&(e+=s.tracking/1e3*i)}return e}constructor(t){(t instanceof Map?t:new Map(Object.entries(t))).forEach((A,i)=>{this.tableViews.set(i,new DataView(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)))})}clone(){return new Se(this.tableViews)}delete(t){const e=Se.tableDefinitions.get(t);return e?(this.tableViews.delete(t),this.tables.delete(e.prop),this):this}set(t,e){const A=Se.tableDefinitions.get(t);return A&&this.tables.set(A.prop,e),this.tableViews.set(t,e.view),this}get(t){const e=Se.tableDefinitions.get(t);if(!e)return;let A=this.tables.get(e.prop);if(!A){const i=e.class;if(i){const s=this.tableViews.get(t);if(!s)return;A=new i(s.buffer,s.byteOffset,s.byteLength).setSFNT(this),this.tables.set(e.prop,A)}}return A}}class Xt extends ce{setSFNT(t){return this._sfnt=t,this}getSFNT(){return this._sfnt}}var Ed=Object.defineProperty,Bd=Object.getOwnPropertyDescriptor,Oi=(r,t,e,A)=>{for(var i=A>1?void 0:A?Bd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Ed(t,e,i),i};let wA=class extends Xt{_glyphs;get glyphs(){return this._glyphs??=new ud(this._sfnt)}get gsubrs(){return this.globalSubrIndex.objects}get gsubrsBias(){return this._calcSubroutineBias(this.globalSubrIndex.objects)}privateDict;subrsIndex;get defaultWidthX(){return this.privateDict?.defaultWidthX??0}get nominalWidthX(){return this.privateDict?.nominalWidthX??0}get subrs(){return this.subrsIndex?.objects??[]}get subrsBias(){return this._calcSubroutineBias(this.subrs)}constructor(r,t,e,A){super(r,t,e,A),this._init()}_init(){const r=this.view,{buffer:t,byteOffset:e}=r,A=e+4;this.nameIndex=new vl(t,A),this.topDictIndex=new br(t,this.nameIndex.endOffset),this.stringIndex=new vl(t,this.topDictIndex.endOffset),this.globalSubrIndex=new br(t,this.stringIndex.endOffset),this.topDict=new Dt(new Uint8Array(this.topDictIndex.objects[0]).buffer).setStringIndex(this.stringIndex);const i=this.topDict.private[0],s=this.topDict.private[1];i&&(this.privateDict=new Fr(t,e+s,i).setStringIndex(this.stringIndex),this.privateDict.subrs&&(this.subrsIndex=new br(t,e+s+this.privateDict.subrs))),this.charStringsIndex=new br(t,e+this.topDict.charStrings);const n=this.charStringsIndex.offsets.length-1;this.topDict.charset===0?this.charset=gd:this.topDict.charset===1?this.charset=fd:this.topDict.charset===2?this.charset=dd:this.charset=this._readCharset(e+this.topDict.charset,n,this.stringIndex.objects),this.topDict.encoding===0?this.encoding=hn:this.topDict.encoding===1?this.encoding=ad:this.encoding=this._readEncoding(e+this.topDict.encoding)}_readCharset(r,t,e){const A=this.view;A.seek(r);let i,s,n;t-=1;const o=[".notdef"],a=A.readUint8();if(a===0)for(i=0;i<t;i+=1)s=A.readUint16(),o.push(xr(e,s));else if(a===1)for(;o.length<=t;)for(s=A.readUint16(),n=A.readUint8(),i=0;i<=n;i+=1)o.push(xr(e,s)),s+=1;else if(a===2)for(;o.length<=t;)for(s=A.readUint16(),n=A.readUint16(),i=0;i<=n;i+=1)o.push(xr(e,s)),s+=1;else throw new Error(`Unknown charset format ${a}`);return o}_readEncoding(r){const t=this.view;t.seek(r);let e,A;const i={},s=t.readUint8();if(s===0){const n=t.readUint8();for(e=0;e<n;e+=1)A=t.readUint8(),i[A]=e}else if(s===1){const n=t.readUint8();for(A=1,e=0;e<n;e+=1){const o=t.readUint8(),a=t.readUint8();for(let l=o;l<=o+a;l+=1)i[l]=A,A+=1}}else console.warn(`unknown encoding format:${s}`);return i}_calcSubroutineBias(r){let t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}};Oi([m("uint8")],wA.prototype,"majorVersion",2),Oi([m("uint8")],wA.prototype,"minorVersion",2),Oi([m("uint8")],wA.prototype,"headerSize",2),Oi([m("uint8")],wA.prototype,"offsetSize",2),wA=Oi([Gt("CFF ","cff")],wA);var Cd=Object.defineProperty,Sr=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Cd(t,e,i),i};const Hi=class Su extends ce{constructor(t=new ArrayBuffer(262),e){super(t,e,262)}static from(t){const e=new Su;return e.format=0,e.length=e.view.byteLength,e.language=0,t.forEach((A,i)=>{i<256&&A<256&&e.view.writeUint8(A,6+i)}),e}getUnicodeToGlyphIndexMap(){const t=new Map;return this.glyphIndexArray.forEach((e,A)=>{t.set(A,e)}),t}};Sr([m("uint16")],Hi.prototype,"format"),Sr([m("uint16")],Hi.prototype,"length"),Sr([m("uint16")],Hi.prototype,"language"),Sr([m({type:"uint8",size:256})],Hi.prototype,"glyphIndexArray");let In=Hi;var Qd=Object.defineProperty,pn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Qd(t,e,i),i};class Ji extends ce{get subHeaderKeys(){return this.view.seek(6),Array.from({length:256},()=>this.view.readUint16()/8)}get maxSubHeaderKey(){return this.subHeaderKeys.reduce((t,e)=>Math.max(t,e),0)}get subHeaders(){const t=this.maxSubHeaderKey;return this.view.seek(6+256*2),Array.from({length:t},(e,A)=>({firstCode:this.view.readUint16(),entryCount:this.view.readUint16(),idDelta:this.view.readUint16(),idRangeOffset:(this.view.readUint16()-(t-A)*8-2)/2}))}get glyphIndexArray(){const t=this.maxSubHeaderKey,e=6+256*2+t*8;this.view.seek(e);const A=(this.view.byteLength-e)/2;return Array.from({length:A},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(t){const e=new Map,A=this.subHeaderKeys,i=this.maxSubHeaderKey,s=this.subHeaders,n=this.glyphIndexArray,o=A.findIndex(l=>l===i);let a=0;for(let l=0;l<256;l++)if(A[l]===0)l>=o||l<s[0].firstCode||l>=s[0].firstCode+s[0].entryCount||s[0].idRangeOffset+(l-s[0].firstCode)>=n.length?a=0:(a=n[s[0].idRangeOffset+(l-s[0].firstCode)],a!==0&&(a=a+s[0].idDelta)),a!==0&&a<t&&e.set(l,a);else{const u=A[l];for(let c=0,g=s[u].entryCount;c<g;c++)if(s[u].idRangeOffset+c>=n.length?a=0:(a=n[s[u].idRangeOffset+c],a!==0&&(a=a+s[u].idDelta)),a!==0&&a<t){const f=(l<<8|c+s[u].firstCode)%65535;e.set(f,a)}}return e}}pn([m("uint16")],Ji.prototype,"format"),pn([m("uint16")],Ji.prototype,"length"),pn([m("uint16")],Ji.prototype,"language");function bl(r){return r>32767?r-65536:r<-32767?r+65536:r}function En(r,t){let e;const A=[];let i={};return r.forEach((s,n)=>{t&&n>t||((!e||n!==e.unicode+1||s!==e.glyphIndex+1)&&(e?(i.end=e.unicode,A.push(i),i={start:n,startId:s,delta:bl(s-n)}):(i.start=Number(n),i.startId=s,i.delta=bl(s-n))),e={unicode:n,glyphIndex:s})}),e&&(i.end=e.unicode,A.push(i)),A}var yd=Object.defineProperty,vA=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&yd(t,e,i),i};const aA=class Mu extends ce{get endCode(){const t=this.segCountX2;return this.view.seek(14),Array.from({length:t/2},()=>this.view.readUint16())}set endCode(t){this.view.seek(14),t.forEach(e=>this.view.writeUint16(e))}get reservedPad(){return this.view.readUint16(14+this.segCountX2)}set reservedPad(t){this.view.writeUint16(t,14+this.segCountX2)}get startCode(){const t=this.segCountX2;return this.view.seek(14+t+2),Array.from({length:t/2},()=>this.view.readUint16())}set startCode(t){this.view.seek(14+this.segCountX2+2),t.forEach(e=>this.view.writeUint16(e))}get idDelta(){const t=this.segCountX2;return this.view.seek(14+t+2+t),Array.from({length:t/2},()=>this.view.readUint16())}set idDelta(t){const e=this.segCountX2;this.view.seek(14+e+2+e),t.forEach(A=>this.view.writeUint16(A))}get idRangeOffsetCursor(){const t=this.segCountX2;return 14+t+2+t*2}get idRangeOffset(){const t=this.segCountX2;return this.view.seek(this.idRangeOffsetCursor),Array.from({length:t/2},()=>this.view.readUint16())}set idRangeOffset(t){this.view.seek(this.idRangeOffsetCursor),t.forEach(e=>this.view.writeUint16(e))}get glyphIndexArrayCursor(){const t=this.segCountX2;return 14+t+2+t*3}get glyphIndexArray(){const t=this.glyphIndexArrayCursor;this.view.seek(t);const e=(this.view.byteLength-t)/2;return Array.from({length:e},()=>this.view.readUint16())}static from(t){const e=En(t,65535),A=e.length+1,i=Math.floor(Math.log(A)/Math.LN2),s=2*2**i,n=new Mu(new ArrayBuffer(24+e.length*8));return n.format=4,n.length=n.view.byteLength,n.language=0,n.segCountX2=A*2,n.searchRange=s,n.entrySelector=i,n.rangeShift=2*A-s,n.endCode=[...e.map(o=>o.end),65535],n.reservedPad=0,n.startCode=[...e.map(o=>o.start),65535],n.idDelta=[...e.map(o=>o.delta),1],n.idRangeOffset=Array.from({length:A},()=>0),n}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.segCountX2/2,A=(this.glyphIndexArrayCursor-this.idRangeOffsetCursor)/2,i=this.startCode,s=this.endCode,n=this.idRangeOffset,o=this.idDelta,a=this.glyphIndexArray;for(let l=0;l<e;++l)for(let u=i[l],c=s[l];u<=c;++u)if(n[l]===0)t.set(u,(u+o[l])%65536);else{const g=l+n[l]/2+(u-i[l])-A,f=a[g];f!==0?t.set(u,(f+o[l])%65536):t.set(u,0)}return t.delete(65535),t}};vA([m("uint16")],aA.prototype,"format"),vA([m("uint16")],aA.prototype,"length"),vA([m("uint16")],aA.prototype,"language"),vA([m("uint16")],aA.prototype,"segCountX2"),vA([m("uint16")],aA.prototype,"searchRange"),vA([m("uint16")],aA.prototype,"entrySelector"),vA([m("uint16")],aA.prototype,"rangeShift");let Bn=aA;var Dd=Object.defineProperty,Ki=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Dd(t,e,i),i};class _A extends ce{get glyphIndexArray(){return this.view.seek(12),Array.from({length:this.entryCount},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(){const t=this.glyphIndexArray,e=new Map;return t.forEach((A,i)=>{e.set(i,A)}),e}}Ki([m("uint16")],_A.prototype,"format"),Ki([m("uint16")],_A.prototype,"length"),Ki([m("uint16")],_A.prototype,"language"),Ki([m("uint16")],_A.prototype,"firstCode"),Ki([m("uint16")],_A.prototype,"entryCount");var md=Object.defineProperty,Yi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&md(t,e,i),i};const KA=class Ru extends ce{get groups(){const t=this.nGroups;return this.view.seek(16),Array.from({length:t},()=>({startCharCode:this.view.readUint32(),endCharCode:this.view.readUint32(),startGlyphCode:this.view.readUint32()}))}static from(t){const e=En(t),A=new Ru(new ArrayBuffer(16+e.length*12));return A.format=12,A.reserved=0,A.length=A.view.byteLength,A.language=0,A.nGroups=e.length,e.forEach(i=>{A.view.writeUint32(i.start),A.view.writeUint32(i.end),A.view.writeUint32(i.startId)}),A}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.groups;for(let A=0,i=e.length;A<i;A++){const s=e[A];let n=s.startGlyphCode,o=s.startCharCode;const a=s.endCharCode;for(;o<=a;)t.set(o++,n++)}return t}};Yi([m("uint16")],KA.prototype,"format"),Yi([m("uint16")],KA.prototype,"reserved"),Yi([m("uint32")],KA.prototype,"length"),Yi([m("uint32")],KA.prototype,"language"),Yi([m("uint32")],KA.prototype,"nGroups");let Cn=KA;var wd=Object.defineProperty,Qn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&wd(t,e,i),i};class Vi extends ce{getVarSelectorRecords(){const t=this.numVarSelectorRecords;return this.view.seek(10),Array.from({length:t},()=>{const e={varSelector:this.view.readUint24(),defaultUVSOffset:this.view.readUint32(),unicodeValueRanges:[],nonDefaultUVSOffset:this.view.readUint32(),uVSMappings:[]};if(e.defaultUVSOffset){this.view.seek(e.defaultUVSOffset);const A=this.view.readUint32();e.unicodeValueRanges=Array.from({length:A},()=>({startUnicodeValue:this.view.readUint24(),additionalCount:this.view.readUint8()}))}if(e.nonDefaultUVSOffset){this.view.seek(e.nonDefaultUVSOffset);const A=this.view.readUint32();e.uVSMappings=Array.from({length:A},()=>({unicodeValue:this.view.readUint24(),glyphID:this.view.readUint16()}))}return e})}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.getVarSelectorRecords();for(let A=0,i=e.length;A<i;A++){const{uVSMappings:s}=e[A];s.forEach(n=>{t.set(n.unicodeValue,n.glyphID)})}return t}}Qn([m("uint16")],Vi.prototype,"format"),Qn([m("uint32")],Vi.prototype,"length"),Qn([m("uint32")],Vi.prototype,"numVarSelectorRecords");var vd=Object.defineProperty,_d=Object.getOwnPropertyDescriptor,yn=(r,t,e,A)=>{for(var i=A>1?void 0:A?_d(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&vd(t,e,i),i};let YA=class extends Xt{static from(r){const t=Array.from(r.keys()).some(u=>u>65535),e=Bn.from(r),A=In.from(r),i=t?Cn.from(r):void 0,s=4+(i?32:24),n=s+e.view.byteLength,o=n+A.view.byteLength,a=[{platformID:0,platformSpecificID:3,offset:s},{platformID:1,platformSpecificID:0,offset:n},{platformID:3,platformSpecificID:1,offset:s},i&&{platformID:3,platformSpecificID:10,offset:o}].filter(Boolean),l=new YA(new ArrayBuffer(4+8*a.length+e.view.byteLength+A.view.byteLength+(i?.view.byteLength??0)));return l.numberSubtables=a.length,l.view.seek(4),a.forEach(u=>{l.view.writeUint16(u.platformID),l.view.writeUint16(u.platformSpecificID),l.view.writeUint32(u.offset)}),l.view.writeBytes(e.view,s),l.view.writeBytes(A.view,n),i&&l.view.writeBytes(i.view,o),l}_unicodeToGlyphIndexMap;get unicodeToGlyphIndexMap(){return this._unicodeToGlyphIndexMap??=this.readunicodeToGlyphIndexMap()}_glyphIndexToUnicodesMap;get glyphIndexToUnicodesMap(){if(!this._glyphIndexToUnicodesMap){const r=new Map,t=this.unicodeToGlyphIndexMap,e=Array.from(t.keys());for(let A=0,i=e.length;A<i;A++){const s=e[A],n=t.get(s);r.has(n)?r.get(n).push(s):r.set(n,[s])}this._glyphIndexToUnicodesMap=r}return this._glyphIndexToUnicodesMap}readSubtables(){const r=this.numberSubtables;return this.view.seek(4),Array.from({length:r},()=>({platformID:this.view.readUint16(),platformSpecificID:this.view.readUint16(),offset:this.view.readUint32()})).map(t=>{this.view.seek(t.offset);const e=this.view.readUint16();let A;switch(e){case 0:A=new In(this.view.buffer,t.offset);break;case 2:A=new Ji(this.view.buffer,t.offset,this.view.readUint16());break;case 4:A=new Bn(this.view.buffer,t.offset,this.view.readUint16());break;case 6:A=new _A(this.view.buffer,t.offset,this.view.readUint16());break;case 12:A=new Cn(this.view.buffer,t.offset,this.view.readUint32(t.offset+4));break;case 14:default:A=new Vi(this.view.buffer,t.offset,this.view.readUint32());break}return{...t,format:e,view:A}})}readunicodeToGlyphIndexMap(){const r=this.readSubtables(),t=r.find(n=>n.format===0)?.view,e=r.find(n=>n.platformID===3&&n.platformSpecificID===3&&n.format===2)?.view,A=r.find(n=>n.platformID===3&&n.platformSpecificID===1&&n.format===4)?.view,i=r.find(n=>n.platformID===3&&n.platformSpecificID===10&&n.format===12)?.view,s=r.find(n=>n.platformID===0&&n.platformSpecificID===5&&n.format===14)?.view;return new Map([...t?.getUnicodeToGlyphIndexMap()??[],...e?.getUnicodeToGlyphIndexMap(this._sfnt.maxp.numGlyphs)??[],...A?.getUnicodeToGlyphIndexMap()??[],...i?.getUnicodeToGlyphIndexMap()??[],...s?.getUnicodeToGlyphIndexMap()??[]])}};yn([m("uint16")],YA.prototype,"version",2),yn([m("uint16")],YA.prototype,"numberSubtables",2),YA=yn([Gt("cmap")],YA);class bd extends gn{_parseContours(t){const e=[];let A=[];for(let i=0;i<t.length;i+=1){const s=t[i];A.push(s),s.lastPointOfContour&&(e.push(A),A=[])}return Li(A.length===0,"There are still points left in the current contour."),e}_transformPoints(t,e){const A=[];for(let i=0;i<t.length;i+=1){const s=t[i],n={x:e.xScale*s.x+e.scale10*s.y+e.dx,y:e.scale01*s.x+e.yScale*s.y+e.dy,onCurve:s.onCurve,lastPointOfContour:s.lastPointOfContour};A.push(n)}return A}_parseGlyphCoordinate(t,e,A,i,s){let n;return(e&i)>0?(n=t.view.readUint8(),(e&s)===0&&(n=-n),n=A+n):(e&s)>0?n=A:n=A+t.view.readInt16(),n}parse(t,e,A){t.view.seek(e);const i=this.numberOfContours=t.view.readInt16();if(this.xMin=t.view.readInt16(),this.yMin=t.view.readInt16(),this.xMax=t.view.readInt16(),this.yMax=t.view.readInt16(),i>0){const o=this.endPointIndices=[];for(let B=0;B<i;B++)o.push(t.view.readUint16());const a=this.instructionLength=t.view.readUint16();Li(a<5e3,`Bad instructionLength:${a}`);const l=this.instructions=[];for(let B=0;B<a;++B)l.push(t.view.readUint8());const u=t.view.byteOffset,c=o[o.length-1]+1;Li(c<2e4,`Bad numberOfCoordinates:${u}`);const g=[];let f,d=0;for(;d<c;)if(f=t.view.readUint8(),g.push(f),d++,f&8&&d<c){const B=t.view.readUint8();for(let I=0;I<B;I++)g.push(f),d++}if(Li(g.length===c,`Bad flags length: ${g.length}, numberOfCoordinates: ${c}`),o.length>0){const B=[];let I;if(c>0){for(let y=0;y<c;y+=1)f=g[y],I={},I.onCurve=!!(f&1),I.lastPointOfContour=o.includes(y),B.push(I);let F=0;for(let y=0;y<c;y+=1)f=g[y],I=B[y],I.x=this._parseGlyphCoordinate(t,f,F,2,16),F=I.x;let b=0;for(let y=0;y<c;y+=1)f=g[y],I=B[y],I.y=this._parseGlyphCoordinate(t,f,b,4,32),b=I.y}this.points=B}else this.points=[]}else if(i===0)this.points=[];else{this.isComposite=!0,this.points=[],this.components=[];let o,a=!0;for(;a;){o=t.view.readUint16();const l={glyphIndex:t.view.readUint16(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(l.dx=t.view.readInt16(),l.dy=t.view.readInt16()):l.matchedPoints=[t.view.readUint16(),t.view.readUint16()]:(o&2)>0?(l.dx=t.view.readInt8(),l.dy=t.view.readInt8()):l.matchedPoints=[t.view.readUint8(),t.view.readUint8()],(o&8)>0?l.xScale=l.yScale=t.view.readInt16()/16384:(o&64)>0?(l.xScale=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384):(o&128)>0&&(l.xScale=t.view.readInt16()/16384,l.scale01=t.view.readInt16()/16384,l.scale10=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384),this.components.push(l),a=!!(o&32)}if(o&256){this.instructionLength=t.view.readUint16(),this.instructions=[];for(let l=0;l<this.instructionLength;l+=1)this.instructions.push(t.view.readUint8())}}if(this.isComposite)for(let o=0;o<this.components.length;o+=1){const a=this.components[o],l=A.get(a.glyphIndex);if(l.getPathCommands(),l.points){let u;if(a.matchedPoints===void 0)u=this._transformPoints(l.points,a);else{Li(a.matchedPoints[0]>this.points.length-1||a.matchedPoints[1]>l.points.length-1,`Matched points out of range in ${this.name}`);const c=this.points[a.matchedPoints[0]];let g=l.points[a.matchedPoints[1]];const f={xScale:a.xScale,scale01:a.scale01,scale10:a.scale10,yScale:a.yScale,dx:0,dy:0};g=this._transformPoints([g],f)[0],f.dx=c.x-g.x,f.dy=c.y-g.y,u=this._transformPoints(l.points,f)}this.points=this.points.concat(u)}}const s=[],n=this._parseContours(this.points);for(let o=0,a=n.length;o<a;++o){const l=n[o];let u=l[l.length-1],c=l[0];u.onCurve?s.push({type:"M",x:u.x,y:u.y}):c.onCurve?s.push({type:"M",x:c.x,y:c.y}):s.push({type:"M",x:(u.x+c.x)*.5,y:(u.y+c.y)*.5});for(let g=0,f=l.length;g<f;++g)if(u=c,c=l[(g+1)%f],u.onCurve)s.push({type:"L",x:u.x,y:u.y});else{let d=c;c.onCurve||(d={x:(u.x+c.x)*.5,y:(u.y+c.y)*.5}),s.push({type:"Q",x1:u.x,y1:u.y,x:d.x,y:d.y})}s.push({type:"Z"})}this.pathCommands=s}}class xd extends fn{get length(){return this._sfnt.loca.locations.length}_get(t){const e=this._sfnt.loca.locations,A=e[t],i=new bd({index:t});return A!==e[t+1]&&i.parse(this._sfnt.glyf,A,this),i}}var Fd=Object.getOwnPropertyDescriptor,Sd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Fd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Mr=class extends Xt{static from(r){const t=r.reduce((A,i)=>A+i.byteLength,0),e=new Mr(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeBytes(A)}),e}_glyphs;get glyphs(){return this._glyphs??=new xd(this._sfnt)}};Mr=Sd([Gt("glyf")],Mr);var Md=Object.getOwnPropertyDescriptor,Rd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Md(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Dn=class extends Xt{};Dn=Rd([Gt("GPOS","gpos")],Dn);var Pd=Object.defineProperty,kd=Object.getOwnPropertyDescriptor,bA=(r,t,e,A)=>{for(var i=A>1?void 0:A?kd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Pd(t,e,i),i};let qe=class extends Xt{};bA([m("uint16")],qe.prototype,"majorVersion",2),bA([m("uint16")],qe.prototype,"minorVersion",2),bA([m("uint16")],qe.prototype,"scriptListOffset",2),bA([m("uint16")],qe.prototype,"featureListOffset",2),bA([m("uint16")],qe.prototype,"lookupListOffset",2),bA([m("uint16")],qe.prototype,"featureVariationsOffset",2),qe=bA([Gt("GSUB","gsub")],qe);var Ud=Object.defineProperty,Nd=Object.getOwnPropertyDescriptor,Pt=(r,t,e,A)=>{for(var i=A>1?void 0:A?Nd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Ud(t,e,i),i};let xt=class extends Xt{constructor(r=new ArrayBuffer(54),t){super(r,t,Math.min(54,r.byteLength-(t??0)))}};Pt([m("fixed")],xt.prototype,"version",2),Pt([m("fixed")],xt.prototype,"fontRevision",2),Pt([m("uint32")],xt.prototype,"checkSumAdjustment",2),Pt([m("uint32")],xt.prototype,"magickNumber",2),Pt([m("uint16")],xt.prototype,"flags",2),Pt([m("uint16")],xt.prototype,"unitsPerEm",2),Pt([m({type:"longDateTime"})],xt.prototype,"created",2),Pt([m({type:"longDateTime"})],xt.prototype,"modified",2),Pt([m("int16")],xt.prototype,"xMin",2),Pt([m("int16")],xt.prototype,"yMin",2),Pt([m("int16")],xt.prototype,"xMax",2),Pt([m("int16")],xt.prototype,"yMax",2),Pt([m("uint16")],xt.prototype,"macStyle",2),Pt([m("uint16")],xt.prototype,"lowestRecPPEM",2),Pt([m("int16")],xt.prototype,"fontDirectionHint",2),Pt([m("int16")],xt.prototype,"indexToLocFormat",2),Pt([m("int16")],xt.prototype,"glyphDataFormat",2),xt=Pt([Gt("head")],xt);var Td=Object.defineProperty,Ld=Object.getOwnPropertyDescriptor,ee=(r,t,e,A)=>{for(var i=A>1?void 0:A?Ld(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Td(t,e,i),i};let Ot=class extends Xt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};ee([m("fixed")],Ot.prototype,"version",2),ee([m("int16")],Ot.prototype,"ascent",2),ee([m("int16")],Ot.prototype,"descent",2),ee([m("int16")],Ot.prototype,"lineGap",2),ee([m("uint16")],Ot.prototype,"advanceWidthMax",2),ee([m("int16")],Ot.prototype,"minLeftSideBearing",2),ee([m("int16")],Ot.prototype,"minRightSideBearing",2),ee([m("int16")],Ot.prototype,"xMaxExtent",2),ee([m("int16")],Ot.prototype,"caretSlopeRise",2),ee([m("int16")],Ot.prototype,"caretSlopeRun",2),ee([m("int16")],Ot.prototype,"caretOffset",2),ee([m({type:"int16",size:4})],Ot.prototype,"reserved",2),ee([m("int16")],Ot.prototype,"metricDataFormat",2),ee([m("uint16")],Ot.prototype,"numOfLongHorMetrics",2),Ot=ee([Gt("hhea")],Ot);var Gd=Object.getOwnPropertyDescriptor,Od=(r,t,e,A)=>{for(var i=A>1?void 0:A?Gd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Rr=class extends Xt{static from(r){const t=r.length*4,e=new Rr(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeUint16(A.advanceWidth),e.view.writeUint16(A.leftSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.hhea.numOfLongHorMetrics;let e=0;const A=this.view;return A.seek(0),Array.from({length:r}).map((i,s)=>(s<t&&(e=A.readUint16()),{advanceWidth:e,leftSideBearing:A.readUint16()}))}};Rr=Od([Gt("hmtx")],Rr);var Hd=Object.getOwnPropertyDescriptor,Jd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Hd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let mn=class extends Xt{};mn=Jd([Gt("kern","kern")],mn);var Kd=Object.getOwnPropertyDescriptor,Yd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Kd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Pr=class extends Xt{static from(r,t=1){const e=r.length*(t?4:2),A=new Pr(new ArrayBuffer(e));return r.forEach(i=>{t?A.view.writeUint32(i):A.view.writeUint16(i/2)}),A}_locations;get locations(){return this._locations??=this.readLocations()}readLocations(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.head.indexToLocFormat,e=this.view;return e.seek(0),Array.from({length:r}).map(()=>t?e.readUint32():e.readUint16()*2)}};Pr=Yd([Gt("loca")],Pr);var Vd=Object.defineProperty,zd=Object.getOwnPropertyDescriptor,jt=(r,t,e,A)=>{for(var i=A>1?void 0:A?zd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Vd(t,e,i),i};let kt=class extends Xt{constructor(r=new ArrayBuffer(32),t){super(r,t,Math.min(32,r.byteLength-(t??0)))}};jt([m("fixed")],kt.prototype,"version",2),jt([m("uint16")],kt.prototype,"numGlyphs",2),jt([m("uint16")],kt.prototype,"maxPoints",2),jt([m("uint16")],kt.prototype,"maxContours",2),jt([m("uint16")],kt.prototype,"maxComponentPoints",2),jt([m("uint16")],kt.prototype,"maxComponentContours",2),jt([m("uint16")],kt.prototype,"maxZones",2),jt([m("uint16")],kt.prototype,"maxTwilightPoints",2),jt([m("uint16")],kt.prototype,"maxStorage",2),jt([m("uint16")],kt.prototype,"maxFunctionDefs",2),jt([m("uint16")],kt.prototype,"maxInstructionDefs",2),jt([m("uint16")],kt.prototype,"maxStackElements",2),jt([m("uint16")],kt.prototype,"maxSizeOfInstructions",2),jt([m("uint16")],kt.prototype,"maxComponentElements",2),jt([m("uint16")],kt.prototype,"maxComponentDepth",2),kt=jt([Gt("maxp")],kt);var Wd=Object.defineProperty,qd=Object.getOwnPropertyDescriptor,kr=(r,t,e,A)=>{for(var i=A>1?void 0:A?qd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Wd(t,e,i),i};const xl={0:"copyright",1:"fontFamily",2:"fontSubFamily",3:"uniqueSubFamily",4:"fullName",5:"version",6:"postScriptName",7:"tradeMark",8:"manufacturer",9:"designer",10:"description",11:"urlOfFontVendor",12:"urlOfFontDesigner",13:"licence",14:"urlOfLicence",16:"preferredFamily",17:"preferredSubFamily",18:"compatibleFull",19:"sampleText"},wn={Macintosh:1,Microsoft:3},Xd={Default:0},Fl={UCS2:1};let VA=class extends Xt{_names;get names(){return this._names??=this.readNames()}readNames(){const r=this.count;this.view.seek(6);const t=[];for(let o=0;o<r;++o)t.push({platform:this.view.readUint16(),encoding:this.view.readUint16(),language:this.view.readUint16(),nameId:this.view.readUint16(),length:this.view.readUint16(),offset:this.view.readUint16()});const e=this.stringOffset;for(let o=0;o<r;++o){const a=t[o];a.name=this.view.readBytes(e+a.offset,a.length)}let A=wn.Macintosh,i=Xd.Default,s=0;t.some(o=>o.platform===wn.Microsoft&&o.encoding===Fl.UCS2&&o.language===1033)&&(A=wn.Microsoft,i=Fl.UCS2,s=1033);const n={};for(let o=0;o<r;++o){const a=t[o];a.platform===A&&a.encoding===i&&a.language===s&&xl[a.nameId]&&(n[xl[a.nameId]]=s===0?id(a.name):rd(a.name))}return n}};kr([m("uint16")],VA.prototype,"format",2),kr([m("uint16")],VA.prototype,"count",2),kr([m("uint16")],VA.prototype,"stringOffset",2),VA=kr([Gt("name")],VA);var jd=Object.defineProperty,Zd=Object.getOwnPropertyDescriptor,at=(r,t,e,A)=>{for(var i=A>1?void 0:A?Zd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&jd(t,e,i),i};let ot=class extends Xt{get fontPANOSE(){return[this.bFamilyType,this.bSerifStyle,this.bWeight,this.bProportion,this.bContrast,this.bStrokeVariation,this.bArmStyle,this.bLetterform,this.bMidline,this.bXHeight]}};at([m("uint16")],ot.prototype,"version",2),at([m("int16")],ot.prototype,"xAvgCharWidth",2),at([m("uint16")],ot.prototype,"usWeightClass",2),at([m("uint16")],ot.prototype,"usWidthClass",2),at([m("uint16")],ot.prototype,"fsType",2),at([m("uint16")],ot.prototype,"ySubscriptXSize",2),at([m("uint16")],ot.prototype,"ySubscriptYSize",2),at([m("uint16")],ot.prototype,"ySubscriptXOffset",2),at([m("uint16")],ot.prototype,"ySubscriptYOffset",2),at([m("uint16")],ot.prototype,"ySuperscriptXSize",2),at([m("uint16")],ot.prototype,"ySuperscriptYSize",2),at([m("uint16")],ot.prototype,"ySuperscriptXOffset",2),at([m("uint16")],ot.prototype,"ySuperscriptYOffset",2),at([m("uint16")],ot.prototype,"yStrikeoutSize",2),at([m("uint16")],ot.prototype,"yStrikeoutPosition",2),at([m("uint16")],ot.prototype,"sFamilyClass",2),at([m({type:"uint8"})],ot.prototype,"bFamilyType",2),at([m({type:"uint8"})],ot.prototype,"bSerifStyle",2),at([m({type:"uint8"})],ot.prototype,"bWeight",2),at([m({type:"uint8"})],ot.prototype,"bProportion",2),at([m({type:"uint8"})],ot.prototype,"bContrast",2),at([m({type:"uint8"})],ot.prototype,"bStrokeVariation",2),at([m({type:"uint8"})],ot.prototype,"bArmStyle",2),at([m({type:"uint8"})],ot.prototype,"bLetterform",2),at([m({type:"uint8"})],ot.prototype,"bMidline",2),at([m({type:"uint8"})],ot.prototype,"bXHeight",2),at([m({type:"uint8",size:16})],ot.prototype,"ulUnicodeRange",2),at([m({type:"char",size:4})],ot.prototype,"achVendID",2),at([m("uint16")],ot.prototype,"fsSelection",2),at([m("uint16")],ot.prototype,"usFirstCharIndex",2),at([m("uint16")],ot.prototype,"usLastCharIndex",2),at([m("int16")],ot.prototype,"sTypoAscender",2),at([m("int16")],ot.prototype,"sTypoDescender",2),at([m("int16")],ot.prototype,"sTypoLineGap",2),at([m("uint16")],ot.prototype,"usWinAscent",2),at([m("uint16")],ot.prototype,"usWinDescent",2),at([m({offset:72,type:"uint8",size:8})],ot.prototype,"ulCodePageRange",2),at([m({offset:72,type:"int16"})],ot.prototype,"sxHeight",2),at([m("int16")],ot.prototype,"sCapHeight",2),at([m("uint16")],ot.prototype,"usDefaultChar",2),at([m("uint16")],ot.prototype,"usBreakChar",2),at([m("uint16")],ot.prototype,"usMaxContext",2),ot=at([Gt("OS/2","os2")],ot);var $d=Object.defineProperty,tI=Object.getOwnPropertyDescriptor,Me=(r,t,e,A)=>{for(var i=A>1?void 0:A?tI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&$d(t,e,i),i};let Ie=class extends Xt{constructor(r=new ArrayBuffer(32),t,e){super(r,t,e)}};Me([m("fixed")],Ie.prototype,"format",2),Me([m("fixed")],Ie.prototype,"italicAngle",2),Me([m("int16")],Ie.prototype,"underlinePosition",2),Me([m("int16")],Ie.prototype,"underlineThickness",2),Me([m("uint32")],Ie.prototype,"isFixedPitch",2),Me([m("uint32")],Ie.prototype,"minMemType42",2),Me([m("uint32")],Ie.prototype,"maxMemType42",2),Me([m("uint32")],Ie.prototype,"minMemType1",2),Me([m("uint32")],Ie.prototype,"maxMemType1",2),Ie=Me([Gt("post")],Ie);var eI=Object.defineProperty,AI=Object.getOwnPropertyDescriptor,Ae=(r,t,e,A)=>{for(var i=A>1?void 0:A?AI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&eI(t,e,i),i};let Ht=class extends Xt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};Ae([m("fixed")],Ht.prototype,"version",2),Ae([m("int16")],Ht.prototype,"vertTypoAscender",2),Ae([m("int16")],Ht.prototype,"vertTypoDescender",2),Ae([m("int16")],Ht.prototype,"vertTypoLineGap",2),Ae([m("int16")],Ht.prototype,"advanceHeightMax",2),Ae([m("int16")],Ht.prototype,"minTopSideBearing",2),Ae([m("int16")],Ht.prototype,"minBottomSideBearing",2),Ae([m("int16")],Ht.prototype,"yMaxExtent",2),Ae([m("int16")],Ht.prototype,"caretSlopeRise",2),Ae([m("int16")],Ht.prototype,"caretSlopeRun",2),Ae([m("int16")],Ht.prototype,"caretOffset",2),Ae([m({type:"int16",size:4})],Ht.prototype,"reserved",2),Ae([m("int16")],Ht.prototype,"metricDataFormat",2),Ae([m("int16")],Ht.prototype,"numOfLongVerMetrics",2),Ht=Ae([Gt("vhea")],Ht);var iI=Object.getOwnPropertyDescriptor,rI=(r,t,e,A)=>{for(var i=A>1?void 0:A?iI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Ur=class extends Xt{static from(r){const t=r.length*4,e=new Ur(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeUint16(A.advanceHeight),e.view.writeInt16(A.topSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.vhea?.numOfLongVerMetrics??0,e=this.view;e.seek(0);let A=0;return Array.from({length:r}).map((i,s)=>(s<t&&(A=e.readUint16()),{advanceHeight:A,topSideBearing:e.readUint8()}))}};Ur=rI([Gt("vmtx")],Ur);var sI=Object.defineProperty,zi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&sI(t,e,i),i};class ye extends wr{format="TrueType";mimeType="font/ttf";_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([65536,1953658213,1954115633]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(HA(t).getUint32(0))}static checksum(t){const e=HA(t);let A=e.byteLength;for(;A%4;)A++;let i=0;for(let s=0,n=A/4;s<n;s+=4)s*4<A-4&&(i+=e.getUint32(s*4,!1));return i&4294967295}static from(t){const e=c=>c+3&-4,A=t.tableViews.size,i=Array.from(t.tableViews.values()).reduce((c,g)=>c+e(g.byteLength),0),s=new this(new ArrayBuffer(12+A*16+i));s.scalerType=65536,s.numTables=A;const n=Math.log(2);s.searchRange=Math.floor(Math.log(A)/n)*16,s.entrySelector=Math.floor(s.searchRange/n),s.rangeShift=A*16-s.searchRange;let o=12+A*16,a=0;const l=s.getDirectories();t.tableViews.forEach((c,g)=>{const f=l[a++];f.tag=g,f.checkSum=this.checksum(c),f.offset=o,f.length=c.byteLength,s.view.writeBytes(c,o),o+=e(f.length)});const u=s.createSFNT().head;return u.checkSumAdjustment=0,u.checkSumAdjustment=2981146554-this.checksum(s.view),s}getDirectories(){let t=this.view.byteOffset+12;return Array.from({length:this.numTables},()=>{const e=new JA(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Se(this.getDirectories().reduce((t,e)=>(t[e.tag]=new DataView(this.view.buffer,this.view.byteOffset+e.offset,e.length),t),{}))}}zi([m("uint32")],ye.prototype,"scalerType"),zi([m("uint16")],ye.prototype,"numTables"),zi([m("uint16")],ye.prototype,"searchRange"),zi([m("uint16")],ye.prototype,"entrySelector"),zi([m("uint16")],ye.prototype,"rangeShift");class vn extends ye{format="OpenType";mimeType="font/otf";static signature=new Set([1330926671]);static from(t){return super.from(t)}}var nI=Object.defineProperty,Wi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&nI(t,e,i),i};class xA extends ce{constructor(t,e){super(t,e,20)}}Wi([m({type:"char",size:4})],xA.prototype,"tag"),Wi([m("uint32")],xA.prototype,"offset"),Wi([m("uint32")],xA.prototype,"compLength"),Wi([m("uint32")],xA.prototype,"origLength"),Wi([m("uint32")],xA.prototype,"origChecksum");var oI=Object.defineProperty,he=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&oI(t,e,i),i};const ne=class $n extends wr{format="WOFF";mimeType="font/woff";get subfontFormat(){return ye.is(this.flavor)?"TrueType":vn.is(this.flavor)?"OpenType":"Open"}_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([2001684038]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(HA(t).getUint32(0))}static checkSum(t){const e=HA(t),A=e.byteLength,i=Math.floor(A/4);let s=0,n=0;for(;n<i;)s+=e.getUint32(4*n++,!1);let o=A-i*4;if(o){let a=i*4;for(;o>0;)s+=e.getUint8(a)<<o*8,a++,o--}return s%4294967296}static from(t,e=new ArrayBuffer(0)){const A=c=>c+3&-4,i=[];t.tableViews.forEach((c,g)=>{const f=HA(Xf(new Uint8Array(c.buffer,c.byteOffset,c.byteLength)));i.push({tag:g,view:f.byteLength<c.byteLength?f:c,rawView:c})});const s=i.length,n=i.reduce((c,g)=>c+A(g.view.byteLength),0),o=new $n(new ArrayBuffer(44+20*s+n+e.byteLength));o.signature=2001684038,o.flavor=65536,o.length=o.view.byteLength,o.numTables=s,o.totalSFNTSize=12+16*s+i.reduce((c,g)=>c+A(g.rawView.byteLength),0);let a=44+s*20,l=0;const u=o.getDirectories();return i.forEach(c=>{const g=u[l++];g.tag=c.tag,g.offset=a,g.compLength=c.view.byteLength,g.origChecksum=$n.checkSum(c.rawView),g.origLength=c.rawView.byteLength,o.view.writeBytes(c.view,a),a+=A(g.compLength)}),o.view.writeBytes(e),o}getDirectories(){let t=44;return Array.from({length:this.numTables},()=>{const e=new xA(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Se(this.getDirectories().reduce((t,e)=>{const A=e.tag,i=this.view.byteOffset+e.offset,s=e.compLength,n=e.origLength,o=i+s;return t[A]=s>=n?new DataView(this.view.buffer,i,s):new DataView(jf(new Uint8Array(this.view.buffer.slice(i,o))).buffer),t},{}))}};he([m("uint32")],ne.prototype,"signature"),he([m("uint32")],ne.prototype,"flavor"),he([m("uint32")],ne.prototype,"length"),he([m("uint16")],ne.prototype,"numTables"),he([m("uint16")],ne.prototype,"reserved"),he([m("uint32")],ne.prototype,"totalSFNTSize"),he([m("uint16")],ne.prototype,"majorVersion"),he([m("uint16")],ne.prototype,"minorVersion"),he([m("uint32")],ne.prototype,"metaOffset"),he([m("uint32")],ne.prototype,"metaLength"),he([m("uint32")],ne.prototype,"metaOrigLength"),he([m("uint32")],ne.prototype,"privOffset"),he([m("uint32")],ne.prototype,"privLength");let Nr=ne;function Sl(r,t=!0){if(ye.is(r))return new ye(r);if(vn.is(r))return new vn(r);if(Nr.is(r))return new Nr(r);if(t)throw new Error("Failed to parseFont")}function Ml(r,t=!0){const e=Sl(r,!1);if(e)return e;if(t)throw new Error("Failed to parseFont")}class Tr{static defaultRequestInit={cache:"force-cache"};fallbackFont;loading=new Map;loaded=new Map;familyToUrl=new Map;setFallbackFont(t){this.fallbackFont=t}async loadFallbackFont(t,e={}){this.fallbackFont=await this.load(t,e)}_createRequest(t,e){const A=new AbortController;return{url:t,when:fetch(t,{...Tr.defaultRequestInit,...e,signal:A.signal}).then(i=>i.arrayBuffer()),cancel:()=>A.abort()}}injectFontFace(t,e){return document.fonts.add(new FontFace(t,e)),this}injectStyleTag(t,e){const A=document.createElement("style");return A.appendChild(document.createTextNode(`@font-face {
|
|
858
|
+
}`})),Si([w()],h.ZoomBlurEffect.prototype,"center",2),Si([w()],h.ZoomBlurEffect.prototype,"innerRadius",2),Si([w()],h.ZoomBlurEffect.prototype,"radius",2),Si([w()],h.ZoomBlurEffect.prototype,"strength",2),h.ZoomBlurEffect=Si([nt("ZoomBlurEffect")],h.ZoomBlurEffect);var Ff=Object.defineProperty,Be=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Ff(t,e,i),i};class Vt extends tA{constructor(t){super(),this.parent=t}_texture;_setProperties(t){return super.setProperties(t)}setProperties(t){return this._setProperties(lt(t)?void 0:EA(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"color":case"cropRect":case"stretchRect":case"dpi":case"rotateWithShape":case"tile":case"opacity":case"enabled":this.parent.requestRedraw();break;case"image":case"linearGradient":case"radialGradient":this._updateTexture();break}}async loadTexture(){return this.linearGradient||this.radialGradient?new fr(this.linearGradient??this.radialGradient,this.parent.size.width,this.parent.size.height):lt(this.image)?void 0:(this.parent.tree?.log(`load image ${this.image}`),await Ue.texture.load(this.image))}async _updateTexture(){this._texture=await this.loadTexture(),this.parent.requestRedraw()}canDraw(){return!!(this.enabled&&(this._texture||this.color))}_getDrawOptions(){let t=!1;const{width:e,height:A}=this.parent.size,i=new Yt().scale(1/e,1/A);if(this.cropRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.cropRect;i.scale(Math.abs(1-(s+o)),Math.abs(1-(n+a))).translate(s,n),t=!0}if(this.tile){const{translateX:s=0,translateY:n=0,scaleX:o=1,scaleY:a=1}=this.tile;i.translate(-s/e,-n/A).scale(1/o,1/a),t=!0}else if(this.stretchRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.stretchRect;i.scale(Math.abs(1-(-s+-o)),Math.abs(1-(-n+-a))).translate(-s,-n),t=!0}return{disableWrapMode:t,uvTransform:i}}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:A}=this._getDrawOptions();t.uvTransform=e,t.fillStyle=this._texture??this.color,t.fill({disableWrapMode:A})}}Be([w({fallback:!0})],Vt.prototype,"enabled"),Be([w()],Vt.prototype,"color"),Be([w()],Vt.prototype,"image"),Be([w()],Vt.prototype,"linearGradient"),Be([w()],Vt.prototype,"radialGradient"),Be([w()],Vt.prototype,"cropRect"),Be([w()],Vt.prototype,"stretchRect"),Be([w()],Vt.prototype,"dpi"),Be([w()],Vt.prototype,"rotateWithShape"),Be([w()],Vt.prototype,"tile"),Be([w()],Vt.prototype,"opacity");var Sf=Object.defineProperty,Mf=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Sf(t,e,i),i};class $s extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:uc(t))}}Mf([w()],$s.prototype,"fillWithShape");var Rf=Object.defineProperty,Pf=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Rf(t,e,i),i};class tn extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:hc(t))}}Pf([w()],tn.prototype,"fillWithShape");var kf=Object.defineProperty,en=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&kf(t,e,i),i};class Mi extends Vt{setProperties(t){return super._setProperties(lt(t)?void 0:gc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"width":case"style":case"enabled":this.parent.requestRedraw();break}}canDraw(){return!!(this.enabled&&(this.width||this.color||super.canDraw()))}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:A}=this._getDrawOptions();t.lineWidth=this.width||1,t.uvTransform=e,t.strokeStyle=this._texture??this.color,t.stroke({disableWrapMode:A})}}en([w({fallback:"#00000000"})],Mi.prototype,"color"),en([w({fallback:0})],Mi.prototype,"width"),en([w({fallback:"solid"})],Mi.prototype,"style");var Uf=Object.defineProperty,Ri=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Uf(t,e,i),i};class DA extends tA{constructor(t){super(),this.parent=t}setProperties(t){return super.setProperties(lt(t)?void 0:fc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"color":case"blur":case"offsetX":case"offsetY":this.updateEffect();break}}updateEffect(){const t="__$shadow";let e=this.parent.getNode(t);this.blur||this.offsetX||this.offsetY?(e||(e=new h.DropShadowEffect({name:t}),this.parent.appendChild(e,"back")),e.setProperties(this.getProperties())):e&&this.parent.removeChild(e)}}Ri([w({fallback:!0})],DA.prototype,"enabled"),Ri([w({fallback:"#000000FF"})],DA.prototype,"color"),Ri([w({fallback:0})],DA.prototype,"blur"),Ri([w({fallback:0})],DA.prototype,"offsetY"),Ri([w({fallback:0})],DA.prototype,"offsetX");var Nf=Object.defineProperty,Pi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Nf(t,e,i),i};class mA extends tA{constructor(t){super(),this.parent=t,this._updatePath2DSet()}_path2DSet=new iA;setProperties(t){return super.setProperties(lt(t)?void 0:Ic(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"svg":case"paths":case"viewBox":case"enabled":this._updatePath2DSet(),this.parent.requestRedraw();break}}_updatePath2DSet(){let t;if(this.svg){const n=Hs(this.svg);this._path2DSet=Ks(n),t=this._path2DSet.viewBox}else this.paths?.forEach((n,o)=>{const{data:a,...l}=n,u=new Mt;u.style=l,u.addData(a),this._path2DSet.paths[o]=u});if(!t){const n=this._path2DSet.getBoundingBox();t=n?[n.x,n.y,n.width,n.height]:[0,0,1,1]}const[e,A,i,s]=t;this._path2DSet.paths.forEach(n=>{n.applyTransform(new Lt().translate(-e,-A).scale(1/i,1/s))})}draw(){if(this.enabled&&this._path2DSet.paths.length){const t=this.parent.context,{width:e,height:A}=this.parent.size;this._path2DSet.paths.forEach(i=>{t.addPath(i.clone().applyTransform(new Lt().scale(e,A)))})}else this.drawRect()}drawRect(){const t=this.parent.context,{width:e,height:A}=this.parent.size,{borderRadius:i}=this.parent.style;e&&A&&(i?t.roundRect(0,0,e,A,i):t.rect(0,0,e,A))}}Pi([w({fallback:!0})],mA.prototype,"enabled"),Pi([w()],mA.prototype,"preset"),Pi([w()],mA.prototype,"svg"),Pi([w()],mA.prototype,"viewBox"),Pi([w()],mA.prototype,"paths");class ki extends He{constructor(t){super(),this.setProperties(t)}}const cl=po();for(const r in cl){const t=cl[r];sr(ki,r,{fallback:t})}var zt=Uint8Array,ue=Uint16Array,An=Int32Array,yr=new zt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Dr=new zt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),rn=new zt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),hl=function(r,t){for(var e=new ue(31),A=0;A<31;++A)e[A]=t+=1<<r[A-1];for(var i=new An(e[30]),A=1;A<30;++A)for(var s=e[A];s<e[A+1];++s)i[s]=s-e[A]<<5|A;return{b:e,r:i}},gl=hl(yr,2),fl=gl.b,sn=gl.r;fl[28]=258,sn[258]=28;for(var dl=hl(Dr,0),Tf=dl.b,Il=dl.r,nn=new ue(32768),Et=0;Et<32768;++Et){var nA=(Et&43690)>>1|(Et&21845)<<1;nA=(nA&52428)>>2|(nA&13107)<<2,nA=(nA&61680)>>4|(nA&3855)<<4,nn[Et]=((nA&65280)>>8|(nA&255)<<8)>>1}for(var Fe=function(r,t,e){for(var A=r.length,i=0,s=new ue(t);i<A;++i)r[i]&&++s[r[i]-1];var n=new ue(t);for(i=1;i<t;++i)n[i]=n[i-1]+s[i-1]<<1;var o;if(e){o=new ue(1<<t);var a=15-t;for(i=0;i<A;++i)if(r[i])for(var l=i<<4|r[i],u=t-r[i],c=n[r[i]-1]++<<u,g=c|(1<<u)-1;c<=g;++c)o[nn[c]>>a]=l}else for(o=new ue(A),i=0;i<A;++i)r[i]&&(o[i]=nn[n[r[i]-1]++]>>15-r[i]);return o},oA=new zt(288),Et=0;Et<144;++Et)oA[Et]=8;for(var Et=144;Et<256;++Et)oA[Et]=9;for(var Et=256;Et<280;++Et)oA[Et]=7;for(var Et=280;Et<288;++Et)oA[Et]=8;for(var Ui=new zt(32),Et=0;Et<32;++Et)Ui[Et]=5;var Lf=Fe(oA,9,0),Gf=Fe(oA,9,1),Of=Fe(Ui,5,0),Hf=Fe(Ui,5,1),on=function(r){for(var t=r[0],e=1;e<r.length;++e)r[e]>t&&(t=r[e]);return t},Ce=function(r,t,e){var A=t/8|0;return(r[A]|r[A+1]<<8)>>(t&7)&e},an=function(r,t){var e=t/8|0;return(r[e]|r[e+1]<<8|r[e+2]<<16)>>(t&7)},ln=function(r){return(r+7)/8|0},pl=function(r,t,e){return(e==null||e>r.length)&&(e=r.length),new zt(r.subarray(t,e))},Jf=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Qe=function(r,t,e){var A=new Error(t||Jf[r]);if(A.code=r,Error.captureStackTrace&&Error.captureStackTrace(A,Qe),!e)throw A;return A},Kf=function(r,t,e,A){var i=r.length,s=0;if(!i||t.f&&!t.l)return e||new zt(0);var n=!e,o=n||t.i!=2,a=t.i;n&&(e=new zt(i*3));var l=function(Nt){var ct=e.length;if(Nt>ct){var yt=new zt(Math.max(ct*2,Nt));yt.set(e),e=yt}},u=t.f||0,c=t.p||0,g=t.b||0,f=t.l,d=t.d,B=t.m,I=t.n,F=i*8;do{if(!f){u=Ce(r,c,1);var b=Ce(r,c+1,3);if(c+=3,b)if(b==1)f=Gf,d=Hf,B=9,I=5;else if(b==2){var D=Ce(r,c,31)+257,S=Ce(r,c+10,15)+4,M=D+Ce(r,c+5,31)+1;c+=14;for(var V=new zt(M),et=new zt(19),z=0;z<S;++z)et[rn[z]]=Ce(r,c+z*3,7);c+=S*3;for(var J=on(et),$=(1<<J)-1,K=Fe(et,J,1),z=0;z<M;){var L=K[Ce(r,c,$)];c+=L&15;var y=L>>4;if(y<16)V[z++]=y;else{var it=0,G=0;for(y==16?(G=3+Ce(r,c,3),c+=2,it=V[z-1]):y==17?(G=3+Ce(r,c,7),c+=3):y==18&&(G=11+Ce(r,c,127),c+=7);G--;)V[z++]=it}}var W=V.subarray(0,D),At=V.subarray(D);B=on(W),I=on(At),f=Fe(W,B,1),d=Fe(At,I,1)}else Qe(1);else{var y=ln(c)+4,_=r[y-4]|r[y-3]<<8,Q=y+_;if(Q>i){a&&Qe(0);break}o&&l(g+_),e.set(r.subarray(y,Q),g),t.b=g+=_,t.p=c=Q*8,t.f=u;continue}if(c>F){a&&Qe(0);break}}o&&l(g+131072);for(var T=(1<<B)-1,tt=(1<<I)-1,k=c;;k=c){var it=f[an(r,c)&T],P=it>>4;if(c+=it&15,c>F){a&&Qe(0);break}if(it||Qe(2),P<256)e[g++]=P;else if(P==256){k=c,f=null;break}else{var q=P-254;if(P>264){var z=P-257,Z=yr[z];q=Ce(r,c,(1<<Z)-1)+fl[z],c+=Z}var st=d[an(r,c)&tt],X=st>>4;st||Qe(3),c+=st&15;var At=Tf[X];if(X>3){var Z=Dr[X];At+=an(r,c)&(1<<Z)-1,c+=Z}if(c>F){a&&Qe(0);break}o&&l(g+131072);var It=g+q;if(g<At){var ie=s-At,re=Math.min(At,It);for(ie+g<0&&Qe(3);g<re;++g)e[g]=A[ie+g]}for(;g<It;++g)e[g]=e[g-At]}}t.l=f,t.p=k,t.b=g,t.f=u,f&&(u=1,t.m=B,t.d=d,t.n=I)}while(!u);return g!=e.length&&n?pl(e,0,g):e.subarray(0,g)},We=function(r,t,e){e<<=t&7;var A=t/8|0;r[A]|=e,r[A+1]|=e>>8},Ni=function(r,t,e){e<<=t&7;var A=t/8|0;r[A]|=e,r[A+1]|=e>>8,r[A+2]|=e>>16},un=function(r,t){for(var e=[],A=0;A<r.length;++A)r[A]&&e.push({s:A,f:r[A]});var i=e.length,s=e.slice();if(!i)return{t:Ql,l:0};if(i==1){var n=new zt(e[0].s+1);return n[e[0].s]=1,{t:n,l:1}}e.sort(function(Q,D){return Q.f-D.f}),e.push({s:-1,f:25001});var o=e[0],a=e[1],l=0,u=1,c=2;for(e[0]={s:-1,f:o.f+a.f,l:o,r:a};u!=i-1;)o=e[e[l].f<e[c].f?l++:c++],a=e[l!=u&&e[l].f<e[c].f?l++:c++],e[u++]={s:-1,f:o.f+a.f,l:o,r:a};for(var g=s[0].s,A=1;A<i;++A)s[A].s>g&&(g=s[A].s);var f=new ue(g+1),d=cn(e[u-1],f,0);if(d>t){var A=0,B=0,I=d-t,F=1<<I;for(s.sort(function(D,S){return f[S.s]-f[D.s]||D.f-S.f});A<i;++A){var b=s[A].s;if(f[b]>t)B+=F-(1<<d-f[b]),f[b]=t;else break}for(B>>=I;B>0;){var y=s[A].s;f[y]<t?B-=1<<t-f[y]++-1:++A}for(;A>=0&&B;--A){var _=s[A].s;f[_]==t&&(--f[_],++B)}d=t}return{t:new zt(f),l:d}},cn=function(r,t,e){return r.s==-1?Math.max(cn(r.l,t,e+1),cn(r.r,t,e+1)):t[r.s]=e},El=function(r){for(var t=r.length;t&&!r[--t];);for(var e=new ue(++t),A=0,i=r[0],s=1,n=function(a){e[A++]=a},o=1;o<=t;++o)if(r[o]==i&&o!=t)++s;else{if(!i&&s>2){for(;s>138;s-=138)n(32754);s>2&&(n(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(n(i),--s;s>6;s-=6)n(8304);s>2&&(n(s-3<<5|8208),s=0)}for(;s--;)n(i);s=1,i=r[o]}return{c:e.subarray(0,A),n:t}},Ti=function(r,t){for(var e=0,A=0;A<t.length;++A)e+=r[A]*t[A];return e},Bl=function(r,t,e){var A=e.length,i=ln(t+2);r[i]=A&255,r[i+1]=A>>8,r[i+2]=r[i]^255,r[i+3]=r[i+1]^255;for(var s=0;s<A;++s)r[i+s+4]=e[s];return(i+4+A)*8},Cl=function(r,t,e,A,i,s,n,o,a,l,u){We(t,u++,e),++i[256];for(var c=un(i,15),g=c.t,f=c.l,d=un(s,15),B=d.t,I=d.l,F=El(g),b=F.c,y=F.n,_=El(B),Q=_.c,D=_.n,S=new ue(19),M=0;M<b.length;++M)++S[b[M]&31];for(var M=0;M<Q.length;++M)++S[Q[M]&31];for(var V=un(S,7),et=V.t,z=V.l,J=19;J>4&&!et[rn[J-1]];--J);var $=l+5<<3,K=Ti(i,oA)+Ti(s,Ui)+n,L=Ti(i,g)+Ti(s,B)+n+14+3*J+Ti(S,et)+2*S[16]+3*S[17]+7*S[18];if(a>=0&&$<=K&&$<=L)return Bl(t,u,r.subarray(a,a+l));var it,G,W,At;if(We(t,u,1+(L<K)),u+=2,L<K){it=Fe(g,f,0),G=g,W=Fe(B,I,0),At=B;var T=Fe(et,z,0);We(t,u,y-257),We(t,u+5,D-1),We(t,u+10,J-4),u+=14;for(var M=0;M<J;++M)We(t,u+3*M,et[rn[M]]);u+=3*J;for(var tt=[b,Q],k=0;k<2;++k)for(var P=tt[k],M=0;M<P.length;++M){var q=P[M]&31;We(t,u,T[q]),u+=et[q],q>15&&(We(t,u,P[M]>>5&127),u+=P[M]>>12)}}else it=Lf,G=oA,W=Of,At=Ui;for(var M=0;M<o;++M){var Z=A[M];if(Z>255){var q=Z>>18&31;Ni(t,u,it[q+257]),u+=G[q+257],q>7&&(We(t,u,Z>>23&31),u+=yr[q]);var st=Z&31;Ni(t,u,W[st]),u+=At[st],st>3&&(Ni(t,u,Z>>5&8191),u+=Dr[st])}else Ni(t,u,it[Z]),u+=G[Z]}return Ni(t,u,it[256]),u+G[256]},Yf=new An([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ql=new zt(0),Vf=function(r,t,e,A,i,s){var n=s.z||r.length,o=new zt(A+n+5*(1+Math.ceil(n/7e3))+i),a=o.subarray(A,o.length-i),l=s.l,u=(s.r||0)&7;if(t){u&&(a[0]=s.r>>3);for(var c=Yf[t-1],g=c>>13,f=c&8191,d=(1<<e)-1,B=s.p||new ue(32768),I=s.h||new ue(d+1),F=Math.ceil(e/3),b=2*F,y=function(Tt){return(r[Tt]^r[Tt+1]<<F^r[Tt+2]<<b)&d},_=new An(25e3),Q=new ue(288),D=new ue(32),S=0,M=0,V=s.i||0,et=0,z=s.w||0,J=0;V+2<n;++V){var $=y(V),K=V&32767,L=I[$];if(B[K]=L,I[$]=K,z<=V){var it=n-V;if((S>7e3||et>24576)&&(it>423||!l)){u=Cl(r,a,0,_,Q,D,M,et,J,V-J,u),et=S=M=0,J=V;for(var G=0;G<286;++G)Q[G]=0;for(var G=0;G<30;++G)D[G]=0}var W=2,At=0,T=f,tt=K-L&32767;if(it>2&&$==y(V-tt))for(var k=Math.min(g,it)-1,P=Math.min(32767,V),q=Math.min(258,it);tt<=P&&--T&&K!=L;){if(r[V+W]==r[V+W-tt]){for(var Z=0;Z<q&&r[V+Z]==r[V+Z-tt];++Z);if(Z>W){if(W=Z,At=tt,Z>k)break;for(var st=Math.min(tt,Z-2),X=0,G=0;G<st;++G){var It=V-tt+G&32767,ie=B[It],re=It-ie&32767;re>X&&(X=re,L=It)}}}K=L,L=B[K],tt+=K-L&32767}if(At){_[et++]=268435456|sn[W]<<18|Il[At];var Nt=sn[W]&31,ct=Il[At]&31;M+=yr[Nt]+Dr[ct],++Q[257+Nt],++D[ct],z=V+W,++S}else _[et++]=r[V],++Q[r[V]]}}for(V=Math.max(V,z);V<n;++V)_[et++]=r[V],++Q[r[V]];u=Cl(r,a,l,_,Q,D,M,et,J,V-J,u),l||(s.r=u&7|a[u/8|0]<<3,u-=7,s.h=I,s.p=B,s.i=V,s.w=z)}else{for(var V=s.w||0;V<n+l;V+=65535){var yt=V+65535;yt>=n&&(a[u/8|0]=l,yt=n),u=Bl(a,u+1,r.subarray(V,yt))}s.i=n}return pl(o,0,A+ln(u)+i)},yl=function(){var r=1,t=0;return{p:function(e){for(var A=r,i=t,s=e.length|0,n=0;n!=s;){for(var o=Math.min(n+2655,s);n<o;++n)i+=A+=e[n];A=(A&65535)+15*(A>>16),i=(i&65535)+15*(i>>16)}r=A,t=i},d:function(){return r%=65521,t%=65521,(r&255)<<24|(r&65280)<<8|(t&255)<<8|t>>8}}},zf=function(r,t,e,A,i){if(!i&&(i={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),n=new zt(s.length+r.length);n.set(s),n.set(r,s.length),r=n,i.w=s.length}return Vf(r,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+t.mem,e,A,i)},Dl=function(r,t,e){for(;e;++t)r[t]=e,e>>>=8},Wf=function(r,t){var e=t.level,A=e==0?0:e<6?1:e==9?3:2;if(r[0]=120,r[1]=A<<6|(t.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,t.dictionary){var i=yl();i.p(t.dictionary),Dl(r,2,i.d())}},qf=function(r,t){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&Qe(6,"invalid zlib data"),(r[1]>>5&1)==1&&Qe(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function Xf(r,t){t||(t={});var e=yl();e.p(r);var A=zf(r,t,t.dictionary?6:2,4);return Wf(A,t),Dl(A,A.length-4,e.d()),A}function jf(r,t){return Kf(r.subarray(qf(r),-4),{i:2},t,t)}var Zf=typeof TextDecoder<"u"&&new TextDecoder,$f=0;try{Zf.decode(Ql,{stream:!0}),$f=1}catch{}const td="modern-font";function Li(r,t){if(!r)throw new Error(`[${td}] ${t}`)}function ed(r){if("buffer"in r){const t=r.buffer;return r.byteOffset>0||r.byteLength<r.buffer.byteLength?t.slice(r.byteOffset,r.byteOffset+r.byteLength):t}else return r}function HA(r){return"buffer"in r?new DataView(r.buffer,r.byteOffset,r.byteLength):new DataView(r)}function Ad(r){let t="";for(let e=0,A=r.length,i;e<A;e++)i=r.charCodeAt(e),i!==0&&(t+=String.fromCharCode(i));return t}function mr(r){r=Ad(r);const t=[];for(let e=0,A=r.length,i;e<A;e++)i=r.charCodeAt(e),t.push(i>>8),t.push(i&255);return t}function id(r){let t="";for(let e=0,A=r.length;e<A;e++)r[e]<127?t+=String.fromCharCode(r[e]):t+=`%${(256+r[e]).toString(16).slice(1)}`;return unescape(t)}function rd(r){let t="";for(let e=0,A=r.length;e<A;e+=2)t+=String.fromCharCode((r[e]<<8)+r[e+1]);return t}var sd=Object.defineProperty,Wt=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&sd(t,e,i),i};const Gi={int8:1,int16:2,int32:4,uint8:1,uint16:2,uint32:4,float32:4,float64:8,fixed:4,longDateTime:8,char:1};function qt(){return function(r,t){Object.defineProperty(r.constructor.prototype,t,{get(){if(typeof t=="string"){if(t.startsWith("read"))return(...e)=>this.read(t.substring(4).toLowerCase(),...e);if(t.startsWith("write"))return(...e)=>this.write(t.substring(5).toLowerCase(),...e)}},configurable:!0,enumerable:!0})}}class Rt extends DataView{constructor(t,e,A,i){super(ed(t),e,A),this.littleEndian=i}cursor=0;readColumn(t){if(t.size){const e=Array.from({length:t.size},(A,i)=>this.read(t.type,t.offset+i));switch(t.type){case"char":return e.join("");default:return e}}else return this.read(t.type,t.offset)}writeColumn(t,e){t.size?Array.from({length:t.size},(A,i)=>{this.write(t.type,e[i],t.offset+i)}):this.write(t.type,e,t.offset)}read(t,e=this.cursor,A=this.littleEndian){switch(t){case"char":return this.readChar(e);case"fixed":return this.readFixed(e,A);case"longDateTime":return this.readLongDateTime(e,A)}const i=`get${t.replace(/^\S/,a=>a.toUpperCase())}`,s=this,o=s[i]?.bind(s)?.(e,A);return this.cursor+=Gi[t],o}readUint24(t=this.cursor){const[e,A,i]=this.readBytes(t,3);return(e<<16)+(A<<8)+i}readBytes(t,e){e==null&&(e=t,t=this.cursor);const A=[];for(let i=0;i<e;++i)A.push(this.getUint8(t+i));return this.cursor=t+e,A}readString(t,e){const A=this.readBytes(t,e);let i="";for(let s=0,n=A.length;s<n;s++)i+=String.fromCharCode(A[s]);return i}readFixed(t,e){const A=this.readInt32(t,e)/65536;return Math.ceil(A*1e5)/1e5}readLongDateTime(t=this.cursor,e){const A=this.readUint32(t+4,e),i=new Date;return i.setTime(A*1e3+-20775456e5),i}readChar(t){return this.readString(t,1)}write(t,e,A=this.cursor,i=this.littleEndian){switch(t){case"char":return this.writeChar(e,A);case"fixed":return this.writeFixed(e,A);case"longDateTime":return this.writeLongDateTime(e,A)}const s=`set${t.replace(/^\S/,l=>l.toUpperCase())}`,n=this,a=n[s]?.bind(n)?.(A,e,i);return this.cursor+=Gi[t.toLowerCase()],a}writeString(t="",e=this.cursor){const A=t.replace(/[^\x00-\xFF]/g,"11").length;this.seek(e);for(let i=0,s=t.length,n;i<s;++i)n=t.charCodeAt(i)||0,n>127?this.writeUint16(n):this.writeUint8(n);return this.cursor+=A,this}writeChar(t,e){return this.writeString(t,e)}writeFixed(t,e){return this.writeInt32(Math.round(t*65536),e),this}writeLongDateTime(t,e=this.cursor){typeof t>"u"?t=-20775456e5:typeof t.getTime=="function"?t=t.getTime():/^\d+$/.test(t)?t=+t:t=Date.parse(t);const i=Math.round((t- -20775456e5)/1e3);return this.writeUint32(0,e),this.writeUint32(i,e+4),this}writeBytes(t,e=this.cursor){let A;if(Array.isArray(t)){A=t.length;for(let i=0;i<A;++i)this.setUint8(e+i,t[i])}else{const i=HA(t);A=i.byteLength;for(let s=0;s<A;++s)this.setUint8(e+s,i.getUint8(s))}return this.cursor=e+A,this}seek(t){return this.cursor=t,this}}Wt([qt()],Rt.prototype,"readInt8"),Wt([qt()],Rt.prototype,"readInt16"),Wt([qt()],Rt.prototype,"readInt32"),Wt([qt()],Rt.prototype,"readUint8"),Wt([qt()],Rt.prototype,"readUint16"),Wt([qt()],Rt.prototype,"readUint32"),Wt([qt()],Rt.prototype,"readFloat32"),Wt([qt()],Rt.prototype,"readFloat64"),Wt([qt()],Rt.prototype,"writeInt8"),Wt([qt()],Rt.prototype,"writeInt16"),Wt([qt()],Rt.prototype,"writeInt32"),Wt([qt()],Rt.prototype,"writeUint8"),Wt([qt()],Rt.prototype,"writeUint16"),Wt([qt()],Rt.prototype,"writeUint32"),Wt([qt()],Rt.prototype,"writeFloat32"),Wt([qt()],Rt.prototype,"writeFloat64");const ml=new WeakMap;function m(r){const t=typeof r=="object"?r:{type:r},{size:e=1,type:A}=t;return(i,s)=>{if(typeof s!="string")return;let n=ml.get(i);n||(n={columns:[],byteLength:0},ml.set(i,n));const o={...t,name:s,byteLength:e*Gi[A],offset:t.offset??n.columns.reduce((a,l)=>a+l.byteLength,0)};n.columns.push(o),n.byteLength=n.columns.reduce((a,l)=>a+Gi[l.type]*(l.size??1),0),Object.defineProperty(i.constructor.prototype,s,{get(){return this.view.readColumn(o)},set(a){this.view.writeColumn(o,a)},configurable:!0,enumerable:!0})}}class ce{view;constructor(t,e,A,i){this.view=new Rt(t,e,A,i)}}class wr extends ce{get buffer(){return this.view.buffer}toBuffer(){return this.view.buffer.slice(this.view.byteOffset,this.view.byteOffset+this.view.byteLength)}toBlob(){return new Blob([new Uint8Array(this.view.buffer,this.view.byteOffset,this.view.byteLength)],{type:this.mimeType})}toFontFace(t){return new FontFace(t,this.view.buffer)}}var nd=Object.defineProperty,$t=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&nd(t,e,i),i};const te=class Fu extends wr{format="EmbeddedOpenType";mimeType="application/vnd.ms-fontobject";static from(t){const e=t.sfnt,i=e.name.names,s=mr(i.fontFamily||""),n=s.length,o=mr(i.fontStyle||""),a=o.length,l=mr(i.version||""),u=l.length,c=mr(i.fullName||""),g=c.length,f=86+n+4+a+4+u+4+g+2+t.view.byteLength,d=new Fu(new ArrayBuffer(f),0,f,!0);d.EOTSize=d.view.byteLength,d.FontDataSize=t.view.byteLength,d.Version=131073,d.Flags=0,d.Charset=1,d.MagicNumber=20556,d.Padding1=0,d.CheckSumAdjustment=e.head.checkSumAdjustment;const B=e.os2;return B&&(d.FontPANOSE=B.fontPANOSE,d.Italic=B.fsSelection,d.Weight=B.usWeightClass,d.fsType=B.fsType,d.UnicodeRange=B.ulUnicodeRange,d.CodePageRange=B.ulCodePageRange),d.view.writeUint16(n),d.view.writeBytes(s),d.view.writeUint16(0),d.view.writeUint16(a),d.view.writeBytes(o),d.view.writeUint16(0),d.view.writeUint16(u),d.view.writeBytes(l),d.view.writeUint16(0),d.view.writeUint16(g),d.view.writeBytes(c),d.view.writeUint16(0),d.view.writeUint16(0),d.view.writeBytes(t.view),d}};$t([m("uint32")],te.prototype,"EOTSize"),$t([m("uint32")],te.prototype,"FontDataSize"),$t([m("uint32")],te.prototype,"Version"),$t([m("uint32")],te.prototype,"Flags"),$t([m({type:"uint8",size:10})],te.prototype,"FontPANOSE"),$t([m("uint8")],te.prototype,"Charset"),$t([m("uint8")],te.prototype,"Italic"),$t([m("uint32")],te.prototype,"Weight"),$t([m("uint16")],te.prototype,"fsType"),$t([m("uint16")],te.prototype,"MagicNumber"),$t([m({type:"uint8",size:16})],te.prototype,"UnicodeRange"),$t([m({type:"uint8",size:8})],te.prototype,"CodePageRange"),$t([m("uint32")],te.prototype,"CheckSumAdjustment"),$t([m({type:"uint8",size:16})],te.prototype,"Reserved"),$t([m("uint16")],te.prototype,"Padding1");var od=Object.defineProperty,vr=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&od(t,e,i),i};class JA extends ce{constructor(t,e){super(t,e,16)}}vr([m({type:"char",size:4})],JA.prototype,"tag"),vr([m("uint32")],JA.prototype,"checkSum"),vr([m("uint32")],JA.prototype,"offset"),vr([m("uint32")],JA.prototype,"length");const hn=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],ad=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];class gn{index;name;isComposite=!1;components=[];pathCommands=[];constructor(t){const e={...t};if(this.index=e.index??0,e.name===".notdef"?e.unicode=void 0:e.name===".null"&&(e.unicode=0),e.unicode===0&&e.name!==".null")throw new Error('The unicode value "0" is reserved for the glyph name ".null" and cannot be used by any other glyph.');this.name=e.name??null,e.unicode&&(this.unicode=e.unicode),e.unicodes?this.unicodes=e.unicodes:e.unicode&&(this.unicodes=[e.unicode])}getPathCommands(t=0,e=0,A=72,i={},s){const n=1/(s?.unitsPerEm??1e3)*A,{xScale:o=n,yScale:a=n}=i,l=this.pathCommands,u=[];for(let c=0,g=l.length;c<g;c+=1){const f=l[c];f.type==="M"?u.push({type:"M",x:t+f.x*o,y:e+-f.y*a}):f.type==="L"?u.push({type:"L",x:t+f.x*o,y:e+-f.y*a}):f.type==="Q"?u.push({type:"Q",x1:t+f.x1*o,y1:e+-f.y1*a,x:t+f.x*o,y:e+-f.y*a}):f.type==="C"?u.push({type:"C",x1:t+f.x1*o,y1:e+-f.y1*a,x2:t+f.x2*o,y2:e+-f.y2*a,x:t+f.x*o,y:e+-f.y*a}):f.type==="Z"&&u.push({type:"Z"})}return u}}class ld extends gn{parse(t,e,A){const i=this,{nominalWidthX:s,defaultWidthX:n,gsubrsBias:o,subrsBias:a}=t,l=t.topDict.paintType,u=this.index;let c,g,f,d;const B=[],I=[];let F=0,b=!1,y=!1,_=n,Q=0,D=0;function S(K,L){B.push({type:"L",x:K,y:L})}function M(K,L,it,G,W,At){B.push({type:"C",x1:K,y1:L,x2:it,y2:G,x:W,y:At})}function V(K,L){y&&l!==2&&et(),y=!0,B.push({type:"M",x:K,y:L})}function et(){B.push({type:"Z"})}function z(K){B.push(...K)}function J(){I.length%2!==0&&!b&&(_=I.shift()+s),F+=I.length>>1,I.length=0,b=!0}function $(K){let L,it,G,W,At,T,tt,k,P,q,Z,st,X=0;for(;X<K.length;){let It=K[X++];switch(It){case 1:J();break;case 3:J();break;case 4:I.length>1&&!b&&(_=I.shift()+s,b=!0),D+=I.pop(),V(Q,D);break;case 5:for(;I.length>0;)Q+=I.shift(),D+=I.shift(),S(Q,D);break;case 6:for(;I.length>0&&(Q+=I.shift(),S(Q,D),I.length!==0);)D+=I.shift(),S(Q,D);break;case 7:for(;I.length>0&&(D+=I.shift(),S(Q,D),I.length!==0);)Q+=I.shift(),S(Q,D);break;case 8:for(;I.length>0;)c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);break;case 10:At=I.pop()+a,T=t.subrs[At],T&&$(T);break;case 11:return;case 12:switch(It=K[X],X+=1,It){case 35:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d+I.shift(),P=tt+I.shift(),q=k+I.shift(),Z=P+I.shift(),st=q+I.shift(),Q=Z+I.shift(),D=st+I.shift(),I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 34:c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d,P=tt+I.shift(),q=d,Z=P+I.shift(),st=D,Q=Z+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 36:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d,P=tt+I.shift(),q=d,Z=P+I.shift(),st=q+I.shift(),Q=Z+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;case 37:c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),tt=f+I.shift(),k=d+I.shift(),P=tt+I.shift(),q=k+I.shift(),Z=P+I.shift(),st=q+I.shift(),Math.abs(Z-Q)>Math.abs(st-D)?Q=Z+I.shift():D=st+I.shift(),M(c,g,f,d,tt,k),M(P,q,Z,st,Q,D);break;default:console.warn(`Glyph ${u}: unknown operator ${1200+It}`),I.length=0}break;case 14:if(I.length>=4){const ie=hn[I.pop()],re=hn[I.pop()],Nt=I.pop(),ct=I.pop();if(ie&&re){i.isComposite=!0,i.components=[];const yt=t.charset.indexOf(ie),Tt=t.charset.indexOf(re);i.components.push({glyphIndex:Tt,dx:0,dy:0}),i.components.push({glyphIndex:yt,dx:ct,dy:Nt}),z(A.get(Tt).pathCommands);const Jt=JSON.parse(JSON.stringify(A.get(yt).pathCommands));for(let _t=0;_t<Jt.length;_t+=1){const Zt=Jt[_t];Zt.type!=="Z"&&(Zt.x+=ct,Zt.y+=Nt),(Zt.type==="Q"||Zt.type==="C")&&(Zt.x1+=ct,Zt.y1+=Nt),Zt.type==="C"&&(Zt.x2+=ct,Zt.y2+=Nt)}z(Jt)}}else I.length>0&&!b&&(_=I.shift()+s,b=!0);y&&l!==2&&(et(),y=!1);break;case 18:J();break;case 19:case 20:J(),X+=F+7>>3;break;case 21:I.length>2&&!b&&(_=I.shift()+s,b=!0),D+=I.pop(),Q+=I.pop(),V(Q,D);break;case 22:I.length>1&&!b&&(_=I.shift()+s,b=!0),Q+=I.pop(),V(Q,D);break;case 23:J();break;case 24:for(;I.length>2;)c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);Q+=I.shift(),D+=I.shift(),S(Q,D);break;case 25:for(;I.length>6;)Q+=I.shift(),D+=I.shift(),S(Q,D);c=Q+I.shift(),g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+I.shift(),M(c,g,f,d,Q,D);break;case 26:for(I.length%2&&(Q+=I.shift());I.length>0;)c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f,D=d+I.shift(),M(c,g,f,d,Q,D);break;case 27:for(I.length%2&&(D+=I.shift());I.length>0;)c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d,M(c,g,f,d,Q,D);break;case 28:L=K[X],it=K[X+1],I.push((L<<24|it<<16)>>16),X+=2;break;case 29:At=I.pop()+o,T=t.gsubrs[At],T&&$(T);break;case 30:for(;I.length>0&&(c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+(I.length===1?I.shift():0),M(c,g,f,d,Q,D),I.length!==0);)c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),D=d+I.shift(),Q=f+(I.length===1?I.shift():0),M(c,g,f,d,Q,D);break;case 31:for(;I.length>0&&(c=Q+I.shift(),g=D,f=c+I.shift(),d=g+I.shift(),D=d+I.shift(),Q=f+(I.length===1?I.shift():0),M(c,g,f,d,Q,D),I.length!==0);)c=Q,g=D+I.shift(),f=c+I.shift(),d=g+I.shift(),Q=f+I.shift(),D=d+(I.length===1?I.shift():0),M(c,g,f,d,Q,D);break;default:It<32?console.warn(`Glyph ${u}: unknown operator ${It}`):It<247?I.push(It-139):It<251?(L=K[X],X+=1,I.push((It-247)*256+L+108)):It<255?(L=K[X],X+=1,I.push(-(It-251)*256-L-108)):(L=K[X],it=K[X+1],G=K[X+2],W=K[X+3],X+=4,I.push((L<<24|it<<16|G<<8|W)/65536))}}}$(e),this.pathCommands=B,b&&(this.advanceWidth=_)}}class fn{constructor(t){this._sfnt=t}_items=[];get(t){const e=this._items[t];let A;if(e)A=e;else{A=this._get(t);const i=this._sfnt.hmtx.metrics[t];i&&(A.advanceWidth=A.advanceWidth||i.advanceWidth,A.leftSideBearing=A.leftSideBearing||i.leftSideBearing);const s=this._sfnt.cmap.glyphIndexToUnicodesMap.get(t);s&&(A.unicode??=s[0],A.unicodes??=s),this._items[t]=A}return A}}class ud extends fn{get length(){return this._sfnt.cff.charStringsIndex.offsets.length-1}_get(t){const e=this._sfnt.cff,A=new ld({index:t});return A.parse(e,e.charStringsIndex.get(t),this),A.name=e.charset[t],A}}var cd=Object.defineProperty,wl=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&cd(t,e,i),i};class _r extends ce{_offsets;get offsets(){return this._offsets??=this.readOffsets()}_objects;get objects(){return this._objects??=this.readObjects()}constructor(t,e,A,i){super(t,e,A,i),this._init()}_init(){const t=this.view,e=this.count,A=this.offsetSize;this.objectOffset=(e+1)*A+2,this.endOffset=t.byteOffset+this.objectOffset+this.offsets[e]}readOffsets(){const t=this.view,e=this.count,A=this.offsetSize;t.seek(3);const i=[];for(let s=0,n=e+1;s<n;s++){const o=this.view;let a=0;for(let l=0;l<A;l++)a<<=8,a+=o.readUint8();i.push(a)}return i}readObjects(){const t=[];for(let e=0,A=this.count;e<A;e++)t.push(this.get(e));return t}get(t){const e=this.offsets,A=this.objectOffset,i=A+e[t],n=A+e[t+1]-i;return this._isString?this.view.readString(i,n):this.view.readBytes(i,n)}}wl([m("uint16")],_r.prototype,"count"),wl([m("uint8")],_r.prototype,"offsetSize");class br extends _r{_isString=!1}class vl extends _r{_isString=!0}const hd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],gd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],fd=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],dd=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];function xr(r,t){return t<=390?hd[t]:r[t-391]}function Bt(r,t="number",e){return(A,i)=>{if(typeof i!="string")return;const s={type:t,operator:r,default:e??t==="number"?0:void 0};Object.defineProperty(A.constructor.prototype,i,{get(){return this._getProp(s)},set(n){this._setProp(s,n)},configurable:!0,enumerable:!0})}}class _l extends ce{_dict;get dict(){return this._dict??=this._readDict()}_stringIndex;setStringIndex(t){return this._stringIndex=t,this}_readFloatOperand(){const t=this.view;let e="";const A=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];for(;;){const s=t.readUint8(),n=s>>4,o=s&15;if(n===A||(e+=i[n],o===A))break;e+=i[o]}return Number.parseFloat(e)}_readOperand(t){const e=this.view;let A,i,s,n;if(t===28)return A=e.readUint8(),i=e.readUint8(),A<<8|i;if(t===29)return A=e.readUint8(),i=e.readUint8(),s=e.readUint8(),n=e.readUint8(),A<<24|i<<16|s<<8|n;if(t===30)return this._readFloatOperand();if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return A=e.readUint8(),(t-247)*256+A+108;if(t>=251&&t<=254)return A=e.readUint8(),-(t-251)*256-A-108;throw new Error(`invalid b0 ${t}, at: ${e.cursor}`)}_readDict(){const t=this.view;t.seek(0);let e=[];const A=t.cursor+t.byteLength,i={};for(;t.cursor<A;){let s=t.readUint8();s<=21?(s===12&&(s=1200+t.readUint8()),i[s]=e,e=[]):e.push(this._readOperand(s))}return i}_getProp(t){const e=this.dict[t.operator]??t.default;switch(t.type){case"number":return e[0];case"string":return xr(this._stringIndex?.objects??[],e[0]);case"number[]":return e}return e}_setProp(t,e){}}var Id=Object.defineProperty,dn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Id(t,e,i),i};class Fr extends _l{}dn([Bt(19)],Fr.prototype,"subrs"),dn([Bt(20)],Fr.prototype,"defaultWidthX"),dn([Bt(21)],Fr.prototype,"nominalWidthX");var pd=Object.defineProperty,vt=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&pd(t,e,i),i};class Dt extends _l{}vt([Bt(0,"string")],Dt.prototype,"version"),vt([Bt(1,"string")],Dt.prototype,"notice"),vt([Bt(1200,"string")],Dt.prototype,"copyright"),vt([Bt(2,"string")],Dt.prototype,"fullName"),vt([Bt(3,"string")],Dt.prototype,"familyName"),vt([Bt(4,"string")],Dt.prototype,"weight"),vt([Bt(1201)],Dt.prototype,"isFixedPitch"),vt([Bt(1202)],Dt.prototype,"italicAngle"),vt([Bt(1203,"number",-100)],Dt.prototype,"underlinePosition"),vt([Bt(1204,"number",50)],Dt.prototype,"underlineThickness"),vt([Bt(1205)],Dt.prototype,"paintType"),vt([Bt(1206,"number",2)],Dt.prototype,"charstringType"),vt([Bt(1207,"number[]",[.001,0,0,.001,0,0])],Dt.prototype,"fontMatrix"),vt([Bt(13)],Dt.prototype,"uniqueId"),vt([Bt(5,"number[]",[0,0,0,0])],Dt.prototype,"fontBBox"),vt([Bt(1208)],Dt.prototype,"strokeWidth"),vt([Bt(14)],Dt.prototype,"xuid"),vt([Bt(15)],Dt.prototype,"charset"),vt([Bt(16)],Dt.prototype,"encoding"),vt([Bt(17)],Dt.prototype,"charStrings"),vt([Bt(18,"number[]",[0,0])],Dt.prototype,"private");function Gt(r,t=r){return e=>{Se.tableDefinitions.set(r,{tag:r,prop:t,class:e}),Object.defineProperty(Se.prototype,t,{get(){return this.get(r)},set(A){return this.set(r,A)},configurable:!0,enumerable:!0})}}class Se{static tableDefinitions=new Map;tables=new Map;tableViews=new Map;get hasGlyf(){return this.tableViews.has("glyf")}get names(){return this.name.names}get unitsPerEm(){return this.head.unitsPerEm}get ascender(){return this.hhea.ascent}get descender(){return this.hhea.descent}get createdTimestamp(){return this.head.created}get modifiedTimestamp(){return this.head.modified}get numGlyphs(){return this.maxp.numGlyphs}get unicodes(){return this.cmap.glyphIndexToUnicodesMap}get glyphs(){return this.hasGlyf?this.glyf.glyphs:this.cff.glyphs}charToGlyphIndex(t){let e=this.cmap.unicodeToGlyphIndexMap.get(t.codePointAt(0));if(e===void 0&&!this.hasGlyf){const{encoding:A,charset:i}=this.cff;e=i.indexOf(A[t.codePointAt(0)])}return e??0}charToGlyph(t){return this.glyphs.get(this.charToGlyphIndex(t))}textToGlyphIndexes(t){const e=[];for(const A of t)e.push(this.charToGlyphIndex(A));return e}textToGlyphs(t){const e=this.glyphs,A=this.textToGlyphIndexes(t),i=A.length,s=Array.from({length:i}),n=e.get(0);for(let o=0;o<i;o+=1)s[o]=e.get(A[o])||n;return s}getPathCommands(t,e,A,i,s){const n=[];return this.forEachGlyph(t,e,A,i,s,(o,a,l,u,c)=>{n.push(...o.getPathCommands(a,l,u,c,this))}),n}getAdvanceWidth(t,e,A){return this.forEachGlyph(t,0,0,e,A,()=>{})}forEachGlyph(t,e=0,A=0,i=72,s={},n){const o=1/this.unitsPerEm*i,a=this.textToGlyphs(t);for(let l=0;l<a.length;l+=1){const u=a[l];n.call(this,u,e,A,i,s),u.advanceWidth&&(e+=u.advanceWidth*o),s.letterSpacing?e+=s.letterSpacing*i:s.tracking&&(e+=s.tracking/1e3*i)}return e}constructor(t){(t instanceof Map?t:new Map(Object.entries(t))).forEach((A,i)=>{this.tableViews.set(i,new DataView(A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength)))})}clone(){return new Se(this.tableViews)}delete(t){const e=Se.tableDefinitions.get(t);return e?(this.tableViews.delete(t),this.tables.delete(e.prop),this):this}set(t,e){const A=Se.tableDefinitions.get(t);return A&&this.tables.set(A.prop,e),this.tableViews.set(t,e.view),this}get(t){const e=Se.tableDefinitions.get(t);if(!e)return;let A=this.tables.get(e.prop);if(!A){const i=e.class;if(i){const s=this.tableViews.get(t);if(!s)return;A=new i(s.buffer,s.byteOffset,s.byteLength).setSFNT(this),this.tables.set(e.prop,A)}}return A}}class Xt extends ce{setSFNT(t){return this._sfnt=t,this}getSFNT(){return this._sfnt}}var Ed=Object.defineProperty,Bd=Object.getOwnPropertyDescriptor,Oi=(r,t,e,A)=>{for(var i=A>1?void 0:A?Bd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Ed(t,e,i),i};let wA=class extends Xt{_glyphs;get glyphs(){return this._glyphs??=new ud(this._sfnt)}get gsubrs(){return this.globalSubrIndex.objects}get gsubrsBias(){return this._calcSubroutineBias(this.globalSubrIndex.objects)}privateDict;subrsIndex;get defaultWidthX(){return this.privateDict?.defaultWidthX??0}get nominalWidthX(){return this.privateDict?.nominalWidthX??0}get subrs(){return this.subrsIndex?.objects??[]}get subrsBias(){return this._calcSubroutineBias(this.subrs)}constructor(r,t,e,A){super(r,t,e,A),this._init()}_init(){const r=this.view,{buffer:t,byteOffset:e}=r,A=e+4;this.nameIndex=new vl(t,A),this.topDictIndex=new br(t,this.nameIndex.endOffset),this.stringIndex=new vl(t,this.topDictIndex.endOffset),this.globalSubrIndex=new br(t,this.stringIndex.endOffset),this.topDict=new Dt(new Uint8Array(this.topDictIndex.objects[0]).buffer).setStringIndex(this.stringIndex);const i=this.topDict.private[0],s=this.topDict.private[1];i&&(this.privateDict=new Fr(t,e+s,i).setStringIndex(this.stringIndex),this.privateDict.subrs&&(this.subrsIndex=new br(t,e+s+this.privateDict.subrs))),this.charStringsIndex=new br(t,e+this.topDict.charStrings);const n=this.charStringsIndex.offsets.length-1;this.topDict.charset===0?this.charset=gd:this.topDict.charset===1?this.charset=fd:this.topDict.charset===2?this.charset=dd:this.charset=this._readCharset(e+this.topDict.charset,n,this.stringIndex.objects),this.topDict.encoding===0?this.encoding=hn:this.topDict.encoding===1?this.encoding=ad:this.encoding=this._readEncoding(e+this.topDict.encoding)}_readCharset(r,t,e){const A=this.view;A.seek(r);let i,s,n;t-=1;const o=[".notdef"],a=A.readUint8();if(a===0)for(i=0;i<t;i+=1)s=A.readUint16(),o.push(xr(e,s));else if(a===1)for(;o.length<=t;)for(s=A.readUint16(),n=A.readUint8(),i=0;i<=n;i+=1)o.push(xr(e,s)),s+=1;else if(a===2)for(;o.length<=t;)for(s=A.readUint16(),n=A.readUint16(),i=0;i<=n;i+=1)o.push(xr(e,s)),s+=1;else throw new Error(`Unknown charset format ${a}`);return o}_readEncoding(r){const t=this.view;t.seek(r);let e,A;const i={},s=t.readUint8();if(s===0){const n=t.readUint8();for(e=0;e<n;e+=1)A=t.readUint8(),i[A]=e}else if(s===1){const n=t.readUint8();for(A=1,e=0;e<n;e+=1){const o=t.readUint8(),a=t.readUint8();for(let l=o;l<=o+a;l+=1)i[l]=A,A+=1}}else console.warn(`unknown encoding format:${s}`);return i}_calcSubroutineBias(r){let t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}};Oi([m("uint8")],wA.prototype,"majorVersion",2),Oi([m("uint8")],wA.prototype,"minorVersion",2),Oi([m("uint8")],wA.prototype,"headerSize",2),Oi([m("uint8")],wA.prototype,"offsetSize",2),wA=Oi([Gt("CFF ","cff")],wA);var Cd=Object.defineProperty,Sr=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Cd(t,e,i),i};const Hi=class Su extends ce{constructor(t=new ArrayBuffer(262),e){super(t,e,262)}static from(t){const e=new Su;return e.format=0,e.length=e.view.byteLength,e.language=0,t.forEach((A,i)=>{i<256&&A<256&&e.view.writeUint8(A,6+i)}),e}getUnicodeToGlyphIndexMap(){const t=new Map;return this.glyphIndexArray.forEach((e,A)=>{t.set(A,e)}),t}};Sr([m("uint16")],Hi.prototype,"format"),Sr([m("uint16")],Hi.prototype,"length"),Sr([m("uint16")],Hi.prototype,"language"),Sr([m({type:"uint8",size:256})],Hi.prototype,"glyphIndexArray");let In=Hi;var Qd=Object.defineProperty,pn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Qd(t,e,i),i};class Ji extends ce{get subHeaderKeys(){return this.view.seek(6),Array.from({length:256},()=>this.view.readUint16()/8)}get maxSubHeaderKey(){return this.subHeaderKeys.reduce((t,e)=>Math.max(t,e),0)}get subHeaders(){const t=this.maxSubHeaderKey;return this.view.seek(6+256*2),Array.from({length:t},(e,A)=>({firstCode:this.view.readUint16(),entryCount:this.view.readUint16(),idDelta:this.view.readUint16(),idRangeOffset:(this.view.readUint16()-(t-A)*8-2)/2}))}get glyphIndexArray(){const t=this.maxSubHeaderKey,e=6+256*2+t*8;this.view.seek(e);const A=(this.view.byteLength-e)/2;return Array.from({length:A},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(t){const e=new Map,A=this.subHeaderKeys,i=this.maxSubHeaderKey,s=this.subHeaders,n=this.glyphIndexArray,o=A.findIndex(l=>l===i);let a=0;for(let l=0;l<256;l++)if(A[l]===0)l>=o||l<s[0].firstCode||l>=s[0].firstCode+s[0].entryCount||s[0].idRangeOffset+(l-s[0].firstCode)>=n.length?a=0:(a=n[s[0].idRangeOffset+(l-s[0].firstCode)],a!==0&&(a=a+s[0].idDelta)),a!==0&&a<t&&e.set(l,a);else{const u=A[l];for(let c=0,g=s[u].entryCount;c<g;c++)if(s[u].idRangeOffset+c>=n.length?a=0:(a=n[s[u].idRangeOffset+c],a!==0&&(a=a+s[u].idDelta)),a!==0&&a<t){const f=(l<<8|c+s[u].firstCode)%65535;e.set(f,a)}}return e}}pn([m("uint16")],Ji.prototype,"format"),pn([m("uint16")],Ji.prototype,"length"),pn([m("uint16")],Ji.prototype,"language");function bl(r){return r>32767?r-65536:r<-32767?r+65536:r}function En(r,t){let e;const A=[];let i={};return r.forEach((s,n)=>{t&&n>t||((!e||n!==e.unicode+1||s!==e.glyphIndex+1)&&(e?(i.end=e.unicode,A.push(i),i={start:n,startId:s,delta:bl(s-n)}):(i.start=Number(n),i.startId=s,i.delta=bl(s-n))),e={unicode:n,glyphIndex:s})}),e&&(i.end=e.unicode,A.push(i)),A}var yd=Object.defineProperty,vA=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&yd(t,e,i),i};const aA=class Mu extends ce{get endCode(){const t=this.segCountX2;return this.view.seek(14),Array.from({length:t/2},()=>this.view.readUint16())}set endCode(t){this.view.seek(14),t.forEach(e=>this.view.writeUint16(e))}get reservedPad(){return this.view.readUint16(14+this.segCountX2)}set reservedPad(t){this.view.writeUint16(t,14+this.segCountX2)}get startCode(){const t=this.segCountX2;return this.view.seek(14+t+2),Array.from({length:t/2},()=>this.view.readUint16())}set startCode(t){this.view.seek(14+this.segCountX2+2),t.forEach(e=>this.view.writeUint16(e))}get idDelta(){const t=this.segCountX2;return this.view.seek(14+t+2+t),Array.from({length:t/2},()=>this.view.readUint16())}set idDelta(t){const e=this.segCountX2;this.view.seek(14+e+2+e),t.forEach(A=>this.view.writeUint16(A))}get idRangeOffsetCursor(){const t=this.segCountX2;return 14+t+2+t*2}get idRangeOffset(){const t=this.segCountX2;return this.view.seek(this.idRangeOffsetCursor),Array.from({length:t/2},()=>this.view.readUint16())}set idRangeOffset(t){this.view.seek(this.idRangeOffsetCursor),t.forEach(e=>this.view.writeUint16(e))}get glyphIndexArrayCursor(){const t=this.segCountX2;return 14+t+2+t*3}get glyphIndexArray(){const t=this.glyphIndexArrayCursor;this.view.seek(t);const e=(this.view.byteLength-t)/2;return Array.from({length:e},()=>this.view.readUint16())}static from(t){const e=En(t,65535),A=e.length+1,i=Math.floor(Math.log(A)/Math.LN2),s=2*2**i,n=new Mu(new ArrayBuffer(24+e.length*8));return n.format=4,n.length=n.view.byteLength,n.language=0,n.segCountX2=A*2,n.searchRange=s,n.entrySelector=i,n.rangeShift=2*A-s,n.endCode=[...e.map(o=>o.end),65535],n.reservedPad=0,n.startCode=[...e.map(o=>o.start),65535],n.idDelta=[...e.map(o=>o.delta),1],n.idRangeOffset=Array.from({length:A},()=>0),n}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.segCountX2/2,A=(this.glyphIndexArrayCursor-this.idRangeOffsetCursor)/2,i=this.startCode,s=this.endCode,n=this.idRangeOffset,o=this.idDelta,a=this.glyphIndexArray;for(let l=0;l<e;++l)for(let u=i[l],c=s[l];u<=c;++u)if(n[l]===0)t.set(u,(u+o[l])%65536);else{const g=l+n[l]/2+(u-i[l])-A,f=a[g];f!==0?t.set(u,(f+o[l])%65536):t.set(u,0)}return t.delete(65535),t}};vA([m("uint16")],aA.prototype,"format"),vA([m("uint16")],aA.prototype,"length"),vA([m("uint16")],aA.prototype,"language"),vA([m("uint16")],aA.prototype,"segCountX2"),vA([m("uint16")],aA.prototype,"searchRange"),vA([m("uint16")],aA.prototype,"entrySelector"),vA([m("uint16")],aA.prototype,"rangeShift");let Bn=aA;var Dd=Object.defineProperty,Ki=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&Dd(t,e,i),i};class _A extends ce{get glyphIndexArray(){return this.view.seek(12),Array.from({length:this.entryCount},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(){const t=this.glyphIndexArray,e=new Map;return t.forEach((A,i)=>{e.set(i,A)}),e}}Ki([m("uint16")],_A.prototype,"format"),Ki([m("uint16")],_A.prototype,"length"),Ki([m("uint16")],_A.prototype,"language"),Ki([m("uint16")],_A.prototype,"firstCode"),Ki([m("uint16")],_A.prototype,"entryCount");var md=Object.defineProperty,Yi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&md(t,e,i),i};const KA=class Ru extends ce{get groups(){const t=this.nGroups;return this.view.seek(16),Array.from({length:t},()=>({startCharCode:this.view.readUint32(),endCharCode:this.view.readUint32(),startGlyphCode:this.view.readUint32()}))}static from(t){const e=En(t),A=new Ru(new ArrayBuffer(16+e.length*12));return A.format=12,A.reserved=0,A.length=A.view.byteLength,A.language=0,A.nGroups=e.length,e.forEach(i=>{A.view.writeUint32(i.start),A.view.writeUint32(i.end),A.view.writeUint32(i.startId)}),A}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.groups;for(let A=0,i=e.length;A<i;A++){const s=e[A];let n=s.startGlyphCode,o=s.startCharCode;const a=s.endCharCode;for(;o<=a;)t.set(o++,n++)}return t}};Yi([m("uint16")],KA.prototype,"format"),Yi([m("uint16")],KA.prototype,"reserved"),Yi([m("uint32")],KA.prototype,"length"),Yi([m("uint32")],KA.prototype,"language"),Yi([m("uint32")],KA.prototype,"nGroups");let Cn=KA;var wd=Object.defineProperty,Qn=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&wd(t,e,i),i};class Vi extends ce{getVarSelectorRecords(){const t=this.numVarSelectorRecords;return this.view.seek(10),Array.from({length:t},()=>{const e={varSelector:this.view.readUint24(),defaultUVSOffset:this.view.readUint32(),unicodeValueRanges:[],nonDefaultUVSOffset:this.view.readUint32(),uVSMappings:[]};if(e.defaultUVSOffset){this.view.seek(e.defaultUVSOffset);const A=this.view.readUint32();e.unicodeValueRanges=Array.from({length:A},()=>({startUnicodeValue:this.view.readUint24(),additionalCount:this.view.readUint8()}))}if(e.nonDefaultUVSOffset){this.view.seek(e.nonDefaultUVSOffset);const A=this.view.readUint32();e.uVSMappings=Array.from({length:A},()=>({unicodeValue:this.view.readUint24(),glyphID:this.view.readUint16()}))}return e})}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.getVarSelectorRecords();for(let A=0,i=e.length;A<i;A++){const{uVSMappings:s}=e[A];s.forEach(n=>{t.set(n.unicodeValue,n.glyphID)})}return t}}Qn([m("uint16")],Vi.prototype,"format"),Qn([m("uint32")],Vi.prototype,"length"),Qn([m("uint32")],Vi.prototype,"numVarSelectorRecords");var vd=Object.defineProperty,_d=Object.getOwnPropertyDescriptor,yn=(r,t,e,A)=>{for(var i=A>1?void 0:A?_d(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&vd(t,e,i),i};let YA=class extends Xt{static from(r){const t=Array.from(r.keys()).some(u=>u>65535),e=Bn.from(r),A=In.from(r),i=t?Cn.from(r):void 0,s=4+(i?32:24),n=s+e.view.byteLength,o=n+A.view.byteLength,a=[{platformID:0,platformSpecificID:3,offset:s},{platformID:1,platformSpecificID:0,offset:n},{platformID:3,platformSpecificID:1,offset:s},i&&{platformID:3,platformSpecificID:10,offset:o}].filter(Boolean),l=new YA(new ArrayBuffer(4+8*a.length+e.view.byteLength+A.view.byteLength+(i?.view.byteLength??0)));return l.numberSubtables=a.length,l.view.seek(4),a.forEach(u=>{l.view.writeUint16(u.platformID),l.view.writeUint16(u.platformSpecificID),l.view.writeUint32(u.offset)}),l.view.writeBytes(e.view,s),l.view.writeBytes(A.view,n),i&&l.view.writeBytes(i.view,o),l}_unicodeToGlyphIndexMap;get unicodeToGlyphIndexMap(){return this._unicodeToGlyphIndexMap??=this.readunicodeToGlyphIndexMap()}_glyphIndexToUnicodesMap;get glyphIndexToUnicodesMap(){if(!this._glyphIndexToUnicodesMap){const r=new Map,t=this.unicodeToGlyphIndexMap,e=Array.from(t.keys());for(let A=0,i=e.length;A<i;A++){const s=e[A],n=t.get(s);r.has(n)?r.get(n).push(s):r.set(n,[s])}this._glyphIndexToUnicodesMap=r}return this._glyphIndexToUnicodesMap}readSubtables(){const r=this.numberSubtables;return this.view.seek(4),Array.from({length:r},()=>({platformID:this.view.readUint16(),platformSpecificID:this.view.readUint16(),offset:this.view.readUint32()})).map(t=>{this.view.seek(t.offset);const e=this.view.readUint16();let A;switch(e){case 0:A=new In(this.view.buffer,t.offset);break;case 2:A=new Ji(this.view.buffer,t.offset,this.view.readUint16());break;case 4:A=new Bn(this.view.buffer,t.offset,this.view.readUint16());break;case 6:A=new _A(this.view.buffer,t.offset,this.view.readUint16());break;case 12:A=new Cn(this.view.buffer,t.offset,this.view.readUint32(t.offset+4));break;case 14:default:A=new Vi(this.view.buffer,t.offset,this.view.readUint32());break}return{...t,format:e,view:A}})}readunicodeToGlyphIndexMap(){const r=this.readSubtables(),t=r.find(n=>n.format===0)?.view,e=r.find(n=>n.platformID===3&&n.platformSpecificID===3&&n.format===2)?.view,A=r.find(n=>n.platformID===3&&n.platformSpecificID===1&&n.format===4)?.view,i=r.find(n=>n.platformID===3&&n.platformSpecificID===10&&n.format===12)?.view,s=r.find(n=>n.platformID===0&&n.platformSpecificID===5&&n.format===14)?.view;return new Map([...t?.getUnicodeToGlyphIndexMap()??[],...e?.getUnicodeToGlyphIndexMap(this._sfnt.maxp.numGlyphs)??[],...A?.getUnicodeToGlyphIndexMap()??[],...i?.getUnicodeToGlyphIndexMap()??[],...s?.getUnicodeToGlyphIndexMap()??[]])}};yn([m("uint16")],YA.prototype,"version",2),yn([m("uint16")],YA.prototype,"numberSubtables",2),YA=yn([Gt("cmap")],YA);class bd extends gn{_parseContours(t){const e=[];let A=[];for(let i=0;i<t.length;i+=1){const s=t[i];A.push(s),s.lastPointOfContour&&(e.push(A),A=[])}return Li(A.length===0,"There are still points left in the current contour."),e}_transformPoints(t,e){const A=[];for(let i=0;i<t.length;i+=1){const s=t[i],n={x:e.xScale*s.x+e.scale10*s.y+e.dx,y:e.scale01*s.x+e.yScale*s.y+e.dy,onCurve:s.onCurve,lastPointOfContour:s.lastPointOfContour};A.push(n)}return A}_parseGlyphCoordinate(t,e,A,i,s){let n;return(e&i)>0?(n=t.view.readUint8(),(e&s)===0&&(n=-n),n=A+n):(e&s)>0?n=A:n=A+t.view.readInt16(),n}parse(t,e,A){t.view.seek(e);const i=this.numberOfContours=t.view.readInt16();if(this.xMin=t.view.readInt16(),this.yMin=t.view.readInt16(),this.xMax=t.view.readInt16(),this.yMax=t.view.readInt16(),i>0){const o=this.endPointIndices=[];for(let B=0;B<i;B++)o.push(t.view.readUint16());const a=this.instructionLength=t.view.readUint16();Li(a<5e3,`Bad instructionLength:${a}`);const l=this.instructions=[];for(let B=0;B<a;++B)l.push(t.view.readUint8());const u=t.view.byteOffset,c=o[o.length-1]+1;Li(c<2e4,`Bad numberOfCoordinates:${u}`);const g=[];let f,d=0;for(;d<c;)if(f=t.view.readUint8(),g.push(f),d++,f&8&&d<c){const B=t.view.readUint8();for(let I=0;I<B;I++)g.push(f),d++}if(Li(g.length===c,`Bad flags length: ${g.length}, numberOfCoordinates: ${c}`),o.length>0){const B=[];let I;if(c>0){for(let y=0;y<c;y+=1)f=g[y],I={},I.onCurve=!!(f&1),I.lastPointOfContour=o.includes(y),B.push(I);let F=0;for(let y=0;y<c;y+=1)f=g[y],I=B[y],I.x=this._parseGlyphCoordinate(t,f,F,2,16),F=I.x;let b=0;for(let y=0;y<c;y+=1)f=g[y],I=B[y],I.y=this._parseGlyphCoordinate(t,f,b,4,32),b=I.y}this.points=B}else this.points=[]}else if(i===0)this.points=[];else{this.isComposite=!0,this.points=[],this.components=[];let o,a=!0;for(;a;){o=t.view.readUint16();const l={glyphIndex:t.view.readUint16(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(l.dx=t.view.readInt16(),l.dy=t.view.readInt16()):l.matchedPoints=[t.view.readUint16(),t.view.readUint16()]:(o&2)>0?(l.dx=t.view.readInt8(),l.dy=t.view.readInt8()):l.matchedPoints=[t.view.readUint8(),t.view.readUint8()],(o&8)>0?l.xScale=l.yScale=t.view.readInt16()/16384:(o&64)>0?(l.xScale=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384):(o&128)>0&&(l.xScale=t.view.readInt16()/16384,l.scale01=t.view.readInt16()/16384,l.scale10=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384),this.components.push(l),a=!!(o&32)}if(o&256){this.instructionLength=t.view.readUint16(),this.instructions=[];for(let l=0;l<this.instructionLength;l+=1)this.instructions.push(t.view.readUint8())}}if(this.isComposite)for(let o=0;o<this.components.length;o+=1){const a=this.components[o],l=A.get(a.glyphIndex);if(l.getPathCommands(),l.points){let u;if(a.matchedPoints===void 0)u=this._transformPoints(l.points,a);else{Li(a.matchedPoints[0]>this.points.length-1||a.matchedPoints[1]>l.points.length-1,`Matched points out of range in ${this.name}`);const c=this.points[a.matchedPoints[0]];let g=l.points[a.matchedPoints[1]];const f={xScale:a.xScale,scale01:a.scale01,scale10:a.scale10,yScale:a.yScale,dx:0,dy:0};g=this._transformPoints([g],f)[0],f.dx=c.x-g.x,f.dy=c.y-g.y,u=this._transformPoints(l.points,f)}this.points=this.points.concat(u)}}const s=[],n=this._parseContours(this.points);for(let o=0,a=n.length;o<a;++o){const l=n[o];let u=l[l.length-1],c=l[0];u.onCurve?s.push({type:"M",x:u.x,y:u.y}):c.onCurve?s.push({type:"M",x:c.x,y:c.y}):s.push({type:"M",x:(u.x+c.x)*.5,y:(u.y+c.y)*.5});for(let g=0,f=l.length;g<f;++g)if(u=c,c=l[(g+1)%f],u.onCurve)s.push({type:"L",x:u.x,y:u.y});else{let d=c;c.onCurve||(d={x:(u.x+c.x)*.5,y:(u.y+c.y)*.5}),s.push({type:"Q",x1:u.x,y1:u.y,x:d.x,y:d.y})}s.push({type:"Z"})}this.pathCommands=s}}class xd extends fn{get length(){return this._sfnt.loca.locations.length}_get(t){const e=this._sfnt.loca.locations,A=e[t],i=new bd({index:t});return A!==e[t+1]&&i.parse(this._sfnt.glyf,A,this),i}}var Fd=Object.getOwnPropertyDescriptor,Sd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Fd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Mr=class extends Xt{static from(r){const t=r.reduce((A,i)=>A+i.byteLength,0),e=new Mr(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeBytes(A)}),e}_glyphs;get glyphs(){return this._glyphs??=new xd(this._sfnt)}};Mr=Sd([Gt("glyf")],Mr);var Md=Object.getOwnPropertyDescriptor,Rd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Md(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Dn=class extends Xt{};Dn=Rd([Gt("GPOS","gpos")],Dn);var Pd=Object.defineProperty,kd=Object.getOwnPropertyDescriptor,bA=(r,t,e,A)=>{for(var i=A>1?void 0:A?kd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Pd(t,e,i),i};let qe=class extends Xt{};bA([m("uint16")],qe.prototype,"majorVersion",2),bA([m("uint16")],qe.prototype,"minorVersion",2),bA([m("uint16")],qe.prototype,"scriptListOffset",2),bA([m("uint16")],qe.prototype,"featureListOffset",2),bA([m("uint16")],qe.prototype,"lookupListOffset",2),bA([m("uint16")],qe.prototype,"featureVariationsOffset",2),qe=bA([Gt("GSUB","gsub")],qe);var Ud=Object.defineProperty,Nd=Object.getOwnPropertyDescriptor,Pt=(r,t,e,A)=>{for(var i=A>1?void 0:A?Nd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Ud(t,e,i),i};let xt=class extends Xt{constructor(r=new ArrayBuffer(54),t){super(r,t,Math.min(54,r.byteLength-(t??0)))}};Pt([m("fixed")],xt.prototype,"version",2),Pt([m("fixed")],xt.prototype,"fontRevision",2),Pt([m("uint32")],xt.prototype,"checkSumAdjustment",2),Pt([m("uint32")],xt.prototype,"magickNumber",2),Pt([m("uint16")],xt.prototype,"flags",2),Pt([m("uint16")],xt.prototype,"unitsPerEm",2),Pt([m({type:"longDateTime"})],xt.prototype,"created",2),Pt([m({type:"longDateTime"})],xt.prototype,"modified",2),Pt([m("int16")],xt.prototype,"xMin",2),Pt([m("int16")],xt.prototype,"yMin",2),Pt([m("int16")],xt.prototype,"xMax",2),Pt([m("int16")],xt.prototype,"yMax",2),Pt([m("uint16")],xt.prototype,"macStyle",2),Pt([m("uint16")],xt.prototype,"lowestRecPPEM",2),Pt([m("int16")],xt.prototype,"fontDirectionHint",2),Pt([m("int16")],xt.prototype,"indexToLocFormat",2),Pt([m("int16")],xt.prototype,"glyphDataFormat",2),xt=Pt([Gt("head")],xt);var Td=Object.defineProperty,Ld=Object.getOwnPropertyDescriptor,ee=(r,t,e,A)=>{for(var i=A>1?void 0:A?Ld(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Td(t,e,i),i};let Ot=class extends Xt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};ee([m("fixed")],Ot.prototype,"version",2),ee([m("int16")],Ot.prototype,"ascent",2),ee([m("int16")],Ot.prototype,"descent",2),ee([m("int16")],Ot.prototype,"lineGap",2),ee([m("uint16")],Ot.prototype,"advanceWidthMax",2),ee([m("int16")],Ot.prototype,"minLeftSideBearing",2),ee([m("int16")],Ot.prototype,"minRightSideBearing",2),ee([m("int16")],Ot.prototype,"xMaxExtent",2),ee([m("int16")],Ot.prototype,"caretSlopeRise",2),ee([m("int16")],Ot.prototype,"caretSlopeRun",2),ee([m("int16")],Ot.prototype,"caretOffset",2),ee([m({type:"int16",size:4})],Ot.prototype,"reserved",2),ee([m("int16")],Ot.prototype,"metricDataFormat",2),ee([m("uint16")],Ot.prototype,"numOfLongHorMetrics",2),Ot=ee([Gt("hhea")],Ot);var Gd=Object.getOwnPropertyDescriptor,Od=(r,t,e,A)=>{for(var i=A>1?void 0:A?Gd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Rr=class extends Xt{static from(r){const t=r.length*4,e=new Rr(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeUint16(A.advanceWidth),e.view.writeUint16(A.leftSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.hhea.numOfLongHorMetrics;let e=0;const A=this.view;return A.seek(0),Array.from({length:r}).map((i,s)=>(s<t&&(e=A.readUint16()),{advanceWidth:e,leftSideBearing:A.readUint16()}))}};Rr=Od([Gt("hmtx")],Rr);var Hd=Object.getOwnPropertyDescriptor,Jd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Hd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let mn=class extends Xt{};mn=Jd([Gt("kern","kern")],mn);var Kd=Object.getOwnPropertyDescriptor,Yd=(r,t,e,A)=>{for(var i=A>1?void 0:A?Kd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Pr=class extends Xt{static from(r,t=1){const e=r.length*(t?4:2),A=new Pr(new ArrayBuffer(e));return r.forEach(i=>{t?A.view.writeUint32(i):A.view.writeUint16(i/2)}),A}_locations;get locations(){return this._locations??=this.readLocations()}readLocations(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.head.indexToLocFormat,e=this.view;return e.seek(0),Array.from({length:r}).map(()=>t?e.readUint32():e.readUint16()*2)}};Pr=Yd([Gt("loca")],Pr);var Vd=Object.defineProperty,zd=Object.getOwnPropertyDescriptor,jt=(r,t,e,A)=>{for(var i=A>1?void 0:A?zd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Vd(t,e,i),i};let kt=class extends Xt{constructor(r=new ArrayBuffer(32),t){super(r,t,Math.min(32,r.byteLength-(t??0)))}};jt([m("fixed")],kt.prototype,"version",2),jt([m("uint16")],kt.prototype,"numGlyphs",2),jt([m("uint16")],kt.prototype,"maxPoints",2),jt([m("uint16")],kt.prototype,"maxContours",2),jt([m("uint16")],kt.prototype,"maxComponentPoints",2),jt([m("uint16")],kt.prototype,"maxComponentContours",2),jt([m("uint16")],kt.prototype,"maxZones",2),jt([m("uint16")],kt.prototype,"maxTwilightPoints",2),jt([m("uint16")],kt.prototype,"maxStorage",2),jt([m("uint16")],kt.prototype,"maxFunctionDefs",2),jt([m("uint16")],kt.prototype,"maxInstructionDefs",2),jt([m("uint16")],kt.prototype,"maxStackElements",2),jt([m("uint16")],kt.prototype,"maxSizeOfInstructions",2),jt([m("uint16")],kt.prototype,"maxComponentElements",2),jt([m("uint16")],kt.prototype,"maxComponentDepth",2),kt=jt([Gt("maxp")],kt);var Wd=Object.defineProperty,qd=Object.getOwnPropertyDescriptor,kr=(r,t,e,A)=>{for(var i=A>1?void 0:A?qd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Wd(t,e,i),i};const xl={0:"copyright",1:"fontFamily",2:"fontSubFamily",3:"uniqueSubFamily",4:"fullName",5:"version",6:"postScriptName",7:"tradeMark",8:"manufacturer",9:"designer",10:"description",11:"urlOfFontVendor",12:"urlOfFontDesigner",13:"licence",14:"urlOfLicence",16:"preferredFamily",17:"preferredSubFamily",18:"compatibleFull",19:"sampleText"},wn={Macintosh:1,Microsoft:3},Xd={Default:0},Fl={UCS2:1};let VA=class extends Xt{_names;get names(){return this._names??=this.readNames()}readNames(){const r=this.count;this.view.seek(6);const t=[];for(let o=0;o<r;++o)t.push({platform:this.view.readUint16(),encoding:this.view.readUint16(),language:this.view.readUint16(),nameId:this.view.readUint16(),length:this.view.readUint16(),offset:this.view.readUint16()});const e=this.stringOffset;for(let o=0;o<r;++o){const a=t[o];a.name=this.view.readBytes(e+a.offset,a.length)}let A=wn.Macintosh,i=Xd.Default,s=0;t.some(o=>o.platform===wn.Microsoft&&o.encoding===Fl.UCS2&&o.language===1033)&&(A=wn.Microsoft,i=Fl.UCS2,s=1033);const n={};for(let o=0;o<r;++o){const a=t[o];a.platform===A&&a.encoding===i&&a.language===s&&xl[a.nameId]&&(n[xl[a.nameId]]=s===0?id(a.name):rd(a.name))}return n}};kr([m("uint16")],VA.prototype,"format",2),kr([m("uint16")],VA.prototype,"count",2),kr([m("uint16")],VA.prototype,"stringOffset",2),VA=kr([Gt("name")],VA);var jd=Object.defineProperty,Zd=Object.getOwnPropertyDescriptor,at=(r,t,e,A)=>{for(var i=A>1?void 0:A?Zd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&jd(t,e,i),i};let ot=class extends Xt{get fontPANOSE(){return[this.bFamilyType,this.bSerifStyle,this.bWeight,this.bProportion,this.bContrast,this.bStrokeVariation,this.bArmStyle,this.bLetterform,this.bMidline,this.bXHeight]}};at([m("uint16")],ot.prototype,"version",2),at([m("int16")],ot.prototype,"xAvgCharWidth",2),at([m("uint16")],ot.prototype,"usWeightClass",2),at([m("uint16")],ot.prototype,"usWidthClass",2),at([m("uint16")],ot.prototype,"fsType",2),at([m("uint16")],ot.prototype,"ySubscriptXSize",2),at([m("uint16")],ot.prototype,"ySubscriptYSize",2),at([m("uint16")],ot.prototype,"ySubscriptXOffset",2),at([m("uint16")],ot.prototype,"ySubscriptYOffset",2),at([m("uint16")],ot.prototype,"ySuperscriptXSize",2),at([m("uint16")],ot.prototype,"ySuperscriptYSize",2),at([m("uint16")],ot.prototype,"ySuperscriptXOffset",2),at([m("uint16")],ot.prototype,"ySuperscriptYOffset",2),at([m("uint16")],ot.prototype,"yStrikeoutSize",2),at([m("uint16")],ot.prototype,"yStrikeoutPosition",2),at([m("uint16")],ot.prototype,"sFamilyClass",2),at([m({type:"uint8"})],ot.prototype,"bFamilyType",2),at([m({type:"uint8"})],ot.prototype,"bSerifStyle",2),at([m({type:"uint8"})],ot.prototype,"bWeight",2),at([m({type:"uint8"})],ot.prototype,"bProportion",2),at([m({type:"uint8"})],ot.prototype,"bContrast",2),at([m({type:"uint8"})],ot.prototype,"bStrokeVariation",2),at([m({type:"uint8"})],ot.prototype,"bArmStyle",2),at([m({type:"uint8"})],ot.prototype,"bLetterform",2),at([m({type:"uint8"})],ot.prototype,"bMidline",2),at([m({type:"uint8"})],ot.prototype,"bXHeight",2),at([m({type:"uint8",size:16})],ot.prototype,"ulUnicodeRange",2),at([m({type:"char",size:4})],ot.prototype,"achVendID",2),at([m("uint16")],ot.prototype,"fsSelection",2),at([m("uint16")],ot.prototype,"usFirstCharIndex",2),at([m("uint16")],ot.prototype,"usLastCharIndex",2),at([m("int16")],ot.prototype,"sTypoAscender",2),at([m("int16")],ot.prototype,"sTypoDescender",2),at([m("int16")],ot.prototype,"sTypoLineGap",2),at([m("uint16")],ot.prototype,"usWinAscent",2),at([m("uint16")],ot.prototype,"usWinDescent",2),at([m({offset:72,type:"uint8",size:8})],ot.prototype,"ulCodePageRange",2),at([m({offset:72,type:"int16"})],ot.prototype,"sxHeight",2),at([m("int16")],ot.prototype,"sCapHeight",2),at([m("uint16")],ot.prototype,"usDefaultChar",2),at([m("uint16")],ot.prototype,"usBreakChar",2),at([m("uint16")],ot.prototype,"usMaxContext",2),ot=at([Gt("OS/2","os2")],ot);var $d=Object.defineProperty,tI=Object.getOwnPropertyDescriptor,Me=(r,t,e,A)=>{for(var i=A>1?void 0:A?tI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&$d(t,e,i),i};let Ie=class extends Xt{constructor(r=new ArrayBuffer(32),t,e){super(r,t,e)}};Me([m("fixed")],Ie.prototype,"format",2),Me([m("fixed")],Ie.prototype,"italicAngle",2),Me([m("int16")],Ie.prototype,"underlinePosition",2),Me([m("int16")],Ie.prototype,"underlineThickness",2),Me([m("uint32")],Ie.prototype,"isFixedPitch",2),Me([m("uint32")],Ie.prototype,"minMemType42",2),Me([m("uint32")],Ie.prototype,"maxMemType42",2),Me([m("uint32")],Ie.prototype,"minMemType1",2),Me([m("uint32")],Ie.prototype,"maxMemType1",2),Ie=Me([Gt("post")],Ie);var eI=Object.defineProperty,AI=Object.getOwnPropertyDescriptor,Ae=(r,t,e,A)=>{for(var i=A>1?void 0:A?AI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&eI(t,e,i),i};let Ht=class extends Xt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};Ae([m("fixed")],Ht.prototype,"version",2),Ae([m("int16")],Ht.prototype,"vertTypoAscender",2),Ae([m("int16")],Ht.prototype,"vertTypoDescender",2),Ae([m("int16")],Ht.prototype,"vertTypoLineGap",2),Ae([m("int16")],Ht.prototype,"advanceHeightMax",2),Ae([m("int16")],Ht.prototype,"minTopSideBearing",2),Ae([m("int16")],Ht.prototype,"minBottomSideBearing",2),Ae([m("int16")],Ht.prototype,"yMaxExtent",2),Ae([m("int16")],Ht.prototype,"caretSlopeRise",2),Ae([m("int16")],Ht.prototype,"caretSlopeRun",2),Ae([m("int16")],Ht.prototype,"caretOffset",2),Ae([m({type:"int16",size:4})],Ht.prototype,"reserved",2),Ae([m("int16")],Ht.prototype,"metricDataFormat",2),Ae([m("int16")],Ht.prototype,"numOfLongVerMetrics",2),Ht=Ae([Gt("vhea")],Ht);var iI=Object.getOwnPropertyDescriptor,rI=(r,t,e,A)=>{for(var i=A>1?void 0:A?iI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};let Ur=class extends Xt{static from(r){const t=r.length*4,e=new Ur(new ArrayBuffer(t));return r.forEach(A=>{e.view.writeUint16(A.advanceHeight),e.view.writeInt16(A.topSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.vhea?.numOfLongVerMetrics??0,e=this.view;e.seek(0);let A=0;return Array.from({length:r}).map((i,s)=>(s<t&&(A=e.readUint16()),{advanceHeight:A,topSideBearing:e.readUint8()}))}};Ur=rI([Gt("vmtx")],Ur);var sI=Object.defineProperty,zi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&sI(t,e,i),i};class ye extends wr{format="TrueType";mimeType="font/ttf";_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([65536,1953658213,1954115633]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(HA(t).getUint32(0))}static checksum(t){const e=HA(t);let A=e.byteLength;for(;A%4;)A++;let i=0;for(let s=0,n=A/4;s<n;s+=4)s*4<A-4&&(i+=e.getUint32(s*4,!1));return i&4294967295}static from(t){const e=c=>c+3&-4,A=t.tableViews.size,i=Array.from(t.tableViews.values()).reduce((c,g)=>c+e(g.byteLength),0),s=new this(new ArrayBuffer(12+A*16+i));s.scalerType=65536,s.numTables=A;const n=Math.log(2);s.searchRange=Math.floor(Math.log(A)/n)*16,s.entrySelector=Math.floor(s.searchRange/n),s.rangeShift=A*16-s.searchRange;let o=12+A*16,a=0;const l=s.getDirectories();t.tableViews.forEach((c,g)=>{const f=l[a++];f.tag=g,f.checkSum=this.checksum(c),f.offset=o,f.length=c.byteLength,s.view.writeBytes(c,o),o+=e(f.length)});const u=s.createSFNT().head;return u.checkSumAdjustment=0,u.checkSumAdjustment=2981146554-this.checksum(s.view),s}getDirectories(){let t=this.view.byteOffset+12;return Array.from({length:this.numTables},()=>{const e=new JA(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Se(this.getDirectories().reduce((t,e)=>(t[e.tag]=new DataView(this.view.buffer,this.view.byteOffset+e.offset,e.length),t),{}))}}zi([m("uint32")],ye.prototype,"scalerType"),zi([m("uint16")],ye.prototype,"numTables"),zi([m("uint16")],ye.prototype,"searchRange"),zi([m("uint16")],ye.prototype,"entrySelector"),zi([m("uint16")],ye.prototype,"rangeShift");class vn extends ye{format="OpenType";mimeType="font/otf";static signature=new Set([1330926671]);static from(t){return super.from(t)}}var nI=Object.defineProperty,Wi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&nI(t,e,i),i};class xA extends ce{constructor(t,e){super(t,e,20)}}Wi([m({type:"char",size:4})],xA.prototype,"tag"),Wi([m("uint32")],xA.prototype,"offset"),Wi([m("uint32")],xA.prototype,"compLength"),Wi([m("uint32")],xA.prototype,"origLength"),Wi([m("uint32")],xA.prototype,"origChecksum");var oI=Object.defineProperty,he=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&oI(t,e,i),i};const ne=class $n extends wr{format="WOFF";mimeType="font/woff";get subfontFormat(){return ye.is(this.flavor)?"TrueType":vn.is(this.flavor)?"OpenType":"Open"}_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([2001684038]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(HA(t).getUint32(0))}static checkSum(t){const e=HA(t),A=e.byteLength,i=Math.floor(A/4);let s=0,n=0;for(;n<i;)s+=e.getUint32(4*n++,!1);let o=A-i*4;if(o){let a=i*4;for(;o>0;)s+=e.getUint8(a)<<o*8,a++,o--}return s%4294967296}static from(t,e=new ArrayBuffer(0)){const A=c=>c+3&-4,i=[];t.tableViews.forEach((c,g)=>{const f=HA(Xf(new Uint8Array(c.buffer,c.byteOffset,c.byteLength)));i.push({tag:g,view:f.byteLength<c.byteLength?f:c,rawView:c})});const s=i.length,n=i.reduce((c,g)=>c+A(g.view.byteLength),0),o=new $n(new ArrayBuffer(44+20*s+n+e.byteLength));o.signature=2001684038,o.flavor=65536,o.length=o.view.byteLength,o.numTables=s,o.totalSFNTSize=12+16*s+i.reduce((c,g)=>c+A(g.rawView.byteLength),0);let a=44+s*20,l=0;const u=o.getDirectories();return i.forEach(c=>{const g=u[l++];g.tag=c.tag,g.offset=a,g.compLength=c.view.byteLength,g.origChecksum=$n.checkSum(c.rawView),g.origLength=c.rawView.byteLength,o.view.writeBytes(c.view,a),a+=A(g.compLength)}),o.view.writeBytes(e),o}getDirectories(){let t=44;return Array.from({length:this.numTables},()=>{const e=new xA(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Se(this.getDirectories().reduce((t,e)=>{const A=e.tag,i=this.view.byteOffset+e.offset,s=e.compLength,n=e.origLength,o=i+s;return t[A]=s>=n?new DataView(this.view.buffer,i,s):new DataView(jf(new Uint8Array(this.view.buffer.slice(i,o))).buffer),t},{}))}};he([m("uint32")],ne.prototype,"signature"),he([m("uint32")],ne.prototype,"flavor"),he([m("uint32")],ne.prototype,"length"),he([m("uint16")],ne.prototype,"numTables"),he([m("uint16")],ne.prototype,"reserved"),he([m("uint32")],ne.prototype,"totalSFNTSize"),he([m("uint16")],ne.prototype,"majorVersion"),he([m("uint16")],ne.prototype,"minorVersion"),he([m("uint32")],ne.prototype,"metaOffset"),he([m("uint32")],ne.prototype,"metaLength"),he([m("uint32")],ne.prototype,"metaOrigLength"),he([m("uint32")],ne.prototype,"privOffset"),he([m("uint32")],ne.prototype,"privLength");let Nr=ne;function Sl(r,t=!0){if(ye.is(r))return new ye(r);if(vn.is(r))return new vn(r);if(Nr.is(r))return new Nr(r);if(t)throw new Error("Failed to parseFont")}function Ml(r,t=!0){const e=Sl(r,!1);if(e)return e;if(t)throw new Error("Failed to parseFont")}class Tr{static defaultRequestInit={cache:"force-cache"};fallbackFont;loading=new Map;loaded=new Map;familyToUrl=new Map;setFallbackFont(t){this.fallbackFont=t}async loadFallbackFont(t,e={}){this.fallbackFont=await this.load(t,e)}_createRequest(t,e){const A=new AbortController;return{url:t,when:fetch(t,{...Tr.defaultRequestInit,...e,signal:A.signal}).then(i=>i.arrayBuffer()),cancel:()=>A.abort()}}injectFontFace(t,e){return document.fonts.add(new FontFace(t,e)),this}injectStyleTag(t,e){const A=document.createElement("style");return A.appendChild(document.createTextNode(`@font-face {
|
|
859
859
|
font-family: "${t}";
|
|
860
860
|
src: url(${e});
|
|
861
861
|
}`)),document.head.appendChild(A),this}_parseUrls(t){const e=Array.from(new Set([...t.split(","),t]));return Array.from(new Set(e.map(A=>this.familyToUrl.get(A.trim())??this.familyToUrl.get(A)??A)))}get(t){let e;return t&&(e=this._parseUrls(t).reduce((i,s)=>i||this.loaded.get(s),void 0)),e??this.fallbackFont}set(t,e){return this.familyToUrl.set(t,e.src),this.loaded.set(e.src,e),this}delete(t){return this._parseUrls(t).forEach(e=>{this.familyToUrl.delete(e),this.loaded.delete(e)}),this}clear(){return this.familyToUrl.clear(),this.loading.clear(),this.loaded.clear(),this}async load(t,e={}){const{cancelOther:A,injectFontFace:i=!0,injectStyleTag:s=!0,...n}=e;let o,a;if(typeof t=="string"?o=t:{src:o,family:a}=t,this.loaded.has(o))return A&&(this.loading.forEach(f=>f.cancel()),this.loading.clear()),c(this.loaded.get(o));let l=this.loading.get(o);return l||(l=this._createRequest(o,n),this.loading.set(o,l)),A&&this.loading.forEach((f,d)=>{f!==l&&(f.cancel(),this.loading.delete(d))}),l.when.then(f=>{if(this.loaded.has(o))return c(this.loaded.get(o));{const d=g(f);return e.noAdd||this.loaded.set(o,d),d.familySet.forEach(B=>{this.familyToUrl.set(B,o),typeof document<"u"&&(i&&this.injectFontFace(B,f),s&&this.injectStyleTag(B,o))}),d}}).catch(f=>{if(f instanceof DOMException&&f.message==="The user aborted a request.")return g();throw f}).finally(()=>{this.loading.delete(o)});function u(){return a?Array.isArray(a)?a:[a]:[]}function c(f){return u().forEach(d=>{f.familySet.add(d)}),f}function g(f=new ArrayBuffer(0)){let d;function B(){return d||(d=f.byteLength?Ml(f,!1):void 0),d}function I(){const F=B();if(F instanceof ye||F instanceof Nr)return F.sfnt}return{src:o,family:a,buffer:f,familySet:new Set(u()),getFont:B,getSFNT:I}}}async waitUntilLoad(){await Promise.all(Array.from(this.loading.values()).map(t=>t.when))}}const Rl=new Tr,aI=Object.freeze(Object.defineProperty({__proto__:null,BaseFont:wr,get Cff(){return wA},get Cmap(){return YA},CmapSubtableFormat0:In,CmapSubtableFormat12:Cn,CmapSubtableFormat14:Vi,CmapSubtableFormat2:Ji,CmapSubtableFormat4:Bn,CmapSubtableFormat6:_A,FontDataObject:ce,FontDataView:Rt,Fonts:Tr,get Glyf(){return Mr},Glyph:gn,GlyphSet:fn,get Gpos(){return Dn},get Gsub(){return qe},get Head(){return xt},get Hhea(){return Ot},get Hmtx(){return Rr},get Kern(){return mn},get Loca(){return Pr},get Maxp(){return kt},get Name(){return VA},get Os2(){return ot},get Post(){return Ie},SFNT:Se,TTF:ye,TableDirectory:JA,get Vhea(){return Ht},get Vmtx(){return Ur},WOFF:Nr,WOFFTableDirectoryEntry:xA,createCmapSegments:En,dataTypeToByteLength:Gi,defineColumn:m,defineSFNTTable:Gt,fonts:Rl,parseFont:Ml,parseSFNTFont:Sl},Symbol.toStringTag,{value:"Module"}));class lI{diff(t,e,A={}){let i;typeof A=="function"?(i=A,A={}):"callback"in A&&(i=A.callback);const s=this.castInput(t,A),n=this.castInput(e,A),o=this.removeEmpty(this.tokenize(s,A)),a=this.removeEmpty(this.tokenize(n,A));return this.diffWithOptionsObj(o,a,A,i)}diffWithOptionsObj(t,e,A,i){var s;const n=b=>{if(b=this.postProcess(b,A),i){setTimeout(function(){i(b)},0);return}else return b},o=e.length,a=t.length;let l=1,u=o+a;A.maxEditLength!=null&&(u=Math.min(u,A.maxEditLength));const c=(s=A.timeout)!==null&&s!==void 0?s:1/0,g=Date.now()+c,f=[{oldPos:-1,lastComponent:void 0}];let d=this.extractCommon(f[0],e,t,0,A);if(f[0].oldPos+1>=a&&d+1>=o)return n(this.buildValues(f[0].lastComponent,e,t));let B=-1/0,I=1/0;const F=()=>{for(let b=Math.max(B,-l);b<=Math.min(I,l);b+=2){let y;const _=f[b-1],Q=f[b+1];_&&(f[b-1]=void 0);let D=!1;if(Q){const M=Q.oldPos-b;D=Q&&0<=M&&M<o}const S=_&&_.oldPos+1<a;if(!D&&!S){f[b]=void 0;continue}if(!S||D&&_.oldPos<Q.oldPos?y=this.addToPath(Q,!0,!1,0,A):y=this.addToPath(_,!1,!0,1,A),d=this.extractCommon(y,e,t,b,A),y.oldPos+1>=a&&d+1>=o)return n(this.buildValues(y.lastComponent,e,t))||!0;f[b]=y,y.oldPos+1>=a&&(I=Math.min(I,b-1)),d+1>=o&&(B=Math.max(B,b+1))}l++};if(i)(function b(){setTimeout(function(){if(l>u||Date.now()>g)return i(void 0);F()||b()},0)})();else for(;l<=u&&Date.now()<=g;){const b=F();if(b)return b}}addToPath(t,e,A,i,s){const n=t.lastComponent;return n&&!s.oneChangePerToken&&n.added===e&&n.removed===A?{oldPos:t.oldPos+i,lastComponent:{count:n.count+1,added:e,removed:A,previousComponent:n.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:e,removed:A,previousComponent:n}}}extractCommon(t,e,A,i,s){const n=e.length,o=A.length;let a=t.oldPos,l=a-i,u=0;for(;l+1<n&&a+1<o&&this.equals(A[a+1],e[l+1],s);)l++,a++,u++,s.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return u&&!s.oneChangePerToken&&(t.lastComponent={count:u,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=a,l}equals(t,e,A){return A.comparator?A.comparator(t,e):t===e||!!A.ignoreCase&&t.toLowerCase()===e.toLowerCase()}removeEmpty(t){const e=[];for(let A=0;A<t.length;A++)t[A]&&e.push(t[A]);return e}castInput(t,e){return t}tokenize(t,e){return Array.from(t)}join(t){return t.join("")}postProcess(t,e){return t}get useLongestToken(){return!1}buildValues(t,e,A){const i=[];let s;for(;t;)i.push(t),s=t.previousComponent,delete t.previousComponent,t=s;i.reverse();const n=i.length;let o=0,a=0,l=0;for(;o<n;o++){const u=i[o];if(u.removed)u.value=this.join(A.slice(l,l+u.count)),l+=u.count;else{if(!u.added&&this.useLongestToken){let c=e.slice(a,a+u.count);c=c.map(function(g,f){const d=A[l+f];return d.length>g.length?d:g}),u.value=this.join(c)}else u.value=this.join(e.slice(a,a+u.count));a+=u.count,u.added||(l+=u.count)}}return i}}class uI extends lI{}const cI=new uI;function hI(r,t,e){return cI.diff(r,t,e)}function _n(r,t,e){if(typeof t=="string"&&t.startsWith("linear-gradient")){const{x0:A,y0:i,x1:s,y1:n,stops:o}=gI(t,e.left,e.top,e.width,e.height),a=r.createLinearGradient(A,i,s,n);return o.forEach(l=>a.addColorStop(l.offset,l.color)),a}return t}function Lr(r,t,e){r?.color&&(r.color=_n(e,r.color,t)),r?.backgroundColor&&(r.backgroundColor=_n(e,r.backgroundColor,t)),r?.textStrokeColor&&(r.textStrokeColor=_n(e,r.textStrokeColor,t))}function gI(r,t,e,A,i){const s=r.match(/linear-gradient\((.+)\)$/)?.[1]??"",n=s.split(",")[0],o=n.includes("deg")?n:"0deg",a=s.replace(o,"").matchAll(/(#|rgba|rgb)(.+?) ([\d.]+%)/gi),u=(Number(o.replace("deg",""))||0)*Math.PI/180,c=A*Math.sin(u),g=i*Math.cos(u);return{x0:t+A/2-c,y0:e+i/2+g,x1:t+A/2+c,y1:e+i/2-g,stops:Array.from(a).map(f=>{let d=f[2];return d.startsWith("(")?d=d.split(",").length>3?`rgba${d}`:`rgb${d}`:d=`#${d}`,{offset:Number(f[3].replace("%",""))/100,color:d}})}}function zA(r){const{ctx:t,path:e,fontSize:A,clipRect:i}=r;t.save(),t.beginPath();const s=e.style,n={...s,fill:r.color??s.fill,stroke:r.textStrokeColor??s.stroke,strokeWidth:r.textStrokeWidth?r.textStrokeWidth*A:s.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round",shadowOffsetX:(r.shadowOffsetX??0)*A,shadowOffsetY:(r.shadowOffsetY??0)*A,shadowBlur:(r.shadowBlur??0)*A,shadowColor:r.shadowColor};i&&(t.rect(i.left,i.top,i.width,i.height),t.clip(),t.beginPath()),e.drawTo(t,n),t.restore()}function fI(r,t,e){const{left:A,top:i,width:s,height:n}=e,o=r.canvas;o.dataset.viewBox=`${A} ${i} ${s} ${n}`,o.dataset.pixelRatio=String(t);const a=s,l=n;o.width=Math.max(1,Math.ceil(a*t)),o.height=Math.max(1,Math.ceil(l*t)),o.style.width=`${a}px`,o.style.height=`${l}px`,r.clearRect(0,0,o.width,o.height),r.scale(t,t),r.translate(-A,-i)}function dI(r,t){const{paragraphs:e,computedStyle:A,glyphBox:i}=t;Lr(A,i,r),e.forEach(s=>{Lr(s.computedStyle,s.lineBox,r),s.fragments.forEach(n=>{Lr(n.computedStyle,n.inlineBox,r)})})}const II=new Set(["©","®","÷"]),pI=new Set(["—","…","“","”","﹏","﹋","﹌","‘","’","˜"]),EI={1:"italic",32:"bold"},BI={1:"italic",2:"bold"},Pl={100:-.2,200:-.1,300:0,400:0,normal:0,500:.1,600:.2,700:.3,bold:.3,800:.4,900:.5};class CI{constructor(t,e,A){this.content=t,this.index=e,this.parent=A}path=new Mt;lineBox=new ut;inlineBox=new ut;glyphBox;advanceWidth=0;advanceHeight=0;underlinePosition=0;underlineThickness=0;strikeoutPosition=0;strikeoutSize=0;ascender=0;descender=0;typoAscender=0;typoDescender=0;typoLineGap=0;winAscent=0;winDescent=0;xHeight=0;capHeight=0;baseline=0;centerDiviation=0;fontStyle;get compatibleGlyphBox(){const t=this.computedStyle.fontSize*.8;return this.glyphBox??(this.isVertical?new ut(this.lineBox.left+this.lineBox.width/2-t/2,this.lineBox.top,t,this.lineBox.height):new ut(this.lineBox.left,this.lineBox.top+this.lineBox.height/2-t/2,this.lineBox.width,t))}get center(){return this.compatibleGlyphBox.center}get computedStyle(){return this.parent.computedStyle}get isVertical(){return this.computedStyle.writingMode.includes("vertical")}get fontSize(){return this.computedStyle.fontSize}get fontHeight(){return this.fontSize*this.computedStyle.lineHeight}_getFontSFNT(t){const e=this.computedStyle.fontFamily,A=t??Rl;return(e?A.get(e):A.fallbackFont)?.getSFNT()}updateGlyph(t=this._getFontSFNT()){if(!t)return this;const{hhea:e,os2:A,post:i,head:s}=t,n=s.unitsPerEm,o=e.ascent,a=e.descent,{content:l,computedStyle:u,isVertical:c}=this,{fontSize:g}=u,f=n/g,d=t.getAdvanceWidth(l,g),B=(o+Math.abs(a))/f,I=o/f;return this.advanceWidth=d,this.advanceHeight=B,this.inlineBox.width=c?B:d,this.inlineBox.height=c?d:B,this.underlinePosition=(o-i.underlinePosition)/f,this.underlineThickness=i.underlineThickness/f,this.strikeoutPosition=(o-A.yStrikeoutPosition)/f,this.strikeoutSize=A.yStrikeoutSize/f,this.ascender=o/f,this.descender=a/f,this.typoAscender=A.sTypoAscender/f,this.typoDescender=A.sTypoDescender/f,this.typoLineGap=A.sTypoLineGap/f,this.winAscent=A.usWinAscent/f,this.winDescent=A.usWinDescent/f,this.xHeight=A.sxHeight/f,this.capHeight=A.sCapHeight/f,this.baseline=I,this.centerDiviation=B/2-I,this.fontStyle=EI[A.fsSelection]??BI[s.macStyle],this}update(t){const e=this._getFontSFNT(t);if(!e)return this;this.updateGlyph(e);const{isVertical:A,content:i,computedStyle:s,baseline:n,inlineBox:o,ascender:a,descender:l,typoAscender:u,fontStyle:c,advanceWidth:g,advanceHeight:f}=this,{left:d,top:B}=o,I=s.fontStyle==="italic"&&c!=="italic";let F=d,b=B+n,y;const _=new Mt;if(A&&(F+=(f-g)/2,Math.abs(g-f)>.1&&(b-=(a-u)/(a+Math.abs(l))*f),y=void 0),A&&!II.has(i)&&(i.codePointAt(0)<=256||pI.has(i))){_.addCommands(e.getPathCommands(i,F,B+n-(f-g)/2,s.fontSize));const D={y:B-(f-g)/2+f/2,x:F+g/2};I&&this._italic(_,A?{x:D.x,y:B-(f-g)/2+n}:void 0),_.rotate(90,D)}else y!==void 0?(_.addCommands(e.glyphs.get(y).getPathCommands(F,b,s.fontSize)),I&&this._italic(_,A?{x:F+g/2,y:B+u/(a+Math.abs(l))*f}:void 0)):(_.addCommands(e.getPathCommands(i,F,b,s.fontSize)),I&&this._italic(_,A?{x:F+f/2,y:b}:void 0));const Q=s.fontWeight??400;return Q in Pl&&(Q===700||Q==="bold")&&c!=="bold"&&_.bold(Pl[Q]*s.fontSize*.05),_.style={fill:s.color,stroke:s.textStrokeWidth?s.textStrokeColor:"none",strokeWidth:s.textStrokeWidth?s.textStrokeWidth*s.fontSize*.03:0},this.path=_,this.glyphBox=this.getGlyphBoundingBox(),this}_italic(t,e){t.skew(-.24,0,e||{y:this.inlineBox.top+this.baseline,x:this.inlineBox.left+this.inlineBox.width/2})}getGlyphMinMax(t,e,A){if(this.path.curves[0]?.curves.length)return this.path.getMinMax(t,e,A)}getGlyphBoundingBox(t){const e=this.getGlyphMinMax(void 0,void 0,t);if(!e)return;const{min:A,max:i}=e;return new ut(A.x,A.y,i.x-A.x,i.y-A.y)}drawTo(t,e={}){const A=this.computedStyle,i={ctx:t,path:this.path,fontSize:A.fontSize,color:A.color,...e};if(this.glyphBox)zA(i);else{t.save(),t.beginPath();const s=this.path.style,n={...s,fill:i.color??s.fill,stroke:i.textStrokeColor??s.stroke,strokeWidth:i.textStrokeWidth?i.textStrokeWidth*i.fontSize:s.strokeWidth,shadowOffsetX:(i.shadowOffsetX??0)*i.fontSize,shadowOffsetY:(i.shadowOffsetY??0)*i.fontSize,shadowBlur:(i.shadowBlur??0)*i.fontSize,shadowColor:i.shadowColor};Gs(t,n),t.font=`${i.fontSize}px ${i.fontFamily}`,this.isVertical?(t.textBaseline="middle",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.inlineBox.height/2)):(t.textBaseline="alphabetic",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.baseline)),t.restore()}}}function kl(){const r=new Map;async function t(A){if(!r.has(A)){r.set(A,A);try{r.set(A,await fetch(A).then(i=>i.text()))}catch(i){console.warn(i),r.delete(A)}}}function e(A){return A.startsWith("http://")||A.startsWith("https://")||A.startsWith("blob://")}return{loaded:r,needsLoad:e,load:t}}function Ul(r){const t=new Map;function e(A){let i=t.get(A);if(!i){const s=Hs(r.needsLoad(A)?r.loaded.get(A)??A:A),n=Ks(s);i={dom:s,pathSet:n},t.set(A,i)}return i}return{parsed:t,parse:e}}function bn(r,t){return typeof r=="number"?r:r.endsWith("%")?(r=r.substring(0,r.length-1),Math.ceil(Number(r)/100*t.total)):r.endsWith("rem")?(r=r.substring(0,r.length-3),Number(r)*t.fontSize):r.endsWith("em")?(r=r.substring(0,r.length-2),Number(r)*t.fontSize):Number(r)}function xn(r){return lt(r)?{}:r}function QI(r,t){const e=Object.keys(r),A=Object.keys(t);return Array.from(new Set([...e,...A])).every(s=>WA(r[s],t[s]))}function WA(r,t){const e=typeof r;return e===typeof t?e==="object"?QI(r,t):r===t:!1}function Fn(r){if(!r)return r;const t={};for(const e in r)r[e]!==""&&r[e]!==void 0&&(t[e]=r[e]);return t}class yI{constructor(t,e={},A){this.content=t,this.style=e,this.parent=A,this.updateComputedStyle().initCharacters()}inlineBox=new ut;get computedContent(){const t=this.computedStyle;return t.textTransform==="uppercase"?this.content.toUpperCase():t.textTransform==="lowercase"?this.content.toLowerCase():this.content}updateComputedStyle(){return this.computedStyle={...this.parent.computedStyle,...Fn(this.style)},this}initCharacters(){const t=[];let e=0;for(const A of this.computedContent)t.push(new CI(A,e++,this));return this.characters=t,this}}class DI{constructor(t,e){this.style=t,this.parentStyle=e,this.updateComputedStyle()}lineBox=new ut;fragments=[];updateComputedStyle(){return this.computedStyle={...Fn(this.parentStyle),...Fn(this.style)},this}addFragment(t,e){const A=new yI(t,e,this);return this.fragments.push(A),A}}function ME(r){return r}class Gr{static notZeroStyles=new Set(["width","height"]);static pxStyles=new Set(["width","height","fontSize","letterSpacing","textStrokeWidth","textIndent","shadowOffsetX","shadowOffsetY","shadowBlur","margin","marginLeft","marginTop","marginRight","marginBottom","padding","paddingLeft","paddingTop","paddingRight","paddingBottom"]);_toDOMStyle(t){const e={};for(const A in t){const i=t[A];Gr.notZeroStyles.has(A)&&i===0||(typeof i=="number"&&Gr.pxStyles.has(A)?e[A]=`${i}px`:e[A]=i)}return e}createDOM(t,e){const A=document.createElement("section"),i={...e},s=e.writingMode.includes("horizontal");switch(e.textAlign){case"start":case"left":i.justifyContent="flex-start";break;case"center":i.justifyContent="center";break;case"end":case"right":i.justifyContent="flex-end";break}switch(e.verticalAlign){case"top":i.alignItems="flex-start";break;case"middle":i.alignItems="center";break;case"bottom":i.alignItems="flex-end";break}const n=!!(i.justifyContent||i.alignItems);Object.assign(A.style,{...this._toDOMStyle({...i,boxSizing:i.boxSizing??"border-box",display:i.display??(n?"inline-flex":void 0),width:i.width??"max-content",height:i.height??"max-content"}),whiteSpace:"pre-wrap",wordBreak:"break-all"});const o=document.createElement("ul");return Object.assign(o.style,{verticalAlign:"inherit",listStyleType:"inherit",padding:"0",margin:"0",width:n&&s?"100%":void 0,height:n&&!s?"100%":void 0}),t.forEach(a=>{const l=document.createElement("li");Object.assign(l.style,{verticalAlign:"inherit",...this._toDOMStyle(a.style)}),a.fragments.forEach(u=>{const c=document.createElement("span");Object.assign(c.style,{verticalAlign:"inherit",...this._toDOMStyle(u.style)}),c.appendChild(document.createTextNode(u.content)),l.appendChild(c)}),o.appendChild(l)}),A.appendChild(o),A}measureDOMText(t){const e=document.createRange();e.selectNodeContents(t);const A=t.data??"";let i=0;return Array.from(A).map(s=>{const n=i+=A.substring(i).indexOf(s),o=n+s.length;i+=s.length,e.setStart(t,Math.max(n,0)),e.setEnd(t,o);const a=e.getClientRects?.()??[e.getBoundingClientRect()];let l=a[a.length-1];a.length>1&&l.width<2&&(l=a[a.length-2]);const u=e.toString();if(u!==""&&l&&l.width+l.height!==0)return{content:u,top:l.top,left:l.left,height:l.height,width:l.width}}).filter(Boolean)}measureDOM(t){const e=[],A=[],i=[];return t.querySelectorAll("li").forEach((s,n)=>{const o=s.getBoundingClientRect();e.push({paragraphIndex:n,left:o.left,top:o.top,width:o.width,height:o.height}),s.querySelectorAll(":scope > *").forEach((a,l)=>{const u=a.getBoundingClientRect();A.push({paragraphIndex:n,fragmentIndex:l,left:u.left,top:u.top,width:u.width,height:u.height});let c=0;!a.children.length&&a.firstChild instanceof window.Text?this.measureDOMText(a.firstChild).forEach(g=>{i.push({...g,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:c++,textWidth:-1,textHeight:-1})}):a.querySelectorAll(":scope > *").forEach(g=>{g.firstChild instanceof window.Text&&this.measureDOMText(g.firstChild).forEach(f=>{i.push({...f,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:c++,textWidth:-1,textHeight:-1})})})})}),{paragraphs:e,fragments:A,characters:i}}measureParagraphDOM(t,e){const A=e.getBoundingClientRect(),i=this.measureDOM(e);i.paragraphs.forEach(o=>{const a=t[o.paragraphIndex];a.lineBox.left=o.left-A.left,a.lineBox.top=o.top-A.top,a.lineBox.width=o.width,a.lineBox.height=o.height}),i.fragments.forEach(o=>{const a=t[o.paragraphIndex].fragments[o.fragmentIndex];a.inlineBox.left=o.left-A.left,a.inlineBox.top=o.top-A.top,a.inlineBox.width=o.width,a.inlineBox.height=o.height});const s=[];let n=0;return i.characters.forEach(o=>{const{paragraphIndex:a,fragmentIndex:l,characterIndex:u}=o;s.push({...o,newParagraphIndex:a,left:o.left-A.left,top:o.top-A.top});const c=t[a].fragments[l].characters[u],{fontHeight:g,isVertical:f}=c,d=s[n];c.inlineBox.left=d.left,c.inlineBox.top=d.top,c.inlineBox.width=d.width,c.inlineBox.height=d.height,f?(c.lineBox.left=d.left+(d.width-g)/2,c.lineBox.top=d.top,c.lineBox.width=g,c.lineBox.height=d.height):(c.lineBox.left=d.left,c.lineBox.top=d.top+(d.height-g)/2,c.lineBox.width=d.width,c.lineBox.height=g),n++}),{paragraphs:t,boundingBox:new ut(0,0,A.width,A.height)}}measure(t,e,A){let i;A||(A=this.createDOM(t,e),Object.assign(A.style,{position:"fixed",visibility:"hidden"}),document.body.appendChild(A),i=()=>A?.parentNode?.removeChild(A));const s=this.measureParagraphDOM(t,A);return i?.(),s}}function mI(){const r=new iA,t=kl(),e=Ul(t);return{name:"background",pathSet:r,load:async A=>{const{backgroundImage:i}=A.style;i&&t.needsLoad(i)&&await t.load(i)},update:A=>{r.paths.length=0;const{style:i,lineBox:s,isVertical:n}=A,{backgroundImage:o,backgroundSize:a,backgroundColormap:l}=i;if(lt(o))return;const{pathSet:u}=e.parse(o),c=u.getBoundingBox(!0);let g,f,d,B;n?{x:f,y:g,width:B,height:d}=s:{x:g,y:f,width:d,height:B}=s;const I=xn(l??"none"),F=u.paths.map(Q=>{const D=Q.clone();return D.style.fill&&D.style.fill in I&&(D.style.fill=I[D.style.fill]),D.style.stroke&&D.style.stroke in I&&(D.style.stroke=I[D.style.stroke]),D});let b,y;if(a==="rigid"){b=Math.max(A.fontSize*5/c.width),y=b;const Q=new O;Q.x=c.width-d/b,Q.y=c.height-B/y,F.forEach(D=>{D.applyTransform(S=>{const M=S.x>c.left+c.width/2,V=S.y>c.top+c.height/2;M&&(S.x-=Q.x),V&&(S.y-=Q.y)})})}else b=d/c.width,y=B/c.height;const _=new Lt;_.translate(-c.x,-c.y),_.scale(b,y),n&&(_.translate(-d/2,-B/2),_.rotate(-Math.PI/2),_.translate(B/2,d/2)),_.translate(g,f),F.forEach(Q=>{Q.applyTransform(D=>{D.applyMatrix3(_)})}),r.paths.push(...F)},renderOrder:-2,render:(A,i)=>{const{boundingBox:s,computedStyle:n}=i;lt(n.backgroundColor)||(A.fillStyle=n.backgroundColor,A.fillRect(...s.array)),r.paths.forEach(o=>{if(zA({ctx:A,path:o,fontSize:n.fontSize}),i.debug){const a=new iA([o]).getBoundingBox();a&&A.strokeRect(a.x,a.y,a.width,a.height)}}),i.paragraphs.forEach(o=>{const{lineBox:a,style:l}=o;lt(l.backgroundColor)||(A.fillStyle=l.backgroundColor,A.fillRect(...a.array)),o.fragments.forEach(u=>{const{inlineBox:c,style:g}=u;lt(g.backgroundColor)||(A.fillStyle=g.backgroundColor,A.fillRect(...c.array))})})}}}function Sn(r){const{highlight:t,highlightImage:e,highlightReferImage:A,highlightColormap:i,highlightLine:s,highlightSize:n,highlightThickness:o}=r;return{image:t?.image??e??"none",referImage:t?.referImage??A??"none",colormap:t?.colormap??i??"none",line:t?.line??s??"none",size:t?.size??n??"cover",thickness:t?.thickness??o??"100%"}}function wI(){const r=new iA,t=[],e=kl(),A=Ul(e);return{name:"highlight",pathSet:r,load:async i=>{const s=new Set;i.forEachCharacter(n=>{const{computedStyle:o}=n,{image:a,referImage:l}=Sn(o);a&&e.needsLoad(a)&&s.add(a),l&&e.needsLoad(l)&&s.add(l)}),await Promise.all(Array.from(s).map(n=>e.load(n)))},update:i=>{t.length=0,r.paths.length=0;let s=[],n,o;i.forEachCharacter(a=>{const{computedStyle:l}=a,u=Sn(l),{image:c,colormap:g,line:f,size:d,thickness:B}=u;if(lt(c))n?.length&&(n=[],s.push(n));else{const{inlineBox:I,isVertical:F}=a,{fontSize:b}=l;(!o||WA(o.image,c)&&WA(o.colormap,g)&&WA(o.line,f)&&WA(o.size,d)&&WA(o.thickness,B))&&n?.length&&(F?n[0].inlineBox.left===I.left:n[0].inlineBox.top===I.top)&&n[0].fontSize===b?n.push(a):(n=[],n.push(a),s.push(n))}o=u}),s=s.filter(a=>a.length);for(let a=0;a<s.length;a++){const l=s[a],u=l[0],c=ut.from(...l.map(T=>T.compatibleGlyphBox));if(!c.height||!c.width)continue;const{computedStyle:g,isVertical:f,inlineBox:d,compatibleGlyphBox:B,strikeoutPosition:I,underlinePosition:F}=u,{fontSize:b}=g,{image:y,referImage:_,colormap:Q,line:D,size:S,thickness:M}=Sn(g),V=bn(M,{fontSize:b,total:c.width})/c.width,et=xn(Q),{pathSet:z,dom:J}=A.parse(y),$=z.getBoundingBox(!0),K=b/$.width*2,L=new ut().copy(c);f&&(L.width=c.height,L.height=c.width,L.left=c.left+c.width);const it=Math.floor(L.width);let G=it;S!=="cover"&&(G=bn(S,{fontSize:b,total:c.width})||it,L.width=G);const W=!lt(_)&<(D);if(W)$.copy(A.parse(_).pathSet.getBoundingBox(!0));else{let T;if(lt(D))if($.width/$.height>4){T="underline";const tt=J.getAttribute("viewBox");if(tt){const[k,P,q,Z]=tt.split(" ").map(X=>Number(X)),st=P+Z/2;$.y<st&&$.y+$.height>st?T="line-through":$.y+$.height<st?T="overline":T="underline"}}else T="outline";else T=D;switch(T){case"outline":{const tt=L.width*.2,k=L.height*.2;f?(L.x-=k/2,L.y-=tt/2,L.x-=L.height):(L.x-=tt/2,L.y-=k/2),L.width+=tt,L.height+=k;break}case"overline":L.height=$.height*K,f?L.x=d.left+d.width:L.y=d.top;break;case"line-through":L.height=$.height*K,f?L.x=d.left+d.width-I+L.height/2:L.y=d.top+I-L.height/2;break;case"underline":L.height=$.height*K,f?L.x=B.left+B.width-F:L.y=d.top+F;break}}const At=new Lt;if(At.translate(-$.x,-$.y),At.scale(L.width/$.width,L.height/$.height),f){const T=L.width/2,tt=L.height/2;W||At.translate(-T,-tt),At.rotate(-Math.PI/2),W||At.translate(tt,T)}At.translate(L.x,L.y);for(let T=0;T<Math.ceil(it/G);T++){const tt=At.clone();f?tt.translate(0,T*L.width):tt.translate(T*L.width,0),z.paths.forEach(k=>{const P=k.clone().applyTransform(tt);P.style.strokeWidth&&(P.style.strokeWidth*=K*V),P.style.strokeMiterlimit&&(P.style.strokeMiterlimit*=K),P.style.strokeDashoffset&&(P.style.strokeDashoffset*=K),P.style.strokeDasharray&&(P.style.strokeDasharray=P.style.strokeDasharray.map(q=>q*K)),P.style.fill&&P.style.fill in et&&(P.style.fill=et[P.style.fill]),P.style.stroke&&P.style.stroke in et&&(P.style.stroke=et[P.style.stroke]),r.paths.push(P),it!==G&&(f?t[r.paths.length-1]=new ut(c.left-c.width*2,c.top,c.width*4,c.height):t[r.paths.length-1]=new ut(c.left,c.top-c.height*2,c.width,c.height*4))})}}},renderOrder:-1,getBoundingBox:()=>{const i=[];return r.paths.forEach((s,n)=>{const o=t[n];let a=s.getBoundingBox();if(o){const l=Math.max(a.x,o.x),u=Math.max(a.y,o.y),c=Math.min(a.right,o.right),g=Math.min(a.bottom,o.bottom);a=new ut(l,u,c-l,g-u)}i.push(a)}),ut.from(...i)},render:(i,s)=>{r.paths.forEach((n,o)=>{if(zA({ctx:i,path:n,fontSize:s.computedStyle.fontSize,clipRect:t[o]}),s.debug){const a=new iA([n]).getBoundingBox();a&&i.strokeRect(a.x,a.y,a.width,a.height)}})}}}function vI(r,t){return`<svg width="${r*2}" height="${r*2}" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -909,7 +909,7 @@ void main() {
|
|
|
909
909
|
<textarea class="text-input" autofocus></textarea>
|
|
910
910
|
|
|
911
911
|
<div class="cursor blink"></div>
|
|
912
|
-
`)),this.$preview=t.querySelector(".preview"),this.$textInput=t.querySelector(".text-input"),this.$cursor=t.querySelector(".cursor"),this.$textInput.addEventListener("compositionstart",()=>this.composition=!0),this.$textInput.addEventListener("compositionend",()=>this.composition=!1),this.$textInput.addEventListener("keydown",this.onKeydown.bind(this)),this.$textInput.addEventListener("input",this.onInput.bind(this)),this.$textInput.addEventListener("blur",this.onBlur.bind(this)),this.$textInput.addEventListener("mousedown",this.onMousedown.bind(this))}getTextValue(){return Bo(this.getContentValue(this.text.content))}getContentValue(t,e=Bo(t),A=e){e=ci(e),e=e.replace(UI,g=>Array.from(g).length>1?"?":g),A=ci(A);const i=PI(t),s=[];let n=0,o=0,a={};hI(A,e).forEach(g=>{const f=Array.from(g.value);g.removed?o+=f.length:f.forEach(()=>{g.added?s[n]={...a}:(a=RI(i[o]),s[n]={...a},o++),n++})});let u=0;const c=[];return RA(e).forEach((g,f)=>{const{fragments:d,...B}=t[f]??{};let I={...B,fragments:[]},F;g.fragments.forEach(b=>{Array.from(b.content).forEach(y=>{const _=s[u]??{};if(F){const{content:Q,...D}=F;kI(_,D)?F.content+=y:(I.fragments.push(F),F={..._,content:y})}else F={..._,content:y};u++})}),MA(g.fragments[g.fragments.length-1]?.content??"")||u++,F&&I.fragments.push(F),I.fragments.length&&(c.push(I),I={...B,fragments:[]})}),c}setTextInput(t){this.$textInput.value=t,this._oldText=t}onInput(){const t=this.$textInput.value;this.text.content=this.getContentValue(this.text.content,t,this._oldText),this._oldText=t,this.updateSelection(),this.render()}_timer;onKeydown(t){switch(t.stopPropagation(),t.key){case"Escape":return this.$textInput.blur()}this.updateSelection(),this.render(),setTimeout(()=>{this.updateSelection(),this.render()},0),setTimeout(()=>{this.updateSelection(),this.render()},100)}onBlur(){this.emit("done",this.text)}findNearest(t){const{x:e,y:A,xWeight:i=1,yWeight:s=1}=t,n=this.selectableCharacters.reduce((o,a,l)=>{const u=Math.abs(a.left+a.width/2-e)*i+Math.abs(a.top+a.height/2-A)*s;return u<o.diff?{diff:u,index:l,value:a}:o},{diff:Number.MAX_SAFE_INTEGER,index:-1,value:void 0});if(n?.value){const o=n.value.left+n.value.width/2;return e>o&&!n.value.isCrlf&&!n.value.isLastSelected?n.index+1:n.index}return-1}updateSelection(){if(this.composition)this.selection=this.prevSelection;else{let t=0;const e=[];this.selectableCharacters.forEach((A,i)=>{t<=this.$textInput.selectionStart?e[0]=i:t<=this.$textInput.selectionEnd&&(e[1]=i),t+=A.content.length}),this.selection=e,this.prevSelection=this.selection}}updateDOMSelection(){let t=0,e=0;this.selectableCharacters.forEach((A,i)=>{i<this.selectionMinMax.min?(t+=A.content.length,e=t):i<this.selectionMinMax.max&&(e+=A.content.length)}),this.$textInput.selectionStart=t,this.$textInput.selectionEnd=e}onMousedown(t){t.preventDefault(),t.stopPropagation(),this.$textInput.focus();const e=this.findNearest({x:t.offsetX,y:t.offsetY});this.selection=[e,e],this.updateDOMSelection(),this.render();const A=s=>{this.selection[1]=this.findNearest({x:s.offsetX,y:s.offsetY}),this.updateDOMSelection(),this.render()},i=()=>{document.removeEventListener("mousemove",A),document.removeEventListener("mouseup",i)};document.addEventListener("mousemove",A),document.addEventListener("mouseup",i)}render(){const t=this.text.isVertical;this.text.style={justifyContent:"center",alignItems:"center",textAlign:"center",color:"#FFFFFFFF",...this.text.style},this.text.style.width=this.width,this.text.style.height=this.height,this.text.requestUpdate();let e;this.text.render({pixelRatio:this.pixelRatio,view:this.$preview,onContext:i=>e=i});const A=this.selectedCharacters;if(e){const i={};A.forEach(s=>{if(s.isLastSelected)return;const n=t?s.left:s.top;i[n]||(i[n]=[]),i[n].push({x:s.left,y:s.top,w:s.width,h:s.height})}),e.fillStyle=getComputedStyle(this.$preview).getPropertyValue("--selection-color"),Object.values(i).forEach(s=>{const n={x:Math.min(...s.map(a=>a.x)),y:Math.min(...s.map(a=>a.y))},o={x:Math.max(...s.map(a=>a.x+a.w)),y:Math.max(...s.map(a=>a.y+a.h))};e.fillRect(n.x+this.text.boundingBox.left,n.y+this.text.boundingBox.top,o.x-n.x,o.y-n.y)})}if(A.length===0){this.$cursor.style.visibility="visible";const i=this.cursorPosition;this.$cursor.style.backgroundColor=i.color??"rgba(var(--color)",this.$cursor.style.left=`${i.left}px`,this.$cursor.style.top=`${i.top}px`,this.$cursor.style.height=t?"1px":`${i.height}px`,this.$cursor.style.width=t?`${i.width}px`:"1px"}else this.$cursor.style.visibility="hidden";this.$cursor.classList.remove("blink"),this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>this.$cursor.classList.add("blink"),500),this.emit("rendered",this.text)}requestUpdate(){this.render()}attributeChangedCallback(t,e,A){this[t]=A}emit(t,e){return this.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!0,composed:!0,detail:e}))}}Nl([w()],Tl.prototype,"width"),Nl([w()],Tl.prototype,"height");var TI=Object.defineProperty,qi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&TI(t,e,i),i};class FA extends tA{constructor(t){super(),this.parent=t,this.base.on("updateProperty",(...e)=>{switch(e[0]){case"content":case"effects":this.setter(e[0],e[1]);break}this._updateProperty(...e)})}base=new Re;measureResult;setProperties(t){return super.setProperties(lt(t)?void 0:bc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":case"enabled":this.parent.requestRedraw();break}}_updateText(){this.base.style={justifyContent:"center",alignItems:"center",textAlign:"center",...this.parent.style.toJSON()},this.base.requestUpdate()}measure(){return this._updateText(),this.base.measure()}updateMeasure(){return this.measureResult=this.measure(),this}canDraw(){return!!(this.enabled&&!/^\s*$/.test(this.base.toString()))}draw(){const t=this.parent.context;this.base.update(),this.base.paragraphs.forEach(e=>{e.fragments.forEach(A=>{A.characters.forEach(i=>{t.fillStyle=i.computedStyle.color,t.addPath(i.path),t.style.fillRule="evenodd",t.closePath(),t.fill()})})})}}qi([w({fallback:!0})],FA.prototype,"enabled"),qi([w({alias:"base.content",fallback:()=>[]})],FA.prototype,"content"),qi([w({alias:"base.effects"})],FA.prototype,"effects"),qi([w({protected:!0,alias:"base.measureDOM"})],FA.prototype,"measureDOM"),qi([w({protected:!0,alias:"base.fonts"})],FA.prototype,"fonts");var LI=Object.defineProperty,GI=Object.getOwnPropertyDescriptor,Pn=(r,t,e,A)=>{for(var i=A>1?void 0:A?GI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&LI(t,e,i),i};h.Node2D=class extends h.CanvasItem{position=new ae().on("update",()=>this.updateGlobalTransform());scale=new ae(1,1).on("update",()=>this.updateGlobalTransform());skew=new ae().on("update",()=>this.updateGlobalTransform());transform=new Yt;globalPosition=new ae;globalScale=new ae;globalSkew=new ae;globalTransform=new Yt;_parentTransformDirtyId;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"rotation":this.updateGlobalTransform();break}}getTransformOrigin(){return new ae(0,0)}getTransform(t){const e=this.getTransformOrigin(),A=new Yt;return A.translate(-e.x,-e.y).scale(this.scale.x,this.scale.y).skew(this.skew.x,this.skew.y).rotate(this.rotation),t?.(A),A.translate(this.position.x,this.position.y).translate(e.x,e.y),A}updateTransform(){this.transform.copy(this.getTransform())}updateGlobalTransform(){this.updateTransform();const t=this.getParent();t?.globalTransform?(this._parentTransformDirtyId=t.globalTransform.dirtyId,this.globalScale.set(t.globalScale.x*this.scale.x,t.globalScale.y*this.scale.y),this.globalRotation=t.globalRotation+this.rotation,t.globalTransform.multiply(this.transform,this.globalTransform)):(this.globalScale.copy(this.scale),this.globalRotation=this.rotation,this.globalTransform.copy(this.transform));const[e,A,i,s,n,o]=this.globalTransform.toArray();this.globalPosition.set(i,o),this.globalSkew.x=Math.atan2(A,e)-this.globalRotation,this.globalSkew.y=Math.atan2(s,n)-this.globalRotation,this.requestRelayout()}_transformVertices(t,e){let A,i,s,n,o,a;if(e){const u=this.globalTransform.clone();u.multiply(typeof e=="function"?e?.():e),[A,i,s,n,o,a]=u.toArray()}else[A,i,s,n,o,a]=this.globalTransform.toArray();const l=t.slice();for(let u=t.length,c=0;c<u;c+=2){const g=t[c],f=t[c+1];l[c]=A*g+i*f+s,l[c+1]=n*g+o*f+a}return l}_relayout(t){return this.updateGlobalTransform(),super._relayout(t).map(e=>({...e,vertices:this._transformVertices(e.vertices,e.vertTransform)}))}_process(t){super._process(t);const e=this.getParent();e?.globalTransform&&this._parentTransformDirtyId!==e?.globalTransform?.dirtyId&&this.requestRelayout()}},Pn([w({protected:!0,fallback:0})],h.Node2D.prototype,"rotation",2),Pn([w({protected:!0,fallback:0})],h.Node2D.prototype,"globalRotation",2),h.Node2D=Pn([nt("Node2D")],h.Node2D);var OI=Object.getOwnPropertyDescriptor,HI=(r,t,e,A)=>{for(var i=A>1?void 0:A?OI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.BaseElement2D=class extends h.Node2D{size=new ae().on("update",()=>{this.updateGlobalTransform(),this.requestRedraw()});get style(){return this._style}set style(t){const e=(...A)=>{this.emit("updateStyleProperty",...A),this._updateStyleProperty(A[0],A[1],A[2],A[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_background=new $s(this);get background(){return this._background}set background(t){this._background.resetProperties().setProperties(t)}_shape=new mA(this);get shape(){return this._shape}set shape(t){this._shape.resetProperties().setProperties(t)}_fill=new Vt(this);get fill(){return this._fill}set fill(t){this._fill.resetProperties().setProperties(t)}_outline=new Mi(this);get outline(){return this._outline}set outline(t){this._outline.resetProperties().setProperties(t)}_foreground=new tn(this);get foreground(){return this._foreground}set foreground(t){this._foreground.resetProperties().setProperties(t)}_text=new FA(this);get text(){return this._text}set text(t){this._text.resetProperties().setProperties(t)}_shadow=new DA(this);get shadow(){return this._shadow}set shadow(t){this._shadow.resetProperties().setProperties(t)}constructor(t,e=[]){super(),this._updateStyleProperty=this._updateStyleProperty.bind(this),this.style=new ki,this.setProperties(t).append(e)}setProperties(t){if(t){const{style:e,text:A,shape:i,background:s,fill:n,outline:o,foreground:a,shadow:l,...u}=t;e&&this.style.setProperties(e),s&&this.background.setProperties(s),i&&this.shape.setProperties(i),n&&this.fill.setProperties(n),o&&this.outline.setProperties(o),A&&this.text.setProperties(A),a&&this.foreground.setProperties(a),l&&this.shadow.setProperties(l),super.setProperties(u)}return this}_updateStyleProperty(t,e,A,i){switch(t){case"rotate":this.rotation=this.style.rotate*Go;break;case"scaleX":this.scale.x=this.style.scaleX;break;case"scaleY":this.scale.y=this.style.scaleY;break;case"skewX":this.skew.x=this.style.skewX;break;case"skewY":this.skew.y=this.style.skewY;break;case"transform":case"transformOrigin":this.updateGlobalTransform();break;case"opacity":this.opacity=this.style.opacity;break;case"visibility":this.visible=this.style.visibility==="visible";break;case"filter":this.requestRepaint();break;case"maskImage":this._updateMaskImage();break;case"borderRadius":this.requestRedraw();break;case"backgroundColor":this.background.color=this.style.backgroundColor;break;case"backgroundImage":this.background.image=this.style.backgroundImage;break;case"borderStyle":case"outlineStyle":this.outline.style=e;break;case"borderWidth":case"outlineWidth":this.outline.width=e;break;case"borderColor":case"outlineColor":this.outline.color=e;break}}_updateMaskImage(){const t="__$style.maskImage",e=this.style.maskImage;if(e&&e!=="none"){const A=this.getNode(t);A?A.src=e:this.appendChild(new h.MaskEffect({name:t,src:e}),"back")}else{const A=this.getNode(t);A&&this.removeChild(A)}}getTransformOrigin(){const{width:t,height:e}=this.size,[A,i]=aa(this.style.transformOrigin);return new ae(A*t,i*e)}getTransform(t){const{width:e,height:A}=this.size;return super.getTransform(i=>{oa(this.style.transform??"",e,A,i),t?.(i)})}updateGlobalTransform(){super.updateGlobalTransform(),this._updateOverflow()}getRect(){const{width:t,height:e}=this.size,A=0,i=0,s=A+t,n=i+e,[o,a,l,u,c,g]=this.globalTransform.toArray(),f=[[A,i],[A,n],[s,i],[s,n]].map(_=>[o*_[0]+a*_[1]+l,u*_[0]+c*_[1]+g]),d=f.map(_=>_[0]),B=f.map(_=>_[1]),I=Math.min(...d),F=Math.max(...d),b=Math.min(...B),y=Math.max(...B);return new xs(I,b,F-I,y-b)}_updateOverflow(){if(this.style.overflow==="hidden"){const t=this.getRect();this.mask={x:t.x,y:t.y,width:t.width,height:t.height}}else this.mask=void 0}_draw(){super._draw(),this._text.canDraw()&&this._text.updateMeasure(),this._background.canDraw()&&(this._tree?.log(this.name,"background drawing"),this._shape.drawRect(),this._background.draw()),this._fill.canDraw()&&(this._tree?.log(this.name,"fill drawing"),this._shape.draw(),this._fill.draw()),this._outline.canDraw()&&(this._tree?.log(this.name,"outline drawing"),this._shape.draw(),this._outline.draw()),this._foreground.canDraw()&&(this._tree?.log(this.name,"foreground drawing"),this._shape.drawRect(),this._foreground.draw()),this._text.canDraw()&&(this._tree?.log(this.name,"text drawing"),this._text.draw()),this._drawContent()}_drawContent(){}_repaint(t){const e=na(this.style.filter);return super._repaint(t).map(A=>({...A,colorMatrix:e.toMatrix4().toArray(!0),colorMatrixOffset:e.toVector4().toArray()}))}canPointerEvents(){return this.style.pointerEvents!=="none"}input(t,e){for(let A=this._children.length-1;A>=0;A--)this._children[A].input(t,e);this.isVisibleInTree()&&this._input(t,e)}_pointerInput(t,e){const{width:A,height:i}=this.size;return t.x>=0&&t.x<A&&t.y>=0&&t.y<i}_input(t,e){switch(e){case"pointerdown":case"pointermove":case"pointerup":{if(this.canPointerEvents()){const{screenX:A,screenY:i}=t;if(A&&i){const[s,n]=this.globalTransform.inverse().applyToPoint(A,i);this._pointerInput({x:s,y:n},e)&&(t.target||(t.target=this),this.emit(e,t))}}break}}}toJSON(){const t=e=>Object.keys(e).length>0?e:void 0;return li({...super.toJSON(),style:t(this.style.toJSON()),background:t(this.background.toJSON()),shape:t(this.shape.toJSON()),fill:t(this.fill.toJSON()),outline:t(this.outline.toJSON()),text:t(this.text.toJSON()),foreground:t(this.foreground.toJSON()),shadow:t(this.shadow.toJSON())})}},h.BaseElement2D=HI([nt("BaseElement2D")],h.BaseElement2D);class kn extends ki{constructor(t){super(),this.setProperties(t)}}const Ll={left:0,top:0,width:0,height:0};for(const r in Ll)sr(kn.prototype,r,{fallback:Ll[r]});var JI=Object.getOwnPropertyDescriptor,KI=(r,t,e,A)=>{for(var i=A>1?void 0:A?JI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.Element2D=class extends h.BaseElement2D{get style(){return this._style}set style(t){const e=(...A)=>{this.emit("updateStyleProperty",...A),this._updateStyleProperty(A[0],A[1],A[2],A[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}constructor(t,e=[]){super(),this.style=new kn,this.setProperties(t).append(e)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"left":this.position.x=Number(e);break;case"top":this.position.y=Number(e);break;case"width":this.size.width=Number(e);break;case"height":this.size.height=Number(e);break}switch(t){case"width":case"height":this.mask instanceof h.BaseElement2D&&(this.mask.size.width=this.size.width,this.mask.size.height=this.size.height);break}}},h.Element2D=KI([nt("Element2D")],h.Element2D);var YI=(()=>{var r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:pA&&pA.tagName.toUpperCase()==="SCRIPT"&&pA.src||new URL("index.js",document.baseURI).href;return function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var A,i;e.ready=new Promise(function(p,E){A=p,i=E});var s=Object.assign({},e),n="";typeof document<"u"&&document.currentScript&&(n=document.currentScript.src),r&&(n=r),n.indexOf("blob:")!==0?n=n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):n="";var o=e.print||console.log.bind(console),a=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var l;e.wasmBinary&&(l=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&K("no native wasm support detected");var u,c=!1;function g(p,E,C){C=E+C;for(var v="";!(E>=C);){var x=p[E++];if(!x)break;if(x&128){var R=p[E++]&63;if((x&224)==192)v+=String.fromCharCode((x&31)<<6|R);else{var U=p[E++]&63;x=(x&240)==224?(x&15)<<12|R<<6|U:(x&7)<<18|R<<12|U<<6|p[E++]&63,65536>x?v+=String.fromCharCode(x):(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023))}}else v+=String.fromCharCode(x)}return v}var f,d,B,I,F,b,y,_,Q;function D(){var p=u.buffer;f=p,e.HEAP8=d=new Int8Array(p),e.HEAP16=I=new Int16Array(p),e.HEAP32=b=new Int32Array(p),e.HEAPU8=B=new Uint8Array(p),e.HEAPU16=F=new Uint16Array(p),e.HEAPU32=y=new Uint32Array(p),e.HEAPF32=_=new Float32Array(p),e.HEAPF64=Q=new Float64Array(p)}var S,M=[],V=[],et=[];function z(){var p=e.preRun.shift();M.unshift(p)}var J=0,$=null;function K(p){throw e.onAbort&&e.onAbort(p),p="Aborted("+p+")",a(p),c=!0,p=new WebAssembly.RuntimeError(p+". Build with -sASSERTIONS for more info."),i(p),p}function L(p){return p.startsWith("data:application/octet-stream;base64,")}var it;if(it="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!L(it)){var G=it;it=e.locateFile?e.locateFile(G,n):n+G}function W(){var p=it;try{if(p==it&&l)return new Uint8Array(l);if(L(p))try{var E=xE(p.slice(37)),C=new Uint8Array(E.length);for(p=0;p<E.length;++p)C[p]=E.charCodeAt(p);var v=C}catch{throw Error("Converting base64 string to bytes failed.")}else v=void 0;var x=v;if(x)return x;throw"both async and sync fetching of the wasm failed"}catch(R){K(R)}}function At(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return W()}):fetch(it,{credentials:"same-origin"}).then(function(p){if(!p.ok)throw"failed to load wasm binary file at '"+it+"'";return p.arrayBuffer()}).catch(function(){return W()})}function T(p){for(;0<p.length;)p.shift()(e)}function tt(p){if(p===void 0)return"_unknown";p=p.replace(/[^a-zA-Z0-9_]/g,"$");var E=p.charCodeAt(0);return 48<=E&&57>=E?"_"+p:p}function k(p,E){return p=tt(p),function(){return E.apply(this,arguments)}}var P=[{},{value:void 0},{value:null},{value:!0},{value:!1}],q=[];function Z(p){var E=Error,C=k(p,function(v){this.name=p,this.message=v,v=Error(v).stack,v!==void 0&&(this.stack=this.toString()+`
|
|
912
|
+
`)),this.$preview=t.querySelector(".preview"),this.$textInput=t.querySelector(".text-input"),this.$cursor=t.querySelector(".cursor"),this.$textInput.addEventListener("compositionstart",()=>this.composition=!0),this.$textInput.addEventListener("compositionend",()=>this.composition=!1),this.$textInput.addEventListener("keydown",this.onKeydown.bind(this)),this.$textInput.addEventListener("input",this.onInput.bind(this)),this.$textInput.addEventListener("blur",this.onBlur.bind(this)),this.$textInput.addEventListener("mousedown",this.onMousedown.bind(this))}getTextValue(){return Bo(this.getContentValue(this.text.content))}getContentValue(t,e=Bo(t),A=e){e=ci(e),e=e.replace(UI,g=>Array.from(g).length>1?"?":g),A=ci(A);const i=PI(t),s=[];let n=0,o=0,a={};hI(A,e).forEach(g=>{const f=Array.from(g.value);g.removed?o+=f.length:f.forEach(()=>{g.added?s[n]={...a}:(a=RI(i[o]),s[n]={...a},o++),n++})});let u=0;const c=[];return RA(e).forEach((g,f)=>{const{fragments:d,...B}=t[f]??{};let I={...B,fragments:[]},F;g.fragments.forEach(b=>{Array.from(b.content).forEach(y=>{const _=s[u]??{};if(F){const{content:Q,...D}=F;kI(_,D)?F.content+=y:(I.fragments.push(F),F={..._,content:y})}else F={..._,content:y};u++})}),MA(g.fragments[g.fragments.length-1]?.content??"")||u++,F&&I.fragments.push(F),I.fragments.length&&(c.push(I),I={...B,fragments:[]})}),c}setTextInput(t){this.$textInput.value=t,this._oldText=t}onInput(){const t=this.$textInput.value;this.text.content=this.getContentValue(this.text.content,t,this._oldText),this._oldText=t,this.updateSelection(),this.render()}_timer;onKeydown(t){switch(t.stopPropagation(),t.key){case"Escape":return this.$textInput.blur()}this.updateSelection(),this.render(),setTimeout(()=>{this.updateSelection(),this.render()},0),setTimeout(()=>{this.updateSelection(),this.render()},100)}onBlur(){this.emit("done",this.text)}findNearest(t){const{x:e,y:A,xWeight:i=1,yWeight:s=1}=t,n=this.selectableCharacters.reduce((o,a,l)=>{const u=Math.abs(a.left+a.width/2-e)*i+Math.abs(a.top+a.height/2-A)*s;return u<o.diff?{diff:u,index:l,value:a}:o},{diff:Number.MAX_SAFE_INTEGER,index:-1,value:void 0});if(n?.value){const o=n.value.left+n.value.width/2;return e>o&&!n.value.isCrlf&&!n.value.isLastSelected?n.index+1:n.index}return-1}updateSelection(){if(this.composition)this.selection=this.prevSelection;else{let t=0;const e=[];this.selectableCharacters.forEach((A,i)=>{t<=this.$textInput.selectionStart?e[0]=i:t<=this.$textInput.selectionEnd&&(e[1]=i),t+=A.content.length}),this.selection=e,this.prevSelection=this.selection}}updateDOMSelection(){let t=0,e=0;this.selectableCharacters.forEach((A,i)=>{i<this.selectionMinMax.min?(t+=A.content.length,e=t):i<this.selectionMinMax.max&&(e+=A.content.length)}),this.$textInput.selectionStart=t,this.$textInput.selectionEnd=e}onMousedown(t){t.preventDefault(),t.stopPropagation(),this.$textInput.focus();const e=this.findNearest({x:t.offsetX,y:t.offsetY});this.selection=[e,e],this.updateDOMSelection(),this.render();const A=s=>{this.selection[1]=this.findNearest({x:s.offsetX,y:s.offsetY}),this.updateDOMSelection(),this.render()},i=()=>{document.removeEventListener("mousemove",A),document.removeEventListener("mouseup",i)};document.addEventListener("mousemove",A),document.addEventListener("mouseup",i)}render(){const t=this.text.isVertical;this.text.style={justifyContent:"center",alignItems:"center",textAlign:"center",color:"#FFFFFFFF",...this.text.style},this.text.style.width=this.width,this.text.style.height=this.height,this.text.requestUpdate();let e;this.text.render({pixelRatio:this.pixelRatio,view:this.$preview,onContext:i=>e=i});const A=this.selectedCharacters;if(e){const i={};A.forEach(s=>{if(s.isLastSelected)return;const n=t?s.left:s.top;i[n]||(i[n]=[]),i[n].push({x:s.left,y:s.top,w:s.width,h:s.height})}),e.fillStyle=getComputedStyle(this.$preview).getPropertyValue("--selection-color"),Object.values(i).forEach(s=>{const n={x:Math.min(...s.map(a=>a.x)),y:Math.min(...s.map(a=>a.y))},o={x:Math.max(...s.map(a=>a.x+a.w)),y:Math.max(...s.map(a=>a.y+a.h))};e.fillRect(n.x+this.text.boundingBox.left,n.y+this.text.boundingBox.top,o.x-n.x,o.y-n.y)})}if(A.length===0){this.$cursor.style.visibility="visible";const i=this.cursorPosition;this.$cursor.style.backgroundColor=i.color??"rgba(var(--color)",this.$cursor.style.left=`${i.left}px`,this.$cursor.style.top=`${i.top}px`,this.$cursor.style.height=t?"1px":`${i.height}px`,this.$cursor.style.width=t?`${i.width}px`:"1px"}else this.$cursor.style.visibility="hidden";this.$cursor.classList.remove("blink"),this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>this.$cursor.classList.add("blink"),500),this.emit("rendered",this.text)}requestUpdate(){this.render()}attributeChangedCallback(t,e,A){this[t]=A}emit(t,e){return this.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!0,composed:!0,detail:e}))}}Nl([w()],Tl.prototype,"width"),Nl([w()],Tl.prototype,"height");var TI=Object.defineProperty,qi=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&TI(t,e,i),i};class FA extends tA{constructor(t){super(),this.parent=t,this.base.on("updateProperty",(...e)=>{switch(e[0]){case"content":case"effects":this.setter(e[0],e[1]);break}this._updateProperty(...e)})}base=new Re;measureResult;setProperties(t){return super.setProperties(lt(t)?void 0:bc(t))}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":case"enabled":this.parent.requestRedraw();break}}_updateText(){this.base.style={justifyContent:"center",alignItems:"center",textAlign:"center",...this.parent.style.toJSON()},this.base.requestUpdate()}measure(){return this._updateText(),this.base.measure()}updateMeasure(){return this.measureResult=this.measure(),this}canDraw(){return!!(this.enabled&&!/^\s*$/.test(this.base.toString()))}draw(){const t=this.parent.context;this.base.update(),this.base.paragraphs.forEach(e=>{e.fragments.forEach(A=>{A.characters.forEach(i=>{t.fillStyle=i.computedStyle.color,t.addPath(i.path),t.style.fillRule="evenodd",t.closePath(),t.fill()})})})}}qi([w({fallback:!0})],FA.prototype,"enabled"),qi([w({alias:"base.content",fallback:()=>[]})],FA.prototype,"content"),qi([w({alias:"base.effects"})],FA.prototype,"effects"),qi([w({protected:!0,alias:"base.measureDOM"})],FA.prototype,"measureDOM"),qi([w({protected:!0,alias:"base.fonts"})],FA.prototype,"fonts");var LI=Object.defineProperty,GI=Object.getOwnPropertyDescriptor,Pn=(r,t,e,A)=>{for(var i=A>1?void 0:A?GI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&LI(t,e,i),i};h.Node2D=class extends h.CanvasItem{position=new ae().on("update",()=>this.updateGlobalTransform());scale=new ae(1,1).on("update",()=>this.updateGlobalTransform());skew=new ae().on("update",()=>this.updateGlobalTransform());transform=new Yt;globalPosition=new ae;globalScale=new ae;globalSkew=new ae;globalTransform=new Yt;_parentTransformDirtyId;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"rotation":this.updateGlobalTransform();break}}getTransformOrigin(){return new ae(0,0)}getTransform(t){const e=this.getTransformOrigin(),A=new Yt;return A.translate(-e.x,-e.y).scale(this.scale.x,this.scale.y).skew(this.skew.x,this.skew.y).rotate(this.rotation),t?.(A),A.translate(this.position.x,this.position.y).translate(e.x,e.y),A}updateTransform(){this.transform.copy(this.getTransform())}updateGlobalTransform(){this.updateTransform();const t=this.getParent();t?.globalTransform?(this._parentTransformDirtyId=t.globalTransform.dirtyId,this.globalScale.set(t.globalScale.x*this.scale.x,t.globalScale.y*this.scale.y),this.globalRotation=t.globalRotation+this.rotation,t.globalTransform.multiply(this.transform,this.globalTransform)):(this.globalScale.copy(this.scale),this.globalRotation=this.rotation,this.globalTransform.copy(this.transform));const[e,A,i,s,n,o]=this.globalTransform.toArray();this.globalPosition.set(i,o),this.globalSkew.x=Math.atan2(A,e)-this.globalRotation,this.globalSkew.y=Math.atan2(s,n)-this.globalRotation,this.requestRelayout()}_transformVertices(t,e){let A,i,s,n,o,a;if(e){const u=this.globalTransform.clone();u.multiply(typeof e=="function"?e?.():e),[A,i,s,n,o,a]=u.toArray()}else[A,i,s,n,o,a]=this.globalTransform.toArray();const l=t.slice();for(let u=t.length,c=0;c<u;c+=2){const g=t[c],f=t[c+1];l[c]=A*g+i*f+s,l[c+1]=n*g+o*f+a}return l}_relayout(t){return this.updateGlobalTransform(),super._relayout(t).map(e=>({...e,vertices:this._transformVertices(e.vertices,e.vertTransform)}))}_process(t){super._process(t);const e=this.getParent();e?.globalTransform&&this._parentTransformDirtyId!==e?.globalTransform?.dirtyId&&this.requestRelayout()}},Pn([w({protected:!0,fallback:0})],h.Node2D.prototype,"rotation",2),Pn([w({protected:!0,fallback:0})],h.Node2D.prototype,"globalRotation",2),h.Node2D=Pn([nt("Node2D")],h.Node2D);var OI=Object.getOwnPropertyDescriptor,HI=(r,t,e,A)=>{for(var i=A>1?void 0:A?OI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.BaseElement2D=class extends h.Node2D{size=new ae().on("update",()=>{this.updateGlobalTransform(),this.requestRedraw()});get style(){return this._style}set style(t){const e=(...A)=>{this.emit("updateStyleProperty",...A),this._updateStyleProperty(A[0],A[1],A[2],A[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_background=new $s(this);get background(){return this._background}set background(t){this._background.resetProperties().setProperties(t)}_shape=new mA(this);get shape(){return this._shape}set shape(t){this._shape.resetProperties().setProperties(t)}_fill=new Vt(this);get fill(){return this._fill}set fill(t){this._fill.resetProperties().setProperties(t)}_outline=new Mi(this);get outline(){return this._outline}set outline(t){this._outline.resetProperties().setProperties(t)}_foreground=new tn(this);get foreground(){return this._foreground}set foreground(t){this._foreground.resetProperties().setProperties(t)}_text=new FA(this);get text(){return this._text}set text(t){this._text.resetProperties().setProperties(t)}_shadow=new DA(this);get shadow(){return this._shadow}set shadow(t){this._shadow.resetProperties().setProperties(t)}constructor(t,e=[]){super(),this._updateStyleProperty=this._updateStyleProperty.bind(this),this.style=new ki,this.setProperties(t).append(e)}setProperties(t){if(t){const{style:e,text:A,shape:i,background:s,fill:n,outline:o,foreground:a,shadow:l,...u}=t;e&&this.style.setProperties(e),s&&this.background.setProperties(s),i&&this.shape.setProperties(i),n&&this.fill.setProperties(n),o&&this.outline.setProperties(o),A&&this.text.setProperties(A),a&&this.foreground.setProperties(a),l&&this.shadow.setProperties(l),super.setProperties(u)}return this}_updateStyleProperty(t,e,A,i){switch(t){case"rotate":this.rotation=this.style.rotate*Go;break;case"scaleX":this.scale.x=this.style.scaleX;break;case"scaleY":this.scale.y=this.style.scaleY;break;case"skewX":this.skew.x=this.style.skewX;break;case"skewY":this.skew.y=this.style.skewY;break;case"transform":case"transformOrigin":this.updateGlobalTransform();break;case"opacity":this.opacity=this.style.opacity;break;case"visibility":this.visible=this.style.visibility==="visible";break;case"filter":this.requestRepaint();break;case"maskImage":this._updateMaskImage();break;case"borderRadius":this.requestRedraw();break;case"backgroundColor":this.background.color=this.style.backgroundColor;break;case"backgroundImage":this.background.image=this.style.backgroundImage;break;case"borderStyle":case"outlineStyle":this.outline.style=e;break;case"borderWidth":case"outlineWidth":this.outline.width=e;break;case"borderColor":case"outlineColor":this.outline.color=e;break}}_updateMaskImage(){const t="__$style.maskImage",e=this.style.maskImage;if(e&&e!=="none"){const A=this.getNode(t);A?A.src=e:this.appendChild(new h.MaskEffect({name:t,src:e}),"back")}else{const A=this.getNode(t);A&&this.removeChild(A)}}getTransformOrigin(){const{width:t,height:e}=this.size,[A,i]=aa(this.style.transformOrigin);return new ae(A*t,i*e)}getTransform(t){const{width:e,height:A}=this.size;return super.getTransform(i=>{oa(this.style.transform??"",e,A,i),t?.(i)})}updateGlobalTransform(){super.updateGlobalTransform(),this._updateOverflow()}getRect(){const{width:t,height:e}=this.size,A=0,i=0,s=A+t,n=i+e,[o,a,l,u,c,g]=this.globalTransform.toArray(),f=[[A,i],[A,n],[s,i],[s,n]].map(_=>[o*_[0]+a*_[1]+l,u*_[0]+c*_[1]+g]),d=f.map(_=>_[0]),B=f.map(_=>_[1]),I=Math.min(...d),F=Math.max(...d),b=Math.min(...B),y=Math.max(...B);return new xs(I,b,F-I,y-b)}_updateOverflow(){if(this.style.overflow==="hidden"){const t=this.getRect();this.mask={x:t.x,y:t.y,width:t.width,height:t.height}}else this.mask=void 0}_draw(){super._draw(),this._text.canDraw()&&this._text.updateMeasure(),this._background.canDraw()&&(this._tree?.log(this.name,"background drawing"),this._shape.drawRect(),this._background.draw()),this._fill.canDraw()&&(this._tree?.log(this.name,"fill drawing"),this._shape.draw(),this._fill.draw()),this._outline.canDraw()&&(this._tree?.log(this.name,"outline drawing"),this._shape.draw(),this._outline.draw()),this._foreground.canDraw()&&(this._tree?.log(this.name,"foreground drawing"),this._shape.drawRect(),this._foreground.draw()),this._text.canDraw()&&(this._tree?.log(this.name,"text drawing"),this._text.draw()),this._drawContent()}_drawContent(){}_repaint(t){const e=na(this.style.filter);return super._repaint(t).map(A=>({...A,colorMatrix:e.toMatrix4().toArray(!0),colorMatrixOffset:e.toVector4().toArray()}))}canPointerEvents(){return this.style.pointerEvents!=="none"}input(t,e){for(let A=this._children.length-1;A>=0;A--)this._children[A].input(t,e);this.isVisibleInTree()&&this._input(t,e)}_pointerInput(t,e){const{width:A,height:i}=this.size;return t.x>=0&&t.x<A&&t.y>=0&&t.y<i}_input(t,e){switch(e){case"pointerdown":case"pointermove":case"pointerup":{if(this.canPointerEvents()){const{screenX:A,screenY:i}=t;if(A&&i){const[s,n]=this.globalTransform.inverse().applyToPoint(A,i);this._pointerInput({x:s,y:n},e)&&(t.target||(t.target=this),this.emit(e,t))}}break}}}toJSON(){const t=e=>Object.keys(e).length>0?e:void 0;return li({...super.toJSON(),style:t(this.style.toJSON()),background:t(this.background.toJSON()),shape:t(this.shape.toJSON()),fill:t(this.fill.toJSON()),outline:t(this.outline.toJSON()),text:t(this.text.toJSON()),foreground:t(this.foreground.toJSON()),shadow:t(this.shadow.toJSON())})}},h.BaseElement2D=HI([nt("BaseElement2D")],h.BaseElement2D);class kn extends ki{constructor(t){super(),this.setProperties(t)}}const Ll={left:0,top:0,width:0,height:0};for(const r in Ll)sr(kn,r,{fallback:Ll[r]});var JI=Object.getOwnPropertyDescriptor,KI=(r,t,e,A)=>{for(var i=A>1?void 0:A?JI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.Element2D=class extends h.BaseElement2D{get style(){return this._style}set style(t){const e=(...A)=>{this.emit("updateStyleProperty",...A),this._updateStyleProperty(A[0],A[1],A[2],A[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}constructor(t,e=[]){super(),this.style=new kn,this.setProperties(t).append(e)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"left":this.position.x=Number(e);break;case"top":this.position.y=Number(e);break;case"width":this.size.width=Number(e);break;case"height":this.size.height=Number(e);break}switch(t){case"width":case"height":this.mask instanceof h.BaseElement2D&&(this.mask.size.width=this.size.width,this.mask.size.height=this.size.height);break}}},h.Element2D=KI([nt("Element2D")],h.Element2D);var YI=(()=>{var r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:pA&&pA.tagName.toUpperCase()==="SCRIPT"&&pA.src||new URL("index.js",document.baseURI).href;return function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var A,i;e.ready=new Promise(function(p,E){A=p,i=E});var s=Object.assign({},e),n="";typeof document<"u"&&document.currentScript&&(n=document.currentScript.src),r&&(n=r),n.indexOf("blob:")!==0?n=n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):n="";var o=e.print||console.log.bind(console),a=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var l;e.wasmBinary&&(l=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&K("no native wasm support detected");var u,c=!1;function g(p,E,C){C=E+C;for(var v="";!(E>=C);){var x=p[E++];if(!x)break;if(x&128){var R=p[E++]&63;if((x&224)==192)v+=String.fromCharCode((x&31)<<6|R);else{var U=p[E++]&63;x=(x&240)==224?(x&15)<<12|R<<6|U:(x&7)<<18|R<<12|U<<6|p[E++]&63,65536>x?v+=String.fromCharCode(x):(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023))}}else v+=String.fromCharCode(x)}return v}var f,d,B,I,F,b,y,_,Q;function D(){var p=u.buffer;f=p,e.HEAP8=d=new Int8Array(p),e.HEAP16=I=new Int16Array(p),e.HEAP32=b=new Int32Array(p),e.HEAPU8=B=new Uint8Array(p),e.HEAPU16=F=new Uint16Array(p),e.HEAPU32=y=new Uint32Array(p),e.HEAPF32=_=new Float32Array(p),e.HEAPF64=Q=new Float64Array(p)}var S,M=[],V=[],et=[];function z(){var p=e.preRun.shift();M.unshift(p)}var J=0,$=null;function K(p){throw e.onAbort&&e.onAbort(p),p="Aborted("+p+")",a(p),c=!0,p=new WebAssembly.RuntimeError(p+". Build with -sASSERTIONS for more info."),i(p),p}function L(p){return p.startsWith("data:application/octet-stream;base64,")}var it;if(it="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AQ2hpbGQgYWxyZWFkeSBoYXMgYSBvd25lciwgaXQgbXVzdCBiZSByZW1vdmVkIGZpcnN0LgBDYW5ub3Qgc2V0IG1lYXN1cmUgZnVuY3Rpb246IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAENhbm5vdCBhZGQgY2hpbGQ6IE5vZGVzIHdpdGggbWVhc3VyZSBmdW5jdGlvbnMgY2Fubm90IGhhdmUgY2hpbGRyZW4uAChudWxsKQBpbmRleCA8IDQwOTYgJiYgIlNtYWxsVmFsdWVCdWZmZXIgY2FuIG9ubHkgaG9sZCB1cCB0byA0MDk2IGNodW5rcyIAJXMKAAEAAAADAAAAAAAAAAIAAAADAAAAAQAAAAIAAAAAAAAAAQAAAAEAQYwmCwdpaQB2AHZpAEGgJgs3ox0AAKEdAADhHQAA2x0AAOEdAADbHQAAaWlpZmlmaQDUHQAApB0AAHZpaQClHQAA6B0AAGlpaQBB4CYLCcQAAADFAAAAxgBB9CYLDsQAAADHAAAAyAAAANQdAEGQJws+ox0AAOEdAADbHQAA4R0AANsdAADoHQAA4x0AAOgdAABpaWlpAAAAANQdAAC5HQAA1B0AALsdAAC8HQAA6B0AQdgnCwnJAAAAygAAAMsAQewnCxbJAAAAzAAAAMgAAAC/HQAA1B0AAL8dAEGQKAuiA9QdAAC/HQAA2x0AANUdAAB2aWlpaQAAANQdAAC/HQAA4R0AAHZpaWYAAAAA1B0AAL8dAADbHQAAdmlpaQAAAADUHQAAvx0AANUdAADVHQAAwB0AANsdAADbHQAAwB0AANUdAADAHQAAaQBkaWkAdmlpZAAAxB0AAMQdAAC/HQAA1B0AAMQdAADUHQAAxB0AAMMdAADUHQAAxB0AANsdAADUHQAAxB0AANsdAADiHQAAdmlpaWQAAADUHQAAxB0AAOIdAADbHQAAxR0AAMIdAADFHQAA2x0AAMIdAADFHQAA4h0AAMUdAADiHQAAxR0AANsdAABkaWlpAAAAAOEdAADEHQAA2x0AAGZpaWkAAAAA1B0AAMQdAADEHQAA3B0AANQdAADEHQAAxB0AANwdAADFHQAAxB0AAMQdAADEHQAAxB0AANwdAADUHQAAxB0AANUdAADVHQAAxB0AANQdAADEHQAAoR0AANQdAADEHQAAuR0AANUdAADFHQAAAAAAANQdAADEHQAA4h0AAOIdAADbHQAAdmlpZGRpAADBHQAAxR0AQcArC0EZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBBkSwLIQ4AAAAAAAAAABkACg0ZGRkADQAAAgAJDgAAAAkADgAADgBByywLAQwAQdcsCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQYUtCwEQAEGRLQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEG/LQsBEgBByy0LHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBgi4LDhoAAAAaGhoAAAAAAAAJAEGzLgsBFABBvy4LFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB7S4LARYAQfkuCycVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUYAQcQvCwHSAEHsLwsI//////////8AQbAwCwkQIgEAAAAAAAUAQcQwCwHNAEHcMAsKzgAAAM8AAAD8HQBB9DALAQIAQYQxCwj//////////wBByDELAQUAQdQxCwHQAEHsMQsOzgAAANEAAAAIHgAAAAQAQYQyCwEBAEGUMgsF/////woAQdgyCwHT",!L(it)){var G=it;it=e.locateFile?e.locateFile(G,n):n+G}function W(){var p=it;try{if(p==it&&l)return new Uint8Array(l);if(L(p))try{var E=xE(p.slice(37)),C=new Uint8Array(E.length);for(p=0;p<E.length;++p)C[p]=E.charCodeAt(p);var v=C}catch{throw Error("Converting base64 string to bytes failed.")}else v=void 0;var x=v;if(x)return x;throw"both async and sync fetching of the wasm failed"}catch(R){K(R)}}function At(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return W()}):fetch(it,{credentials:"same-origin"}).then(function(p){if(!p.ok)throw"failed to load wasm binary file at '"+it+"'";return p.arrayBuffer()}).catch(function(){return W()})}function T(p){for(;0<p.length;)p.shift()(e)}function tt(p){if(p===void 0)return"_unknown";p=p.replace(/[^a-zA-Z0-9_]/g,"$");var E=p.charCodeAt(0);return 48<=E&&57>=E?"_"+p:p}function k(p,E){return p=tt(p),function(){return E.apply(this,arguments)}}var P=[{},{value:void 0},{value:null},{value:!0},{value:!1}],q=[];function Z(p){var E=Error,C=k(p,function(v){this.name=p,this.message=v,v=Error(v).stack,v!==void 0&&(this.stack=this.toString()+`
|
|
913
913
|
`+v.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(E.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},C}var st=void 0;function X(p){throw new st(p)}var It=p=>(p||X("Cannot use deleted val. handle = "+p),P[p].value),ie=p=>{switch(p){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var E=q.length?q.pop():P.length;return P[E]={ga:1,value:p},E}},re=void 0,Nt=void 0;function ct(p){for(var E="";B[p];)E+=Nt[B[p++]];return E}var yt=[];function Tt(){for(;yt.length;){var p=yt.pop();p.M.$=!1,p.delete()}}var Jt=void 0,_t={};function Zt(p,E){for(E===void 0&&X("ptr should not be undefined");p.R;)E=p.ba(E),p=p.R;return E}var Te={};function Xr(p){p=wu(p);var E=ct(p);return Ze(p),E}function On(p,E){var C=Te[p];return C===void 0&&X(E+" has unknown type "+Xr(p)),C}function jr(){}var Hn=!1;function pu(p){--p.count.value,p.count.value===0&&(p.T?p.U.W(p.T):p.P.N.W(p.O))}function Eu(p,E,C){return E===C?p:C.R===void 0?null:(p=Eu(p,E,C.R),p===null?null:C.na(p))}var Bu={};function lE(p,E){return E=Zt(p,E),_t[E]}var Cu=void 0;function Zr(p){throw new Cu(p)}function $r(p,E){return E.P&&E.O||Zr("makeClassHandle requires ptr and ptrType"),!!E.U!=!!E.T&&Zr("Both smartPtrType and smartPtr must be specified"),E.count={value:1},ni(Object.create(p,{M:{value:E}}))}function ni(p){return typeof FinalizationRegistry>"u"?(ni=E=>E,p):(Hn=new FinalizationRegistry(E=>{pu(E.M)}),ni=E=>{var C=E.M;return C.T&&Hn.register(E,{M:C},E),E},jr=E=>{Hn.unregister(E)},ni(p))}var ts={};function Jn(p){for(;p.length;){var E=p.pop();p.pop()(E)}}function $i(p){return this.fromWireType(b[p>>2])}var oi={},es={};function dA(p,E,C){function v(N){N=C(N),N.length!==p.length&&Zr("Mismatched type converter count");for(var Y=0;Y<p.length;++Y)Xe(p[Y],N[Y])}p.forEach(function(N){es[N]=E});var x=Array(E.length),R=[],U=0;E.forEach((N,Y)=>{Te.hasOwnProperty(N)?x[Y]=Te[N]:(R.push(N),oi.hasOwnProperty(N)||(oi[N]=[]),oi[N].push(()=>{x[Y]=Te[N],++U,U===R.length&&v(x)}))}),R.length===0&&v(x)}function Kn(p){switch(p){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+p)}}function Xe(p,E,C={}){if(!("argPackAdvance"in E))throw new TypeError("registerType registeredInstance requires argPackAdvance");var v=E.name;if(p||X('type "'+v+'" must have a positive integer typeid pointer'),Te.hasOwnProperty(p)){if(C.ua)return;X("Cannot register type '"+v+"' twice")}Te[p]=E,delete es[p],oi.hasOwnProperty(p)&&(E=oi[p],delete oi[p],E.forEach(x=>x()))}function Yn(p){X(p.M.P.N.name+" instance already deleted")}function IA(){}function Vn(p,E,C){if(p[E].S===void 0){var v=p[E];p[E]=function(){return p[E].S.hasOwnProperty(arguments.length)||X("Function '"+C+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+p[E].S+")!"),p[E].S[arguments.length].apply(this,arguments)},p[E].S=[],p[E].S[v.Z]=v}}function uE(p,E){e.hasOwnProperty(p)?(X("Cannot register public name '"+p+"' twice"),Vn(e,p,p),e.hasOwnProperty(void 0)&&X("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[p].S[void 0]=E):e[p]=E}function cE(p,E,C,v,x,R,U,N){this.name=p,this.constructor=E,this.X=C,this.W=v,this.R=x,this.pa=R,this.ba=U,this.na=N,this.ja=[]}function zn(p,E,C){for(;E!==C;)E.ba||X("Expected null or instance of "+C.name+", got an instance of "+E.name),p=E.ba(p),E=E.R;return p}function hE(p,E){return E===null?(this.ea&&X("null is not a valid "+this.name),0):(E.M||X('Cannot pass "'+jn(E)+'" as a '+this.name),E.M.O||X("Cannot pass deleted object as a pointer of type "+this.name),zn(E.M.O,E.M.P.N,this.N))}function gE(p,E){if(E===null){if(this.ea&&X("null is not a valid "+this.name),this.da){var C=this.fa();return p!==null&&p.push(this.W,C),C}return 0}if(E.M||X('Cannot pass "'+jn(E)+'" as a '+this.name),E.M.O||X("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&E.M.P.ca&&X("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name),C=zn(E.M.O,E.M.P.N,this.N),this.da)switch(E.M.T===void 0&&X("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:E.M.U===this?C=E.M.T:X("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name);break;case 1:C=E.M.T;break;case 2:if(E.M.U===this)C=E.M.T;else{var v=E.clone();C=this.xa(C,ie(function(){v.delete()})),p!==null&&p.push(this.W,C)}break;default:X("Unsupporting sharing policy")}return C}function fE(p,E){return E===null?(this.ea&&X("null is not a valid "+this.name),0):(E.M||X('Cannot pass "'+jn(E)+'" as a '+this.name),E.M.O||X("Cannot pass deleted object as a pointer of type "+this.name),E.M.P.ca&&X("Cannot convert argument of type "+E.M.P.name+" to parameter type "+this.name),zn(E.M.O,E.M.P.N,this.N))}function je(p,E,C,v){this.name=p,this.N=E,this.ea=C,this.ca=v,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,E.R!==void 0?this.toWireType=gE:(this.toWireType=v?hE:fE,this.V=null)}function dE(p,E){e.hasOwnProperty(p)||Zr("Replacing nonexistant public symbol"),e[p]=E,e[p].Z=void 0}function IE(p,E){var C=[];return function(){if(C.length=0,Object.assign(C,arguments),p.includes("j")){var v=e["dynCall_"+p];v=C&&C.length?v.apply(null,[E].concat(C)):v.call(null,E)}else v=S.get(E).apply(null,C);return v}}function De(p,E){p=ct(p);var C=p.includes("j")?IE(p,E):S.get(E);return typeof C!="function"&&X("unknown function pointer with signature "+p+": "+E),C}var Qu=void 0;function As(p,E){function C(R){x[R]||Te[R]||(es[R]?es[R].forEach(C):(v.push(R),x[R]=!0))}var v=[],x={};throw E.forEach(C),new Qu(p+": "+v.map(Xr).join([", "]))}function Wn(p,E,C,v,x){var R=E.length;2>R&&X("argTypes array size mismatch! Must at least get return value and 'this' types!");var U=E[1]!==null&&C!==null,N=!1;for(C=1;C<E.length;++C)if(E[C]!==null&&E[C].V===void 0){N=!0;break}var Y=E[0].name!=="void",H=R-2,j=Array(H),rt=[],ht=[];return function(){if(arguments.length!==H&&X("function "+p+" called with "+arguments.length+" arguments, expected "+H+" args!"),ht.length=0,rt.length=U?2:1,rt[0]=x,U){var Ft=E[1].toWireType(ht,this);rt[1]=Ft}for(var ft=0;ft<H;++ft)j[ft]=E[ft+2].toWireType(ht,arguments[ft]),rt.push(j[ft]);if(ft=v.apply(null,rt),N)Jn(ht);else for(var ge=U?1:2;ge<E.length;ge++){var me=ge===1?Ft:j[ge-2];E[ge].V!==null&&E[ge].V(me)}return Ft=Y?E[0].fromWireType(ft):void 0,Ft}}function qn(p,E){for(var C=[],v=0;v<p;v++)C.push(y[E+4*v>>2]);return C}function Xn(p){4<p&&--P[p].ga===0&&(P[p]=void 0,q.push(p))}function jn(p){if(p===null)return"null";var E=typeof p;return E==="object"||E==="array"||E==="function"?p.toString():""+p}function pE(p,E){switch(E){case 2:return function(C){return this.fromWireType(_[C>>2])};case 3:return function(C){return this.fromWireType(Q[C>>3])};default:throw new TypeError("Unknown float type: "+p)}}function EE(p,E,C){switch(E){case 0:return C?function(v){return d[v]}:function(v){return B[v]};case 1:return C?function(v){return I[v>>1]}:function(v){return F[v>>1]};case 2:return C?function(v){return b[v>>2]}:function(v){return y[v>>2]};default:throw new TypeError("Unknown integer type: "+p)}}function BE(p,E){for(var C="",v=0;!(v>=E/2);++v){var x=I[p+2*v>>1];if(x==0)break;C+=String.fromCharCode(x)}return C}function CE(p,E,C){if(C===void 0&&(C=2147483647),2>C)return 0;C-=2;var v=E;C=C<2*p.length?C/2:p.length;for(var x=0;x<C;++x)I[E>>1]=p.charCodeAt(x),E+=2;return I[E>>1]=0,E-v}function QE(p){return 2*p.length}function yE(p,E){for(var C=0,v="";!(C>=E/4);){var x=b[p+4*C>>2];if(x==0)break;++C,65536<=x?(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023)):v+=String.fromCharCode(x)}return v}function DE(p,E,C){if(C===void 0&&(C=2147483647),4>C)return 0;var v=E;C=v+C-4;for(var x=0;x<p.length;++x){var R=p.charCodeAt(x);if(55296<=R&&57343>=R){var U=p.charCodeAt(++x);R=65536+((R&1023)<<10)|U&1023}if(b[E>>2]=R,E+=4,E+4>C)break}return b[E>>2]=0,E-v}function mE(p){for(var E=0,C=0;C<p.length;++C){var v=p.charCodeAt(C);55296<=v&&57343>=v&&++C,E+=4}return E}var wE={};function yu(p){var E=wE[p];return E===void 0?ct(p):E}var is=[];function vE(p){var E=is.length;return is.push(p),E}function _E(p,E){for(var C=Array(p),v=0;v<p;++v)C[v]=On(y[E+4*v>>2],"parameter "+v);return C}var Du=[],bE=[null,[],[]];st=e.BindingError=Z("BindingError"),e.count_emval_handles=function(){for(var p=0,E=5;E<P.length;++E)P[E]!==void 0&&++p;return p},e.get_first_emval=function(){for(var p=5;p<P.length;++p)if(P[p]!==void 0)return P[p];return null},re=e.PureVirtualError=Z("PureVirtualError");for(var mu=Array(256),rs=0;256>rs;++rs)mu[rs]=String.fromCharCode(rs);Nt=mu,e.getInheritedInstanceCount=function(){return Object.keys(_t).length},e.getLiveInheritedInstances=function(){var p=[],E;for(E in _t)_t.hasOwnProperty(E)&&p.push(_t[E]);return p},e.flushPendingDeletes=Tt,e.setDelayFunction=function(p){Jt=p,yt.length&&Jt&&Jt(Tt)},Cu=e.InternalError=Z("InternalError"),IA.prototype.isAliasOf=function(p){if(!(this instanceof IA&&p instanceof IA))return!1;var E=this.M.P.N,C=this.M.O,v=p.M.P.N;for(p=p.M.O;E.R;)C=E.ba(C),E=E.R;for(;v.R;)p=v.ba(p),v=v.R;return E===v&&C===p},IA.prototype.clone=function(){if(this.M.O||Yn(this),this.M.aa)return this.M.count.value+=1,this;var p=ni,E=Object,C=E.create,v=Object.getPrototypeOf(this),x=this.M;return p=p(C.call(E,v,{M:{value:{count:x.count,$:x.$,aa:x.aa,O:x.O,P:x.P,T:x.T,U:x.U}}})),p.M.count.value+=1,p.M.$=!1,p},IA.prototype.delete=function(){this.M.O||Yn(this),this.M.$&&!this.M.aa&&X("Object already scheduled for deletion"),jr(this),pu(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},IA.prototype.isDeleted=function(){return!this.M.O},IA.prototype.deleteLater=function(){return this.M.O||Yn(this),this.M.$&&!this.M.aa&&X("Object already scheduled for deletion"),yt.push(this),yt.length===1&&Jt&&Jt(Tt),this.M.$=!0,this},je.prototype.qa=function(p){return this.ka&&(p=this.ka(p)),p},je.prototype.ha=function(p){this.W&&this.W(p)},je.prototype.argPackAdvance=8,je.prototype.readValueFromPointer=$i,je.prototype.deleteObject=function(p){p!==null&&p.delete()},je.prototype.fromWireType=function(p){function E(){return this.da?$r(this.N.X,{P:this.wa,O:C,U:this,T:p}):$r(this.N.X,{P:this,O:p})}var C=this.qa(p);if(!C)return this.ha(p),null;var v=lE(this.N,C);if(v!==void 0)return v.M.count.value===0?(v.M.O=C,v.M.T=p,v.clone()):(v=v.clone(),this.ha(p),v);if(v=this.N.pa(C),v=Bu[v],!v)return E.call(this);v=this.ca?v.la:v.pointerType;var x=Eu(C,this.N,v.N);return x===null?E.call(this):this.da?$r(v.N.X,{P:v,O:x,U:this,T:p}):$r(v.N.X,{P:v,O:x})},Qu=e.UnboundTypeError=Z("UnboundTypeError");var xE=typeof atob=="function"?atob:function(p){var E="",C=0;p=p.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(C++)),x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(C++)),R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(C++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(p.charAt(C++));v=v<<2|x>>4,x=(x&15)<<4|R>>2;var N=(R&3)<<6|U;E+=String.fromCharCode(v),R!==64&&(E+=String.fromCharCode(x)),U!==64&&(E+=String.fromCharCode(N))}while(C<p.length);return E},FE={l:function(p,E,C,v){K("Assertion failed: "+(p?g(B,p):"")+", at: "+[E?E?g(B,E):"":"unknown filename",C,v?v?g(B,v):"":"unknown function"])},q:function(p,E,C){p=ct(p),E=On(E,"wrapper"),C=It(C);var v=[].slice,x=E.N,R=x.X,U=x.R.X,N=x.R.constructor;p=k(p,function(){x.R.ja.forEach((function(H){if(this[H]===U[H])throw new re("Pure virtual function "+H+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:R}),this.__construct.apply(this,v.call(arguments))}),R.__construct=function(){this===R&&X("Pass correct 'this' to __construct");var H=N.implement.apply(void 0,[this].concat(v.call(arguments)));jr(H);var j=H.M;H.notifyOnDestruction(),j.aa=!0,Object.defineProperties(this,{M:{value:j}}),ni(this),H=j.O,H=Zt(x,H),_t.hasOwnProperty(H)?X("Tried to register registered instance: "+H):_t[H]=this},R.__destruct=function(){this===R&&X("Pass correct 'this' to __destruct"),jr(this);var H=this.M.O;H=Zt(x,H),_t.hasOwnProperty(H)?delete _t[H]:X("Tried to unregister unregistered instance: "+H)},p.prototype=Object.create(R);for(var Y in C)p.prototype[Y]=C[Y];return ie(p)},j:function(p){var E=ts[p];delete ts[p];var C=E.fa,v=E.W,x=E.ia,R=x.map(U=>U.ta).concat(x.map(U=>U.za));dA([p],R,U=>{var N={};return x.forEach((Y,H)=>{var j=U[H],rt=Y.ra,ht=Y.sa,Ft=U[H+x.length],ft=Y.ya,ge=Y.Aa;N[Y.oa]={read:me=>j.fromWireType(rt(ht,me)),write:(me,tr)=>{var $e=[];ft(ge,me,Ft.toWireType($e,tr)),Jn($e)}}}),[{name:E.name,fromWireType:function(Y){var H={},j;for(j in N)H[j]=N[j].read(Y);return v(Y),H},toWireType:function(Y,H){for(var j in N)if(!(j in H))throw new TypeError('Missing field: "'+j+'"');var rt=C();for(j in N)N[j].write(rt,H[j]);return Y!==null&&Y.push(v,rt),rt},argPackAdvance:8,readValueFromPointer:$i,V:v}]})},v:function(){},B:function(p,E,C,v,x){var R=Kn(C);E=ct(E),Xe(p,{name:E,fromWireType:function(U){return!!U},toWireType:function(U,N){return N?v:x},argPackAdvance:8,readValueFromPointer:function(U){if(C===1)var N=d;else if(C===2)N=I;else if(C===4)N=b;else throw new TypeError("Unknown boolean type size: "+E);return this.fromWireType(N[U>>R])},V:null})},f:function(p,E,C,v,x,R,U,N,Y,H,j,rt,ht){j=ct(j),R=De(x,R),N&&(N=De(U,N)),H&&(H=De(Y,H)),ht=De(rt,ht);var Ft=tt(j);uE(Ft,function(){As("Cannot construct "+j+" due to unbound types",[v])}),dA([p,E,C],v?[v]:[],function(ft){if(ft=ft[0],v)var ge=ft.N,me=ge.X;else me=IA.prototype;ft=k(Ft,function(){if(Object.getPrototypeOf(this)!==tr)throw new st("Use 'new' to construct "+j);if($e.Y===void 0)throw new st(j+" has no accessible constructor");var bu=$e.Y[arguments.length];if(bu===void 0)throw new st("Tried to invoke ctor of "+j+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys($e.Y).toString()+") parameters instead!");return bu.apply(this,arguments)});var tr=Object.create(me,{constructor:{value:ft}});ft.prototype=tr;var $e=new cE(j,ft,tr,ht,ge,R,N,H);ge=new je(j,$e,!0,!1),me=new je(j+"*",$e,!1,!1);var _u=new je(j+" const*",$e,!1,!0);return Bu[p]={pointerType:me,la:_u},dE(Ft,ft),[ge,me,_u]})},d:function(p,E,C,v,x,R,U){var N=qn(C,v);E=ct(E),R=De(x,R),dA([],[p],function(Y){function H(){As("Cannot call "+j+" due to unbound types",N)}Y=Y[0];var j=Y.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]);var rt=Y.N.constructor;return rt[E]===void 0?(H.Z=C-1,rt[E]=H):(Vn(rt,E,j),rt[E].S[C-1]=H),dA([],N,function(ht){return ht=Wn(j,[ht[0],null].concat(ht.slice(1)),null,R,U),rt[E].S===void 0?(ht.Z=C-1,rt[E]=ht):rt[E].S[C-1]=ht,[]}),[]})},p:function(p,E,C,v,x,R){0<E||K();var U=qn(E,C);x=De(v,x),dA([],[p],function(N){N=N[0];var Y="constructor "+N.name;if(N.N.Y===void 0&&(N.N.Y=[]),N.N.Y[E-1]!==void 0)throw new st("Cannot register multiple constructors with identical number of parameters ("+(E-1)+") for class '"+N.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return N.N.Y[E-1]=()=>{As("Cannot construct "+N.name+" due to unbound types",U)},dA([],U,function(H){return H.splice(1,0,null),N.N.Y[E-1]=Wn(Y,H,null,x,R),[]}),[]})},a:function(p,E,C,v,x,R,U,N){var Y=qn(C,v);E=ct(E),R=De(x,R),dA([],[p],function(H){function j(){As("Cannot call "+rt+" due to unbound types",Y)}H=H[0];var rt=H.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]),N&&H.N.ja.push(E);var ht=H.N.X,Ft=ht[E];return Ft===void 0||Ft.S===void 0&&Ft.className!==H.name&&Ft.Z===C-2?(j.Z=C-2,j.className=H.name,ht[E]=j):(Vn(ht,E,rt),ht[E].S[C-2]=j),dA([],Y,function(ft){return ft=Wn(rt,ft,H,R,U),ht[E].S===void 0?(ft.Z=C-2,ht[E]=ft):ht[E].S[C-2]=ft,[]}),[]})},A:function(p,E){E=ct(E),Xe(p,{name:E,fromWireType:function(C){var v=It(C);return Xn(C),v},toWireType:function(C,v){return ie(v)},argPackAdvance:8,readValueFromPointer:$i,V:null})},n:function(p,E,C){C=Kn(C),E=ct(E),Xe(p,{name:E,fromWireType:function(v){return v},toWireType:function(v,x){return x},argPackAdvance:8,readValueFromPointer:pE(E,C),V:null})},e:function(p,E,C,v,x){E=ct(E),x===-1&&(x=4294967295),x=Kn(C);var R=N=>N;if(v===0){var U=32-8*C;R=N=>N<<U>>>U}C=E.includes("unsigned")?function(N,Y){return Y>>>0}:function(N,Y){return Y},Xe(p,{name:E,fromWireType:R,toWireType:C,argPackAdvance:8,readValueFromPointer:EE(E,x,v!==0),V:null})},b:function(p,E,C){function v(R){R>>=2;var U=y;return new x(f,U[R+1],U[R])}var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][E];C=ct(C),Xe(p,{name:C,fromWireType:v,argPackAdvance:8,readValueFromPointer:v},{ua:!0})},o:function(p,E){E=ct(E);var C=E==="std::string";Xe(p,{name:E,fromWireType:function(v){var x=y[v>>2],R=v+4;if(C)for(var U=R,N=0;N<=x;++N){var Y=R+N;if(N==x||B[Y]==0){if(U=U?g(B,U,Y-U):"",H===void 0)var H=U;else H+="\0",H+=U;U=Y+1}}else{for(H=Array(x),N=0;N<x;++N)H[N]=String.fromCharCode(B[R+N]);H=H.join("")}return Ze(v),H},toWireType:function(v,x){x instanceof ArrayBuffer&&(x=new Uint8Array(x));var R,U=typeof x=="string";if(U||x instanceof Uint8Array||x instanceof Uint8ClampedArray||x instanceof Int8Array||X("Cannot pass non-string to std::string"),C&&U){var N=0;for(R=0;R<x.length;++R){var Y=x.charCodeAt(R);127>=Y?N++:2047>=Y?N+=2:55296<=Y&&57343>=Y?(N+=4,++R):N+=3}R=N}else R=x.length;if(N=Zn(4+R+1),Y=N+4,y[N>>2]=R,C&&U){if(U=Y,Y=R+1,R=B,0<Y){Y=U+Y-1;for(var H=0;H<x.length;++H){var j=x.charCodeAt(H);if(55296<=j&&57343>=j){var rt=x.charCodeAt(++H);j=65536+((j&1023)<<10)|rt&1023}if(127>=j){if(U>=Y)break;R[U++]=j}else{if(2047>=j){if(U+1>=Y)break;R[U++]=192|j>>6}else{if(65535>=j){if(U+2>=Y)break;R[U++]=224|j>>12}else{if(U+3>=Y)break;R[U++]=240|j>>18,R[U++]=128|j>>12&63}R[U++]=128|j>>6&63}R[U++]=128|j&63}}R[U]=0}}else if(U)for(U=0;U<R;++U)H=x.charCodeAt(U),255<H&&(Ze(Y),X("String has UTF-16 code units that do not fit in 8 bits")),B[Y+U]=H;else for(U=0;U<R;++U)B[Y+U]=x[U];return v!==null&&v.push(Ze,N),N},argPackAdvance:8,readValueFromPointer:$i,V:function(v){Ze(v)}})},i:function(p,E,C){if(C=ct(C),E===2)var v=BE,x=CE,R=QE,U=()=>F,N=1;else E===4&&(v=yE,x=DE,R=mE,U=()=>y,N=2);Xe(p,{name:C,fromWireType:function(Y){for(var H=y[Y>>2],j=U(),rt,ht=Y+4,Ft=0;Ft<=H;++Ft){var ft=Y+4+Ft*E;(Ft==H||j[ft>>N]==0)&&(ht=v(ht,ft-ht),rt===void 0?rt=ht:(rt+="\0",rt+=ht),ht=ft+E)}return Ze(Y),rt},toWireType:function(Y,H){typeof H!="string"&&X("Cannot pass non-string to C++ string type "+C);var j=R(H),rt=Zn(4+j+E);return y[rt>>2]=j>>N,x(H,rt+4,j+E),Y!==null&&Y.push(Ze,rt),rt},argPackAdvance:8,readValueFromPointer:$i,V:function(Y){Ze(Y)}})},k:function(p,E,C,v,x,R){ts[p]={name:ct(E),fa:De(C,v),W:De(x,R),ia:[]}},h:function(p,E,C,v,x,R,U,N,Y,H){ts[p].ia.push({oa:ct(E),ta:C,ra:De(v,x),sa:R,za:U,ya:De(N,Y),Aa:H})},C:function(p,E){E=ct(E),Xe(p,{va:!0,name:E,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(p,E,C,v,x){p=is[p],E=It(E),C=yu(C);var R=[];return y[v>>2]=ie(R),p(E,C,R,x)},t:function(p,E,C,v){p=is[p],E=It(E),C=yu(C),p(E,C,null,v)},g:Xn,m:function(p,E){var C=_E(p,E),v=C[0];E=v.name+"_$"+C.slice(1).map(function(U){return U.name}).join("_")+"$";var x=Du[E];if(x!==void 0)return x;var R=Array(p-1);return x=vE((U,N,Y,H)=>{for(var j=0,rt=0;rt<p-1;++rt)R[rt]=C[rt+1].readValueFromPointer(H+j),j+=C[rt+1].argPackAdvance;for(U=U[N].apply(U,R),rt=0;rt<p-1;++rt)C[rt+1].ma&&C[rt+1].ma(R[rt]);if(!v.va)return v.toWireType(Y,U)}),Du[E]=x},D:function(p){4<p&&(P[p].ga+=1)},r:function(p){var E=It(p);Jn(E),Xn(p)},c:function(){K("")},x:function(p,E,C){B.copyWithin(p,E,E+C)},w:function(p){var E=B.length;if(p>>>=0,2147483648<p)return!1;for(var C=1;4>=C;C*=2){var v=E*(1+.2/C);v=Math.min(v,p+100663296);var x=Math;v=Math.max(p,v),x=x.min.call(x,2147483648,v+(65536-v%65536)%65536);t:{try{u.grow(x-f.byteLength+65535>>>16),D();var R=1;break t}catch{}R=void 0}if(R)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(p,E,C,v){for(var x=0,R=0;R<C;R++){var U=y[E>>2],N=y[E+4>>2];E+=8;for(var Y=0;Y<N;Y++){var H=B[U+Y],j=bE[p];H===0||H===10?((p===1?o:a)(g(j,0)),j.length=0):j.push(H)}x+=N}return y[v>>2]=x,0}};(function(){function p(x){e.asm=x.exports,u=e.asm.E,D(),S=e.asm.J,V.unshift(e.asm.F),J--,e.monitorRunDependencies&&e.monitorRunDependencies(J),J==0&&$&&(x=$,$=null,x())}function E(x){p(x.instance)}function C(x){return At().then(function(R){return WebAssembly.instantiate(R,v)}).then(function(R){return R}).then(x,function(R){a("failed to asynchronously prepare wasm: "+R),K(R)})}var v={a:FE};if(J++,e.monitorRunDependencies&&e.monitorRunDependencies(J),e.instantiateWasm)try{return e.instantiateWasm(v,p)}catch(x){a("Module.instantiateWasm callback failed with error: "+x),i(x)}return function(){return l||typeof WebAssembly.instantiateStreaming!="function"||L(it)||typeof fetch!="function"?C(E):fetch(it,{credentials:"same-origin"}).then(function(x){return WebAssembly.instantiateStreaming(x,v).then(E,function(R){return a("wasm streaming compile failed: "+R),a("falling back to ArrayBuffer instantiation"),C(E)})})}().catch(i),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var wu=e.___getTypeName=function(){return(wu=e.___getTypeName=e.asm.G).apply(null,arguments)};e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.H).apply(null,arguments)};var Zn=e._malloc=function(){return(Zn=e._malloc=e.asm.I).apply(null,arguments)},Ze=e._free=function(){return(Ze=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var ss;$=function p(){ss||vu(),ss||($=p)};function vu(){function p(){if(!ss&&(ss=!0,e.calledRun=!0,!c)){if(T(V),A(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var E=e.postRun.shift();et.unshift(E)}T(et)}}if(!(0<J)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)z();T(M),0<J||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),p()},1)):p())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return vu(),t.ready}})();let Ut=function(r){return r[r.Auto=0]="Auto",r[r.FlexStart=1]="FlexStart",r[r.Center=2]="Center",r[r.FlexEnd=3]="FlexEnd",r[r.Stretch=4]="Stretch",r[r.Baseline=5]="Baseline",r[r.SpaceBetween=6]="SpaceBetween",r[r.SpaceAround=7]="SpaceAround",r[r.SpaceEvenly=8]="SpaceEvenly",r}({}),Or=function(r){return r[r.BorderBox=0]="BorderBox",r[r.ContentBox=1]="ContentBox",r}({}),Gl=function(r){return r[r.Width=0]="Width",r[r.Height=1]="Height",r}({}),cA=function(r){return r[r.Inherit=0]="Inherit",r[r.LTR=1]="LTR",r[r.RTL=2]="RTL",r}({}),jA=function(r){return r[r.Flex=0]="Flex",r[r.None=1]="None",r[r.Contents=2]="Contents",r}({}),dt=function(r){return r[r.Left=0]="Left",r[r.Top=1]="Top",r[r.Right=2]="Right",r[r.Bottom=3]="Bottom",r[r.Start=4]="Start",r[r.End=5]="End",r[r.Horizontal=6]="Horizontal",r[r.Vertical=7]="Vertical",r[r.All=8]="All",r}({}),ZA=function(r){return r[r.None=0]="None",r[r.StretchFlexBasis=1]="StretchFlexBasis",r[r.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",r[r.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",r[r.All=2147483647]="All",r[r.Classic=2147483646]="Classic",r}({}),VI=function(r){return r[r.WebFlexBasis=0]="WebFlexBasis",r}({}),hA=function(r){return r[r.Column=0]="Column",r[r.ColumnReverse=1]="ColumnReverse",r[r.Row=2]="Row",r[r.RowReverse=3]="RowReverse",r}({}),Hr=function(r){return r[r.Column=0]="Column",r[r.Row=1]="Row",r[r.All=2]="All",r}({}),pe=function(r){return r[r.FlexStart=0]="FlexStart",r[r.Center=1]="Center",r[r.FlexEnd=2]="FlexEnd",r[r.SpaceBetween=3]="SpaceBetween",r[r.SpaceAround=4]="SpaceAround",r[r.SpaceEvenly=5]="SpaceEvenly",r}({}),$A=function(r){return r[r.Error=0]="Error",r[r.Warn=1]="Warn",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r[r.Verbose=4]="Verbose",r[r.Fatal=5]="Fatal",r}({}),Un=function(r){return r[r.Undefined=0]="Undefined",r[r.Exactly=1]="Exactly",r[r.AtMost=2]="AtMost",r}({}),Ol=function(r){return r[r.Default=0]="Default",r[r.Text=1]="Text",r}({}),ti=function(r){return r[r.Visible=0]="Visible",r[r.Hidden=1]="Hidden",r[r.Scroll=2]="Scroll",r}({}),ei=function(r){return r[r.Static=0]="Static",r[r.Relative=1]="Relative",r[r.Absolute=2]="Absolute",r}({}),Pe=function(r){return r[r.Undefined=0]="Undefined",r[r.Point=1]="Point",r[r.Percent=2]="Percent",r[r.Auto=3]="Auto",r}({}),Ai=function(r){return r[r.NoWrap=0]="NoWrap",r[r.Wrap=1]="Wrap",r[r.WrapReverse=2]="WrapReverse",r}({});const zI={ALIGN_AUTO:Ut.Auto,ALIGN_FLEX_START:Ut.FlexStart,ALIGN_CENTER:Ut.Center,ALIGN_FLEX_END:Ut.FlexEnd,ALIGN_STRETCH:Ut.Stretch,ALIGN_BASELINE:Ut.Baseline,ALIGN_SPACE_BETWEEN:Ut.SpaceBetween,ALIGN_SPACE_AROUND:Ut.SpaceAround,ALIGN_SPACE_EVENLY:Ut.SpaceEvenly,BOX_SIZING_BORDER_BOX:Or.BorderBox,BOX_SIZING_CONTENT_BOX:Or.ContentBox,DIMENSION_WIDTH:Gl.Width,DIMENSION_HEIGHT:Gl.Height,DIRECTION_INHERIT:cA.Inherit,DIRECTION_LTR:cA.LTR,DIRECTION_RTL:cA.RTL,DISPLAY_FLEX:jA.Flex,DISPLAY_NONE:jA.None,DISPLAY_CONTENTS:jA.Contents,EDGE_LEFT:dt.Left,EDGE_TOP:dt.Top,EDGE_RIGHT:dt.Right,EDGE_BOTTOM:dt.Bottom,EDGE_START:dt.Start,EDGE_END:dt.End,EDGE_HORIZONTAL:dt.Horizontal,EDGE_VERTICAL:dt.Vertical,EDGE_ALL:dt.All,ERRATA_NONE:ZA.None,ERRATA_STRETCH_FLEX_BASIS:ZA.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:ZA.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:ZA.AbsolutePercentAgainstInnerSize,ERRATA_ALL:ZA.All,ERRATA_CLASSIC:ZA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:VI.WebFlexBasis,FLEX_DIRECTION_COLUMN:hA.Column,FLEX_DIRECTION_COLUMN_REVERSE:hA.ColumnReverse,FLEX_DIRECTION_ROW:hA.Row,FLEX_DIRECTION_ROW_REVERSE:hA.RowReverse,GUTTER_COLUMN:Hr.Column,GUTTER_ROW:Hr.Row,GUTTER_ALL:Hr.All,JUSTIFY_FLEX_START:pe.FlexStart,JUSTIFY_CENTER:pe.Center,JUSTIFY_FLEX_END:pe.FlexEnd,JUSTIFY_SPACE_BETWEEN:pe.SpaceBetween,JUSTIFY_SPACE_AROUND:pe.SpaceAround,JUSTIFY_SPACE_EVENLY:pe.SpaceEvenly,LOG_LEVEL_ERROR:$A.Error,LOG_LEVEL_WARN:$A.Warn,LOG_LEVEL_INFO:$A.Info,LOG_LEVEL_DEBUG:$A.Debug,LOG_LEVEL_VERBOSE:$A.Verbose,LOG_LEVEL_FATAL:$A.Fatal,MEASURE_MODE_UNDEFINED:Un.Undefined,MEASURE_MODE_EXACTLY:Un.Exactly,MEASURE_MODE_AT_MOST:Un.AtMost,NODE_TYPE_DEFAULT:Ol.Default,NODE_TYPE_TEXT:Ol.Text,OVERFLOW_VISIBLE:ti.Visible,OVERFLOW_HIDDEN:ti.Hidden,OVERFLOW_SCROLL:ti.Scroll,POSITION_TYPE_STATIC:ei.Static,POSITION_TYPE_RELATIVE:ei.Relative,POSITION_TYPE_ABSOLUTE:ei.Absolute,UNIT_UNDEFINED:Pe.Undefined,UNIT_POINT:Pe.Point,UNIT_PERCENT:Pe.Percent,UNIT_AUTO:Pe.Auto,WRAP_NO_WRAP:Ai.NoWrap,WRAP_WRAP:Ai.Wrap,WRAP_WRAP_REVERSE:Ai.WrapReverse};function WI(r){function t(i,s,n){const o=i[s];i[s]=function(){for(var a=arguments.length,l=new Array(a),u=0;u<a;u++)l[u]=arguments[u];return n.call(this,o,...l)}}for(const i of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Pe.Point]:r.Node.prototype[i],[Pe.Percent]:r.Node.prototype[`${i}Percent`],[Pe.Auto]:r.Node.prototype[`${i}Auto`]};t(r.Node.prototype,i,function(n){for(var o=arguments.length,a=new Array(o>1?o-1:0),l=1;l<o;l++)a[l-1]=arguments[l];const u=a.pop();let c,g;if(u==="auto")c=Pe.Auto,g=void 0;else if(typeof u=="object")c=u.unit,g=u.valueOf();else if(c=typeof u=="string"&&u.endsWith("%")?Pe.Percent:Pe.Point,g=parseFloat(u),u!==void 0&&!Number.isNaN(u)&&Number.isNaN(g))throw new Error(`Invalid value ${u} for ${i}`);if(!s[c])throw new Error(`Failed to execute "${i}": Unsupported unit '${u}'`);return g!==void 0?s[c].call(this,...a,g):s[c].call(this,...a)})}function e(i){return r.MeasureCallback.implement({measure:function(){const{width:s,height:n}=i(...arguments);return{width:s??NaN,height:n??NaN}}})}t(r.Node.prototype,"setMeasureFunc",function(i,s){return s?i.call(this,e(s)):this.unsetMeasureFunc()});function A(i){return r.DirtiedCallback.implement({dirtied:i})}return t(r.Node.prototype,"setDirtiedFunc",function(i,s){i.call(this,A(s))}),t(r.Config.prototype,"free",function(){r.Config.destroy(this)}),t(r.Node,"create",(i,s)=>s?r.Node.createWithConfig(s):r.Node.createDefault()),t(r.Node.prototype,"free",function(){r.Node.destroy(this)}),t(r.Node.prototype,"freeRecursive",function(){for(let i=0,s=this.getChildCount();i<s;++i)this.getChild(0).freeRecursive();this.free()}),t(r.Node.prototype,"calculateLayout",function(i){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:cA.LTR;return i.call(this,s,n,o)}),{Config:r.Config,Node:r.Node,...zI}}async function qI(){return WI(await YI())}class Hl extends ki{constructor(t){super(),this.setProperties(t)}}const ii={auto:Ut.Auto,"flex-start":Ut.FlexStart,center:Ut.Center,"flex-end":Ut.FlexEnd,stretch:Ut.Stretch,baseline:Ut.Baseline,"space-between":Ut.SpaceBetween,"space-around":Ut.SpaceAround,"space-evenly":Ut.SpaceEvenly},Jl={none:jA.None,flex:jA.Flex,contents:jA.Contents},Kl={inherit:cA.Inherit,ltr:cA.LTR,rtl:cA.RTL},Yl={column:hA.Column,"column-reverse":hA.ColumnReverse,row:hA.Row,"row-reverse":hA.RowReverse},Vl={"no-wrap":Ai.NoWrap,wrap:Ai.Wrap,"Wrap-reverse":Ai.WrapReverse},zl={"flex-start":pe.FlexStart,center:pe.Center,"flex-end":pe.FlexEnd,"space-between":pe.SpaceBetween,"space-around":pe.SpaceAround,"space-evenly":pe.SpaceEvenly},Wl={visible:ti.Visible,hidden:ti.Hidden,scroll:ti.Scroll},ql={static:ei.Static,relative:ei.Relative,absolute:ei.Absolute},Xl={"border-box":Or.BorderBox,"content-box":Or.ContentBox};class Jr{constructor(t){this._element=t}static _yoga;static async load(){this._yoga=await qI()}_node=Jr._yoga.Node.create();get _style(){return this._element.style}get offsetLeft(){return this._node.getComputedLeft()}get offsetTop(){return this._node.getComputedTop()}get offsetWidth(){return this._node.getComputedWidth()}get offsetHeight(){return this._node.getComputedHeight()}calculateLayout(t,e,A){return this._node.calculateLayout(t,e,A)}getComputedLayout(){return this._node.getComputedLayout()}updateStyleProperty(t,e,A,i){switch(t){case"alignContent":this._node.setAlignContent(e?ii[e]:ii["flex-start"]);break;case"alignItems":this._node.setAlignItems(e?ii[e]:ii["flex-start"]);break;case"alignSelf":this._node.setAlignSelf(e?ii[e]:ii["flex-start"]);break;case"aspectRatio":this._node.setAspectRatio(e);break;case"borderTop":this._node.setBorder(dt.Top,this._style.borderWidth);break;case"borderBottom":this._node.setBorder(dt.Bottom,this._style.borderWidth);break;case"borderLeft":this._node.setBorder(dt.Left,this._style.borderWidth);break;case"borderRight":this._node.setBorder(dt.Right,this._style.borderWidth);break;case"border":this._node.setBorder(dt.All,this._style.borderWidth);break;case"direction":this._node.setDirection(e?Kl[e]:Kl.inherit);break;case"display":this._node.setDisplay(e?Jl[e]:Jl.flex);break;case"flex":this._node.setFlex(this._style.flex);break;case"flexBasis":this._node.setFlexBasis(this._style.flexBasis);break;case"flexDirection":this._node.setFlexDirection(e?Yl[e]:Yl.row);break;case"flexGrow":this._node.setFlexGrow(this._style.flexGrow);break;case"flexShrink":this._node.setFlexShrink(this._style.flexShrink);break;case"flexWrap":this._node.setFlexWrap(e?Vl[e]:Vl.wrap);break;case"height":this._node.setHeight(this._style.height);break;case"justifyContent":this._node.setJustifyContent(e?zl[e]:zl["flex-start"]);break;case"gap":e!==void 0&&this._node.setGap(Hr.All,e);break;case"marginTop":this._node.setMargin(dt.Top,e);break;case"marginBottom":this._node.setMargin(dt.Top,e);break;case"marginLeft":this._node.setMargin(dt.Left,e);break;case"marginRight":this._node.setMargin(dt.Top,e);break;case"margin":this._node.setMargin(dt.All,e);break;case"maxHeight":this._node.setMaxHeight(e);break;case"maxWidth":this._node.setMaxWidth(e);break;case"minHeight":this._node.setMinHeight(this._style.minHeight);break;case"minWidth":this._node.setMinWidth(this._style.minWidth);break;case"overflow":this._node.setOverflow(e?Wl[e]:Wl.visible);break;case"paddingTop":this._node.setPadding(dt.Top,this._style.paddingTop);break;case"paddingBottom":this._node.setPadding(dt.Bottom,this._style.paddingBottom);break;case"paddingLeft":this._node.setPadding(dt.Left,this._style.paddingLeft);break;case"paddingRight":this._node.setPadding(dt.Right,this._style.paddingRight);break;case"padding":this._node.setPadding(dt.All,this._style.padding);break;case"top":this._node.setPosition(dt.Top,this._style.top);break;case"bottom":this._node.setPosition(dt.Bottom,this._style.bottom);break;case"left":this._node.setPosition(dt.Left,this._style.left);break;case"right":this._node.setPosition(dt.Right,this._style.right);break;case"position":this._node.setPositionType(e?ql[e]:ql.static);break;case"boxSizing":this._node.setBoxSizing(e?Xl[e]:Xl["content-box"]);break;case"width":this._node.setWidth(this._style.width);break}}}var XI=Object.getOwnPropertyDescriptor,jI=(r,t,e,A)=>{for(var i=A>1?void 0:A?XI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.FlexElement2D=class extends h.BaseElement2D{get style(){return this._style}set style(t){const e=(...A)=>{this.emit("updateStyleProperty",...A),this._updateStyleProperty(A[0],A[1],A[2],A[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_layout=new Jr(this);get offsetLeft(){return this._layout.offsetLeft}get offsetTop(){return this._layout.offsetTop}get offsetWidth(){return this._layout.offsetWidth}get offsetHeight(){return this._layout.offsetHeight}constructor(t,e=[]){super(),this.style=new Hl,this.setProperties(t).append(e)}_parented(t){super._parented(t),t._layout&&this._layout._node&&t._layout._node.insertChild(this._layout._node,t._layout._node.getChildCount())}_unparented(t){super._unparented(t),t._layout?._node&&t._layout._node.removeChild(this._layout._node)}_updateStyleProperty(t,e,A,i){super._updateStyleProperty(t,e,A,i),this._layout.updateStyleProperty(t,e,A,i),this._layout._node.isDirty()&&this.requestRelayout()}updateTransform(){this.calculateLayout(void 0,void 0,cA.LTR);const{left:t,top:e,width:A,height:i}=this._layout.getComputedLayout();this.position.x=t,this.position.y=e,this.size.x=A,this.size.y=i,super.updateTransform()}calculateLayout(t,e,A){const i=this.getParent();i?._layout?.calculateLayout?i?._layout.calculateLayout(t,e,A):this._layout.calculateLayout(t,e,A)}},h.FlexElement2D=jI([nt("FlexElement2D")],h.FlexElement2D);var ZI=Object.defineProperty,$I=Object.getOwnPropertyDescriptor,Xi=(r,t,e,A)=>{for(var i=A>1?void 0:A?$I(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&ZI(t,e,i),i};h.Image2D=class extends h.Element2D{get currentFrameTexture(){return this.texture?.frames[this._frameIndex]?.texture}get textureDuration(){return this.texture?.duration??0}get naturalWidth(){return this.currentFrameTexture?.realWidth??0}get naturalHeight(){return this.currentFrameTexture?.realHeight??0}get complete(){return this._complete}_frameIndex=0;_complete=!1;_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"src":this._wait=this._load(e);break;case"srcRect":this.requestRedraw();break}}decode(){return this._wait}setResource(t){let e;if(t instanceof gr?e=t:e=new gr(t),this.texture=e.updateDuration(),this.currentFrameTexture&&(!this.style.width||!this.style.height)){const A=this.currentFrameTexture;this.style.width=A.realWidth,this.style.height=A.realHeight}return this}async _load(t){if(this._complete=!1,t)try{this.setResource(this.gif||t?.includes(".gif")?await Ue.gif.load(t):await Ue.texture.load(t)),this.requestRedraw(),this.emit("load")}catch(e){console.warn(e),this.emit("error",e)}else this.texture=void 0;this._complete=!0}_getFrameCurrentTime(){const t=this.textureDuration;if(!t||!this._tree)return 0;const e=this._currentTime;return e<0?0:e%t}_updateFrameIndex(){if(!this.texture)return this;const t=this._getFrameCurrentTime(),e=this.texture.frames,A=e.length;if(A<=1&&this._frameIndex===0)return this;let i=A-1;for(let s=0,n=0;n<A;n++)if(s+=e[n].duration??0,s>=t){i=n;break}return this._frameIndex!==i&&(this._frameIndex=i,this.requestRedraw()),this}_process(t){this._updateFrameIndex(),super._process(t)}_drawContent(){const t=this.currentFrameTexture;if(t?.valid){const{left:e=0,top:A=0,right:i=0,bottom:s=0}=this.srcRect??{},{width:n,height:o}=this.size;this.context.fillStyle=t;const a=Math.abs(1+(e+i))*n,l=Math.abs(1+(A+s))*o,u=1/a,c=1/l,g=e*n*u,f=A*o*c;this.context.uvTransform=new Yt().scale(u,c).translate(g,f),this.shape.draw(),this.context.fill()}}_repaint(t){return super._repaint(t).map(e=>({...e,disableWrapMode:!0}))}},Xi([w({protected:!0})],h.Image2D.prototype,"texture",2),Xi([w({fallback:""})],h.Image2D.prototype,"src",2),Xi([w()],h.Image2D.prototype,"srcRect",2),Xi([w({fallback:!1})],h.Image2D.prototype,"gif",2),h.Image2D=Xi([nt("Image2D")],h.Image2D);class Kr extends h.Element2D{texture;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_drawContent(){if(this.texture?.valid){const{width:t,height:e}=this.size;this.context.fillStyle=this.texture,this.context.uvTransform=new Yt().scale(1/t,1/e),this.shape.drawRect(),this.context.fill()}}}var tp=Object.defineProperty,ep=Object.getOwnPropertyDescriptor,jl=(r,t,e,A)=>{for(var i=A>1?void 0:A?ep(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&tp(t,e,i),i};h.Lottie2D=class extends Kr{texture=new pi;animation;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"src":this._load();break}}_updateStyleProperty(t,e,A){switch(super._updateStyleProperty(t,e,A),t){case"width":this.texture.width=this.style.width;break;case"height":this.texture.height=this.style.height;break}}async _load(){this.animation=await Ue.lottie.load(this.src,this.texture.source),this.duration=this.animation.getDuration(!1)*1e3,this.texture.requestUpload(),this.requestRedraw()}_process(t){this.animation?.goToAndStop(this.currentTime,!1),this.texture.requestUpload(),this.requestRedraw(),super._process(t)}},jl([w({fallback:""})],h.Lottie2D.prototype,"src",2),h.Lottie2D=jl([nt("Lottie2D")],h.Lottie2D);var Ap=Object.defineProperty,ip=Object.getOwnPropertyDescriptor,ri=(r,t,e,A)=>{for(var i=A>1?void 0:A?ip(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Ap(t,e,i),i};const rp=new Set(Object.keys(Rn));h.Text2D=class extends Kr{texture=new pi;base=new Re;measureResult;_subTextsCount=0;constructor(t,e=[]){super(),this.setProperties(t),this.append(e),t?.plugins&&t.plugins.forEach(A=>{this.base.use(A)})}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":this._updateSplit(),this.requestRedraw();break}this._subTextsCount&&t==="effects"&&this._getSubTexts().forEach(s=>{s.setProperties({[t]:e})})}_updateBase(){this.base.style=this.style.toJSON(),this.emit("updateBase",this.base),this.base.requestUpdate()}_updateStyleProperty(t,e,A){switch(t){case"left":case"top":case"width":case"height":this.requestRedraw();break;default:super._updateStyleProperty(t,e,A);break}switch(t){case"width":this.split&&this._updateSubTexts();break}typeof t=="string"&&rp.has(t)&&(this._subTextsCount&&t!=="width"&&t!=="height"&&this._getSubTexts().forEach(i=>{i.style.setProperties({[t]:e})}),this.requestRedraw())}_getSubTexts(){return this.children.front.filter(t=>t instanceof h.Text2D)}_updateSubTexts(){const t=this._getSubTexts();let e=0;this.split&&this.updateMeasure().measureResult?.paragraphs.forEach(A=>{A.fragments.forEach(i=>{i.characters.forEach(s=>{const n=t[e];n&&(n.style.left=s.inlineBox.left,n.style.top=s.inlineBox.top),e++})})})}measure(){return this._updateBase(),this.base.measure()}updateMeasure(){this.measureResult=this.measure();const{boundingBox:t}=this.measureResult,{left:e,top:A}=this.style;return this.position.x=e+Math.min(0,t.left),this.position.y=A+Math.min(0,t.top),this.size.width=t.width,this.size.height=t.height,this}_updateSplit(){this._subTextsCount&&(this.children.front.forEach(t=>this.removeChild(t)),this._subTextsCount=0),this.split&&this.measure().paragraphs.forEach(t=>{t.fragments.forEach(e=>{e.characters.forEach(A=>{this.append(new h.Text2D({internalMode:"front",style:{...A.computedStyle,left:A.inlineBox.x,top:A.inlineBox.y,width:0,height:0},content:A.content,effects:this.effects,fonts:this.fonts})),this._subTextsCount++})})})}_redraw(){return this.updateMeasure(),super._redraw()}_drawContent(){this.split||(this.base.render({pixelRatio:this.texture.pixelRatio,view:this.texture.source}),this.texture.requestUpload(),super._drawContent())}},ri([w({fallback:!1})],h.Text2D.prototype,"split",2),ri([w({alias:"base.content"})],h.Text2D.prototype,"content",2),ri([w({alias:"base.effects"})],h.Text2D.prototype,"effects",2),ri([w({protected:!0,alias:"base.measureDOM"})],h.Text2D.prototype,"measureDOM",2),ri([w({protected:!0,alias:"base.fonts"})],h.Text2D.prototype,"fonts",2),h.Text2D=ri([nt("Text2D")],h.Text2D);var sp=Object.defineProperty,np=(r,t,e,A)=>{for(var i=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(t,e,i)||i);return i&&sp(t,e,i),i};class Nn extends h.Element2D{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":case"height":this.requestRedraw();break}}_drawCircle(t,e){this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_drawEllipse(t,e){this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_draw(){const{width:t,height:e}=this.getRect();this.context.rect(0,0,t,e),this.context.strokeStyle="#00FF00",this.context.stroke(),this._drawCircle(0,0),this._drawCircle(t,e),this._drawCircle(0,e),this._drawEllipse(0,e/2),this._drawCircle(t,0),this._drawEllipse(t,e/2)}}np([w({fallback:6})],Nn.prototype,"handleSize");var op=Object.defineProperty,ap=Object.getOwnPropertyDescriptor,Zl=(r,t,e,A)=>{for(var i=A>1?void 0:A?ap(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&op(t,e,i),i};h.Video2D=class extends Kr{get videoDuration(){return(this.texture?.duration??0)*1e3}_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"src":this._wait=this._load(e);break}}waitLoad(){return this._wait}async _load(t){this.texture=await Ue.video.load(t),(!this.style.width||!this.style.height)&&(this.style.width=this.texture.width,this.style.height=this.texture.height),this.requestRedraw()}_updateVideoCurrentTime(){let t=this._currentTime;if(t<0)return;const e=this.texture;if(!e)return;const A=e.duration;t=A?t%(A*1e3):0,!e.isPlaying&&!e.seeking&&(t=~~t/1e3,e.currentTime!==t&&(e.currentTime=t))}_process(t){this._updateVideoCurrentTime(),super._process(t)}},Zl([w({fallback:""})],h.Video2D.prototype,"src",2),h.Video2D=Zl([nt("Video2D")],h.Video2D);var lp=Object.defineProperty,up=Object.getOwnPropertyDescriptor,ji=(r,t,e,A)=>{for(var i=A>1?void 0:A?up(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&lp(t,e,i),i};const $l=r=>r,tu=si(.25,.1,.25,1),eu=si(.42,0,1,1),Au=si(0,0,.58,1),iu=si(.42,0,.58,1);function si(r,t,e,A){const s=3*r-3*e+1,n=3*e-6*r,o=3*r,a=3*t-3*A+1,l=3*A-6*t,u=3*t,c=B=>(3*s*B+2*n)*B+o,g=B=>((s*B+n)*B+o)*B,f=B=>((a*B+l)*B+u)*B;function d(B){let I=B,F,b;for(let Q=0;Q<8;Q++){if(b=g(I)-B,Math.abs(b)<1e-6)return I;if(F=c(I),Math.abs(F)<1e-6)break;I-=b/F}let y=1,_=0;for(I=B;y>_;){if(b=g(I)-B,Math.abs(b)<1e-6)return I;b>0?y=I:_=I,I=(y+_)/2}return I}return B=>f(d(B))}const Yr={linear:$l,ease:tu,easeIn:eu,easeOut:Au,easeInOut:iu};h.Animation=class extends h.TimelineNode{_keyframes=[];_isFirstUpdatePosition=!1;_cachedProps=new uo;_stoped=!1;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_parented(t){super._parented(t),this._updateCachedProps()}_unparented(t){super._unparented(t),this.cancel()}_process(){this.canProcess()&&this.commitStyles()}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"effectMode":case"keyframes":this._updateKeyframes();break}}_getTargets(){let t;switch(this.effectMode){case"sibling":t=this.getParent()?.children.internal.filter(e=>e instanceof h.CanvasItem)??[];break;case"parent":default:t=[this.getParent()].filter(Boolean);break}return t.map(e=>e.style)}_updateKeyframes(){const t=[],e=this.keyframes;for(let s=e.length,n=0;n<s;n++){const{offset:o=n===0?0:n/(s-1),easing:a="linear",...l}=e[n];t.push({offset:o,easing:this._parseEasing(a),props:l})}const A=t[0],i=t[t.length-1];A&&A.offset!==0&&t.unshift({offset:0,easing:this._parseEasing("linear"),props:{}}),i&&i.offset!==1&&t.push({offset:1,easing:this._parseEasing("linear"),props:{}}),this._keyframes=t,this._updateCachedProps()}commitStyles(){if(!this.keyframes.length)return;if(this._updateCurrentTime(),this.isInsideTimeRange())this._isFirstUpdatePosition||(this._isFirstUpdatePosition=!0,this._updateCachedProps());else{if(!this._isFirstUpdatePosition)return;this._isFirstUpdatePosition=!1}const t=this._getTargets(),e=1/t.length,A=this.currentTimeProgress;t.forEach((i,s)=>{const n=e===1?A:Ke(0,Math.max(0,A-e*s)/e,1),o=this._cachedProps.get(i);if(!o)return;const a=this._parseKeyframes(n,o);a?.length&&this._commitStyle(n,i,o,a[0],a[1])})}_updateCachedProps(){this.cancel(),this._getTargets().forEach(t=>{const e=new Map,A=this._keyframes;for(let i=A.length,s=0;s<i;s++)Object.keys(A[s].props).forEach(n=>{e.set(n,t[n])});this._cachedProps.set(t,e)})}_parseEasing(t){if(!t)return Yr.linear;if(t in Yr)return Yr[t];const e=t.replace(/cubic-bezier\((.+)\)/,"$1").split(",").map(A=>Number(A));return si(e[0],e[1],e[2],e[3])}_parseKeyframes(t,e){let A;const i=this._keyframes;for(let s=i.length,n=0;n<s;n++){const o=i[n],{offset:a,easing:l}=o,u={...o.props};if(A&&t<=a){const{offset:c,easing:g}=A,f={...A.props};return e.forEach((d,B)=>{(!(B in f)||f[B]===null)&&(f[B]=d),(!(B in u)||u[B]===null)&&(u[B]=d)}),[{offset:c,easing:g,props:f},{offset:a,easing:l,props:u}]}A=o}return null}_commitStyle(t,e,A,i,s){const{offset:n,easing:o,props:a}=i,{offset:l,props:u}=s,c=l-n,g=o((t-n)/c),f={width:e.width,height:e.height,fontSize:e.fontSize};A.forEach((d,B)=>{e[B]=this._getDiffValue(B,a[B],u[B],g,f)})}_getDiffValue(t,e,A,i,s){let n,o;if(e==="none"&&(e=void 0),A==="none"&&(A=void 0),e===void 0||A===void 0)if(e!==void 0)n=hi(t,String(e),s),o=Es(n);else if(A!==void 0)o=hi(t,String(A),s),n=Es(o);else return;else n=hi(t,String(e),s),o=hi(t,String(A),s);if(Array.isArray(n)&&Array.isArray(o)){const a=new Set,l={},u={};n.forEach(({name:g,args:f})=>{l[g]=f,a.add(g)}),o.forEach(({name:g,args:f})=>{u[g]=f,a.add(g)});let c="";return a.forEach(g=>{const f=Math.max(l[g]?.length??0,u[g]?.length??0),d=l[g],B=u[g];c+=`${g}(${Array.from({length:f},(I,F)=>{const b=d?.[F],y=B?.[F],_=b?.normalizedIntValue??0,Q=y?.normalizedIntValue??0;return Number.isNaN(_)||Number.isNaN(Q)?y?.value??0:bt(_,Q,i)}).join(", ")}) `}),c}else if(!Array.isArray(n)&&!Array.isArray(o))return Number.isNaN(n.normalizedIntValue)||Number.isNaN(o.normalizedIntValue)?o.value:bt(n.normalizedIntValue,o.normalizedIntValue,i)}isPlaying(){return!this.paused&&this.isInsideTimeRange()}play(){return this._stoped?(this._stoped=!1,this.startTime=this.timelineCurrentTime):this.startTime=this.timelineCurrentTime-this.currentTime,this.paused=!1,!0}pause(){return this.paused=!0,!0}stop(){return this._stoped=!0,this.paused=!0,this._currentTime=0,!0}cancel(){this._getTargets().forEach(t=>{this._cachedProps.get(t)?.forEach((e,A)=>{t[A]=e}),this._cachedProps.delete(t)})}},ji([w()],h.Animation.prototype,"effectMode",2),ji([w()],h.Animation.prototype,"loop",2),ji([w()],h.Animation.prototype,"keyframes",2),ji([w()],h.Animation.prototype,"easing",2),h.Animation=ji([nt("Animation",{renderMode:"disabled",processMode:"pausable",processSortMode:"parent_before",duration:2e3})],h.Animation);class Vr extends Ge{static _instance;static get instance(){return this._instance||(this._instance=new Vr),this._instance}playbackRate=1;muted=!1;volume=1;paused=!1;refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}free(){this.removeAllListeners()}}class Zi extends Ge{static PADDING=.1;_source=null;_audio=null;_end=0;_pausedReal=!1;_duration=0;_start=0;_playing=!1;get progress(){return(this._source?.currentTime??0)/this._duration}_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}set(t,e){if(this[t]===void 0)throw new Error(`Property with name ${t} does not exist.`);switch(t){case"playbackRate":this.playbackRate=e;break;case"volume":this.volume=e;break;case"paused":this.paused=e;break;case"loop":this.loop=e;break;case"muted":this.muted=e;break}return this}_onPlay(){this._playing=!0}_onPause(){this._playing=!1}init(t){this._playing=!1,this._duration=t.source.duration;const e=this._source=t.source.cloneNode(!1);return e.src=t.parent.src,e.onplay=this._onPlay.bind(this),e.onpause=this._onPause.bind(this),t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this._audio=t,this}_stop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause())}stop(){this._stop(),this._source&&this.emit("stop")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}refresh(){if(!this._audio||!this._source)return;const t=this._audio.context,e=this._audio.parent;this._source.loop=this._loop||e.loop;const A=t.volume*(t.muted?0:1),i=e.volume*(e.muted?0:1),s=this._volume*(this._muted?0:1);this._source.volume=s*A*i,this._source.playbackRate=this._playbackRate*t.playbackRate*e.playbackRate}refreshPaused(){if(!this._source||!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,playbackRate:this._playbackRate,loop:this._loop})),this.emit("pause",t))}play(t={}){if(!this._source)return;const{start:e=0,end:A=0}=t;A&&console.assert(A>e,"End time is before start time"),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.volume!==void 0&&(this._volume=t.volume),t.loop!==void 0&&(this._loop=t.loop),t.muted!==void 0&&(this._muted=t.muted),this.refresh(),this.loop&&A!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=!1),this._start=e,this._end=A||this._duration,this._start=Math.max(0,this._start-Zi.PADDING),this._end=Math.min(this._end+Zi.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=e,this._source.onloadedmetadata=null,this.emit("progress",e,this._duration),Kt.on(this._onUpdate))},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start")}_onUpdate=()=>{this._source&&(this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete())};_onComplete(){Kt.off(this._onUpdate),this._stop(),this.emit("progress",1,this._duration),this.emit("end",this)}free(){Kt.off(this._onUpdate),this.removeAllListeners();const t=this._source;t&&(t.onended=null,t.onplay=null,t.onpause=null,this._stop()),this._source=null,this._playbackRate=1,this._volume=1,this._loop=!1,this._end=0,this._start=0,this._duration=0,this._playing=!1,this._pausedReal=!1,this._paused=!1,this._muted=!1,this._audio&&(this._audio.context.off("refresh",this.refresh),this._audio.context.off("refreshPaused",this.refreshPaused),this._audio=null)}}class ru{constructor(t){this.parent=t}source=new globalThis.Audio;_src="";get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}get duration(){return this.source.duration}get isPlayable(){return!!this.source&&this.source.readyState===4}get context(){return Vr.instance}async load(){return new Promise(t=>{this.source.onload=()=>t(this),this.source.src=this._src,this.source.load()})}createSound(){return new Zi}}class Tn extends Ge{constructor(t,e){super(),this._input=t,this._output=e}_processers=[];get processors(){return this._processers}set processors(t){if(this._processers.forEach(e=>e.disconnect()),this._processers.length=0,this._input.connect(this._output),t.length){this._processers=t.slice(0),this._input.disconnect();let e;t.forEach(A=>{e?e.connect(A.destination):this._input.connect(A.destination),e=A}),e.connect(this._output)}}get destination(){return this._input}}class cp{constructor(t,e=null){this.destination=t,this.source=e}connect(t){this.source?.connect(t)}disconnect(){this.source?.disconnect()}}function hp(){if(Cs)return new AudioContext;if(Qs){const r=globalThis.webkitAudioContext;return new r}else throw new Error("Failed to createAudioContext")}function gp(r,t,e){if(ys)return new OfflineAudioContext(r,t,e);if(_o){const A=globalThis.webkitOfflineAudioContext;return new A(r,t,e)}else throw new Error("Failed to createOfflineAudioContext")}class gA extends Tn{static _instance;static get instance(){return this._instance||(this._instance=new gA),this._instance}static get audioContext(){return this.instance.audioContext}static get offlineContext(){return this.instance.offlineContext}static setParamValue(t,e){this.instance.setParamValue(t,e)}static decode(t){return this.instance.decode(t)}_context;_offlineContext;get audioContext(){return this._context}get offlineContext(){return this._offlineContext}_locked;muted=!1;volume=1;playbackRate=1;autoPause=!0;_paused=!1;_pausedOnBlur=!1;get paused(){return this._paused}set paused(t){t&&this._context.state==="running"?this._context.suspend():!t&&this._context.state==="suspended"&&this._context.resume(),this._paused=t}_compressor;_analyser;constructor(){const t=hp(),e=gp(1,2,ys?Math.max(8e3,Math.min(96e3,t.sampleRate)):44100),A=t.createDynamicsCompressor(),i=t.createAnalyser();i.connect(A),A.connect(t.destination),super(i,A),this._context=t,this._offlineContext=e,this._compressor=A,this._analyser=i,this._locked=t.state==="suspended"&&(Oe||vo),fi&&(this._locked&&(this._unlock(),document.addEventListener("mousedown",this._unlock,!0),document.addEventListener("touchstart",this._unlock,!0),document.addEventListener("touchend",this._unlock,!0)),globalThis.addEventListener("focus",this._onFocus),globalThis.addEventListener("blur",this._onBlur))}_onFocus(){if(!this.autoPause)return;const t=this._context.state;(t==="suspended"||t==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused())}_onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=!0,this.refreshPaused()))}_unlock=()=>{this._locked&&(this.playEmptySound(),this._context.state==="running"&&(document.removeEventListener("mousedown",this._unlock,!0),document.removeEventListener("touchend",this._unlock,!0),document.removeEventListener("touchstart",this._unlock,!0),this._locked=!1))};playEmptySound(){const t=this._context.createBufferSource();t.buffer=this._context.createBuffer(1,1,22050),t.connect(this._context.destination),t.start(0,0,0),t.context.state==="suspended"&&t.context.resume()}refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(t){return new Promise((e,A)=>{const i=n=>{A(new Error(n?.message||"Unable to decode file"))},s=this._offlineContext.decodeAudioData(t,e,i);s&&s.catch(i)})}setParamValue(t,e){t.setValueAtTime?t.setValueAtTime(e,this._context.currentTime):t.value=e}}class su extends Ge{_audio=null;_sourceNode=null;_gain=null;_progress=0;get progress(){return this._progress}_pausedReal=!1;_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh(),this._update(!0))}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_duration=0;_end=0;_elapsed=0;_lastUpdate=this._now();_processors=[];init(t){return this._audio=t,t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this}_now(){return this._audio?.context.audioContext.currentTime??0}play(t={}){if(!this._audio)return;const{end:e=0,start:A=0}=t;e&&console.assert(e>A,"End time is before start time"),this._end=e,this._elapsed=A,t.volume!==void 0&&(this._volume=t.volume),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.muted!==void 0&&(this._muted=t.muted),t.loop!==void 0&&(this._loop=t.loop),t.processors!==void 0&&(this._processors=t.processors),this._paused=!1;const{source:i,gain:s}=this._audio.cloneSource();this._sourceNode=i,this._gain=s,this.refresh(),i.onended=this._onComplete.bind(this),this._duration=i.buffer?.duration??0,this._lastUpdate=this._now(),this._loop?(i.loopStart=A,i.loopEnd=e,i.start(0,A)):e?i.start(0,A,e-A):i.start(0,A),this.emit("start"),this._update(!0),this._enableTicker(!0)}_stop(){if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.stop(0),this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}this._sourceNode=null}}stop(){this._sourceNode&&(this._stop(),this.emit("stop"))}_update(t=!1){if(this._sourceNode){const e=this._now(),A=e-this._lastUpdate;if(A>0||t){this._elapsed+=A*this._sourceNode.playbackRate.value,this._lastUpdate=e;const i=this._duration;let s;if(this._sourceNode.loopStart){const n=this._sourceNode.loopEnd-this._sourceNode.loopStart;s=(this._sourceNode.loopStart+this._elapsed%n)/i}else s=this._elapsed%i/i;this._progress=s,this.emit("progress",s,i)}}}refresh(){if(!this._audio||!this._sourceNode)return;const t=this._audio.context,e=this._audio.parent;this._sourceNode.loop=this._loop||e.loop,t.setParamValue(this._gain.gain,this._volume*(this._muted?0:1)*e.volume*(e.muted?0:1)*t.volume*(t.muted?0:1)),t.setParamValue(this._sourceNode.playbackRate,this._playbackRate*e.playbackRate*t.playbackRate),this.applyProcessors()}applyProcessors(){if(this._sourceNode&&this._processors.length){this._sourceNode.disconnect();let t=this._sourceNode;this._processors.forEach(e=>{t.connect(e.destination),t=e}),t.connect(this._gain)}}refreshPaused(){if(!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,playbackRate:this._playbackRate,loop:this._loop,volume:this._volume})),this.emit("pause",t))}_onComplete=()=>{if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}}this._sourceNode=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this)};_updateListener=()=>this._update();_enableTicker(t){Kt.off(this._updateListener),t&&Kt.on(this._updateListener)}free(){this.removeAllListeners(),this._stop(),this._gain?.disconnect(),this._gain=null,this._audio?.context.off("refresh",this.refresh),this._audio?.context.off("refreshPaused",this.refreshPaused),this._audio=null,this._processors.forEach(t=>t.disconnect()),this._processors.length=0,this._end=0,this._playbackRate=1,this._volume=1,this._loop=!1,this._elapsed=0,this._duration=0,this._paused=!1,this._muted=!1,this._pausedReal=!1}}class nu extends Tn{constructor(t){const e=gA.audioContext,A=e.createBufferSource(),i=e.createGain(),s=e.createAnalyser();A.connect(s),s.connect(i),i.connect(gA.instance.destination),super(s,i),this.parent=t,this._sourceNode=A,this.gain=i,this.analyser=s}_sourceBuffer;_sourceNode;_sourceLoad;gain;analyser;get context(){return gA.instance}get isPlayable(){return!!this._sourceNode.buffer}get duration(){return this._sourceNode.buffer?.duration??0}get buffer(){return this._sourceNode.buffer}set buffer(t){this._sourceNode.buffer=t}async load(){return this._sourceLoad||(this._sourceLoad=new Promise(t=>{this._sourceBuffer?this._decode(this._sourceBuffer).then(()=>t(this)):this.parent.src?this._loadUrl(this.parent.src).then(()=>t(this)):t(this)})),this._sourceLoad}_loadUrl(t){return new Promise(e=>{fetch(t).then(A=>A.arrayBuffer()).then(A=>this._decode(A)).finally(()=>e(this))})}_decode(t){return Promise.resolve(t instanceof AudioBuffer?t:gA.decode(t)).then(e=>(this.parent.isLoaded=!0,this.buffer=e,e))}cloneSource(){const t=this.context,e=this._sourceNode,A=t.audioContext.createBufferSource(),i=t.audioContext.createGain();return A.buffer=e.buffer,A.loop=e.loop,t.setParamValue(A.playbackRate,e.playbackRate.value),A.connect(i),i.connect(this.destination),{source:A,gain:i}}createSound(){return new su}}var fp=Object.defineProperty,dp=Object.getOwnPropertyDescriptor,Ip=(r,t,e)=>t in r?fp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,pp=(r,t,e,A)=>{for(var i=A>1?void 0:A?dp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i},Ep=(r,t,e)=>Ip(r,t+"",e);h.Audio=class extends h.TimelineNode{_sounds=[];_platformAudio=bo?new nu(this):new ru(this);get platformAudio(){return this._platformAudio}_src;get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}isLoaded=!1;get isPlayable(){return this.isLoaded&&this._platformAudio.isPlayable}get audioDuration(){return this._platformAudio.duration*1e3}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_isPlaying=!1;get isPlaying(){return this._isPlaying}multiple=!1;start=0;end=0;constructor(t=""){super(),this.src=t}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"paused":this.refreshPaused();break}}async load(){return await this._platformAudio.load(),this}pause(){return this._isPlaying=!1,this.paused=!0,this}resume(){return this._isPlaying=this._sounds.length>0,this.paused=!1,this}stop(){if(!this.isPlayable)return this;this._isPlaying=!1;for(let t=this._sounds.length-1;t>=0;t--)this._sounds[t].stop();return this}play(t={}){if(!this.isLoaded)return;this.multiple||this._removeSounds(),this._isPlaying=!0;const e=this._createSound();this._sounds.push(e),e.once("end",()=>{t.complete?.(),this._onComplete(e)}),e.once("stop",()=>this._onComplete(e));const A=(t?.start??this.start)/1e3,i=(t?.end??this.end)/1e3;return e.play({...t,start:A,end:i}),e}_removeSounds(){for(let t=this._sounds.length-1;t>=0;t--)this._recycleSound(this._sounds[t]);this._sounds.length=0}_createSound(){return h.Audio._soundPool.length>0?h.Audio._soundPool.pop().init(this._platformAudio):this._platformAudio.createSound().init(this._platformAudio)}refresh(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refresh()}refreshPaused(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refreshPaused()}_onComplete=t=>{if(this._sounds){const e=this._sounds.indexOf(t);e>-1&&this._sounds.splice(e,1),this._isPlaying=this._sounds.length>0}this._recycleSound(t)};_recycleSound(t){t.free(),h.Audio._soundPool.includes(t)||h.Audio._soundPool.push(t)}_prevTime=0;_timer=0;_process(t){if(super._process(t),this.canProcess()){const e=this._tree?.timeline.currentTime??0;e-this._prevTime>0&&(this._timer||(this._setTimeStop(),this.play({start:this.start+(e-this.delay)%this.duration})),this._isPlaying&&this._setTimeStop()),this._prevTime=e}}_setTimeStop(){this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this.stop(),this._timer=0},100)}},Ep(h.Audio,"_soundPool",[]),h.Audio=pp([nt("Audio")],h.Audio);class Bp extends h.Node2D{}var Cp=Object.defineProperty,Qp=Object.getOwnPropertyDescriptor,zr=(r,t,e,A)=>{for(var i=A>1?void 0:A?Qp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Cp(t,e,i),i};h.AudioWaveform=class extends h.Element2D{_audioBuffer;_src=fi?new mt(document.createElement("canvas")):void 0;_needsUpdateTexture=!1;constructor(t={}){super(),this.setProperties(t)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"src":this._loadSrc(e);break;case"gap":case"color":case"width":case"height":this._needsUpdateTexture=!0;break}}async _loadSrc(t){await globalThis.fetch(t).then(e=>e.arrayBuffer()).then(e=>gA.decode(e)).then(e=>{this._audioBuffer=e,this.syncTexture(!0)})}syncTexture(t=!1){const e=this._audioBuffer;if(!e||!t&&!this._needsUpdateTexture)return;this._needsUpdateTexture=!1;const A=this._src?.source;if(!A)return;const{width:i=0,height:s=0}=this.style;A.width=i,A.height=s;const n=A.getContext("2d");if(!n){console.warn("Failed to getContext('2d') in syncTexture");return}n.fillStyle=this.color;const o=e.getChannelData(0),a=Math.ceil(o.length/i),l=s/2;for(let u=1,c=-1,g=0;g<i;g++){for(let f=0;f<a;f++){const d=o[g*a+f];d<u&&(u=d),d>c&&(c=d)}if(!this.gap||g%(this.gap*2)===0){const f=g,d=(1+u)*l,B=this.gap||1,I=Math.max(1,(c-u)*l);n.fillRect(f,d,B,I),u=1,c=-1}}this._src?.requestUpload(),this.requestRedraw()}_process(t){this.syncTexture(),super._process(t)}_drawSrc(){const t=this._src;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Yt().scale(1/this.style.width,1/this.style.height))}},zr([w()],h.AudioWaveform.prototype,"src",2),zr([w()],h.AudioWaveform.prototype,"gap",2),zr([w()],h.AudioWaveform.prototype,"color",2),h.AudioWaveform=zr([nt("AudioWaveform")],h.AudioWaveform);var yp=Object.getOwnPropertyDescriptor,Dp=(r,t,e,A)=>{for(var i=A>1?void 0:A?yp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.Control=class extends h.Element2D{constructor(t,e=[]){super(),this._parentUpdateRect=this._parentUpdateRect.bind(this),this.setProperties(t),this.append(e)}_parented(t){super._parented(t),t.on("updateRect",this._parentUpdateRect)}_unparented(t){super._unparented(t),t.off("updateRect",this._parentUpdateRect)}_parentUpdateRect(){const t=this._parent.getRect();this.style.left=t.left,this.style.top=t.top,this.style.width=t.width,this.style.height=t.height}_input(t,e){super._input(t,e),this._guiInput(t,e)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":case"height":case"left":case"top":this.emit("updateRect");break}}_guiInput(t,e){}},h.Control=Dp([nt("Control")],h.Control);var mp=Object.defineProperty,wp=Object.getOwnPropertyDescriptor,fA=(r,t,e,A)=>{for(var i=A>1?void 0:A?wp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&mp(t,e,i),i};h.Range=class extends h.Control{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"allowGreater":case"allowLesser":case"page":case"minValue":case"maxValue":case"step":case"value":this.requestRedraw();break}}},fA([w({fallback:!1})],h.Range.prototype,"allowGreater",2),fA([w({fallback:!1})],h.Range.prototype,"allowLesser",2),fA([w({fallback:1})],h.Range.prototype,"page",2),fA([w({fallback:0})],h.Range.prototype,"minValue",2),fA([w({fallback:100})],h.Range.prototype,"maxValue",2),fA([w({fallback:.01})],h.Range.prototype,"step",2),fA([w({fallback:0})],h.Range.prototype,"value",2),h.Range=fA([nt("Range")],h.Range);var vp=Object.defineProperty,_p=Object.getOwnPropertyDescriptor,ke=(r,t,e,A)=>{for(var i=A>1?void 0:A?_p(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&vp(t,e,i),i};h.Ruler=class extends h.Control{texture=new pi;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"offsetX":case"offsetY":case"thickness":case"markHeight":case"color":case"markBackgroundColor":case"markColor":case"gap":case"scale":this.requestRedraw();break}}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":case"height":this.texture[t]=e,this.requestRedraw();break}}_drawTexture(){const{width:t,height:e}=this.size,{offsetX:A,offsetY:i,thickness:s,markHeight:n,markBackgroundColor:o,markColor:a,color:l,gap:u,gapScale:c}=this,f=this.texture.source.getContext("2d");f.reset(),f.scale(this.texture.pixelRatio,this.texture.pixelRatio);const d=Math.round(A),B=Math.round(i);f.beginPath(),f.fillStyle=o||"#EEE",f.fillRect(0,0,t,s),f.fillRect(0,0,s,e),f.fill(),f.strokeStyle=a||"#000",f.moveTo(s,0),f.lineTo(s,e),f.moveTo(0,s),f.lineTo(t,s),f.stroke();const I=u,F=u*c;let b,y,_,Q,D;for(I>=F?(b=I/F,y=Math.floor(b)*I/20,_=I/20*Math.floor(b)/b):(b=F/I,y=Math.floor(I/20/b),y>=2?y=Math.floor(y/2)*2:y=1,_=y*b),f.fillStyle=f.strokeStyle,Q=d,D=0;Q<t;D++,Q+=_)f.moveTo(Q,s-(D%5?n:2*n)),f.lineTo(Q,s);for(Q=d,D=0;Q>s;D++,Q-=_)f.moveTo(Q,s-(D%5?n:2*n)),f.lineTo(Q,s);let S=0;for(Q=B,D=0;Q>s;D++,Q-=_)f.moveTo(s-(D%5?n:2*n),Q),f.lineTo(s,Q);for(Q=B,D=0;Q<e;D++,Q+=_)f.moveTo(s-(D%5?n:2*n),Q),f.lineTo(s,Q);for(f.save(),f.fillStyle=l,f.scale(.8,.8),S=s-8,Q=d,D=0;Q<t;D++,Q+=_)D%10===0&&f.fillText(String(Math.ceil(y*D)),Q*1.25-3,S*1.25);for(Q=d,D=0;Q>s;D++,Q-=_)D%10===0&&f.fillText(String(Math.ceil(-y*D)),Q*1.25-3,S*1.25);for(S=0,Q=B,D=0;Q>s;D++,Q-=_)D%10===0&&f.fillText(String(Math.ceil(y*D)),S*1.25,Q*1.25+3);for(Q=B,D=0;Q<e;D++,Q+=_)D%10===0&&f.fillText(String(Math.ceil(-y*D)),S*1.25,Q*1.25+3);f.restore(),f.stroke(),this.texture.requestUpload()}_draw(){this._drawTexture();const t=this.texture;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Yt().scale(1/this.size.width,1/this.size.height),this.context.rect(0,0,t.width,t.height),this.context.fill())}},ke([w({fallback:0})],h.Ruler.prototype,"offsetX",2),ke([w({fallback:0})],h.Ruler.prototype,"offsetY",2),ke([w({fallback:20})],h.Ruler.prototype,"thickness",2),ke([w({fallback:3})],h.Ruler.prototype,"markHeight",2),ke([w({fallback:"#b2b6bc"})],h.Ruler.prototype,"color",2),ke([w({fallback:"#f9f9fa"})],h.Ruler.prototype,"markBackgroundColor",2),ke([w({fallback:"#b2b6bc"})],h.Ruler.prototype,"markColor",2),ke([w({fallback:300})],h.Ruler.prototype,"gap",2),ke([w({fallback:1})],h.Ruler.prototype,"gapScale",2),h.Ruler=ke([nt("Ruler")],h.Ruler);var bp=Object.defineProperty,xp=Object.getOwnPropertyDescriptor,ou=(r,t,e,A)=>{for(var i=A>1?void 0:A?xp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&bp(t,e,i),i};h.ScrollBar=class extends h.Range{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":case"height":case"left":case"top":this.requestRedraw();break}}_rect(){const{size:t,position:e}=this;let A,i,s,n,o;return this.direction==="vertical"?(s=10,n=t.height*(this.page/(this.maxValue-this.minValue)),A=e.left+t.width-s,i=t.height*(this.value/(this.maxValue-this.minValue)),o=s/2):(s=t.width*(this.page/(this.maxValue-this.minValue)),n=10,A=t.width*(this.value/(this.maxValue-this.minValue)),i=e.top+t.height-n,o=n/2),{left:A,top:i,width:s,height:n,radii:o}}_draw(){const{left:t,top:e,width:A,height:i,radii:s}=this._rect();this.context.roundRect(t,e,A,i,s),this.context.fillStyle=34,this.context.fill()}_pointerInput(t,e){const{left:A,top:i,width:s,height:n}=this._rect(),o=t.x>=A&&t.x<A+s&&t.y>=i&&t.y<i+n;switch(e){case"pointerdown":case"pointermove":o?this._tree?.input.setCursor("pointer"):this._tree?.input.setCursor(void 0);break}return!1}},ou([w({fallback:"vertical"})],h.ScrollBar.prototype,"direction",2),h.ScrollBar=ou([nt("ScrollBar")],h.ScrollBar);var Fp=Object.getOwnPropertyDescriptor,Sp=(r,t,e,A)=>{for(var i=A>1?void 0:A?Fp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.XScrollBar=class extends h.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},h.XScrollBar=Sp([nt("XScrollBar",{direction:"horizontal"})],h.XScrollBar);var Mp=Object.getOwnPropertyDescriptor,Rp=(r,t,e,A)=>{for(var i=A>1?void 0:A?Mp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i};h.YScrollBar=class extends h.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},h.YScrollBar=Rp([nt("YScrollBar",{direction:"vertical"})],h.YScrollBar);var Pp=Object.defineProperty,kp=Object.getOwnPropertyDescriptor,Wr=(r,t,e,A)=>{for(var i=A>1?void 0:A?kp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=(A?n(t,e,i):n(i))||i);return A&&i&&Pp(t,e,i),i};h.Scaler=class extends h.Node{get target(){if(this.parent?.style)return this.parent}constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,A,i){switch(super._updateProperty(t,e,A,i),t){case"value":case"min":case"max":{this.value=Ke(this.minValue,this.value,this.maxValue),this._updateScale();break}}}_updateScale(){const t=this.target;t&&(t.style.scaleX=this.value,t.style.scaleY=this.value,this.emit("updateScale",this.value))}_onWheel(t){if(!this.target)return;if(t.preventDefault(),!(t.wheelDeltaY?Math.abs(Math.abs(t.wheelDeltaY)-Math.abs(3*t.deltaY))<3:t.deltaMode===0)&&t.ctrlKey){t.preventDefault();let i=t.deltaY/(t.ctrlKey?1:100);i*=-.015,this.value+=i}}_input(t,e){switch(super._input(t,e),e){case"wheel":this._onWheel(t);break}}},Wr([w({default:1})],h.Scaler.prototype,"value",2),Wr([w({default:.05})],h.Scaler.prototype,"minValue",2),Wr([w({default:10})],h.Scaler.prototype,"maxValue",2),h.Scaler=Wr([nt("Scaler",{processMode:"disabled",renderMode:"disabled"})],h.Scaler);var Up=Object.defineProperty,Np=Object.getOwnPropertyDescriptor,Tp=(r,t,e)=>t in r?Up(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Lp=(r,t,e,A)=>{for(var i=A>1?void 0:A?Np(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(i=n(i)||i);return i},Gp=(r,t,e)=>Tp(r,t+"",e);h.KawaseTransition=class extends h.Transition{blur=10;quality=10;apply(t,e){const A=this.currentTimeProgress;let i,s;A<.5?(i=0,s=(.5-A)/.5):(i=1,s=(A-.5)/.5);const n=this.blur,o=this.quality,a=e.width,l=e.height,u=[],c=[n];if(n>0){let F=n;const b=n/o;for(let y=1;y<o;y++)F-=b,c.push(F)}const g=1/a,f=1/l,d=[];let B;const I=o-1;for(let F=0;F<I;F++)B=c[F]+.5,d[0]=B*g,d[1]=B*f,u.push({offset:d});B=c[I]+.5,d[0]=B*g,d[1]=B*f,u.push({offset:d}),u.forEach(F=>{gt.draw(t,h.KawaseTransition.material,{sampler:i,progress:s,...F})})}},Gp(h.KawaseTransition,"material",new Ct({vert:`attribute vec2 position;
|
|
914
914
|
attribute vec2 uv;
|
|
915
915
|
varying vec2 vUv;
|
|
@@ -1046,4 +1046,4 @@ void main(void) {
|
|
|
1046
1046
|
coord = twist(coord, radius - (progress * radius));
|
|
1047
1047
|
coord = unmapCoord(coord);
|
|
1048
1048
|
gl_FragColor = texture2D(sampler, coord);
|
|
1049
|
-
}`})),h.TwistTransition=tE([nt("TwistTransition")],h.TwistTransition);class au extends eA{install(t){const e=async A=>{const{decodeFrames:i}=await import("modern-gif");return await t.fetch(A).then(s=>s.arrayBuffer()).then(s=>i(s)).then(s=>new gr(s.map(n=>({duration:n.delay,texture:new Ms(n.data,n.width,n.height)}))))};return this.load=A=>t.loadBy(A,()=>e(A)),["image/gif"].forEach(A=>{t.register(A,e)}),t.gif=this,this}}class lu extends eA{install(t){const e=A=>t.fetch(A).then(i=>i.json());return this.load=A=>t.loadBy(A,()=>e(A)),["json"].forEach(A=>{t.register(A,e)}),t.json=this,this}}class uu extends eA{install(t){const e=async(A,i)=>(await import("lottie-web").then(n=>n.default)).loadAnimation({container:null,renderer:"canvas",rendererSettings:{context:i.getContext("2d")},loop:!1,autoplay:!1,animationData:await t.fetch(A).then(n=>n.json())});return this.load=(A,i)=>t.loadBy(A,()=>e(A,i)),["lottie"].forEach(A=>{t.register(A,e)}),t.lottie=this,this}}class cu extends eA{install(t){const e=async A=>await t.fetch(A).then(i=>i.text());return this.load=A=>t.loadBy(A,()=>e(A)),t.text=this,this}}class hu extends eA{install(t){const e=A=>t.fetchImageBitmap(A,{premultiplyAlpha:"premultiply"}).then(i=>new mt(i));return this.load=A=>t.loadBy(A,()=>e(A)),["image/gif","image/jpeg","image/png","image/tiff","image/vnd.wap.wbmp","image/x-icon","image/x-jng","image/x-ms-bmp","image/svg+xml","image/webp"].forEach(A=>{t.register(A,e)}),t.texture=this,this}}class gu extends eA{install(t){const e=A=>new ga(A).load();return this.load=A=>t.loadBy(A,()=>e(A)),["video/3gpp","video/mpeg","video/quicktime","video/x-flv","video/x-mng","video/x-ms-asf","video/x-ms-wmv","video/x-msvideo","video/mp4"].forEach(A=>{t.register(A,e)}),t.video=this,this}}const AE=Object.entries({"text/html":["html","htm","shtml"],"text/css":["css"],"text/xml":["xml"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls"],"application/vnd.ms-powerpoint":["ppt"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"]});function iE(r){for(const[t,e]of AE)if(e.includes(r))return t}async function rE(r){let t;if(r.startsWith("data:"))t=r.match(/^data:(.+?);/)?.[1];else if(r.startsWith("http")){const e=r.split(/[#?]/)[0].split(".").pop()?.trim();e&&(t=iE(e))}return t??await fetch(r).then(e=>e.headers.get("Content-Type"))??""}const qr="WeakRef"in globalThis;class fu{defaultHandler=t=>this.fetch(t);_handlers=new Map;_handleing=new Map;_handled=new Map;_gc=qr?new FinalizationRegistry(t=>{const e=this.get(t);e&&"free"in e&&e.free(),this._handled.delete(t)}):void 0;constructor(){qr||Kt.on(this.gc.bind(this),{sort:2})}use(t){return t.install(this),this}register(t,e){return this._handlers.set(t,e),this}fetch(t){return fetch(t)}_fixSVG(t){let e;t.includes(";base64,")?e=atob(t.split(",")[1]):e=decodeURIComponent(t.split(",")[1]);const A=new DOMParser().parseFromString(e,"image/svg+xml").documentElement,i=A.getAttribute("width"),s=A.getAttribute("height"),n=i&&/^[\d.]+$/.test(i),o=s&&/^[\d.]+$/.test(s);if(!n||!o){const a=A.getAttribute("viewBox")?.split(" ").map(l=>Number(l));n||A.setAttribute("width",String(a?a[2]-a[0]:512)),o||A.setAttribute("height",String(a?a[3]-a[1]:512))}return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(A.outerHTML)}`}async fetchImageBitmap(t,e){return t.startsWith("http")?await this.fetch(t).then(A=>A.blob()).then(A=>A.type==="image/svg+xml"?A.text().then(i=>this.fetchImageBitmap(this._fixSVG(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`),e)):createImageBitmap(A,e)):(t.startsWith("data:image/svg+xml;")&&(t=this._fixSVG(t)),new Promise(A=>{const i=new Image;i.src=t,i.onload=()=>{i.decode().finally(()=>{A(i)})}}).then(A=>createImageBitmap(A,e)))}get(t){let e=this._handled.get(t);return qr&&e instanceof WeakRef&&(e=e.deref(),e||this._handleing.delete(t)),e}set(t,e){let A=e;qr&&typeof e=="object"&&(this._gc.register(e,t),A=new WeakRef(e)),this._handled.set(t,A)}async loadBy(t,e){const A=this.get(t)??this._handleing.get(t);if(A)return A;const i=e().then(s=>(this.set(t,s),s)).finally(()=>{this._handleing.delete(t)});return this._handleing.set(t,i),i}async load(t,e){return this.loadBy(t,async()=>{const A=await rE(t);return(this._handlers.get(A)??this.defaultHandler)(t,e)})}async waitUntilLoad(){await Promise.all(Array.from(this._handleing.values()))}gc(){this._handled.forEach((t,e)=>{const A=this.get(e);A&&"free"in A&&A.free()}),this._handled.clear()}}const Ue=new fu().use(new ra).use(new au).use(new lu).use(new uu).use(new cu).use(new hu).use(new gu);class sE extends h.Control{_pointerStart;_pointerOffset;selected;dragging;hovered;hover=new h.Element2D({name:"hover",internalMode:"back",style:{visibility:"hidden",outlineStyle:"solid",outlineColor:"#00FF00FF",outlineWidth:2,pointerEvents:"none"}});transformRect=new Nn({name:"transformRect",internalMode:"back",style:{visibility:"hidden",pointerEvents:"none"}});scaler=new h.Scaler({internalMode:"back"}).on("updateScale",t=>{this.ruler.gapScale=t,this._updateScrollbars(),this._updateSelectionRect()});xScrollBar=new h.XScrollBar({internalMode:"back",style:{visibility:"hidden"}});yScrollBar=new h.YScrollBar({internalMode:"back",style:{visibility:"hidden"}});drawboard=new h.Element2D({name:"drawboard",style:{width:500,height:500,backgroundColor:"#FFFFFFFF",overflow:"hidden",pointerEvents:"none",boxShadow:"2px 2px 2px 1px rgba(0, 0, 0, 0.2)"}},[this.scaler]);ruler=new h.Ruler({name:"ruler",offsetX:100,offsetY:100,style:{pointerEvents:"none"}},[this.drawboard,this.hover,this.transformRect,this.xScrollBar,this.yScrollBar]);constructor(){super(),this._onPointerdown=this._onPointerdown.bind(this),this._onPointermove=this._onPointermove.bind(this),this._onPointerup=this._onPointerup.bind(this),this.append(this.ruler)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":this.drawboard.style.left=(this.size.width-this.drawboard.size.width)/2,this.ruler.offsetX=this.drawboard.style.left;break;case"height":this.drawboard.style.top=(this.size.height-this.drawboard.size.height)/2,this.ruler.offsetY=this.drawboard.style.top;break}}_guiInput(t,e){switch(super._guiInput(t,e),e){case"pointerdown":this._onPointerdown(t);break;case"pointermove":this._onPointermove(t);break;case"pointerup":this._onPointerup();break}}_onPointerdown(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected),this._pointerOffset={x:t.offsetX,y:t.offsetY},this.selected=e,this.dragging=e,e instanceof h.Element2D?this._pointerStart=e.style.clone():this._pointerStart=void 0,this._updateHover(),this._updateSelectionRect()}_onPointermove(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected);const{selected:A,dragging:i,_pointerStart:s,_pointerOffset:n}=this;A&&e?.is(A)?this.hovered=void 0:this.hovered=e;const o=n?{x:t.offsetX-n.x,y:t.offsetY-n.y}:{x:0,y:0};i&&s&&(i.style.left=s.left+o.x/this.scaler.value,i.style.top=s.top+o.y/this.scaler.value,i.update()),this._updateHover(),this._updateSelectionRect()}_onPointerup(){this.dragging=void 0,this._updateHover(),this._updateSelectionRect()}_copyGlobalTransform(t,e){t.style.visibility="visible",t.style.width=e.globalScale.x*e.size.x,t.style.height=e.globalScale.y*e.size.y,t.style.left=e.globalPosition.x,t.style.top=e.globalPosition.y,t.style.rotate=e.globalRotation,t.update()}_updateHover(){const t=this.hovered;t instanceof h.Element2D?(this.hover.style.visibility="visible",this._copyGlobalTransform(this.hover,t),this.hover.requestRedraw()):this.hover.style.visibility="hidden"}_updateSelectionRect(){this.selected?(this.transformRect.style.visibility="visible",this._copyGlobalTransform(this.transformRect,this.selected)):this.transformRect.style.visibility="hidden"}_updateScrollbars(){const t=this.ruler.gapScale,e=this.drawboard.size.height*t,A=this.drawboard.size.width*t;e>this.size.height?(this.yScrollBar.style.visibility="visible",this.yScrollBar.maxValue=e,this.yScrollBar.page=this.size.height):this.yScrollBar.style.visibility="hidden",A>this.size.width?(this.xScrollBar.style.visibility="visible",this.xScrollBar.maxValue=A,this.xScrollBar.page=this.size.width):this.xScrollBar.style.visibility="hidden"}}const du={alpha:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};class Iu extends Fi{renderer;get view(){return this.renderer.view}get gl(){return this.renderer.gl}get screen(){return this.renderer.screen}get width(){return this.screen.width}get height(){return this.screen.height}get pixelRatio(){return this.renderer.pixelRatio}set pixelRatio(t){this.renderer.pixelRatio=t,this.resize(this.width,this.height),this.view&&(this.view.dataset.pixelRatio=String(t))}_resizeObserver=mo?new ResizeObserver(t=>{const e=t[0];if(e.target===this.view){const{inlineSize:A,blockSize:i}=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize;this.resize(A,i)}}):void 0;constructor(t={}){const{debug:e=!1,view:A,width:i,height:s,pixelRatio:n=Ds,backgroundColor:o=0,autoResize:a,autoStart:l,timeline:u,...c}=t;super(u),this.debug=e,this.renderer=new ia(A,{...du,...c}),this._setupInput(),this.pixelRatio=n,this.backgroundColor=o,a?(!A&&this.renderer.view&&(this.renderer.view.style.width="100%",this.renderer.view.style.height="100%"),this.enableAutoResize(a)):this.resize(i||this.gl.drawingBufferWidth||this.view?.clientWidth||200,s||this.gl.drawingBufferHeight||this.view?.clientHeight||200,!A),l&&this.start()}_setupInput(){return this.view&&(this.input.setTarget(this.view),["pointerdown","pointerover","pointermove","pointerup","wheel"].forEach(t=>{this.input.on(t,e=>{this.root.input(e,t),this.emit(t,e)})})),this}enableAutoResize(t=!0){return this.view&&(t?this._resizeObserver?.observe(this.view):this._resizeObserver?.unobserve(this.view)),this}resize(t,e,A=!1){return this.renderer.resize(t,e,A),this.root.width=t,this.root.height=e,this.root.requestUpload(),this.render(),this}nextTick(){return Is()}async waitUntilLoad(){await Ue.waitUntilLoad(),await this.nextTick()}async waitAndRender(t=0){await Ue.waitUntilLoad(),this._process(t),await this.nextTick(),this._render(this.renderer)}render(t=0){this._process(t),this._render(this.renderer)}async start(){await this.waitAndRender(),super.start(t=>{this._process(t),this._render(this.renderer)})}free(){super.free(),this.enableAutoResize(!1),this.renderer.free()}toPixels(){return this.renderer.toPixels()}toImageData(){return new ImageData(this.toPixels(),this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}toCanvas2D(){const t=this.toImageData(),e=document.createElement("canvas");e.width=t.width,e.height=t.height,e.getContext("2d")?.putImageData(t,0,0);const A=document.createElement("canvas");return A.width=this.width,A.height=this.height,A.getContext("2d")?.drawImage(e,0,0,e.width,e.height,0,0,A.width,A.height),A}}let Ne;const Ln=[];let Gn=!1;async function nE(r=100){if(!Gn){for(Gn=!0;Ln.length;){const t=Ln.shift();if(t)try{await t()}catch(e){console.error(e)}else await new Promise(e=>setTimeout(e,r))}Gn=!1}}async function oE(r){const{data:t,width:e,height:A,debug:i=!1,time:s=0}=r;return Ne??=new Iu({width:1,height:1,preserveDrawingBuffer:!0}),Ne.debug=i,Ne.root.removeChildren(),Ne.timeline.currentTime=s,Ne.resize(e,A,!0),(Array.isArray(t)?t:[t]).forEach(n=>{n instanceof h.Node?(n.parent=void 0,Ne.root.appendChild(n)):Ne.root.appendChild(h.Node.parse(n))}),await r.onBeforeRender?.(Ne),await Ne.waitAndRender(),Ne.toCanvas2D()}async function aE(r){return new Promise(t=>{Ln.push(async()=>t(await oE(r))),nE()})}h.AnimatedTexture=gr,h.Assets=fu,h.AudioPipeline=Tn,h.AudioProcessor=cp,h.AudioSpectrum=Bp,h.BaseElement2DBackground=$s,h.BaseElement2DFill=Vt,h.BaseElement2DForeground=tn,h.BaseElement2DOutline=Mi,h.BaseElement2DShadow=DA,h.BaseElement2DShape=mA,h.BaseElement2DStyle=ki,h.BaseElement2DText=FA,h.CanvasContext=Wa,h.CanvasItemEditor=sE,h.CanvasTexture=pi,h.Color=Je,h.ColorMatrix=_s,h.ColorTexture=ca,h.CoreObject=tA,h.DEG_TO_RAD=Go,h.DEVICE_PIXEL_RATIO=Ds,h.EffectMaterial=di,h.Element2DStyle=kn,h.Engine=Iu,h.FlexElement2DStyle=Hl,h.FlexLayout=Jr,h.FontLoader=ra,h.GIFLoader=au,h.Geometry=hr,h.GradientTexture=fr,h.HTMLAudio=ru,h.HTMLAudioContext=Vr,h.HTMLSound=Zi,h.IN_BROWSER=fi,h.ImageTexture=sh,h.IndexBuffer=UA,h.Input=No,h.InputEvent=ur,h.JSONLoader=lu,h.Loader=eA,h.LottieLoader=uu,h.MainLoop=cr,h.Material=Ct,h.Matrix=ve,h.Matrix2=Hc,h.Matrix3=bs,h.Matrix4=Lo,h.MouseInputEvent=vs,h.PI=lr,h.PI_2=oe,h.PixelsTexture=Ms,h.PointerInputEvent=ko,h.Projection2D=Ho,h.QuadGeometry=Xc,h.QuadUvGeometry=gt,h.RAD_TO_DEG=Gc,h.RawWeakMap=ws,h.Rect2=xs,h.RefCounted=To,h.Renderer=Ko,h.Resource=He,h.SUPPORTS_AUDIO_CONTEXT=Cs,h.SUPPORTS_CLICK_EVENTS=vo,h.SUPPORTS_CREATE_IMAGE_BITMAP=Bs,h.SUPPORTS_IMAGE_BITMAP=Do,h.SUPPORTS_MOUSE_EVENTS=kc,h.SUPPORTS_OFFLINE_AUDIO_CONTEXT=ys,h.SUPPORTS_POINTER_EVENTS=PA,h.SUPPORTS_RESIZE_OBSERVER=mo,h.SUPPORTS_TOUCH_EVENTS=Oe,h.SUPPORTS_WEBGL2=yo,h.SUPPORTS_WEBKIT_AUDIO_CONTEXT=Qs,h.SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT=_o,h.SUPPORTS_WEB_AUDIO=bo,h.SUPPORTS_WHEEL_EVENTS=wo,h.SceneTree=Fi,h.TextLoader=cu,h.Texture2D=mt,h.TextureLoader=hu,h.TextureRect2D=Kr,h.Ticker=Kt,h.Transform2D=Yt,h.TransformRect2D=Nn,h.UvGeometry=th,h.UvMaterial=Ii,h.Vector=Ee,h.Vector2=ae,h.Vector3=Jc,h.Vector4=Oo,h.VertexAttribute=le,h.VertexBuffer=Ye,h.VideoLoader=gu,h.VideoTexture=ga,h.ViewportTexture=Ps,h.WebAudio=nu,h.WebAudioContext=gA,h.WebGLBatch2DModule=zo,h.WebGLBlendMode=kA,h.WebGLBufferModule=Wo,h.WebGLFramebufferModule=qo,h.WebGLMaskModule=Xo,h.WebGLModule=de,h.WebGLProgramModule=jo,h.WebGLRenderer=ia,h.WebGLScissorModule=Zo,h.WebGLState=BA,h.WebGLStateModule=Vo,h.WebGLStencilModule=$o,h.WebGLTextureModule=ta,h.WebGLVertexArrayModule=ea,h.WebGLViewportModule=Aa,h.WebSound=su,h.WheelInputEvent=Uo,h.assets=Ue,h.clamp=Ke,h.clampFrag=rl,h.createHTMLCanvas=Mo,h.createNode=xc,h.crossOrigin=Po,h.cubicBezier=si,h.curves=Oc,h.customNode=nt,h.customNodes=ar,h.defaultOptions=du,h.determineCrossOrigin=Ro,h.ease=tu,h.easeIn=eu,h.easeInOut=iu,h.easeOut=Au,h.frag=il,h.getDefaultCssPropertyValue=Es,h.isCanvasElement=Fo,h.isElementNode=ms,h.isImageElement=Uc,h.isPow2=ps,h.isVideoElement=xo,h.isWebgl2=So,h.lerp=bt,h.linear=$l,h.log2=Ss,h.mapWebGLBlendModes=Yo,h.nextPow2=Fs,h.nextTick=Is,h.parseCSSFilter=na,h.parseCSSTransform=oa,h.parseCSSTransformOrigin=aa,h.parseCssFunctions=gi,h.parseCssProperty=hi,h.render=aE,h.timingFunctions=Yr,h.uid=Co,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
1049
|
+
}`})),h.TwistTransition=tE([nt("TwistTransition")],h.TwistTransition);class au extends eA{install(t){const e=async A=>{const{decodeFrames:i}=await import("modern-gif");return await t.fetch(A).then(s=>s.arrayBuffer()).then(s=>i(s)).then(s=>new gr(s.map(n=>({duration:n.delay,texture:new Ms(n.data,n.width,n.height)}))))};return this.load=A=>t.loadBy(A,()=>e(A)),["image/gif"].forEach(A=>{t.register(A,e)}),t.gif=this,this}}class lu extends eA{install(t){const e=A=>t.fetch(A).then(i=>i.json());return this.load=A=>t.loadBy(A,()=>e(A)),["json"].forEach(A=>{t.register(A,e)}),t.json=this,this}}class uu extends eA{install(t){const e=async(A,i)=>(await import("lottie-web").then(n=>n.default)).loadAnimation({container:null,renderer:"canvas",rendererSettings:{context:i.getContext("2d")},loop:!1,autoplay:!1,animationData:await t.fetch(A).then(n=>n.json())});return this.load=(A,i)=>t.loadBy(A,()=>e(A,i)),["lottie"].forEach(A=>{t.register(A,e)}),t.lottie=this,this}}class cu extends eA{install(t){const e=async A=>await t.fetch(A).then(i=>i.text());return this.load=A=>t.loadBy(A,()=>e(A)),t.text=this,this}}class hu extends eA{install(t){const e=A=>t.fetchImageBitmap(A,{premultiplyAlpha:"premultiply"}).then(i=>new mt(i));return this.load=A=>t.loadBy(A,()=>e(A)),["image/gif","image/jpeg","image/png","image/tiff","image/vnd.wap.wbmp","image/x-icon","image/x-jng","image/x-ms-bmp","image/svg+xml","image/webp"].forEach(A=>{t.register(A,e)}),t.texture=this,this}}class gu extends eA{install(t){const e=A=>new ga(A).load();return this.load=A=>t.loadBy(A,()=>e(A)),["video/3gpp","video/mpeg","video/quicktime","video/x-flv","video/x-mng","video/x-ms-asf","video/x-ms-wmv","video/x-msvideo","video/mp4"].forEach(A=>{t.register(A,e)}),t.video=this,this}}const AE=Object.entries({"text/html":["html","htm","shtml"],"text/css":["css"],"text/xml":["xml"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls"],"application/vnd.ms-powerpoint":["ppt"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"]});function iE(r){for(const[t,e]of AE)if(e.includes(r))return t}async function rE(r){let t;if(r.startsWith("data:"))t=r.match(/^data:(.+?);/)?.[1];else if(r.startsWith("http")){const e=r.split(/[#?]/)[0].split(".").pop()?.trim();e&&(t=iE(e))}return t??await fetch(r).then(e=>e.headers.get("Content-Type"))??""}const qr="WeakRef"in globalThis;class fu{defaultHandler=t=>this.fetch(t);_handlers=new Map;_handleing=new Map;_handled=new Map;_gc=qr?new FinalizationRegistry(t=>{const e=this.get(t);e&&"free"in e&&e.free(),this._handled.delete(t)}):void 0;constructor(){qr||Kt.on(this.gc.bind(this),{sort:2})}use(t){return t.install(this),this}register(t,e){return this._handlers.set(t,e),this}fetch(t){return fetch(t)}_fixSVG(t){let e;t.includes(";base64,")?e=atob(t.split(",")[1]):e=decodeURIComponent(t.split(",")[1]);const A=new DOMParser().parseFromString(e,"image/svg+xml").documentElement,i=A.getAttribute("width"),s=A.getAttribute("height"),n=i&&/^[\d.]+$/.test(i),o=s&&/^[\d.]+$/.test(s);if(!n||!o){const a=A.getAttribute("viewBox")?.split(" ").map(l=>Number(l));n||A.setAttribute("width",String(a?a[2]-a[0]:512)),o||A.setAttribute("height",String(a?a[3]-a[1]:512))}return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(A.outerHTML)}`}async fetchImageBitmap(t,e){return t.startsWith("http")?await this.fetch(t).then(A=>A.blob()).then(A=>A.type==="image/svg+xml"?A.text().then(i=>this.fetchImageBitmap(this._fixSVG(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`),e)):createImageBitmap(A,e)):(t.startsWith("data:image/svg+xml;")&&(t=this._fixSVG(t)),new Promise(A=>{const i=new Image;i.src=t,i.onload=()=>{i.decode().finally(()=>{A(i)})}}).then(A=>createImageBitmap(A,e)))}get(t){let e=this._handled.get(t);return qr&&e instanceof WeakRef&&(e=e.deref(),e||this._handleing.delete(t)),e}set(t,e){let A=e;qr&&typeof e=="object"&&(this._gc.register(e,t),A=new WeakRef(e)),this._handled.set(t,A)}async loadBy(t,e){const A=this.get(t)??this._handleing.get(t);if(A)return A;const i=e().then(s=>(this.set(t,s),s)).finally(()=>{this._handleing.delete(t)});return this._handleing.set(t,i),i}async load(t,e){return this.loadBy(t,async()=>{const A=await rE(t);return(this._handlers.get(A)??this.defaultHandler)(t,e)})}async waitUntilLoad(){await Promise.all(Array.from(this._handleing.values()).map(t=>t.catch(e=>{console.error(e)})))}gc(){this._handled.forEach((t,e)=>{const A=this.get(e);A&&"free"in A&&A.free()}),this._handled.clear()}}const Ue=new fu().use(new ra).use(new au).use(new lu).use(new uu).use(new cu).use(new hu).use(new gu);class sE extends h.Control{_pointerStart;_pointerOffset;selected;dragging;hovered;hover=new h.Element2D({name:"hover",internalMode:"back",style:{visibility:"hidden",outlineStyle:"solid",outlineColor:"#00FF00FF",outlineWidth:2,pointerEvents:"none"}});transformRect=new Nn({name:"transformRect",internalMode:"back",style:{visibility:"hidden",pointerEvents:"none"}});scaler=new h.Scaler({internalMode:"back"}).on("updateScale",t=>{this.ruler.gapScale=t,this._updateScrollbars(),this._updateSelectionRect()});xScrollBar=new h.XScrollBar({internalMode:"back",style:{visibility:"hidden"}});yScrollBar=new h.YScrollBar({internalMode:"back",style:{visibility:"hidden"}});drawboard=new h.Element2D({name:"drawboard",style:{width:500,height:500,backgroundColor:"#FFFFFFFF",overflow:"hidden",pointerEvents:"none",boxShadow:"2px 2px 2px 1px rgba(0, 0, 0, 0.2)"}},[this.scaler]);ruler=new h.Ruler({name:"ruler",offsetX:100,offsetY:100,style:{pointerEvents:"none"}},[this.drawboard,this.hover,this.transformRect,this.xScrollBar,this.yScrollBar]);constructor(){super(),this._onPointerdown=this._onPointerdown.bind(this),this._onPointermove=this._onPointermove.bind(this),this._onPointerup=this._onPointerup.bind(this),this.append(this.ruler)}_updateStyleProperty(t,e,A,i){switch(super._updateStyleProperty(t,e,A,i),t){case"width":this.drawboard.style.left=(this.size.width-this.drawboard.size.width)/2,this.ruler.offsetX=this.drawboard.style.left;break;case"height":this.drawboard.style.top=(this.size.height-this.drawboard.size.height)/2,this.ruler.offsetY=this.drawboard.style.top;break}}_guiInput(t,e){switch(super._guiInput(t,e),e){case"pointerdown":this._onPointerdown(t);break;case"pointermove":this._onPointermove(t);break;case"pointerup":this._onPointerup();break}}_onPointerdown(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected),this._pointerOffset={x:t.offsetX,y:t.offsetY},this.selected=e,this.dragging=e,e instanceof h.Element2D?this._pointerStart=e.style.clone():this._pointerStart=void 0,this._updateHover(),this._updateSelectionRect()}_onPointermove(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected);const{selected:A,dragging:i,_pointerStart:s,_pointerOffset:n}=this;A&&e?.is(A)?this.hovered=void 0:this.hovered=e;const o=n?{x:t.offsetX-n.x,y:t.offsetY-n.y}:{x:0,y:0};i&&s&&(i.style.left=s.left+o.x/this.scaler.value,i.style.top=s.top+o.y/this.scaler.value,i.update()),this._updateHover(),this._updateSelectionRect()}_onPointerup(){this.dragging=void 0,this._updateHover(),this._updateSelectionRect()}_copyGlobalTransform(t,e){t.style.visibility="visible",t.style.width=e.globalScale.x*e.size.x,t.style.height=e.globalScale.y*e.size.y,t.style.left=e.globalPosition.x,t.style.top=e.globalPosition.y,t.style.rotate=e.globalRotation,t.update()}_updateHover(){const t=this.hovered;t instanceof h.Element2D?(this.hover.style.visibility="visible",this._copyGlobalTransform(this.hover,t),this.hover.requestRedraw()):this.hover.style.visibility="hidden"}_updateSelectionRect(){this.selected?(this.transformRect.style.visibility="visible",this._copyGlobalTransform(this.transformRect,this.selected)):this.transformRect.style.visibility="hidden"}_updateScrollbars(){const t=this.ruler.gapScale,e=this.drawboard.size.height*t,A=this.drawboard.size.width*t;e>this.size.height?(this.yScrollBar.style.visibility="visible",this.yScrollBar.maxValue=e,this.yScrollBar.page=this.size.height):this.yScrollBar.style.visibility="hidden",A>this.size.width?(this.xScrollBar.style.visibility="visible",this.xScrollBar.maxValue=A,this.xScrollBar.page=this.size.width):this.xScrollBar.style.visibility="hidden"}}const du={alpha:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};class Iu extends Fi{renderer;get view(){return this.renderer.view}get gl(){return this.renderer.gl}get screen(){return this.renderer.screen}get width(){return this.screen.width}get height(){return this.screen.height}get pixelRatio(){return this.renderer.pixelRatio}set pixelRatio(t){this.renderer.pixelRatio=t,this.resize(this.width,this.height),this.view&&(this.view.dataset.pixelRatio=String(t))}_resizeObserver=mo?new ResizeObserver(t=>{const e=t[0];if(e.target===this.view){const{inlineSize:A,blockSize:i}=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize;this.resize(A,i)}}):void 0;constructor(t={}){const{debug:e=!1,view:A,width:i,height:s,pixelRatio:n=Ds,backgroundColor:o=0,autoResize:a,autoStart:l,timeline:u,...c}=t;super(u),this.debug=e,this.renderer=new ia(A,{...du,...c}),this._setupInput(),this.pixelRatio=n,this.backgroundColor=o,a?(!A&&this.renderer.view&&(this.renderer.view.style.width="100%",this.renderer.view.style.height="100%"),this.enableAutoResize(a)):this.resize(i||this.gl.drawingBufferWidth||this.view?.clientWidth||200,s||this.gl.drawingBufferHeight||this.view?.clientHeight||200,!A),l&&this.start()}_setupInput(){return this.view&&(this.input.setTarget(this.view),["pointerdown","pointerover","pointermove","pointerup","wheel"].forEach(t=>{this.input.on(t,e=>{this.root.input(e,t),this.emit(t,e)})})),this}enableAutoResize(t=!0){return this.view&&(t?this._resizeObserver?.observe(this.view):this._resizeObserver?.unobserve(this.view)),this}resize(t,e,A=!1){return this.renderer.resize(t,e,A),this.root.width=t,this.root.height=e,this.root.requestUpload(),this.render(),this}nextTick(){return Is()}async waitUntilLoad(){await Ue.waitUntilLoad(),await this.nextTick()}async waitAndRender(t=0){await Ue.waitUntilLoad(),this._process(t),await this.nextTick(),this._render(this.renderer)}render(t=0){this._process(t),this._render(this.renderer)}async start(){await this.waitAndRender(),super.start(t=>{this._process(t),this._render(this.renderer)})}free(){super.free(),this.enableAutoResize(!1),this.renderer.free()}toPixels(){return this.renderer.toPixels()}toImageData(){return new ImageData(this.toPixels(),this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}toCanvas2D(){const t=this.toImageData(),e=document.createElement("canvas");e.width=t.width,e.height=t.height,e.getContext("2d")?.putImageData(t,0,0);const A=document.createElement("canvas");return A.width=this.width,A.height=this.height,A.getContext("2d")?.drawImage(e,0,0,e.width,e.height,0,0,A.width,A.height),A}}let Ne;const Ln=[];let Gn=!1;async function nE(r=100){if(!Gn){for(Gn=!0;Ln.length;){const t=Ln.shift();if(t)try{await t()}catch(e){console.error(e)}else await new Promise(e=>setTimeout(e,r))}Gn=!1}}async function oE(r){const{data:t,width:e,height:A,debug:i=!1,time:s=0}=r;return Ne??=new Iu({width:1,height:1,preserveDrawingBuffer:!0}),Ne.debug=i,Ne.root.removeChildren(),Ne.timeline.currentTime=s,Ne.resize(e,A,!0),(Array.isArray(t)?t:[t]).forEach(n=>{n instanceof h.Node?(n.parent=void 0,Ne.root.appendChild(n)):Ne.root.appendChild(h.Node.parse(n))}),await r.onBeforeRender?.(Ne),await Ne.waitAndRender(),Ne.toCanvas2D()}async function aE(r){return new Promise(t=>{Ln.push(async()=>t(await oE(r))),nE()})}h.AnimatedTexture=gr,h.Assets=fu,h.AudioPipeline=Tn,h.AudioProcessor=cp,h.AudioSpectrum=Bp,h.BaseElement2DBackground=$s,h.BaseElement2DFill=Vt,h.BaseElement2DForeground=tn,h.BaseElement2DOutline=Mi,h.BaseElement2DShadow=DA,h.BaseElement2DShape=mA,h.BaseElement2DStyle=ki,h.BaseElement2DText=FA,h.CanvasContext=Wa,h.CanvasItemEditor=sE,h.CanvasTexture=pi,h.Color=Je,h.ColorMatrix=_s,h.ColorTexture=ca,h.CoreObject=tA,h.DEG_TO_RAD=Go,h.DEVICE_PIXEL_RATIO=Ds,h.EffectMaterial=di,h.Element2DStyle=kn,h.Engine=Iu,h.FlexElement2DStyle=Hl,h.FlexLayout=Jr,h.FontLoader=ra,h.GIFLoader=au,h.Geometry=hr,h.GradientTexture=fr,h.HTMLAudio=ru,h.HTMLAudioContext=Vr,h.HTMLSound=Zi,h.IN_BROWSER=fi,h.ImageTexture=sh,h.IndexBuffer=UA,h.Input=No,h.InputEvent=ur,h.JSONLoader=lu,h.Loader=eA,h.LottieLoader=uu,h.MainLoop=cr,h.Material=Ct,h.Matrix=ve,h.Matrix2=Hc,h.Matrix3=bs,h.Matrix4=Lo,h.MouseInputEvent=vs,h.PI=lr,h.PI_2=oe,h.PixelsTexture=Ms,h.PointerInputEvent=ko,h.Projection2D=Ho,h.QuadGeometry=Xc,h.QuadUvGeometry=gt,h.RAD_TO_DEG=Gc,h.RawWeakMap=ws,h.Rect2=xs,h.RefCounted=To,h.Renderer=Ko,h.Resource=He,h.SUPPORTS_AUDIO_CONTEXT=Cs,h.SUPPORTS_CLICK_EVENTS=vo,h.SUPPORTS_CREATE_IMAGE_BITMAP=Bs,h.SUPPORTS_IMAGE_BITMAP=Do,h.SUPPORTS_MOUSE_EVENTS=kc,h.SUPPORTS_OFFLINE_AUDIO_CONTEXT=ys,h.SUPPORTS_POINTER_EVENTS=PA,h.SUPPORTS_RESIZE_OBSERVER=mo,h.SUPPORTS_TOUCH_EVENTS=Oe,h.SUPPORTS_WEBGL2=yo,h.SUPPORTS_WEBKIT_AUDIO_CONTEXT=Qs,h.SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT=_o,h.SUPPORTS_WEB_AUDIO=bo,h.SUPPORTS_WHEEL_EVENTS=wo,h.SceneTree=Fi,h.TextLoader=cu,h.Texture2D=mt,h.TextureLoader=hu,h.TextureRect2D=Kr,h.Ticker=Kt,h.Transform2D=Yt,h.TransformRect2D=Nn,h.UvGeometry=th,h.UvMaterial=Ii,h.Vector=Ee,h.Vector2=ae,h.Vector3=Jc,h.Vector4=Oo,h.VertexAttribute=le,h.VertexBuffer=Ye,h.VideoLoader=gu,h.VideoTexture=ga,h.ViewportTexture=Ps,h.WebAudio=nu,h.WebAudioContext=gA,h.WebGLBatch2DModule=zo,h.WebGLBlendMode=kA,h.WebGLBufferModule=Wo,h.WebGLFramebufferModule=qo,h.WebGLMaskModule=Xo,h.WebGLModule=de,h.WebGLProgramModule=jo,h.WebGLRenderer=ia,h.WebGLScissorModule=Zo,h.WebGLState=BA,h.WebGLStateModule=Vo,h.WebGLStencilModule=$o,h.WebGLTextureModule=ta,h.WebGLVertexArrayModule=ea,h.WebGLViewportModule=Aa,h.WebSound=su,h.WheelInputEvent=Uo,h.assets=Ue,h.clamp=Ke,h.clampFrag=rl,h.createHTMLCanvas=Mo,h.createNode=xc,h.crossOrigin=Po,h.cubicBezier=si,h.curves=Oc,h.customNode=nt,h.customNodes=ar,h.defaultOptions=du,h.determineCrossOrigin=Ro,h.ease=tu,h.easeIn=eu,h.easeInOut=iu,h.easeOut=Au,h.frag=il,h.getDefaultCssPropertyValue=Es,h.isCanvasElement=Fo,h.isElementNode=ms,h.isImageElement=Uc,h.isPow2=ps,h.isVideoElement=xo,h.isWebgl2=So,h.lerp=bt,h.linear=$l,h.log2=Ss,h.mapWebGLBlendModes=Yo,h.nextPow2=Fs,h.nextTick=Is,h.parseCSSFilter=na,h.parseCSSTransform=oa,h.parseCSSTransformOrigin=aa,h.parseCssFunctions=gi,h.parseCssProperty=hi,h.render=aE,h.timingFunctions=Yr,h.uid=Co,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|