canvasengine 2.0.0-beta.42 → 2.0.0-beta.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/{DebugRenderer-BosXI2Pd.js → DebugRenderer-K2IZBznP.js} +2 -2
  2. package/dist/{DebugRenderer-BosXI2Pd.js.map → DebugRenderer-K2IZBznP.js.map} +1 -1
  3. package/dist/components/Button.d.ts +3 -0
  4. package/dist/components/Button.d.ts.map +1 -1
  5. package/dist/components/DOMElement.d.ts.map +1 -1
  6. package/dist/components/Graphic.d.ts +1 -1
  7. package/dist/components/Graphic.d.ts.map +1 -1
  8. package/dist/components/index.d.ts +1 -0
  9. package/dist/components/index.d.ts.map +1 -1
  10. package/dist/components/types/DisplayObject.d.ts +12 -16
  11. package/dist/components/types/DisplayObject.d.ts.map +1 -1
  12. package/dist/directives/FocusNavigation.d.ts +71 -0
  13. package/dist/directives/FocusNavigation.d.ts.map +1 -0
  14. package/dist/directives/KeyboardControls.d.ts.map +1 -1
  15. package/dist/directives/ViewportFollow.d.ts.map +1 -1
  16. package/dist/engine/FocusManager.d.ts +174 -0
  17. package/dist/engine/FocusManager.d.ts.map +1 -0
  18. package/dist/engine/reactive.d.ts.map +1 -1
  19. package/dist/hooks/useFocus.d.ts +61 -0
  20. package/dist/hooks/useFocus.d.ts.map +1 -0
  21. package/dist/{index-DNwqVzaq.js → index-B4hYyfVE.js} +5469 -4676
  22. package/dist/index-B4hYyfVE.js.map +1 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.global.js +7 -7
  26. package/dist/index.global.js.map +1 -1
  27. package/dist/index.js +66 -60
  28. package/package.json +2 -2
  29. package/src/components/Button.ts +7 -4
  30. package/src/components/Canvas.ts +1 -1
  31. package/src/components/DOMContainer.ts +27 -2
  32. package/src/components/DOMElement.ts +37 -29
  33. package/src/components/DisplayObject.ts +15 -3
  34. package/src/components/FocusContainer.ts +372 -0
  35. package/src/components/Graphic.ts +43 -48
  36. package/src/components/Sprite.ts +4 -2
  37. package/src/components/Viewport.ts +65 -26
  38. package/src/components/index.ts +2 -1
  39. package/src/components/types/DisplayObject.ts +7 -4
  40. package/src/directives/Controls.ts +1 -1
  41. package/src/directives/ControlsBase.ts +1 -1
  42. package/src/directives/FocusNavigation.ts +252 -0
  43. package/src/directives/KeyboardControls.ts +12 -8
  44. package/src/directives/ViewportFollow.ts +8 -5
  45. package/src/engine/FocusManager.ts +495 -0
  46. package/src/engine/reactive.ts +20 -19
  47. package/src/hooks/useFocus.ts +94 -0
  48. package/src/index.ts +2 -0
  49. package/dist/index-DNwqVzaq.js.map +0 -1
@@ -1,6 +1,6 @@
1
- var CanvasEngine=function(x,v){"use strict";var rc=Object.defineProperty;var gr=x=>{throw TypeError(x)};var ac=(x,v,it)=>v in x?rc(x,v,{enumerable:!0,configurable:!0,writable:!0,value:it}):x[v]=it;var xn=(x,v,it)=>ac(x,typeof v!="symbol"?v+"":v,it),hr=(x,v,it)=>v.has(x)||gr("Cannot "+it);var It=(x,v,it)=>(hr(x,v,"read from private field"),it?it.call(x):v.get(x)),ae=(x,v,it)=>v.has(x)?gr("Cannot add the same private member more than once"):v instanceof WeakSet?v.add(x):v.set(x,it),jt=(x,v,it,ge)=>(hr(x,v,"write to private field"),ge?ge.call(x,it):v.set(x,it),it);var kA,MA;var it=typeof document<"u"?document.currentScript:null;function ge(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const A in e)if(A!=="default"){const i=Object.getOwnPropertyDescriptor(e,A);Object.defineProperty(t,A,i.get?i:{enumerable:!0,get:()=>e[A]})}}return t.default=e,Object.freeze(t)}function lr(e,t){for(var A=0;A<t.length;A++){const i=t[A];if(typeof i!="string"&&!Array.isArray(i)){for(const n in i)if(n!=="default"&&!(n in e)){const s=Object.getOwnPropertyDescriptor(i,n);s&&Object.defineProperty(e,n,s.get?s:{enumerable:!0,get:()=>i[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const cr=ge(v);var Ve=function(e,t){return Ve=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,i){A.__proto__=i}||function(A,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(A[n]=i[n])},Ve(e,t)};function hA(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Ve(e,t);function A(){this.constructor=e}e.prototype=t===null?Object.create(t):(A.prototype=t.prototype,new A)}function Ir(e,t,A,i){function n(s){return s instanceof A?s:new A(function(a){a(s)})}return new(A||(A=Promise))(function(s,a){function g(I){try{l(i.next(I))}catch(o){a(o)}}function r(I){try{l(i.throw(I))}catch(o){a(o)}}function l(I){I.done?s(I.value):n(I.value).then(g,r)}l((i=i.apply(e,t||[])).next())})}function kn(e,t){var A={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=g(0),a.throw=g(1),a.return=g(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function g(l){return function(I){return r([l,I])}}function r(l){if(i)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(A=0)),A;)try{if(i=1,n&&(s=l[0]&2?n.return:l[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,l[1])).done)return s;switch(n=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return A.label++,{value:l[1],done:!1};case 5:A.label++,n=l[1],l=[0];continue;case 7:l=A.ops.pop(),A.trys.pop();continue;default:if(s=A.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){A=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){A.label=l[1];break}if(l[0]===6&&A.label<s[1]){A.label=s[1],s=l;break}if(s&&A.label<s[2]){A.label=s[2],A.ops.push(l);break}s[2]&&A.ops.pop(),A.trys.pop();continue}l=t.call(e,A)}catch(I){l=[6,I],n=0}finally{i=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function lA(e){var t=typeof Symbol=="function"&&Symbol.iterator,A=t&&e[t],i=0;if(A)return A.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function NA(e,t){var A=typeof Symbol=="function"&&e[Symbol.iterator];if(!A)return e;var i=A.call(e),n,s=[],a;try{for(;(t===void 0||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(g){a={error:g}}finally{try{n&&!n.done&&(A=i.return)&&A.call(i)}finally{if(a)throw a.error}}return s}function HA(e,t,A){if(A||arguments.length===2)for(var i=0,n=t.length,s;i<n;i++)(s||!(i in t))&&(s||(s=Array.prototype.slice.call(t,0,i)),s[i]=t[i]);return e.concat(s||Array.prototype.slice.call(t))}function cA(e){return this instanceof cA?(this.v=e,this):new cA(e)}function ur(e,t,A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=A.apply(e,t||[]),n,s=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),g("next"),g("throw"),g("return",a),n[Symbol.asyncIterator]=function(){return this},n;function a(c){return function(E){return Promise.resolve(E).then(c,o)}}function g(c,E){i[c]&&(n[c]=function(f){return new Promise(function(Q,C){s.push([c,f,Q,C])>1||r(c,f)})},E&&(n[c]=E(n[c])))}function r(c,E){try{l(i[c](E))}catch(f){h(s[0][3],f)}}function l(c){c.value instanceof cA?Promise.resolve(c.value.v).then(I,o):h(s[0][2],c)}function I(c){r("next",c)}function o(c){r("throw",c)}function h(c,E){c(E),s.shift(),s.length&&r(s[0][0],s[0][1])}}function Br(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],A;return t?t.call(e):(e=typeof lA=="function"?lA(e):e[Symbol.iterator](),A={},i("next"),i("throw"),i("return"),A[Symbol.asyncIterator]=function(){return this},A);function i(s){A[s]=e[s]&&function(a){return new Promise(function(g,r){a=e[s](a),n(g,r,a.done,a.value)})}}function n(s,a,g,r){Promise.resolve(r).then(function(l){s({value:l,done:g})},a)}}typeof SuppressedError=="function"&&SuppressedError;function $(e){return typeof e=="function"}function Mn(e){var t=function(i){Error.call(i),i.stack=new Error().stack},A=e(t);return A.prototype=Object.create(Error.prototype),A.prototype.constructor=A,A}var qe=Mn(function(e){return function(A){e(this),this.message=A?A.length+` errors occurred during unsubscription:
2
- `+A.map(function(i,n){return n+1+") "+i.toString()}).join(`
3
- `):"",this.name="UnsubscriptionError",this.errors=A}});function Xe(e,t){if(e){var A=e.indexOf(t);0<=A&&e.splice(A,1)}}var he=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,A,i,n,s;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var g=lA(a),r=g.next();!r.done;r=g.next()){var l=r.value;l.remove(this)}}catch(f){t={error:f}}finally{try{r&&!r.done&&(A=g.return)&&A.call(g)}finally{if(t)throw t.error}}else a.remove(this);var I=this.initialTeardown;if($(I))try{I()}catch(f){s=f instanceof qe?f.errors:[f]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var h=lA(o),c=h.next();!c.done;c=h.next()){var E=c.value;try{Fn(E)}catch(f){s=s??[],f instanceof qe?s=HA(HA([],NA(s)),NA(f.errors)):s.push(f)}}}catch(f){i={error:f}}finally{try{c&&!c.done&&(n=h.return)&&n.call(h)}finally{if(i)throw i.error}}}if(s)throw new qe(s)}},e.prototype.add=function(t){var A;if(t&&t!==this)if(this.closed)Fn(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(A=this._finalizers)!==null&&A!==void 0?A:[]).push(t)}},e.prototype._hasParent=function(t){var A=this._parentage;return A===t||Array.isArray(A)&&A.includes(t)},e.prototype._addParent=function(t){var A=this._parentage;this._parentage=Array.isArray(A)?(A.push(t),A):A?[A,t]:t},e.prototype._removeParent=function(t){var A=this._parentage;A===t?this._parentage=null:Array.isArray(A)&&Xe(A,t)},e.prototype.remove=function(t){var A=this._finalizers;A&&Xe(A,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),Rn=he.EMPTY;function _n(e){return e instanceof he||e&&"closed"in e&&$(e.remove)&&$(e.add)&&$(e.unsubscribe)}function Fn(e){$(e)?e():e.unsubscribe()}var Er={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Gn={setTimeout:function(e,t){for(var A=[],i=2;i<arguments.length;i++)A[i-2]=arguments[i];return setTimeout.apply(void 0,HA([e,t],NA(A)))},clearTimeout:function(e){var t=Gn.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function Nn(e){Gn.setTimeout(function(){throw e})}function Hn(){}function le(e){e()}var Ze=function(e){hA(t,e);function t(A){var i=e.call(this)||this;return i.isStopped=!1,A?(i.destination=A,_n(A)&&A.add(i)):i.destination=Qr,i}return t.create=function(A,i,n){return new LA(A,i,n)},t.prototype.next=function(A){this.isStopped||this._next(A)},t.prototype.error=function(A){this.isStopped||(this.isStopped=!0,this._error(A))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(A){this.destination.next(A)},t.prototype._error=function(A){try{this.destination.error(A)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(he),fr=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var A=this.partialObserver;if(A.next)try{A.next(t)}catch(i){ce(i)}},e.prototype.error=function(t){var A=this.partialObserver;if(A.error)try{A.error(t)}catch(i){ce(i)}else ce(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(A){ce(A)}},e}(),LA=function(e){hA(t,e);function t(A,i,n){var s=e.call(this)||this,a;return $(A)||!A?a={next:A??void 0,error:i??void 0,complete:n??void 0}:a=A,s.destination=new fr(a),s}return t}(Ze);function ce(e){Nn(e)}function Cr(e){throw e}var Qr={closed:!0,next:Hn,error:Cr,complete:Hn},ze=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function $e(e){return e}function dr(e){return e.length===0?$e:e.length===1?e[0]:function(A){return e.reduce(function(i,n){return n(i)},A)}}var X=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var A=new e;return A.source=this,A.operator=t,A},e.prototype.subscribe=function(t,A,i){var n=this,s=yr(t)?t:new LA(t,A,i);return le(function(){var a=n,g=a.operator,r=a.source;s.add(g?g.call(s,r):r?n._subscribe(s):n._trySubscribe(s))}),s},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(A){t.error(A)}},e.prototype.forEach=function(t,A){var i=this;return A=Ln(A),new A(function(n,s){var a=new LA({next:function(g){try{t(g)}catch(r){s(r),a.unsubscribe()}},error:s,complete:n});i.subscribe(a)})},e.prototype._subscribe=function(t){var A;return(A=this.source)===null||A===void 0?void 0:A.subscribe(t)},e.prototype[ze]=function(){return this},e.prototype.pipe=function(){for(var t=[],A=0;A<arguments.length;A++)t[A]=arguments[A];return dr(t)(this)},e.prototype.toPromise=function(t){var A=this;return t=Ln(t),new t(function(i,n){var s;A.subscribe(function(a){return s=a},function(a){return n(a)},function(){return i(s)})})},e.create=function(t){return new e(t)},e}();function Ln(e){var t;return(t=e??Er.Promise)!==null&&t!==void 0?t:Promise}function pr(e){return e&&$(e.next)&&$(e.error)&&$(e.complete)}function yr(e){return e&&e instanceof Ze||pr(e)&&_n(e)}function wr(e){return $(e==null?void 0:e.lift)}function IA(e){return function(t){if(wr(t))return t.lift(function(A){try{return e(A,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Ie(e,t,A,i,n){return new mr(e,t,A,i,n)}var mr=function(e){hA(t,e);function t(A,i,n,s,a,g){var r=e.call(this,A)||this;return r.onFinalize=a,r.shouldUnsubscribe=g,r._next=i?function(l){try{i(l)}catch(I){A.error(I)}}:e.prototype._next,r._error=s?function(l){try{s(l)}catch(I){A.error(I)}finally{this.unsubscribe()}}:e.prototype._error,r._complete=n?function(){try{n()}catch(l){A.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,r}return t.prototype.unsubscribe=function(){var A;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;e.prototype.unsubscribe.call(this),!i&&((A=this.onFinalize)===null||A===void 0||A.call(this))}},t}(Ze),Dr=Mn(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),uA=function(e){hA(t,e);function t(){var A=e.call(this)||this;return A.closed=!1,A.currentObservers=null,A.observers=[],A.isStopped=!1,A.hasError=!1,A.thrownError=null,A}return t.prototype.lift=function(A){var i=new Un(this,this);return i.operator=A,i},t.prototype._throwIfClosed=function(){if(this.closed)throw new Dr},t.prototype.next=function(A){var i=this;le(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var a=lA(i.currentObservers),g=a.next();!g.done;g=a.next()){var r=g.value;r.next(A)}}catch(l){n={error:l}}finally{try{g&&!g.done&&(s=a.return)&&s.call(a)}finally{if(n)throw n.error}}}})},t.prototype.error=function(A){var i=this;le(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=A;for(var n=i.observers;n.length;)n.shift().error(A)}})},t.prototype.complete=function(){var A=this;le(function(){if(A._throwIfClosed(),!A.isStopped){A.isStopped=!0;for(var i=A.observers;i.length;)i.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var A;return((A=this.observers)===null||A===void 0?void 0:A.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(A){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,A)},t.prototype._subscribe=function(A){return this._throwIfClosed(),this._checkFinalizedStatuses(A),this._innerSubscribe(A)},t.prototype._innerSubscribe=function(A){var i=this,n=this,s=n.hasError,a=n.isStopped,g=n.observers;return s||a?Rn:(this.currentObservers=null,g.push(A),new he(function(){i.currentObservers=null,Xe(g,A)}))},t.prototype._checkFinalizedStatuses=function(A){var i=this,n=i.hasError,s=i.thrownError,a=i.isStopped;n?A.error(s):a&&A.complete()},t.prototype.asObservable=function(){var A=new X;return A.source=this,A},t.create=function(A,i){return new Un(A,i)},t}(X),Un=function(e){hA(t,e);function t(A,i){var n=e.call(this)||this;return n.destination=A,n.source=i,n}return t.prototype.next=function(A){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,A)},t.prototype.error=function(A){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,A)},t.prototype.complete=function(){var A,i;(i=(A=this.destination)===null||A===void 0?void 0:A.complete)===null||i===void 0||i.call(A)},t.prototype._subscribe=function(A){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(A))!==null&&n!==void 0?n:Rn},t}(uA),AA=function(e){hA(t,e);function t(A){var i=e.call(this)||this;return i._value=A,i}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(A){var i=e.prototype._subscribe.call(this,A);return!i.closed&&A.next(this._value),i},t.prototype.getValue=function(){var A=this,i=A.hasError,n=A.thrownError,s=A._value;if(i)throw n;return this._throwIfClosed(),s},t.prototype.next=function(A){e.prototype.next.call(this,this._value=A)},t}(uA);function vr(e){return e&&$(e.schedule)}function On(e){return e[e.length-1]}function Sr(e){return $(On(e))?e.pop():void 0}function br(e){return vr(On(e))?e.pop():void 0}var Tn=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Jn(e){return $(e==null?void 0:e.then)}function Pn(e){return $(e[ze])}function Kn(e){return Symbol.asyncIterator&&$(e==null?void 0:e[Symbol.asyncIterator])}function Yn(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function xr(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Wn=xr();function jn(e){return $(e==null?void 0:e[Wn])}function Vn(e){return ur(this,arguments,function(){var A,i,n,s;return kn(this,function(a){switch(a.label){case 0:A=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,cA(A.read())];case 3:return i=a.sent(),n=i.value,s=i.done,s?[4,cA(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,cA(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return A.releaseLock(),[7];case 10:return[2]}})})}function qn(e){return $(e==null?void 0:e.getReader)}function BA(e){if(e instanceof X)return e;if(e!=null){if(Pn(e))return kr(e);if(Tn(e))return Mr(e);if(Jn(e))return Rr(e);if(Kn(e))return Xn(e);if(jn(e))return _r(e);if(qn(e))return Fr(e)}throw Yn(e)}function kr(e){return new X(function(t){var A=e[ze]();if($(A.subscribe))return A.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Mr(e){return new X(function(t){for(var A=0;A<e.length&&!t.closed;A++)t.next(e[A]);t.complete()})}function Rr(e){return new X(function(t){e.then(function(A){t.closed||(t.next(A),t.complete())},function(A){return t.error(A)}).then(null,Nn)})}function _r(e){return new X(function(t){var A,i;try{for(var n=lA(e),s=n.next();!s.done;s=n.next()){var a=s.value;if(t.next(a),t.closed)return}}catch(g){A={error:g}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(A)throw A.error}}t.complete()})}function Xn(e){return new X(function(t){Gr(e,t).catch(function(A){return t.error(A)})})}function Fr(e){return Xn(Vn(e))}function Gr(e,t){var A,i,n,s;return Ir(this,void 0,void 0,function(){var a,g;return kn(this,function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),A=Br(e),r.label=1;case 1:return[4,A.next()];case 2:if(i=r.sent(),!!i.done)return[3,4];if(a=i.value,t.next(a),t.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return g=r.sent(),n={error:g},[3,11];case 6:return r.trys.push([6,,9,10]),i&&!i.done&&(s=A.return)?[4,s.call(A)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Vt(e,t,A,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=t.schedule(function(){A(),n?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(s),!n)return s}function Zn(e,t){return t===void 0&&(t=0),IA(function(A,i){A.subscribe(Ie(i,function(n){return Vt(i,e,function(){return i.next(n)},t)},function(){return Vt(i,e,function(){return i.complete()},t)},function(n){return Vt(i,e,function(){return i.error(n)},t)}))})}function zn(e,t){return t===void 0&&(t=0),IA(function(A,i){i.add(e.schedule(function(){return A.subscribe(i)},t))})}function Nr(e,t){return BA(e).pipe(zn(t),Zn(t))}function Hr(e,t){return BA(e).pipe(zn(t),Zn(t))}function Lr(e,t){return new X(function(A){var i=0;return t.schedule(function(){i===e.length?A.complete():(A.next(e[i++]),A.closed||this.schedule())})})}function Ur(e,t){return new X(function(A){var i;return Vt(A,t,function(){i=e[Wn](),Vt(A,t,function(){var n,s,a;try{n=i.next(),s=n.value,a=n.done}catch(g){A.error(g);return}a?A.complete():A.next(s)},0,!0)}),function(){return $(i==null?void 0:i.return)&&i.return()}})}function $n(e,t){if(!e)throw new Error("Iterable cannot be null");return new X(function(A){Vt(A,t,function(){var i=e[Symbol.asyncIterator]();Vt(A,t,function(){i.next().then(function(n){n.done?A.complete():A.next(n.value)})},0,!0)})})}function Or(e,t){return $n(Vn(e),t)}function Tr(e,t){if(e!=null){if(Pn(e))return Nr(e,t);if(Tn(e))return Lr(e,t);if(Jn(e))return Hr(e,t);if(Kn(e))return $n(e,t);if(jn(e))return Ur(e,t);if(qn(e))return Or(e,t)}throw Yn(e)}function ue(e,t){return t?Tr(e,t):BA(e)}function Jr(e){return!!e&&(e instanceof X||$(e.lift)&&$(e.subscribe))}function ti(e,t){return IA(function(A,i){var n=0;A.subscribe(Ie(i,function(s){i.next(e.call(t,s,n++))}))})}var Pr=Array.isArray;function Kr(e,t){return Pr(t)?e.apply(void 0,HA([],NA(t))):e(t)}function Yr(e){return ti(function(t){return Kr(e,t)})}var Wr=Array.isArray,jr=Object.getPrototypeOf,Vr=Object.prototype,qr=Object.keys;function Xr(e){if(e.length===1){var t=e[0];if(Wr(t))return{args:t,keys:null};if(Zr(t)){var A=qr(t);return{args:A.map(function(i){return t[i]}),keys:A}}}return{args:e,keys:null}}function Zr(e){return e&&typeof e=="object"&&jr(e)===Vr}function zr(e,t){return e.reduce(function(A,i,n){return A[i]=t[n],A},{})}function Ai(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var A=br(e),i=Sr(e),n=Xr(e),s=n.args,a=n.keys;if(s.length===0)return ue([],A);var g=new X($r(s,A,a?function(r){return zr(a,r)}:$e));return i?g.pipe(Yr(i)):g}function $r(e,t,A){return A===void 0&&(A=$e),function(i){ts(t,function(){for(var n=e.length,s=new Array(n),a=n,g=n,r=function(I){ts(t,function(){var o=ue(e[I],t),h=!1;o.subscribe(Ie(i,function(c){s[I]=c,h||(h=!0,g--),g||i.next(A(s.slice()))},function(){--a||i.complete()}))},i)},l=0;l<n;l++)r(l)},i)}}function ts(e,t,A){e?Vt(A,e,t):t()}function ta(e){return new X(function(t){BA(e()).subscribe(t)})}function UA(e,t){return IA(function(A,i){var n=0;A.subscribe(Ie(i,function(s){return e.call(t,s,n++)&&i.next(s)}))})}function Aa(e){return IA(function(t,A){try{t.subscribe(A)}finally{A.add(e)}})}function ea(e){e===void 0&&(e={});var t=e.connector,A=t===void 0?function(){return new uA}:t,i=e.resetOnError,n=i===void 0?!0:i,s=e.resetOnComplete,a=s===void 0?!0:s,g=e.resetOnRefCountZero,r=g===void 0?!0:g;return function(l){var I,o,h,c=0,E=!1,f=!1,Q=function(){o==null||o.unsubscribe(),o=void 0},C=function(){Q(),I=h=void 0,E=f=!1},p=function(){var D=I;C(),D==null||D.unsubscribe()};return IA(function(D,w){c++,!f&&!E&&Q();var S=h=h??A();w.add(function(){c--,c===0&&!f&&!E&&(o=ei(p,r))}),S.subscribe(w),!I&&c>0&&(I=new LA({next:function(_){return S.next(_)},error:function(_){f=!0,Q(),o=ei(C,n,_),S.error(_)},complete:function(){E=!0,Q(),o=ei(C,a),S.complete()}}),BA(D).subscribe(I))})(l)}}function ei(e,t){for(var A=[],i=2;i<arguments.length;i++)A[i-2]=arguments[i];if(t===!0){e();return}if(t!==!1){var n=new LA({next:function(){n.unsubscribe(),e()}});return BA(t.apply(void 0,HA([],NA(A)))).subscribe(n)}}function As(){return typeof window<"u"}function EA(){return typeof performance<"u"?performance.now():Date.now()}function OA(e){return 1e3/e}function eA(e){return e&&e instanceof Promise}function Be(e,t){if(e.length!==t.length)return!1;for(let A=0;A<e.length;A++){const i=e[A],n=t[A];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!Be(i,n))return!1}else if(!es(i,n))return!1}else if(i!==n)return!1}return!0}function es(e,t){const A=Object.keys(e),i=Object.keys(t);if(A.length!==i.length)return!1;for(let n of A)if(!t.hasOwnProperty(n)||!ia(e[n],t[n]))return!1;return!0}function ia(e,t){return e===t?!0:typeof e!=typeof t?!1:typeof e=="object"&&e!==null?Array.isArray(e)?Array.isArray(t)&&Be(e,t):es(e,t):!1}function is(e){return{}.toString.call(e)==="[object Function]"}function Ee(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)&&e.constructor===Object}function ns(e){return e instanceof X}function ii(e,t,A,i=!1){if(Object(e)!==e)return e;typeof t=="string"&&(t=t.split("."));let n=t.length;if(!n)return e;let s=e;for(let a=0;a<n-1;a++){let g=t[a],r=t[a+1],l=!isNaN(Number(r))&&isFinite(Number(r));(!s[g]||typeof s[g]!="object")&&(s[g]=l&&!i?[]:{}),s=s[g]}return s[t[n-1]]=A,e}function na(e,t){const A=t.split(".");let i=e;for(let n of A){if(i[n]===void 0)return;i=i[n]}return i}function sa(e){console.log(e)}function ni(e){console.error(e)}function fA(e,t){typeof t=="number"?e.set(t):Array.isArray(t)?e.set(t[0],t[1]):Ee(t)&&"value"in t?e.set(t.value.x,t.value.y):e.set(t.x,t.y)}function ss(e,t,A,i){const n=e-A,s=t-i;return Math.sqrt(n*n+s*s)}const oa=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:Be,calculateDistance:ss,error:ni,fps2ms:OA,get:na,isBrowser:As,isFunction:is,isObject:Ee,isObservable:ns,isPromise:eA,log:sa,preciseNow:EA,set:ii,setObservablePoint:fA},Symbol.toStringTag,{value:"Module"}));class fe{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},OA(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(t,A,i,n){Array.isArray(t)||(t=[t]);const s=Object.assign({repeat:!1},i);t.forEach(a=>{this.boundKeys[a]={actionName:A,options:s,parameters:n}})}applyInput(t){const A=this.boundKeys[t];if(!A)return;const{repeat:i,keyDown:n}=A.options;if(n){let s=A.parameters;typeof s=="function"&&(s=s()),n(A)}}getControl(t){return this.boundKeys[t]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(t){if(t){this.boundKeys={};for(let A in t){const i=t[A],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let a of s)this.bindKey(a,A,i)}this._controlsOptions=t}}get options(){return this._controlsOptions}}var os=(e=>(e.Break="break",e.Backspace="backspace",e.Tab="tab",e.Clear="clear",e.Enter="enter",e.Shift="shift",e.Ctrl="ctrl",e.Alt="alt",e.Pause="pause/break",e.CapsLock="caps lock",e.Escape="escape",e.Conversion="conversion",e.NonConversion="non-conversion",e.Space="space",e.PageUp="page up",e.PageDown="page down",e.End="end",e.Home="home",e[e.Left=4]="Left",e[e.Up=1]="Up",e[e.Right=2]="Right",e[e.Down=3]="Down",e.Select="select",e.Print="print",e.Execute="execute",e.PrintScreen="Print Screen",e.Insert="insert",e.Delete="delete",e.Zero="0",e.One="1",e.Two="2",e.Three="3",e.Four="4",e.Five="5",e.Six="6",e.Seven="7",e.Height="8",e.Nine="9",e.Equal="=",e.Semicolon="semicolon (firefox), equals",e.LessThan="<",e.Equals="equals (firefox)",e.Beta="ß",e.At="@",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.F="f",e.G="g",e.H="h",e.I="i",e.J="j",e.K="k",e.L="l",e.M="m",e.N="n",e.O="o",e.P="p",e.Q="q",e.R="r",e.S="s",e.T="t",e.U="u",e.V="v",e.W="w",e.X="x",e.Y="y",e.Z="z",e.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",e.NumPad0="numpad 0",e.NumPad1="numpad 1",e.NumPad2="numpad 2",e.NumPad3="numpad 3",e.NumPad4="numpad 4",e.NumPad5="numpad 5",e.NumPad6="numpad 6",e.NumPad7="numpad 7",e.NumPad8="numpad 8",e.NumPad9="numpad 9",e.Multiply="multiply",e.Add="add",e.Subtract="subtract",e.DecimalPoint="decimal point",e.Divide="divide",e.F1="f1",e.F2="f2",e.F3="f3",e.F4="f4",e.F5="f5",e.F6="f6",e.F7="f7",e.F8="f8",e.F9="f9",e.F10="f10",e.F11="f11",e.F12="f12",e.F13="f13",e.F14="f14",e.F15="f15",e.F16="f16",e.F17="f17",e.F18="f18",e.F19="f19",e.F20="f20",e.F21="f21",e.F22="f22",e.F23="f23",e.F24="f24",e.NumLock="num lock",e.ScrollLock="scroll lock",e.CircumflexAccent="^",e.ExclamationMark="!",e.Hash="#",e.Dollar="$",e.AccentU="ù",e.PageBackward="page backward",e.PageForWard="page forward",e.Star="*",e.DecreaseVolume="decrease volume level",e.IncreaseVolume="increase volume level",e.Next="next",e.Previous="previous",e.Stop="stop",e.PlayPause="play/pause",e.Email="e-mail",e.SemiColon="semi-colon / ñ",e.EqualSign="equal sign",e.Comma="comma",e.Dash="dash",e.FowardSlach="forward slash / ç",e.GraveAccent="grave accent / ñ / æ",e.OpenBracket="open bracket",e.BackSlach="back slash",e.CloseBracket="close bracket / å",e.SingleQuote="single quote / ø",e.BackQuote="`",e.Altgr="altgr",e))(os||{});const rs={3:"break",8:"backspace",9:"tab",12:"clear",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause/break",20:"caps lock",27:"escape",28:"conversion",29:"non-conversion",32:"space",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",41:"select",42:"print",43:"execute",44:"Print Screen",45:"insert",46:"delete",48:"n0",49:"n1",50:"n2",51:"n3",52:"n4",53:"n5",54:"n6",55:"n7",56:"n8",57:"n9",58:":",59:"semicolon (firefox), equals",60:"<",61:"equals (firefox)",63:"ß",64:"@",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",91:"Windows Key / Left ⌘ / Chromebook Search key",92:"right window key",93:"Windows Menu / Right ⌘",96:"numpad 0",97:"numpad 1",98:"numpad 2",99:"numpad 3",100:"numpad 4",101:"numpad 5",102:"numpad 6",103:"numpad 7",104:"numpad 8",105:"numpad 9",106:"multiply",107:"add",108:"numpad period (firefox)",109:"subtract",110:"decimal point",111:"divide",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",124:"f13",125:"f14",126:"f15",127:"f16",128:"f17",129:"f18",130:"f19",131:"f20",132:"f21",133:"f22",134:"f23",135:"f24",144:"num lock",145:"scroll lock",160:"^",161:"!",163:"#",164:"$",165:"ù",166:"page backward",167:"page forward",169:"closing paren (AZERTY)",170:"*",171:"~ + * key",173:"minus (firefox), mute/unmute",174:"decrease volume level",175:"increase volume level",176:"next",177:"previous",178:"stop",179:"play/pause",180:"e-mail",181:"mute/unmute (firefox)",182:"decrease volume level (firefox)",183:"increase volume level (firefox)",186:"semi-colon / ñ",187:"equal sign",188:"comma",189:"dash",190:"period",191:"forward slash / ç",192:"grave accent / ñ / æ",193:"?, / or °",194:"numpad period (chrome)",219:"open bracket",220:"back slash",221:"close bracket / å",222:"single quote / ø",223:"`",224:"left or right ⌘ key (firefox)",225:"altgr",226:"< /git >",230:"GNOME Compose Key",231:"ç",233:"XF86Forward",234:"XF86Back",240:"alphanumeric",242:"hiragana/katakana",243:"half-width/full-width",244:"kanji",255:"toggle touchpad"},as=(e=>{const t={};for(let A in e){const i=e[A];t[i]=A}return t})(rs);class gs extends fe{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.addEventListener("keyup",t=>{this.onKeyChange(t,!1)})}cleanup(){document.removeEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.removeEventListener("keyup",t=>{this.onKeyChange(t,!1)})}preStep(){if(this.stop)return;const t=this.getDirection();if(t!=="none"){const A=this.boundKeys[t];if(A){const{keyDown:i}=A.options;i&&this.applyInput(t)}}else{const A=Object.keys(this.boundKeys);for(let i of A)this.applyInput(i)}}applyInput(t){const A=this.keyState[t];if(!A)return;const{isDown:i,count:n}=A;if(i){const s=this.boundKeys[t];if(!s)return;const{repeat:a,keyDown:g}=s.options;if(a||n==0){let r=s.parameters;typeof r=="function"&&(r=r()),g&&g(s),this.keyState[t].count++}}}applyKeyDown(t){const A=as[t],i=new Event("keydown");i.keyCode=A,this.onKeyChange(i,!0)}applyKeyUp(t){const A=as[t],i=new Event("keyup");i.keyCode=A,this.onKeyChange(i,!1)}applyKeyPress(t){return new Promise(A=>{this.applyKeyDown(t),setTimeout(()=>{this.applyKeyUp(t),A()},200)})}onKeyChange(t,A){t=t||window.event;const i=rs[t.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=A,!A){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=A?t.keyCode:null}i&&this.updateDirectionState(i,A)}updateDirectionState(t,A){switch(t){case"up":this.directionState.up=A;break;case"down":this.directionState.down=A;break;case"left":this.directionState.left=A;break;case"right":this.directionState.right=A;break}}getDirection(){const{up:t,down:A,left:i,right:n}=this.directionState;return t&&i?"up_left":t&&n?"up_right":A&&i?"down_left":A&&n?"down_right":t?"up":A?"down":i?"left":n?"right":"none"}async applyControl(t,A){const i=this._controlsOptions[t];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;A===void 0?await this.applyKeyPress(n):A?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var mt={events:{},publish:function(t,A){this.events.hasOwnProperty(t)&&this.events[t].forEach(function(i){return i(A)})},subscribe:function(t,A){return this.events.hasOwnProperty(t)||(this.events[t]=[]),this.events[t].push(A),{unsubscribe:(function(){var i=this.events[t].indexOf(A);i!==-1&&this.events[t].splice(i,1)}).bind(this)}}},q={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{NATIVE:null,ALIAS:"button_press"},BUTTON_RELEASE:{NATIVE:null,ALIAS:"button_release"},AXIS_MOVEMENT:{NATIVE:null,ALIAS:"axis_move"}},CA={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},Ce={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},ra={button_0:0,button_1:1,button_2:2,button_3:3,button_4:4,button_5:5,button_6:6,button_7:7,button_8:8,button_9:9,button_10:10,button_11:11,button_12:12,button_13:13,button_14:14,button_15:15,button_16:16,button_17:17},aa=.8,hs=function(e){console.warn&&typeof console.warn=="function"?console.warn(e):console.log(e)},ga=function(e,t){var A=[];return Object.keys(t).forEach(function(i){(t[i]===e||Array.isArray(t[i])&&t[i].indexOf(e)!==-1)&&A.push(i)}),A},ha=function(e){return!!e&&!!e.type&&!!e.playEffect&&typeof e.playEffect=="function"||!1},la=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},Qt={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:aa},remove:function(t){return delete this.instances[t]},on:function(t,A){switch(t){case q.CONNECT.ALIAS:return mt.subscribe(q.CONNECT.ALIAS,A);case q.DISCONNECT.ALIAS:return mt.subscribe(q.DISCONNECT.ALIAS,A);case q.BUTTON_PRESS.ALIAS:return mt.subscribe(q.BUTTON_PRESS.ALIAS,A);case q.BUTTON_RELEASE.ALIAS:return mt.subscribe(q.BUTTON_RELEASE.ALIAS,A);case q.AXIS_MOVEMENT.ALIAS:return mt.subscribe(q.AXIS_MOVEMENT.ALIAS,A)}},vibrate:function(t,A){var i=t.vibrationActuator,n=A||this.settings.vibration;if(ha(i)){var s=i.type;return t.vibrationActuator.playEffect(s,n)}hs("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(t){var A=t.axisMovementThreshold,i=t.vibration,n=t.customButtonMapping,s=parseFloat(A);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(t,A){return mt.publish(t,A)}},ca=function(e){e.buttons.forEach(function(t,A){var i=Qt.settings.customButtonMapping,n=i||ra,s=ga(A,n),a=Qt.buttonEvents;s.length&&s.forEach(function(g){t.pressed?(a.joypad[e.index][g]||(a.joypad[e.index][g]={pressed:!0,hold:!1,released:!1}),a.joypad[e.index][g].button=t,a.joypad[e.index][g].index=A,a.joypad[e.index][g].gamepad=e):!t.pressed&&a.joypad[e.index][g]&&(a.joypad[e.index][g].released=!0,a.joypad[e.index][g].hold=!1)})})},Ia=function(e){var t=function(a){return new CustomEvent(q.AXIS_MOVEMENT.ALIAS,{detail:a})},A=Qt.settings.axisMovementThreshold,i=e.axes,n=i.length,s=n/2;i.forEach(function(a,g){if(Math.abs(a)>A){var r=null,l=null,I=a;r=g<s?CA.LEFT.NAME:CA.RIGHT.NAME,(g===CA.LEFT.AXES.X||g===CA.RIGHT.AXES.X)&&(l=a<0?Ce.LEFT:Ce.RIGHT),(g===CA.LEFT.AXES.Y||g===CA.RIGHT.AXES.Y)&&(l=a<0?Ce.TOP:Ce.BOTTOM);var o={gamepad:e,totalSticks:s,stickMoved:r,directionOfMovement:l,axisMovementValue:I,axis:g};return window.dispatchEvent(t(o))}})},ua=function(e,t){t[e].pressed?(ls(q.BUTTON_PRESS.ALIAS,t,e),t[e].pressed=!1,t[e].hold=!0,t[e].last_event=q.BUTTON_PRESS.ALIAS):t[e].hold||t[e].released&&t[e].last_event===q.BUTTON_PRESS.ALIAS&&(ls(q.BUTTON_RELEASE.ALIAS,t,e),delete t[e])},si={id:null,start:function(){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame,A=Qt.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(A.joypad[s]||(A.joypad[s]={}),Qt.instances[s]=n,ca(n),Ia(n))}),A.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){ua(s,n)})}),this.id=t(this.start.bind(this))},stop:function(t){var A=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return A(t)}},Ba=function(){window.addEventListener(q.CONNECT.NATIVE,function(e){if(mt.publish(q.CONNECT.ALIAS,e),!Qt.loopStarted)return Qt.loopStarted=!0,si.start()}),window.addEventListener(q.DISCONNECT.NATIVE,function(e){if(mt.publish(q.DISCONNECT.ALIAS,e),Qt.remove(e.gamepad.index),Qt.buttonEvents.joypad[e.gamepad.index]=null,!Object.keys(Qt.instances).length)return Qt.loopStarted=!1,si.stop(si.id)}),window.addEventListener(q.BUTTON_PRESS.ALIAS,function(e){return mt.publish(q.BUTTON_PRESS.ALIAS,e)}),window.addEventListener(q.BUTTON_RELEASE.ALIAS,function(e){return mt.publish(q.BUTTON_RELEASE.ALIAS,e)}),window.addEventListener(q.AXIS_MOVEMENT.ALIAS,function(e){return mt.publish(q.AXIS_MOVEMENT.ALIAS,e)})},ls=function(e,t,A){var i=function(r){return new CustomEvent(e,{detail:r})},n=t[A],s=n.index,a=n.gamepad,g={buttonName:A,button:t[A].button,index:s,gamepad:a};window.dispatchEvent(i(g))};Ba(),la()?window.joypad=Qt:(window.joypad={},hs("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const oi={button_0:"action",button_1:"back",button_9:"back"},ri={top:"up",bottom:"down",left:"left",right:"right"};class cs extends fe{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:oi,axisMapping:ri,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[],this.currentPower=0}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null)}initGamepad(){if(typeof window>"u")return;const t=window.joypad;if(!t){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=t,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",A=>this.handleGamepadButtonPress(A)),this.joypad.on("axis_move",A=>this.handleGamepadAxisMove(A))}handleGamepadConnect(){!this.gamepadEnabled||!this.gamepadConfig.enabled||(this.gamepadMoveInterval=setInterval(()=>{this.processGamepadMovement()},this.gamepadConfig.moveInterval||400),this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!0),this.connectCallbacks.forEach(t=>t()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.currentPower=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(t=>t())}handleGamepadButtonPress(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:A}=t.detail,n=(this.gamepadConfig.buttonMapping||oi)[A];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(t){var s,a;if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let A=t.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||ri;if(A==="top"?A=i.top||"up":A==="bottom"?A=i.bottom||"down":A==="left"?A=i.left||"left":A==="right"&&(A=i.right||"right"),this.joypad&&this.joypad.instances){const g=Object.values(this.joypad.instances);if(g.length>0){const r=g[0],l=((s=r.axes)==null?void 0:s[0])||0,I=((a=r.axes)==null?void 0:a[1])||0;this.currentPower=Math.min(1,Math.sqrt(l*l+I*I))}}this.gamepadDirections={[A]:!0};const n=["up","down","left","right"];for(const g of n)this.gamepadDirections[g]||this.applyControl(g,!1).catch(()=>{});this.processGamepadMovement()}processGamepadMovement(){var t,A;if(this.gamepadMoving&&!this.stop){if(this.joypad&&this.joypad.instances){const i=Object.values(this.joypad.instances);if(i.length>0){const n=i[0],s=((t=n.axes)==null?void 0:t[0])||0,a=((A=n.axes)==null?void 0:A[1])||0;this.currentPower=Math.min(1,Math.sqrt(s*s+a*a))}}for(const i in this.gamepadDirections)this.gamepadDirections[i]&&this.applyControl(i,!0,{power:this.currentPower}).catch(()=>{})}}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const A=["up","down","left","right"];for(const i of A)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(t){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:t.enabled!==void 0?t.enabled:!0,buttonMapping:t.buttonMapping||oi,axisMapping:t.axisMapping||ri,axisThreshold:t.axisThreshold||.5,moveInterval:t.moveInterval||400,onConnect:t.onConnect,onDisconnect:t.onDisconnect,gamepadConnected:t.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(t){t.gamepad&&this.updateGamepadConfig(t.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(t,A,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const a of s){const g=this.boundKeys[a];if(g.actionName===String(t)){if(A===void 0){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}return new Promise(r=>{setTimeout(()=>{if(g.options.keyUp){let l=i??g.parameters;typeof l=="function"&&(l=l()),g.options.keyUp(g,l)}r()},200)})}else if(A){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}}else if(g.options.keyUp){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyUp(g,r)}break}}}setInputs(t){super.setInputs(t),this.extractGamepadConfig(t)}onConnect(t){this.connectCallbacks.push(t)}onDisconnect(t){this.disconnectCallbacks.push(t)}offConnect(t){const A=this.connectCallbacks.indexOf(t);A>-1&&this.connectCallbacks.splice(A,1)}offDisconnect(t){const A=this.disconnectCallbacks.indexOf(t);A>-1&&this.disconnectCallbacks.splice(A,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const ai={top:"up",bottom:"down",left:"left",right:"right",top_left:["up","left"],top_right:["up","right"],bottom_left:["down","left"],bottom_right:["down","right"]};class Is extends fe{constructor(){super(...arguments),this.joystickEnabled=!0,this.joystickConfig={enabled:!0,directionMapping:ai,moveInterval:50,threshold:.1},this.joystickMoving=!1,this.joystickDirections={},this.joystickLastUpdate=0,this.joystickMoveInterval=null,this.currentPower=0}setupListeners(){}cleanup(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null)}preStep(){this.stop}handleJoystickChange(t){if(!this.joystickEnabled||!this.joystickConfig.enabled||this.stop)return;if(this.joystickLastUpdate=Date.now(),this.currentPower=t.power,t.power<(this.joystickConfig.threshold||.1)){this.stopAllMovements();return}const A=this.joystickConfig.directionMapping||ai,i=t.direction,n=A[i];if(!n){this.stopAllMovements();return}const s=Array.isArray(n)?n:[n],a=this.joystickDirections,g={};s.forEach(I=>{g[I]=!0});const r=new Set([...Object.keys(this.joystickDirections),...Object.keys(g)]);for(const I of r){const o=this.joystickDirections[I],h=g[I]||!1;o&&!h&&this.applyControl(I,!1).catch(()=>{})}this.joystickDirections={...g},this.joystickMoving=!0;const l=s.filter(I=>!a[I]);for(const I of l)this.applyControl(I,!0,{power:t.power}).catch(()=>{});this.joystickMoveInterval||(this.joystickMoveInterval=setInterval(()=>{this.processJoystickMovement()},this.joystickConfig.moveInterval||50))}handleJoystickStart(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stop}handleJoystickEnd(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stopAllMovements()}stopAllMovements(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null);const t=Object.keys(this.joystickDirections);for(const A of t)this.applyControl(A,!1).catch(()=>{});this.joystickDirections={},this.joystickMoving=!1,this.currentPower=0}processJoystickMovement(){if(this.joystickMoving&&!this.stop)for(const t in this.joystickDirections)this.joystickDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}updateJoystickConfig(t){this.joystickConfig={enabled:t.enabled!==void 0?t.enabled:!0,directionMapping:t.directionMapping||ai,moveInterval:t.moveInterval||50,threshold:t.threshold||.1}}extractJoystickConfig(t){t.joystick&&this.updateJoystickConfig(t.joystick)}getJoystickConfig(){return this.joystickConfig}async applyControl(t,A,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const a of s){const g=this.boundKeys[a];if(g.actionName===String(t)){if(A===void 0){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}return new Promise(r=>{setTimeout(()=>{if(g.options.keyUp){let l=i??g.parameters;typeof l=="function"&&(l=l()),g.options.keyUp(g,l)}r()},200)})}else if(A){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}}else if(g.options.keyUp){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyUp(g,r)}break}}}setInputs(t){super.setInputs(t),this.extractJoystickConfig(t)}isActive(){return this.joystickMoving}}const gi={};class Mt{}function Rt(e,t){gi[e]=t}function Ea(e,t){var i;if(!gi[t])return null;const A=new gi[t];return(i=A.onInit)==null||i.call(A,e),A}var fa=Object.defineProperty,Z=(e,t)=>fa(e,"name",{value:t,configurable:!0}),TA=(kA=class extends AA{constructor(A=[]){super({type:"init",items:A});xn(this,"_items",[]);this.createProxy(A)}createProxy(A){this._items=new Proxy(A,{get:Z((i,n,s)=>{const a=i[n];return typeof a=="function"?(...g)=>{let r="update",l,I=!1,o=[],h=!0;switch(n){case"push":l=i.length,r="add",I=!0;break;case"pop":l=i.length-1,r="remove",I=!0;break;case"unshift":l=0,r="add",I=!0;break;case"shift":l=0,r="remove",I=!0;break;case"splice":l=g[0];const E=g[1],f=g.slice(2);o=f,E>0&&f.length===0?r="remove":E===0&&f.length>0?r="add":E===0&&f.length===0?h=!1:r="update",I=!0;break}const c=a.apply(i,g);return I&&h&&(n==="splice"?this.next({type:r,index:l,items:o}):this.next({type:r,index:l,items:g})),c}:Reflect.get(i,n,s)},"get"),set:Z((i,n,s)=>{const a=isNaN(Number(n))?void 0:Number(n);return i[n]=s,this.next({type:"update",index:a,items:[s]}),!0},"set")})}get items(){return this._items}set items(A){this.createProxy(A),this.next({type:"reset",items:A})}},Z(kA,"ArraySubject"),kA),Ca=Z(e=>"_items"in e,"isArraySubject"),JA=(MA=class extends AA{constructor(A={}){super({type:"init",value:A});xn(this,"_obj");this.createProxy(A)}createProxy(A){this._obj=new Proxy(A,{get:Z((i,n,s)=>Reflect.get(i,n,s),"get"),set:Z((i,n,s,a)=>{const g=n,r=g in i?"update":"add";return i[g]=s,this.next({type:r,key:g,value:s}),!0},"set"),deleteProperty:Z((i,n)=>{const s=n;if(s in i){const a=i[s];return delete i[s],this.next({type:"remove",key:s,value:a}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(A){this.createProxy(A),this.next({type:"reset",value:A})}},Z(MA,"ObjectSubject"),MA),Qa=Z(e=>"_obj"in e,"isObjectSubject"),da=Z(()=>{const e="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[e]||(globalThis[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[e];let t;if(typeof window<"u")t=window;else if(typeof process<"u"&&process.versions&&process.versions.node)t=Function("return this")();else if(typeof self<"u")t=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return t[e]||(t[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),t[e]},"getGlobalReactiveStore"),At=da(),hi=Z(e=>{At.currentDependencyTracker&&At.currentDependencyTracker(e)},"trackDependency");function W(e,t){let A;Array.isArray(e)?A=new TA(e):typeof e=="object"&&e!==null?A=new JA(e):A=new AA(e);const i=Z(()=>A instanceof TA?A.items:A instanceof JA?A.obj:A.value,"getValue"),n=Z(function(){return hi(n),i()},"fn");return n.set=s=>{const a=i();let g=!0;t!=null&&t.equal?g=!t.equal(a,s):g=a!==s,g&&(A instanceof TA?A.items=s:A instanceof JA?A.obj=s:A.next(s))},n._isFrozen=!1,n.freeze=()=>{n._isFrozen=!0},n.unfreeze=()=>{n._isFrozen=!1,A instanceof TA?A.next({type:"init",items:A.items}):A instanceof JA?A.next({type:"init",value:A.obj}):A.next(A.value)},n.mutate=s=>{const a=i();s(a)},n.update=s=>{const a=s(i());n.set(a)},n.observable=A.asObservable().pipe(UA(()=>!n._isFrozen)),n._subject=A,n}Z(W,"signal");function T(e){return!!(e&&e.observable)}Z(T,"isSignal");function QA(e){return T(e)&&!!e.dependencies}Z(QA,"isComputed");function dt(e,t){var l;const A=new Set;let i=!0,n;const s=At.currentDependencyTracker;At.currentDependencyTracker=I=>{A.add(I)},n=e(),e.isEffect&&(t=n),At.currentDependencyTracker=s;const a=[...A].map(I=>{if(QA(I)&&"dependencies"in I){const o=I;if(o.dependencies.size===0)return new AA(o()).asObservable()}return I.observable}),g=Ai(a).pipe(UA(()=>!i),ti(()=>e()),Aa(()=>t==null?void 0:t())),r=Z(function(){return hi(r),n},"fn");return r.observable=g,r.subscription=g.subscribe(I=>{n=I}),r.dependencies=A,(l=At.currentSubscriptionsTracker)==null||l.call(At,r.subscription),i=!1,r}Z(dt,"computed");function us(e,t){var D;const A=new Set;let i=!0,n,s,a,g,r,l,I=!1,o,h=0,c=null;if(typeof e=="function")s=e,r=t==null?void 0:t.equal;else{const w=e;if(a=w.source,g=w.computation,r=w.equal,typeof a=="function"&&!T(a)){const S=a;s=Z(()=>{const _=S();if(g.length>1){const N=g(_,l);return l={source:_,value:N},N}else{const N=g(_);return l={source:_,value:N},N}},"computeFunction")}else{const S=a;s=Z(()=>{const _=S();if(g.length>1){const N=g(_,l);return l={source:_,value:N},N}else{const N=g(_);return l={source:_,value:N},N}},"computeFunction")}}const E=At.currentDependencyTracker;At.currentDependencyTracker=w=>{A.add(w)},a&&typeof a=="function"&&!T(a)||a&&T(a)&&A.add(a),n=s(),At.currentDependencyTracker=E;const f=new AA(n),Q=[...A].map(w=>{if(QA(w)&&"dependencies"in w){const S=w;if(S.dependencies.size===0)return new AA(S()).asObservable()}return w.observable});let C;Q.length>0?C=Ai(Q).pipe(UA(()=>!i),ti(()=>{const w=s();return r?r(n,w)||(n=w,I=!1):n!==w&&(n=w,I=!1),n})):C=f.asObservable().pipe(UA(()=>!i));const p=Z(function(){if(hi(p),I&&A.size>0){if(c!==h){const w=s();return I=!1,o=void 0,n=w,c=null,w}return o}return I?o:(A.size===0&&(n=s()),n)},"fn");return p.observable=new X(w=>{const S=C.subscribe(N=>{A.size>0&&(h++,I=!1,c=null),n=N,w.next(N)});let _;return A.size===0&&(_=f.pipe(UA(()=>!i)).subscribe(N=>{w.next(N)})),w.next(n),()=>{S.unsubscribe(),_&&_.unsubscribe()}}),p.subscription=p.observable.subscribe(()=>{}),p.dependencies=A,p._subject=f,p.set=w=>{I||(c=h,g&&a&&(l={source:li(()=>{if(typeof a=="function"){const _=a;return T(_)?_():a()}return a()}),value:w})),I=!0,o=w,n=w,f.next(w)},(D=At.currentSubscriptionsTracker)==null||D.call(At,p.subscription),i=!1,p}Z(us,"linkedSignal");function li(e){const t=At.currentDependencyTracker,A=At.currentSubscriptionsTracker;At.currentDependencyTracker=null,At.currentSubscriptionsTracker=null;try{return e()}finally{At.currentDependencyTracker=t,At.currentSubscriptionsTracker=A}}Z(li,"untracked");function nt(e){return e.isEffect=!0,dt(e)}Z(nt,"effect");function Bs(e,t){var A={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(A[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(A[i[n]]=e[i[n]]);return A}var Es=function(){};const ci=(e,t,A)=>Math.min(Math.max(A,e),t),Ii=.001,pa=.01,ya=10,wa=.05,ma=1;function Da({duration:e=800,bounce:t=.25,velocity:A=0,mass:i=1}){let n,s,a=1-t;a=ci(wa,ma,a),e=ci(pa,ya,e/1e3),a<1?(n=l=>{const I=l*a,o=I*e,h=I-A,c=ui(l,a),E=Math.exp(-o);return Ii-h/c*E},s=l=>{const o=l*a*e,h=o*A+A,c=Math.pow(a,2)*Math.pow(l,2)*e,E=Math.exp(-o),f=ui(Math.pow(l,2),a);return(-n(l)+Ii>0?-1:1)*((h-c)*E)/f}):(n=l=>{const I=Math.exp(-l*e),o=(l-A)*e+1;return-Ii+I*o},s=l=>{const I=Math.exp(-l*e),o=(A-l)*(e*e);return I*o});const g=5/e,r=Sa(n,s,g);if(e=e*1e3,isNaN(r))return{stiffness:100,damping:10,duration:e};{const l=Math.pow(r,2)*i;return{stiffness:l,damping:a*2*Math.sqrt(i*l),duration:e}}}const va=12;function Sa(e,t,A){let i=A;for(let n=1;n<va;n++)i=i-e(i)/t(i);return i}function ui(e,t){return e*Math.sqrt(1-t*t)}const ba=["duration","bounce"],xa=["stiffness","damping","mass"];function fs(e,t){return t.some(A=>e[A]!==void 0)}function ka(e){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!fs(e,xa)&&fs(e,ba)){const A=Da(e);t=Object.assign(Object.assign(Object.assign({},t),A),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function Bi(e){var{from:t=0,to:A=1,restSpeed:i=2,restDelta:n}=e,s=Bs(e,["from","to","restSpeed","restDelta"]);const a={done:!1,value:t};let{stiffness:g,damping:r,mass:l,velocity:I,duration:o,isResolvedFromDuration:h}=ka(s),c=Cs,E=Cs;function f(){const Q=I?-(I/1e3):0,C=A-t,p=r/(2*Math.sqrt(g*l)),D=Math.sqrt(g/l)/1e3;if(n===void 0&&(n=Math.min(Math.abs(A-t)/100,.4)),p<1){const w=ui(D,p);c=S=>{const _=Math.exp(-p*D*S);return A-_*((Q+p*D*C)/w*Math.sin(w*S)+C*Math.cos(w*S))},E=S=>{const _=Math.exp(-p*D*S);return p*D*_*(Math.sin(w*S)*(Q+p*D*C)/w+C*Math.cos(w*S))-_*(Math.cos(w*S)*(Q+p*D*C)-w*C*Math.sin(w*S))}}else if(p===1)c=w=>A-Math.exp(-D*w)*(C+(Q+D*C)*w);else{const w=D*Math.sqrt(p*p-1);c=S=>{const _=Math.exp(-p*D*S),N=Math.min(w*S,300);return A-_*((Q+p*D*C)*Math.sinh(N)+w*C*Math.cosh(N))/w}}}return f(),{next:Q=>{const C=c(Q);if(h)a.done=Q>=o;else{const p=E(Q)*1e3,D=Math.abs(p)<=i,w=Math.abs(A-C)<=n;a.done=D&&w}return a.value=a.done?A:C,a},flipTarget:()=>{I=-I,[t,A]=[A,t],f()}}}Bi.needsInterpolation=(e,t)=>typeof e=="string"||typeof t=="string";const Cs=e=>0,Qs=(e,t,A)=>{const i=t-e;return i===0?1:(A-e)/i},Ei=(e,t,A)=>-A*e+A*t+e,ds=(e,t)=>A=>Math.max(Math.min(A,t),e),PA=e=>e%1?Number(e.toFixed(5)):e,Qe=/(-)?([\d]*\.?[\d])+/g,fi=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,Ma=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function KA(e){return typeof e=="string"}const de={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},ps=Object.assign(Object.assign({},de),{transform:ds(0,1)});Object.assign(Object.assign({},de),{default:1});const YA=(e=>({test:t=>KA(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},YA),{parse:e=>YA.parse(e)/100,transform:e=>YA.transform(e*100)});const Ci=(e,t)=>A=>!!(KA(A)&&Ma.test(A)&&A.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(A,t)),ys=(e,t,A)=>i=>{if(!KA(i))return i;const[n,s,a,g]=i.match(Qe);return{[e]:parseFloat(n),[t]:parseFloat(s),[A]:parseFloat(a),alpha:g!==void 0?parseFloat(g):1}},iA={test:Ci("hsl","hue"),parse:ys("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:A,alpha:i=1})=>"hsla("+Math.round(e)+", "+YA.transform(PA(t))+", "+YA.transform(PA(A))+", "+PA(ps.transform(i))+")"},Ra=ds(0,255),Qi=Object.assign(Object.assign({},de),{transform:e=>Math.round(Ra(e))}),qt={test:Ci("rgb","red"),parse:ys("red","green","blue"),transform:({red:e,green:t,blue:A,alpha:i=1})=>"rgba("+Qi.transform(e)+", "+Qi.transform(t)+", "+Qi.transform(A)+", "+PA(ps.transform(i))+")"};function _a(e){let t="",A="",i="",n="";return e.length>5?(t=e.substr(1,2),A=e.substr(3,2),i=e.substr(5,2),n=e.substr(7,2)):(t=e.substr(1,1),A=e.substr(2,1),i=e.substr(3,1),n=e.substr(4,1),t+=t,A+=A,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(A,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const di={test:Ci("#"),parse:_a,transform:qt.transform},pe={test:e=>qt.test(e)||di.test(e)||iA.test(e),parse:e=>qt.test(e)?qt.parse(e):iA.test(e)?iA.parse(e):di.parse(e),transform:e=>KA(e)?e:e.hasOwnProperty("red")?qt.transform(e):iA.transform(e)},ws="${c}",ms="${n}";function Fa(e){var t,A,i,n;return isNaN(e)&&KA(e)&&((A=(t=e.match(Qe))===null||t===void 0?void 0:t.length)!==null&&A!==void 0?A:0)+((n=(i=e.match(fi))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function Ds(e){typeof e=="number"&&(e=`${e}`);const t=[];let A=0;const i=e.match(fi);i&&(A=i.length,e=e.replace(fi,ws),t.push(...i.map(pe.parse)));const n=e.match(Qe);return n&&(e=e.replace(Qe,ms),t.push(...n.map(de.parse))),{values:t,numColors:A,tokenised:e}}function vs(e){return Ds(e).values}function Ss(e){const{values:t,numColors:A,tokenised:i}=Ds(e),n=t.length;return s=>{let a=i;for(let g=0;g<n;g++)a=a.replace(g<A?ws:ms,g<A?pe.transform(s[g]):PA(s[g]));return a}}const Ga=e=>typeof e=="number"?0:e;function Na(e){const t=vs(e);return Ss(e)(t.map(Ga))}const bs={test:Fa,parse:vs,createTransformer:Ss,getAnimatableNone:Na};function pi(e,t,A){return A<0&&(A+=1),A>1&&(A-=1),A<.16666666666666666?e+(t-e)*6*A:A<.5?t:A<.6666666666666666?e+(t-e)*(.6666666666666666-A)*6:e}function xs({hue:e,saturation:t,lightness:A,alpha:i}){e/=360,t/=100,A/=100;let n=0,s=0,a=0;if(!t)n=s=a=A;else{const g=A<.5?A*(1+t):A+t-A*t,r=2*A-g;n=pi(r,g,e+.3333333333333333),s=pi(r,g,e),a=pi(r,g,e-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(a*255),alpha:i}}const Ha=(e,t,A)=>{const i=e*e,n=t*t;return Math.sqrt(Math.max(0,A*(n-i)+i))},La=[di,qt,iA],ks=e=>La.find(t=>t.test(e)),Ms=(e,t)=>{let A=ks(e),i=ks(t),n=A.parse(e),s=i.parse(t);A===iA&&(n=xs(n),A=qt),i===iA&&(s=xs(s),i=qt);const a=Object.assign({},n);return g=>{for(const r in a)r!=="alpha"&&(a[r]=Ha(n[r],s[r],g));return a.alpha=Ei(n.alpha,s.alpha,g),A.transform(a)}},Ua=e=>typeof e=="number",Oa=(e,t)=>A=>t(e(A)),Rs=(...e)=>e.reduce(Oa);function _s(e,t){return Ua(e)?A=>Ei(e,t,A):pe.test(e)?Ms(e,t):Ns(e,t)}const Fs=(e,t)=>{const A=[...e],i=A.length,n=e.map((s,a)=>_s(s,t[a]));return s=>{for(let a=0;a<i;a++)A[a]=n[a](s);return A}},Ta=(e,t)=>{const A=Object.assign(Object.assign({},e),t),i={};for(const n in A)e[n]!==void 0&&t[n]!==void 0&&(i[n]=_s(e[n],t[n]));return n=>{for(const s in i)A[s]=i[s](n);return A}};function Gs(e){const t=bs.parse(e),A=t.length;let i=0,n=0,s=0;for(let a=0;a<A;a++)i||typeof t[a]=="number"?i++:t[a].hue!==void 0?s++:n++;return{parsed:t,numNumbers:i,numRGB:n,numHSL:s}}const Ns=(e,t)=>{const A=bs.createTransformer(t),i=Gs(e),n=Gs(t);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?Rs(Fs(i.parsed,n.parsed),A):a=>`${a>0?t:e}`},Ja=(e,t)=>A=>Ei(e,t,A);function Pa(e){if(typeof e=="number")return Ja;if(typeof e=="string")return pe.test(e)?Ms:Ns;if(Array.isArray(e))return Fs;if(typeof e=="object")return Ta}function Ka(e,t,A){const i=[],n=A||Pa(e[0]),s=e.length-1;for(let a=0;a<s;a++){let g=n(e[a],e[a+1]);if(t){const r=Array.isArray(t)?t[a]:t;g=Rs(r,g)}i.push(g)}return i}function Ya([e,t],[A]){return i=>A(Qs(e,t,i))}function Wa(e,t){const A=e.length,i=A-1;return n=>{let s=0,a=!1;if(n<=e[0]?a=!0:n>=e[i]&&(s=i-1,a=!0),!a){let r=1;for(;r<A&&!(e[r]>n||r===i);r++);s=r-1}const g=Qs(e[s],e[s+1],n);return t[s](g)}}function Hs(e,t,{clamp:A=!0,ease:i,mixer:n}={}){const s=e.length;Es(s===t.length),Es(!i||!Array.isArray(i)||i.length===s-1),e[0]>e[s-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const a=Ka(t,i,n),g=s===2?Ya(e,a):Wa(e,a);return A?r=>g(ci(e[0],e[s-1],r)):g}const ye=e=>t=>1-e(1-t),yi=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ja=e=>t=>Math.pow(t,e),Ls=e=>t=>t*t*((e+1)*t-e),Va=e=>{const t=Ls(e);return A=>(A*=2)<1?.5*t(A):.5*(2-Math.pow(2,-10*(A-1)))},Us=1.525,qa=4/11,Xa=8/11,Za=9/10,za=e=>e,wi=ja(2),$a=ye(wi),Os=yi(wi),Ts=e=>1-Math.sin(Math.acos(e)),Js=ye(Ts),tg=yi(Js),mi=Ls(Us),Ag=ye(mi),eg=yi(mi),ig=Va(Us),ng=4356/361,sg=35442/1805,og=16061/1805,we=e=>{if(e===1||e===0)return e;const t=e*e;return e<qa?7.5625*t:e<Xa?9.075*t-9.9*e+3.4:e<Za?ng*t-sg*e+og:10.8*e*e-20.52*e+10.72},rg=ye(we),ag=e=>e<.5?.5*(1-we(1-e*2)):.5*we(e*2-1)+.5;function gg(e,t){return e.map(()=>t||Os).splice(0,e.length-1)}function hg(e){const t=e.length;return e.map((A,i)=>i!==0?i/(t-1):0)}function lg(e,t){return e.map(A=>A*t)}function me({from:e=0,to:t=1,ease:A,offset:i,duration:n=300}){const s={done:!1,value:e},a=Array.isArray(t)?t:[e,t],g=lg(i&&i.length===a.length?i:hg(a),n);function r(){return Hs(g,a,{ease:Array.isArray(A)?A:gg(a,A)})}let l=r();return{next:I=>(s.value=l(I),s.done=I>=n,s),flipTarget:()=>{a.reverse(),l=r()}}}function cg({velocity:e=0,from:t=0,power:A=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const a={done:!1,value:t};let g=A*e;const r=t+g,l=s===void 0?r:s(r);return l!==r&&(g=l-t),{next:I=>{const o=-g*Math.exp(-I/i);return a.done=!(o>n||o<-n),a.value=a.done?l:l+o,a},flipTarget:()=>{}}}const Ps={keyframes:me,spring:Bi,decay:cg};function Ig(e){if(Array.isArray(e.to))return me;if(Ps[e.type])return Ps[e.type];const t=new Set(Object.keys(e));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?me:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?Bi:me}const Ks=1/60*1e3,ug=typeof performance<"u"?()=>performance.now():()=>Date.now(),Ys=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(ug()),Ks);function Bg(e){let t=[],A=[],i=0,n=!1,s=!1;const a=new WeakSet,g={schedule:(r,l=!1,I=!1)=>{const o=I&&n,h=o?t:A;return l&&a.add(r),h.indexOf(r)===-1&&(h.push(r),o&&n&&(i=t.length)),r},cancel:r=>{const l=A.indexOf(r);l!==-1&&A.splice(l,1),a.delete(r)},process:r=>{if(n){s=!0;return}if(n=!0,[t,A]=[A,t],A.length=0,i=t.length,i)for(let l=0;l<i;l++){const I=t[l];I(r),a.has(I)&&(g.schedule(I),e())}n=!1,s&&(s=!1,g.process(r))}};return g}const Eg=40;let Di=!0,WA=!1,vi=!1;const jA={delta:0,timestamp:0},VA=["read","update","preRender","render","postRender"],De=VA.reduce((e,t)=>(e[t]=Bg(()=>WA=!0),e),{}),fg=VA.reduce((e,t)=>{const A=De[t];return e[t]=(i,n=!1,s=!1)=>(WA||dg(),A.schedule(i,n,s)),e},{}),Cg=VA.reduce((e,t)=>(e[t]=De[t].cancel,e),{});VA.reduce((e,t)=>(e[t]=()=>De[t].process(jA),e),{});const Qg=e=>De[e].process(jA),Ws=e=>{WA=!1,jA.delta=Di?Ks:Math.max(Math.min(e-jA.timestamp,Eg),1),jA.timestamp=e,vi=!0,VA.forEach(Qg),vi=!1,WA&&(Di=!1,Ys(Ws))},dg=()=>{WA=!0,Di=!0,vi||Ys(Ws)};function js(e,t,A=0){return e-t-A}function pg(e,t,A=0,i=!0){return i?js(t+-e,t,A):t-(e-t)+A}function yg(e,t,A,i){return i?e>=t+A:e<=-A}const wg=e=>{const t=({delta:A})=>e(A);return{start:()=>fg.update(t,!0),stop:()=>Cg.update(t)}};function Vs(e){var t,A,{from:i,autoplay:n=!0,driver:s=wg,elapsed:a=0,repeat:g=0,repeatType:r="loop",repeatDelay:l=0,onPlay:I,onStop:o,onComplete:h,onRepeat:c,onUpdate:E}=e,f=Bs(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:Q}=f,C,p=0,D=f.duration,w,S=!1,_=!0,N;const J=Ig(f);!((A=(t=J).needsInterpolation)===null||A===void 0)&&A.call(t,i,Q)&&(N=Hs([0,100],[i,Q],{clamp:!1}),i=0,Q=100);const U=J(Object.assign(Object.assign({},f),{from:i,to:Q}));function z(){p++,r==="reverse"?(_=p%2===0,a=pg(a,D,l,_)):(a=js(a,D,l),r==="mirror"&&U.flipTarget()),S=!1,c&&c()}function st(){C.stop(),h&&h()}function ct(V){if(_||(V=-V),a+=V,!S){const ut=U.next(Math.max(0,a));w=ut.value,N&&(w=N(w)),S=_?ut.done:a<=0}E==null||E(w),S&&(p===0&&(D??(D=a)),p<g?yg(a,D,l,_)&&z():st())}function gt(){I==null||I(),C=s(ct),C.start()}return n&&gt(),{stop:()=>{o==null||o(),C.stop()}}}const mg=e=>{if(typeof e=="number")return t=>Math.round(t/e)*e;{let t=0;const A=e.length;return i=>{let n=Math.abs(e[0]-i);for(t=1;t<A;t++){const s=e[t],a=Math.abs(s-i);if(a===0)return s;if(a>n)return e[t-1];if(t===A-1)return s;n=a}}}};function Dg(){return globalThis.__CANVAS_ENGINE_TICK__}function dA(e){return e.animatedState!==void 0}function Si(e,t={}){const A={current:e,start:e,end:e},i=20;let n=null,s=!1;const a=W(e),g=W(A);nt(()=>{const I=g();a.set(I.current)});function r(I,o={}){if(I===void 0)return g();const h=g(),c={current:h.current,start:h.current,end:I};g.set(c),n&&(n.stop(),n=null),s=!1;const E={...t,...o},f=E.duration??i,Q=E.ease??(w=>w);E.tick||Dg();const C=h.current,p=I,D=o.onComplete??t.onComplete;n=Vs({from:C,to:p,duration:f,ease:Q,onUpdate:w=>{var _,N;if(s)return;const S=w;g.update(J=>({...J,current:S})),(_=E.onUpdate)==null||_.call(E,S),(N=o.onUpdate)==null||N.call(o,S)},onComplete:()=>{g.update(w=>({...w,current:p})),D==null||D()}})}const l=function(){return g().current};for(const I in a)l[I]=a[I];return l.animatedState=g,l.update=I=>{r(I(g().current))},l.set=async(I,o={})=>new Promise(h=>{const c=o.onComplete;r(I,{...o,onComplete:()=>{c?c():t.onComplete&&t.onComplete(),h()}})}),l.pause=()=>{s||(s=!0,n&&(n.stop(),n=null))},l.resume=()=>{if(!s)return;s=!1;const I=g();I.current!==I.end&&r(I.end,t)},l}async function vg(e){for(const t of e)Array.isArray(t)?await Promise.all(t.map(A=>A())):await t()}const bi={},pt=e=>e&&typeof e=="object"&&"tag"in e&&"props"in e&&"componentInstance"in e,xi=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null||e===void 0;function at(e,t){bi[e]=t}let qs=!1;function ki(){qs||(qs=!0)}function _t(e){var A,i;if(!e)return!1;const t=((A=e.propObservables)==null?void 0:A.freeze)??((i=e.props)==null?void 0:i.freeze);if(t!=null){if(T(t)){if(t()===!0)return!0}else if(t===!0)return!0}return e.parent?_t(e.parent):!1}function Mi(e,t){if(!e.propObservables)return;const A=i=>{if(T(i)&&dA(i)){const n=i;t?n.pause():n.resume()}else Ee(i)&&!pt(i)&&Object.values(i).forEach(A)};Object.values(e.propObservables).forEach(A)}function ht(e){var t,A,i,n,s,a;if(Array.isArray(e)){e.forEach(g=>ht(g));return}if(e){if((t=e.props)!=null&&t.children)for(let g of e.props.children)ht(g);for(let g in e.directives)(i=(A=e.directives[g]).onDestroy)==null||i.call(A,e);e.componentInstance&&e.componentInstance.onDestroy?e.componentInstance.onDestroy(e.parent,()=>{var g,r,l;(g=e.propSubscriptions)==null||g.forEach(I=>I.unsubscribe()),(r=e.effectSubscriptions)==null||r.forEach(I=>I.unsubscribe()),(l=e.effectUnmounts)==null||l.forEach(I=>{eA(I)?I.then(o=>{o==null||o()}):I==null||I()})}):((n=e.propSubscriptions)==null||n.forEach(g=>g.unsubscribe()),(s=e.effectSubscriptions)==null||s.forEach(g=>g.unsubscribe()),(a=e.effectUnmounts)==null||a.forEach(g=>g==null?void 0:g()))}}function Et(e,t){var o,h,c;if(!bi[e])throw new Error(`Component ${e} is not registered`);const A=new bi[e],i={tag:e,props:{},componentInstance:A,propSubscriptions:[],propObservables:t,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){ht(this)},allElements:new uA,isFrozen:!1};if(t){const E=(f,Q="")=>{const C=(p,D,w)=>{if(p==""){i.props[D]=w;return}ii(i.props,p+"."+D,w)};Object.entries(f).forEach(([p,D])=>{if(T(D)){const w=D;if("dependencies"in w&&w.dependencies.size==0){C(Q,p,w()),p==="freeze"&&(i.isFrozen=w()===!0);return}if(p==="freeze"){i.isFrozen=w()===!0,Mi(i,i.isFrozen),i.propSubscriptions.push(w.observable.subscribe(S=>{const _=i.isFrozen;i.isFrozen=S===!0,_!==i.isFrozen&&Mi(i,i.isFrozen)}));return}i.propSubscriptions.push(w.observable.subscribe(S=>{var _,N,J;if(_t(i)){dA(w)&&w.pause();return}if(dA(w)&&w.resume(),C(Q,p,S),i.directives[p]&&((N=(_=i.directives[p]).onUpdate)==null||N.call(_,S,i)),p=="tick")return _t(i),void 0;(J=A.onUpdate)==null||J.call(A,Q==""?{[p]:S}:ii({},Q+"."+p,S))}))}else p==="freeze"&&(i.isFrozen=D===!0,Mi(i,i.isFrozen)),Ee(D)&&p!="context"&&!pt(D)?E(D,(Q?Q+".":"")+p):C(Q,p,D)})};E(t)}(o=A.onInit)==null||o.call(A,i.props);const n=new uA;if(t!=null&&t.isRoot&&(i.allElements=n,i.props.context.rootElement=i,(c=(h=i.componentInstance).onMount)==null||c.call(h,i),l(i)),t)for(let E in t){const f=Ea(i,E);f&&(i.directives[E]=f)}async function s(E){return(await Promise.all(E.map(async Q=>T(Q)?Q():eA(Q)?await Q:Q))).every(Q=>Q!==void 0)}function a(E,f,Q,C){const p=Q.filter(S=>T(S));if(Q.filter(S=>eA(S)),p.length===0)return;const D=p.map(S=>S.observable),w=Ai(D).subscribe(async()=>{if(await s(Q)){w.unsubscribe();const _=f.propSubscriptions.indexOf(w);_>-1&&f.propSubscriptions.splice(_,1),g(E,f,C),l(f)}});f.propSubscriptions.push(w)}function g(E,f,Q){var C,p,D,w;(p=(C=f.componentInstance).onMount)==null||p.call(C,f,Q);for(let S in f.directives)(w=(D=f.directives[S]).onMount)==null||w.call(D,f);f.effectMounts.forEach(S=>{f.effectUnmounts.push(S(f))})}async function r(E,f,Q){var p,D;let C=E;for(;(C==null?void 0:C.tag)==="fragment";)C=C.parent;if(f.props.context=C.props.context,f.parent=C,!((p=f.propObservables)!=null&&p.freeze)&&!((D=f.props)!=null&&D.freeze)&&_t(C)&&(f.isFrozen=!0),f.props.dependencies&&Array.isArray(f.props.dependencies)){const w=f.props.dependencies;if(!await s(w)){a(C,f,w,Q);return}}g(C,f,Q)}async function l(E){var f;if(E.props.attach&&(T((f=E.propObservables)==null?void 0:f.attach)?await new Promise(C=>{let p=null;E.propSubscriptions.push(E.propObservables.attach.observable.subscribe(async D=>{const w=(D==null?void 0:D.value)??D;if(!w)throw new Error(`attach in ${E.tag} is undefined or null, add a component`);p&&ht(p),p=w,await I(E,w),C(void 0)}))}):E.props.children.push(E.props.attach)),!!E.props.children)for(let Q of E.props.children)Q&&await I(E,Q)}async function I(E,f){if(eA(f)&&(f=await f),f instanceof X){const Q=f.subscribe(C=>{if(C&&typeof C=="object"&&"elements"in C){const{elements:p,prev:D}=C,w=p.filter(S=>S!==null);if(D){w.forEach(async S=>{const _=E.props.children.indexOf(D.props.key);S instanceof X?await I(E,S):pt(S)&&(r(E,S,_+1),l(S))});return}w.forEach(async S=>{Array.isArray(S)?S.forEach(async _=>{_ instanceof X?await I(E,_):pt(_)&&(r(E,_),l(_))}):S instanceof X?await I(E,S):pt(S)&&(r(E,S),l(S))})}else pt(C)?(r(E,C),l(C)):Array.isArray(C)&&C.forEach(async p=>{p instanceof X?await I(E,p):pt(p)&&(r(E,p),l(p))});n.next(void 0)});E.effectSubscriptions.push(Q)}else pt(f)&&(r(E,f),await l(f))}return i}function Sg(e,t){return QA(e)&&e.dependencies.size==0?e=W(e()):T(e)||(e=W(e)),ta(()=>{let A=[],i=new Map,n=!0;const s=g=>g?pt(g)?g:{tag:"fragment",props:{children:Array.isArray(g)?g:[g]},componentInstance:{},propSubscriptions:[],effectSubscriptions:[],effectMounts:[],effectUnmounts:[],propObservables:{},parent:null,directives:{},destroy(){ht(this)},allElements:new uA,isFrozen:!1}:null,a=g=>Array.isArray(g());return new X(g=>{const r=a(e)?e.observable.subscribe(l=>{if(n){n=!1,A.forEach(h=>h.destroy()),A=[],i.clear();const o=e();o&&o.forEach((h,c)=>{const E=s(t(h,c));E&&(A.push(E),i.set(c,E))}),g.next({elements:[...A]});return}const I=Array.isArray(l)||l&&typeof l=="object"&&!("type"in l);if(l.type==="init"||l.type==="reset"||I){A.forEach(h=>ht(h)),A=[],i.clear();const o=e();o&&o.forEach((h,c)=>{const E=s(t(h,c));E&&(A.push(E),i.set(c,E))})}else if(l.type==="add"&&l.index!==void 0){const o=l.items.map((h,c)=>{const E=s(t(h,l.index+c));return E&&i.set(l.index+c,E),E}).filter(h=>h!==null);A.splice(l.index,0,...o)}else if(l.type==="remove"&&l.index!==void 0)A.splice(l.index,1).forEach(h=>{ht(h),i.delete(l.index)});else if(l.type==="update"&&l.index!==void 0&&l.items.length===1){const o=l.index,h=l.items[0];if(o>=A.length||A[o]===void 0||!i.has(o)){const c=s(t(h,o));c?(A.splice(o,0,c),i.set(o,c)):console.warn(`Element creation returned null for index ${o} during add-like update.`)}else{const c=A[o];ht(c);const E=s(t(h,o));E?(A[o]=E,i.set(o,E)):(A.splice(o,1),i.delete(o))}}g.next({elements:[...A]})}):e.observable.subscribe(l=>{const I=l.key;if(n){n=!1,A.forEach(h=>ht(h)),A=[],i.clear();const o=e();o&&Object.entries(o).forEach(([h,c])=>{const E=s(t(c,h));E&&(A.push(E),i.set(h,E))}),g.next({elements:[...A]});return}if(l.type==="init"||l.type==="reset"){A.forEach(h=>ht(h)),A=[],i.clear();const o=e();o&&Object.entries(o).forEach(([h,c])=>{const E=s(t(c,h));E&&(A.push(E),i.set(h,E))})}else if(l.type==="add"&&l.key&&l.value!==void 0){const o=s(t(l.value,I));o&&(A.push(o),i.set(I,o))}else if(l.type==="remove"&&l.key){const o=A.findIndex(h=>i.get(I)===h);if(o!==-1){const[h]=A.splice(o,1);ht(h),i.delete(I)}}else if(l.type==="update"&&l.key&&l.value!==void 0){const o=A.findIndex(h=>i.get(I)===h);if(o!==-1){const h=A[o];ht(h);const c=s(t(l.value,I));c&&(A[o]=c,i.set(I,c))}}g.next({elements:[...A]})});return()=>{r.unsubscribe(),A.forEach(l=>ht(l))}})})}function bg(e,t,...A){let i=null,n=-1;const s=[];let a=null;const g=l=>T(l)?l:typeof l=="function"?dt(l):W(l);for(const l of A)if(Array.isArray(l))s.push({condition:g(l[0]),elementFn:l[1]});else if(typeof l=="function"){a=l;break}const r=[{condition:g(e),elementFn:t},...s];return new X(l=>{const I=[],o=()=>{let h=-1;for(let f=0;f<r.length;f++){const Q=r[f].condition;if(Q()){h=f;break}}const c=h===-1&&a,E=c?-2:h;if(E!==n)if(i&&(ht(i),i=null),n=E,c){let f=a();eA(f)?ue(f).subscribe(Q=>{i=Q,l.next({type:"init",elements:[Q]})}):(i=f,l.next({type:"init",elements:[i]}))}else if(h>=0){let f=r[h].elementFn();eA(f)?ue(f).subscribe(Q=>{i=Q,l.next({type:"init",elements:[Q]})}):(i=f,l.next({type:"init",elements:[i]}))}else l.next({elements:[]})};return r.forEach(({condition:h})=>{const c=h;I.push(c.observable.subscribe(()=>{o()}))}),o(),()=>{I.forEach(h=>h.unsubscribe()),i&&ht(i)}}).pipe(ea())}class Xs extends Mt{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null,this.joystickControls=null,this.freezeSubscription=null,this.element=null}onInit(t){var a,g,r;this.element=t;const A=((a=t.props.controls)==null?void 0:a.value)??t.props.controls;if(!A)return;this.keyboardControls=new gs,this.keyboardControls.setInputs(A),this.keyboardControls.start();const i=A.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new cs,this.gamepadControls.setInputs(A),this.gamepadControls.start());const n=A.joystick;n!==void 0&&n.enabled!==!1&&(this.joystickControls=new Is,this.joystickControls.setInputs(A),this.joystickControls.start()),_t(t)&&this.stopInputs();const s=((g=t.propObservables)==null?void 0:g.freeze)??((r=t.props)==null?void 0:r.freeze);T(s)&&(this.freezeSubscription=s.observable.subscribe(l=>{l?this.stopInputs():this.listenInputs()}))}onMount(t){}onUpdate(t,A){var n;const i=((n=t.controls)==null?void 0:n.value)??t.controls;i&&(this.keyboardControls&&this.keyboardControls.setInputs(i),this.gamepadControls&&this.gamepadControls.setInputs(i)),t.freeze!==void 0&&this.element&&(_t(this.element)?this.stopInputs():this.listenInputs())}onDestroy(t){this.freezeSubscription&&(this.freezeSubscription.unsubscribe(),this.freezeSubscription=null),this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null),this.joystickControls&&(this.joystickControls.destroy(),this.joystickControls=null),this.element=null}getControl(t){var A;return(A=this.keyboardControls)==null?void 0:A.getControl(t)}getControls(){var t;return((t=this.keyboardControls)==null?void 0:t.getControls())||{}}async applyControl(t,A,i){this.keyboardControls&&await this.keyboardControls.applyControl(t,A),this.gamepadControls&&await this.gamepadControls.applyControl(t,A,i),this.joystickControls&&await this.joystickControls.applyControl(t,A,i)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs(),this.joystickControls&&this.joystickControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs(),this.joystickControls&&this.joystickControls.listenInputs()}get options(){var t;return((t=this.keyboardControls)==null?void 0:t.options)||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}get joystick(){return this.joystickControls}}Rt("controls",Xs);class Zs extends Mt{constructor(){super(...arguments),this.fps=60,this.deltaTime=0,this.frame=0,this.timestamp=0,this.requestedDelay=0,this.lastTimestamp=0,this._stop=!1}onInit(t){var A;this.tick=(A=t.propObservables)==null?void 0:A.tick}onDestroy(){}onMount(t){}onUpdate(t){}nextTick(t){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=EA()-this.timestamp,this.timestamp=t,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~OA(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(t={}){t.maxFps&&(this.maxFps=t.maxFps),t.fps&&(this.fps=t.fps),t.delay&&(this.requestedDelay=t.delay);const A=i=>{As()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(EA())},OA(this.fps)+this.requestedDelay)};if(this.maxFps){const i=OA(this.maxFps);let n=EA(),s=EA();const a=g=>{if(this._stop)return;A(a),n=EA();const r=n-s;r>i&&(s=n-r%i,this.nextTick(g))};A(a)}else{const i=n=>{A(i),this.nextTick(n)};A(i)}return this}stop(){this._stop=!0}}Rt("tick",Zs);const ft=(e,t={})=>{if(T(e))return e();const A={};for(let i in e){const n=e[i];A[i]=xi(n)?W(n):n}for(let i in t)i in A||(A[i]=xi(t[i])?W(t[i]):t[i]);return A},Ri=e=>t=>{const A=T(e)?e():e,i={};for(const n in t){const s=t[n],a=A[n];let g;if(typeof s=="function")_i(n,a,[s]),g=a;else if(Array.isArray(s))_i(n,a,s),g=a;else if(s&&typeof s=="object"){if(s.required&&a===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const r=Array.isArray(s.type)?s.type:[s.type];_i(n,a,r)}if(s.validator&&!s.validator(a,A))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);a===void 0&&"default"in s?g=typeof s.default=="function"?s.default(A):s.default:g=a}i[n]=T(g)?g:W(g)}return{...ft(A),...i}};function _i(e,t,A){if(t==null)return;const i=T(t)?t():t;if(!A.some(s=>s===Number?typeof i=="number":s===String?typeof i=="string":s===Boolean?typeof i=="boolean":s===Function?typeof i=="function":s===Object?typeof i=="object":s===Array?Array.isArray(i):s===null?i===null:i instanceof s))throw new Error(`Invalid prop: type check failed for prop "${e}". Expected ${A.map(s=>s.name).join(" or ")}`)}class zs extends Mt{onInit(t){}onMount(t){this.onUpdate(t.props.viewportFollow,t)}onUpdate(t,A){const{viewport:i}=A.props.context;if(!i)throw ni("ViewportFollow directive requires a Viewport component to be mounted in the same context");if(t)if(t===!0)i.follow(A.componentInstance);else{const n=ft(t,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(A.componentInstance,{speed:n.speed(),acceleration:n.acceleration(),radius:n.radius()})}else t===null&&i.plugins.remove("follow")}onDestroy(t){const{viewportFollow:A}=t.props,{viewport:i}=t.props.context;A&&i.plugins.remove("follow")}}Rt("viewportFollow",zs);var qA=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function xg(e){return e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var nA={};/*!
1
+ var CanvasEngine=function(x,v){"use strict";var Dh=Object.defineProperty;var Cr=x=>{throw TypeError(x)};var vh=(x,v,ot)=>v in x?Dh(x,v,{enumerable:!0,configurable:!0,writable:!0,value:ot}):x[v]=ot;var Fn=(x,v,ot)=>vh(x,typeof v!="symbol"?v+"":v,ot),dr=(x,v,ot)=>v.has(x)||Cr("Cannot "+ot);var At=(x,v,ot)=>(dr(x,v,"read from private field"),ot?ot.call(x):v.get(x)),Ue=(x,v,ot)=>v.has(x)?Cr("Cannot add the same private member more than once"):v instanceof WeakSet?v.add(x):v.set(x,ot),Jt=(x,v,ot,cA)=>(dr(x,v,"write to private field"),cA?cA.call(x,ot):v.set(x,ot),ot);var _e,Fe,Rt;var ot=typeof document<"u"?document.currentScript:null;function cA(A){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(A){for(const e in A)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>A[e]})}}return t.default=A,Object.freeze(t)}function Qr(A,t){for(var e=0;e<t.length;e++){const i=t[e];if(typeof i!="string"&&!Array.isArray(i)){for(const n in i)if(n!=="default"&&!(n in A)){const s=Object.getOwnPropertyDescriptor(i,n);s&&Object.defineProperty(A,n,s.get?s:{enumerable:!0,get:()=>i[n]})}}}return Object.freeze(Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}))}const pr=cA(v);var ZA=function(A,t){return ZA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])},ZA(A,t)};function Ae(A,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");ZA(A,t);function e(){this.constructor=A}A.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function yr(A,t,e,i){function n(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function g(u){try{c(i.next(u))}catch(o){a(o)}}function r(u){try{c(i.throw(u))}catch(o){a(o)}}function c(u){u.done?s(u.value):n(u.value).then(g,r)}c((i=i.apply(A,t||[])).next())})}function Gn(A,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=g(0),a.throw=g(1),a.return=g(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function g(c){return function(u){return r([c,u])}}function r(c){if(i)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(e=0)),e;)try{if(i=1,n&&(s=c[0]&2?n.return:c[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,c[1])).done)return s;switch(n=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return e.label++,{value:c[1],done:!1};case 5:e.label++,n=c[1],c=[0];continue;case 7:c=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){e.label=c[1];break}if(c[0]===6&&e.label<s[1]){e.label=s[1],s=c;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(c);break}s[2]&&e.ops.pop(),e.trys.pop();continue}c=t.call(A,e)}catch(u){c=[6,u],n=0}finally{i=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function fe(A){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&A[t],i=0;if(e)return e.call(A);if(A&&typeof A.length=="number")return{next:function(){return A&&i>=A.length&&(A=void 0),{value:A&&A[i++],done:!A}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Te(A,t){var e=typeof Symbol=="function"&&A[Symbol.iterator];if(!e)return A;var i=e.call(A),n,s=[],a;try{for(;(t===void 0||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(g){a={error:g}}finally{try{n&&!n.done&&(e=i.return)&&e.call(i)}finally{if(a)throw a.error}}return s}function Oe(A,t,e){if(e||arguments.length===2)for(var i=0,n=t.length,s;i<n;i++)(s||!(i in t))&&(s||(s=Array.prototype.slice.call(t,0,i)),s[i]=t[i]);return A.concat(s||Array.prototype.slice.call(t))}function Ee(A){return this instanceof Ee?(this.v=A,this):new Ee(A)}function wr(A,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=e.apply(A,t||[]),n,s=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),g("next"),g("throw"),g("return",a),n[Symbol.asyncIterator]=function(){return this},n;function a(h){return function(I){return Promise.resolve(I).then(h,o)}}function g(h,I){i[h]&&(n[h]=function(E){return new Promise(function(d,C){s.push([h,E,d,C])>1||r(h,E)})},I&&(n[h]=I(n[h])))}function r(h,I){try{c(i[h](I))}catch(E){l(s[0][3],E)}}function c(h){h.value instanceof Ee?Promise.resolve(h.value.v).then(u,o):l(s[0][2],h)}function u(h){r("next",h)}function o(h){r("throw",h)}function l(h,I){h(I),s.shift(),s.length&&r(s[0][0],s[0][1])}}function mr(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=A[Symbol.asyncIterator],e;return t?t.call(A):(A=typeof fe=="function"?fe(A):A[Symbol.iterator](),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=A[s]&&function(a){return new Promise(function(g,r){a=A[s](a),n(g,r,a.done,a.value)})}}function n(s,a,g,r){Promise.resolve(r).then(function(c){s({value:c,done:g})},a)}}typeof SuppressedError=="function"&&SuppressedError;function it(A){return typeof A=="function"}function Nn(A){var t=function(i){Error.call(i),i.stack=new Error().stack},e=A(t);return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var zA=Nn(function(A){return function(e){A(this),this.message=e?e.length+` errors occurred during unsubscription:
2
+ `+e.map(function(i,n){return n+1+") "+i.toString()}).join(`
3
+ `):"",this.name="UnsubscriptionError",this.errors=e}});function $A(A,t){if(A){var e=A.indexOf(t);0<=e&&A.splice(e,1)}}var hA=function(){function A(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return A.prototype.unsubscribe=function(){var t,e,i,n,s;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var g=fe(a),r=g.next();!r.done;r=g.next()){var c=r.value;c.remove(this)}}catch(E){t={error:E}}finally{try{r&&!r.done&&(e=g.return)&&e.call(g)}finally{if(t)throw t.error}}else a.remove(this);var u=this.initialTeardown;if(it(u))try{u()}catch(E){s=E instanceof zA?E.errors:[E]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var l=fe(o),h=l.next();!h.done;h=l.next()){var I=h.value;try{Un(I)}catch(E){s=s??[],E instanceof zA?s=Oe(Oe([],Te(s)),Te(E.errors)):s.push(E)}}}catch(E){i={error:E}}finally{try{h&&!h.done&&(n=l.return)&&n.call(l)}finally{if(i)throw i.error}}}if(s)throw new zA(s)}},A.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)Un(t);else{if(t instanceof A){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},A.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},A.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},A.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&$A(e,t)},A.prototype.remove=function(t){var e=this._finalizers;e&&$A(e,t),t instanceof A&&t._removeParent(this)},A.EMPTY=function(){var t=new A;return t.closed=!0,t}(),A}(),Hn=hA.EMPTY;function Ln(A){return A instanceof hA||A&&"closed"in A&&it(A.remove)&&it(A.add)&&it(A.unsubscribe)}function Un(A){it(A)?A():A.unsubscribe()}var Dr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Tn={setTimeout:function(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];return setTimeout.apply(void 0,Oe([A,t],Te(e)))},clearTimeout:function(A){var t=Tn.delegate;return((t==null?void 0:t.clearTimeout)||clearTimeout)(A)},delegate:void 0};function On(A){Tn.setTimeout(function(){throw A})}function Jn(){}function uA(A){A()}var ti=function(A){Ae(t,A);function t(e){var i=A.call(this)||this;return i.isStopped=!1,e?(i.destination=e,Ln(e)&&e.add(i)):i.destination=Sr,i}return t.create=function(e,i,n){return new Je(e,i,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,A.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(hA),vr=function(){function A(t){this.partialObserver=t}return A.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(i){IA(i)}},A.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(i){IA(i)}else IA(t)},A.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){IA(e)}},A}(),Je=function(A){Ae(t,A);function t(e,i,n){var s=A.call(this)||this,a;return it(e)||!e?a={next:e??void 0,error:i??void 0,complete:n??void 0}:a=e,s.destination=new vr(a),s}return t}(ti);function IA(A){On(A)}function br(A){throw A}var Sr={closed:!0,next:Jn,error:br,complete:Jn},ei=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Ai(A){return A}function xr(A){return A.length===0?Ai:A.length===1?A[0]:function(e){return A.reduce(function(i,n){return n(i)},e)}}var $=function(){function A(t){t&&(this._subscribe=t)}return A.prototype.lift=function(t){var e=new A;return e.source=this,e.operator=t,e},A.prototype.subscribe=function(t,e,i){var n=this,s=Mr(t)?t:new Je(t,e,i);return uA(function(){var a=n,g=a.operator,r=a.source;s.add(g?g.call(s,r):r?n._subscribe(s):n._trySubscribe(s))}),s},A.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},A.prototype.forEach=function(t,e){var i=this;return e=Pn(e),new e(function(n,s){var a=new Je({next:function(g){try{t(g)}catch(r){s(r),a.unsubscribe()}},error:s,complete:n});i.subscribe(a)})},A.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},A.prototype[ei]=function(){return this},A.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return xr(t)(this)},A.prototype.toPromise=function(t){var e=this;return t=Pn(t),new t(function(i,n){var s;e.subscribe(function(a){return s=a},function(a){return n(a)},function(){return i(s)})})},A.create=function(t){return new A(t)},A}();function Pn(A){var t;return(t=A??Dr.Promise)!==null&&t!==void 0?t:Promise}function kr(A){return A&&it(A.next)&&it(A.error)&&it(A.complete)}function Mr(A){return A&&A instanceof ti||kr(A)&&Ln(A)}function Rr(A){return it(A==null?void 0:A.lift)}function Ce(A){return function(t){if(Rr(t))return t.lift(function(e){try{return A(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function BA(A,t,e,i,n){return new _r(A,t,e,i,n)}var _r=function(A){Ae(t,A);function t(e,i,n,s,a,g){var r=A.call(this,e)||this;return r.onFinalize=a,r.shouldUnsubscribe=g,r._next=i?function(c){try{i(c)}catch(u){e.error(u)}}:A.prototype._next,r._error=s?function(c){try{s(c)}catch(u){e.error(u)}finally{this.unsubscribe()}}:A.prototype._error,r._complete=n?function(){try{n()}catch(c){e.error(c)}finally{this.unsubscribe()}}:A.prototype._complete,r}return t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;A.prototype.unsubscribe.call(this),!i&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t}(ti),Fr=Nn(function(A){return function(){A(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),ie=function(A){Ae(t,A);function t(){var e=A.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return t.prototype.lift=function(e){var i=new Kn(this,this);return i.operator=e,i},t.prototype._throwIfClosed=function(){if(this.closed)throw new Fr},t.prototype.next=function(e){var i=this;uA(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var a=fe(i.currentObservers),g=a.next();!g.done;g=a.next()){var r=g.value;r.next(e)}}catch(c){n={error:c}}finally{try{g&&!g.done&&(s=a.return)&&s.call(a)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var i=this;uA(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=e;for(var n=i.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;uA(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var i=e.observers;i.length;)i.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),A.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var i=this,n=this,s=n.hasError,a=n.isStopped,g=n.observers;return s||a?Hn:(this.currentObservers=null,g.push(e),new hA(function(){i.currentObservers=null,$A(g,e)}))},t.prototype._checkFinalizedStatuses=function(e){var i=this,n=i.hasError,s=i.thrownError,a=i.isStopped;n?e.error(s):a&&e.complete()},t.prototype.asObservable=function(){var e=new $;return e.source=this,e},t.create=function(e,i){return new Kn(e,i)},t}($),Kn=function(A){Ae(t,A);function t(e,i){var n=A.call(this)||this;return n.destination=e,n.source=i,n}return t.prototype.next=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,e)},t.prototype.error=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,e)},t.prototype.complete=function(){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||i===void 0||i.call(e)},t.prototype._subscribe=function(e){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(e))!==null&&n!==void 0?n:Hn},t}(ie),ne=function(A){Ae(t,A);function t(e){var i=A.call(this)||this;return i._value=e,i}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var i=A.prototype._subscribe.call(this,e);return!i.closed&&e.next(this._value),i},t.prototype.getValue=function(){var e=this,i=e.hasError,n=e.thrownError,s=e._value;if(i)throw n;return this._throwIfClosed(),s},t.prototype.next=function(e){A.prototype.next.call(this,this._value=e)},t}(ie),Yn={now:function(){return(Yn.delegate||Date).now()},delegate:void 0},Gr=function(A){Ae(t,A);function t(e,i,n){e===void 0&&(e=1/0),i===void 0&&(i=1/0),n===void 0&&(n=Yn);var s=A.call(this)||this;return s._bufferSize=e,s._windowTime=i,s._timestampProvider=n,s._buffer=[],s._infiniteTimeWindow=!0,s._infiniteTimeWindow=i===1/0,s._bufferSize=Math.max(1,e),s._windowTime=Math.max(1,i),s}return t.prototype.next=function(e){var i=this,n=i.isStopped,s=i._buffer,a=i._infiniteTimeWindow,g=i._timestampProvider,r=i._windowTime;n||(s.push(e),!a&&s.push(g.now()+r)),this._trimBuffer(),A.prototype.next.call(this,e)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var i=this._innerSubscribe(e),n=this,s=n._infiniteTimeWindow,a=n._buffer,g=a.slice(),r=0;r<g.length&&!e.closed;r+=s?1:2)e.next(g[r]);return this._checkFinalizedStatuses(e),i},t.prototype._trimBuffer=function(){var e=this,i=e._bufferSize,n=e._timestampProvider,s=e._buffer,a=e._infiniteTimeWindow,g=(a?1:2)*i;if(i<1/0&&g<s.length&&s.splice(0,s.length-g),!a){for(var r=n.now(),c=0,u=1;u<s.length&&s[u]<=r;u+=2)c=u;c&&s.splice(0,c+1)}},t}(ie);function Nr(A){return A&&it(A.schedule)}function Wn(A){return A[A.length-1]}function Hr(A){return it(Wn(A))?A.pop():void 0}function Lr(A){return Nr(Wn(A))?A.pop():void 0}var jn=function(A){return A&&typeof A.length=="number"&&typeof A!="function"};function Vn(A){return it(A==null?void 0:A.then)}function qn(A){return it(A[ei])}function Xn(A){return Symbol.asyncIterator&&it(A==null?void 0:A[Symbol.asyncIterator])}function Zn(A){return new TypeError("You provided "+(A!==null&&typeof A=="object"?"an invalid object":"'"+A+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ur(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var zn=Ur();function $n(A){return it(A==null?void 0:A[zn])}function ts(A){return wr(this,arguments,function(){var e,i,n,s;return Gn(this,function(a){switch(a.label){case 0:e=A.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Ee(e.read())];case 3:return i=a.sent(),n=i.value,s=i.done,s?[4,Ee(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Ee(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function es(A){return it(A==null?void 0:A.getReader)}function de(A){if(A instanceof $)return A;if(A!=null){if(qn(A))return Tr(A);if(jn(A))return Or(A);if(Vn(A))return Jr(A);if(Xn(A))return As(A);if($n(A))return Pr(A);if(es(A))return Kr(A)}throw Zn(A)}function Tr(A){return new $(function(t){var e=A[ei]();if(it(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Or(A){return new $(function(t){for(var e=0;e<A.length&&!t.closed;e++)t.next(A[e]);t.complete()})}function Jr(A){return new $(function(t){A.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,On)})}function Pr(A){return new $(function(t){var e,i;try{for(var n=fe(A),s=n.next();!s.done;s=n.next()){var a=s.value;if(t.next(a),t.closed)return}}catch(g){e={error:g}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(e)throw e.error}}t.complete()})}function As(A){return new $(function(t){Yr(A,t).catch(function(e){return t.error(e)})})}function Kr(A){return As(ts(A))}function Yr(A,t){var e,i,n,s;return yr(this,void 0,void 0,function(){var a,g;return Gn(this,function(r){switch(r.label){case 0:r.trys.push([0,5,6,11]),e=mr(A),r.label=1;case 1:return[4,e.next()];case 2:if(i=r.sent(),!!i.done)return[3,4];if(a=i.value,t.next(a),t.closed)return[2];r.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return g=r.sent(),n={error:g},[3,11];case 6:return r.trys.push([6,,9,10]),i&&!i.done&&(s=e.return)?[4,s.call(e)]:[3,8];case 7:r.sent(),r.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Xt(A,t,e,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=t.schedule(function(){e(),n?A.add(this.schedule(null,i)):this.unsubscribe()},i);if(A.add(s),!n)return s}function is(A,t){return t===void 0&&(t=0),Ce(function(e,i){e.subscribe(BA(i,function(n){return Xt(i,A,function(){return i.next(n)},t)},function(){return Xt(i,A,function(){return i.complete()},t)},function(n){return Xt(i,A,function(){return i.error(n)},t)}))})}function ns(A,t){return t===void 0&&(t=0),Ce(function(e,i){i.add(A.schedule(function(){return e.subscribe(i)},t))})}function Wr(A,t){return de(A).pipe(ns(t),is(t))}function jr(A,t){return de(A).pipe(ns(t),is(t))}function Vr(A,t){return new $(function(e){var i=0;return t.schedule(function(){i===A.length?e.complete():(e.next(A[i++]),e.closed||this.schedule())})})}function qr(A,t){return new $(function(e){var i;return Xt(e,t,function(){i=A[zn](),Xt(e,t,function(){var n,s,a;try{n=i.next(),s=n.value,a=n.done}catch(g){e.error(g);return}a?e.complete():e.next(s)},0,!0)}),function(){return it(i==null?void 0:i.return)&&i.return()}})}function ss(A,t){if(!A)throw new Error("Iterable cannot be null");return new $(function(e){Xt(e,t,function(){var i=A[Symbol.asyncIterator]();Xt(e,t,function(){i.next().then(function(n){n.done?e.complete():e.next(n.value)})},0,!0)})})}function Xr(A,t){return ss(ts(A),t)}function Zr(A,t){if(A!=null){if(qn(A))return Wr(A,t);if(jn(A))return Vr(A,t);if(Vn(A))return jr(A,t);if(Xn(A))return ss(A,t);if($n(A))return qr(A,t);if(es(A))return Xr(A,t)}throw Zn(A)}function fA(A,t){return t?Zr(A,t):de(A)}function zr(A){return!!A&&(A instanceof $||it(A.lift)&&it(A.subscribe))}function ii(A,t){return Ce(function(e,i){var n=0;e.subscribe(BA(i,function(s){i.next(A.call(t,s,n++))}))})}var $r=Array.isArray;function ta(A,t){return $r(t)?A.apply(void 0,Oe([],Te(t))):A(t)}function ea(A){return ii(function(t){return ta(A,t)})}var Aa=Array.isArray,ia=Object.getPrototypeOf,na=Object.prototype,sa=Object.keys;function oa(A){if(A.length===1){var t=A[0];if(Aa(t))return{args:t,keys:null};if(ra(t)){var e=sa(t);return{args:e.map(function(i){return t[i]}),keys:e}}}return{args:A,keys:null}}function ra(A){return A&&typeof A=="object"&&ia(A)===na}function aa(A,t){return A.reduce(function(e,i,n){return e[i]=t[n],e},{})}function ni(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];var e=Lr(A),i=Hr(A),n=oa(A),s=n.args,a=n.keys;if(s.length===0)return fA([],e);var g=new $(ga(s,e,a?function(r){return aa(a,r)}:Ai));return i?g.pipe(ea(i)):g}function ga(A,t,e){return e===void 0&&(e=Ai),function(i){os(t,function(){for(var n=A.length,s=new Array(n),a=n,g=n,r=function(u){os(t,function(){var o=fA(A[u],t),l=!1;o.subscribe(BA(i,function(h){s[u]=h,l||(l=!0,g--),g||i.next(e(s.slice()))},function(){--a||i.complete()}))},i)},c=0;c<n;c++)r(c)},i)}}function os(A,t,e){A?Xt(e,A,t):t()}function la(A){return new $(function(t){de(A()).subscribe(t)})}function Pe(A,t){return Ce(function(e,i){var n=0;e.subscribe(BA(i,function(s){return A.call(t,s,n++)&&i.next(s)}))})}function ca(A){return Ce(function(t,e){try{t.subscribe(e)}finally{e.add(A)}})}function rs(A){A===void 0&&(A={});var t=A.connector,e=t===void 0?function(){return new ie}:t,i=A.resetOnError,n=i===void 0?!0:i,s=A.resetOnComplete,a=s===void 0?!0:s,g=A.resetOnRefCountZero,r=g===void 0?!0:g;return function(c){var u,o,l,h=0,I=!1,E=!1,d=function(){o==null||o.unsubscribe(),o=void 0},C=function(){d(),u=l=void 0,I=E=!1},p=function(){var D=u;C(),D==null||D.unsubscribe()};return Ce(function(D,w){h++,!E&&!I&&d();var b=l=l??e();w.add(function(){h--,h===0&&!E&&!I&&(o=si(p,r))}),b.subscribe(w),!u&&h>0&&(u=new Je({next:function(_){return b.next(_)},error:function(_){E=!0,d(),o=si(C,n,_),b.error(_)},complete:function(){I=!0,d(),o=si(C,a),b.complete()}}),de(D).subscribe(u))})(c)}}function si(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];if(t===!0){A();return}if(t!==!1){var n=new Je({next:function(){n.unsubscribe(),A()}});return de(t.apply(void 0,Oe([],Te(e)))).subscribe(n)}}function ha(A,t,e){var i,n,s,a,g=!1;return typeof A=="object"?(i=A.bufferSize,a=i===void 0?1/0:i,n=A.windowTime,t=n===void 0?1/0:n,s=A.refCount,g=s===void 0?!1:s,e=A.scheduler):a=A??1/0,rs({connector:function(){return new Gr(a,t,e)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:g})}function as(){return typeof window<"u"}function Qe(){return typeof performance<"u"?performance.now():Date.now()}function Ke(A){return 1e3/A}function se(A){return A&&A instanceof Promise}function EA(A,t){if(A.length!==t.length)return!1;for(let e=0;e<A.length;e++){const i=A[e],n=t[e];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!EA(i,n))return!1}else if(!gs(i,n))return!1}else if(i!==n)return!1}return!0}function gs(A,t){const e=Object.keys(A),i=Object.keys(t);if(e.length!==i.length)return!1;for(let n of e)if(!t.hasOwnProperty(n)||!ua(A[n],t[n]))return!1;return!0}function ua(A,t){return A===t?!0:typeof A!=typeof t?!1:typeof A=="object"&&A!==null?Array.isArray(A)?Array.isArray(t)&&EA(A,t):gs(A,t):!1}function ls(A){return{}.toString.call(A)==="[object Function]"}function CA(A){return typeof A=="object"&&A!=null&&!Array.isArray(A)&&A.constructor===Object}function cs(A){return A instanceof $}function oi(A,t,e,i=!1){if(Object(A)!==A)return A;typeof t=="string"&&(t=t.split("."));let n=t.length;if(!n)return A;let s=A;for(let a=0;a<n-1;a++){let g=t[a],r=t[a+1],c=!isNaN(Number(r))&&isFinite(Number(r));(!s[g]||typeof s[g]!="object")&&(s[g]=c&&!i?[]:{}),s=s[g]}return s[t[n-1]]=e,A}function Ia(A,t){const e=t.split(".");let i=A;for(let n of e){if(i[n]===void 0)return;i=i[n]}return i}function Ba(A){console.log(A)}function ri(A){console.error(A)}function oe(A,t){typeof t=="number"?A.set(t):Array.isArray(t)?A.set(t[0],t[1]):CA(t)&&"value"in t?A.set(t.value.x,t.value.y):A.set(t.x,t.y)}function hs(A,t,e,i){const n=A-e,s=t-i;return Math.sqrt(n*n+s*s)}const fa=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:EA,calculateDistance:hs,error:ri,fps2ms:Ke,get:Ia,isBrowser:as,isFunction:ls,isObject:CA,isObservable:cs,isPromise:se,log:Ba,preciseNow:Qe,set:oi,setObservablePoint:oe},Symbol.toStringTag,{value:"Module"}));class dA{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},Ke(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(t,e,i,n){Array.isArray(t)||(t=[t]);const s=Object.assign({repeat:!1},i);t.forEach(a=>{this.boundKeys[a]={actionName:e,options:s,parameters:n}})}applyInput(t){const e=this.boundKeys[t];if(!e)return;const{repeat:i,keyDown:n}=e.options;if(n){let s=e.parameters;typeof s=="function"&&(s=s()),n(e)}}getControl(t){return this.boundKeys[t]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(t){if(t){this.boundKeys={};for(let e in t){const i=t[e],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let a of s)this.bindKey(a,e,i)}this._controlsOptions=t}}get options(){return this._controlsOptions}}var us=(A=>(A.Break="break",A.Backspace="backspace",A.Tab="tab",A.Clear="clear",A.Enter="enter",A.Shift="shift",A.Ctrl="ctrl",A.Alt="alt",A.Pause="pause/break",A.CapsLock="caps lock",A.Escape="escape",A.Conversion="conversion",A.NonConversion="non-conversion",A.Space="space",A.PageUp="page up",A.PageDown="page down",A.End="end",A.Home="home",A[A.Left=4]="Left",A[A.Up=1]="Up",A[A.Right=2]="Right",A[A.Down=3]="Down",A.Select="select",A.Print="print",A.Execute="execute",A.PrintScreen="Print Screen",A.Insert="insert",A.Delete="delete",A.Zero="0",A.One="1",A.Two="2",A.Three="3",A.Four="4",A.Five="5",A.Six="6",A.Seven="7",A.Height="8",A.Nine="9",A.Equal="=",A.Semicolon="semicolon (firefox), equals",A.LessThan="<",A.Equals="equals (firefox)",A.Beta="ß",A.At="@",A.A="a",A.B="b",A.C="c",A.D="d",A.E="e",A.F="f",A.G="g",A.H="h",A.I="i",A.J="j",A.K="k",A.L="l",A.M="m",A.N="n",A.O="o",A.P="p",A.Q="q",A.R="r",A.S="s",A.T="t",A.U="u",A.V="v",A.W="w",A.X="x",A.Y="y",A.Z="z",A.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",A.NumPad0="numpad 0",A.NumPad1="numpad 1",A.NumPad2="numpad 2",A.NumPad3="numpad 3",A.NumPad4="numpad 4",A.NumPad5="numpad 5",A.NumPad6="numpad 6",A.NumPad7="numpad 7",A.NumPad8="numpad 8",A.NumPad9="numpad 9",A.Multiply="multiply",A.Add="add",A.Subtract="subtract",A.DecimalPoint="decimal point",A.Divide="divide",A.F1="f1",A.F2="f2",A.F3="f3",A.F4="f4",A.F5="f5",A.F6="f6",A.F7="f7",A.F8="f8",A.F9="f9",A.F10="f10",A.F11="f11",A.F12="f12",A.F13="f13",A.F14="f14",A.F15="f15",A.F16="f16",A.F17="f17",A.F18="f18",A.F19="f19",A.F20="f20",A.F21="f21",A.F22="f22",A.F23="f23",A.F24="f24",A.NumLock="num lock",A.ScrollLock="scroll lock",A.CircumflexAccent="^",A.ExclamationMark="!",A.Hash="#",A.Dollar="$",A.AccentU="ù",A.PageBackward="page backward",A.PageForWard="page forward",A.Star="*",A.DecreaseVolume="decrease volume level",A.IncreaseVolume="increase volume level",A.Next="next",A.Previous="previous",A.Stop="stop",A.PlayPause="play/pause",A.Email="e-mail",A.SemiColon="semi-colon / ñ",A.EqualSign="equal sign",A.Comma="comma",A.Dash="dash",A.FowardSlach="forward slash / ç",A.GraveAccent="grave accent / ñ / æ",A.OpenBracket="open bracket",A.BackSlach="back slash",A.CloseBracket="close bracket / å",A.SingleQuote="single quote / ø",A.BackQuote="`",A.Altgr="altgr",A))(us||{});const Is={3:"break",8:"backspace",9:"tab",12:"clear",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause/break",20:"caps lock",27:"escape",28:"conversion",29:"non-conversion",32:"space",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",41:"select",42:"print",43:"execute",44:"Print Screen",45:"insert",46:"delete",48:"n0",49:"n1",50:"n2",51:"n3",52:"n4",53:"n5",54:"n6",55:"n7",56:"n8",57:"n9",58:":",59:"semicolon (firefox), equals",60:"<",61:"equals (firefox)",63:"ß",64:"@",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",91:"Windows Key / Left ⌘ / Chromebook Search key",92:"right window key",93:"Windows Menu / Right ⌘",96:"numpad 0",97:"numpad 1",98:"numpad 2",99:"numpad 3",100:"numpad 4",101:"numpad 5",102:"numpad 6",103:"numpad 7",104:"numpad 8",105:"numpad 9",106:"multiply",107:"add",108:"numpad period (firefox)",109:"subtract",110:"decimal point",111:"divide",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",124:"f13",125:"f14",126:"f15",127:"f16",128:"f17",129:"f18",130:"f19",131:"f20",132:"f21",133:"f22",134:"f23",135:"f24",144:"num lock",145:"scroll lock",160:"^",161:"!",163:"#",164:"$",165:"ù",166:"page backward",167:"page forward",169:"closing paren (AZERTY)",170:"*",171:"~ + * key",173:"minus (firefox), mute/unmute",174:"decrease volume level",175:"increase volume level",176:"next",177:"previous",178:"stop",179:"play/pause",180:"e-mail",181:"mute/unmute (firefox)",182:"decrease volume level (firefox)",183:"increase volume level (firefox)",186:"semi-colon / ñ",187:"equal sign",188:"comma",189:"dash",190:"period",191:"forward slash / ç",192:"grave accent / ñ / æ",193:"?, / or °",194:"numpad period (chrome)",219:"open bracket",220:"back slash",221:"close bracket / å",222:"single quote / ø",223:"`",224:"left or right ⌘ key (firefox)",225:"altgr",226:"< /git >",230:"GNOME Compose Key",231:"ç",233:"XF86Forward",234:"XF86Back",240:"alphanumeric",242:"hiragana/katakana",243:"half-width/full-width",244:"kanji",255:"toggle touchpad"},Bs=(A=>{const t={};for(let e in A){const i=A[e];t[i]=e}return t})(Is);class fs extends dA{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.addEventListener("keyup",t=>{this.onKeyChange(t,!1)})}cleanup(){document.removeEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.removeEventListener("keyup",t=>{this.onKeyChange(t,!1)})}preStep(){if(this.stop)return;const t=this.getDirection();if(t!=="none"){const e=this.boundKeys[t];if(e){const{keyDown:i}=e.options;i&&this.applyInput(t)}}else{const e=Object.keys(this.boundKeys);for(let i of e)this.applyInput(i)}}applyInput(t){const e=this.keyState[t];if(!e)return;const{isDown:i,count:n}=e;if(i){const s=this.boundKeys[t];if(!s)return;const{repeat:a,keyDown:g}=s.options;if(a||n==0){let r=s.parameters;typeof r=="function"&&(r=r()),g&&g(s),this.keyState[t].count++}}}applyKeyDown(t){const e=Bs[t],i=new Event("keydown");i.keyCode=e,this.onKeyChange(i,!0)}applyKeyUp(t){const e=Bs[t],i=new Event("keyup");i.keyCode=e,this.onKeyChange(i,!1)}applyKeyPress(t){return new Promise(e=>{this.applyKeyDown(t),setTimeout(()=>{this.applyKeyUp(t),e()},200)})}onKeyChange(t,e){t=t||window.event;const i=Is[t.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=e,!e){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=e?t.keyCode:null}i&&this.updateDirectionState(i,e)}updateDirectionState(t,e){switch(t){case"up":this.directionState.up=e;break;case"down":this.directionState.down=e;break;case"left":this.directionState.left=e;break;case"right":this.directionState.right=e;break}}getDirection(){const{up:t,down:e,left:i,right:n}=this.directionState;return t&&i?"up_left":t&&n?"up_right":e&&i?"down_left":e&&n?"down_right":t?"up":e?"down":i?"left":n?"right":"none"}async applyControl(t,e){const i=this._controlsOptions[t];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;e===void 0?await this.applyKeyPress(n):e?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var bt={events:{},publish:function(t,e){this.events.hasOwnProperty(t)&&this.events[t].forEach(function(i){return i(e)})},subscribe:function(t,e){return this.events.hasOwnProperty(t)||(this.events[t]=[]),this.events[t].push(e),{unsubscribe:(function(){var i=this.events[t].indexOf(e);i!==-1&&this.events[t].splice(i,1)}).bind(this)}}},z={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{NATIVE:null,ALIAS:"button_press"},BUTTON_RELEASE:{NATIVE:null,ALIAS:"button_release"},AXIS_MOVEMENT:{NATIVE:null,ALIAS:"axis_move"}},pe={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},QA={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},Ea={button_0:0,button_1:1,button_2:2,button_3:3,button_4:4,button_5:5,button_6:6,button_7:7,button_8:8,button_9:9,button_10:10,button_11:11,button_12:12,button_13:13,button_14:14,button_15:15,button_16:16,button_17:17},Ca=.8,Es=function(A){console.warn&&typeof console.warn=="function"?console.warn(A):console.log(A)},da=function(A,t){var e=[];return Object.keys(t).forEach(function(i){(t[i]===A||Array.isArray(t[i])&&t[i].indexOf(A)!==-1)&&e.push(i)}),e},Qa=function(A){return!!A&&!!A.type&&!!A.playEffect&&typeof A.playEffect=="function"||!1},pa=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},dt={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:Ca},remove:function(t){return delete this.instances[t]},on:function(t,e){switch(t){case z.CONNECT.ALIAS:return bt.subscribe(z.CONNECT.ALIAS,e);case z.DISCONNECT.ALIAS:return bt.subscribe(z.DISCONNECT.ALIAS,e);case z.BUTTON_PRESS.ALIAS:return bt.subscribe(z.BUTTON_PRESS.ALIAS,e);case z.BUTTON_RELEASE.ALIAS:return bt.subscribe(z.BUTTON_RELEASE.ALIAS,e);case z.AXIS_MOVEMENT.ALIAS:return bt.subscribe(z.AXIS_MOVEMENT.ALIAS,e)}},vibrate:function(t,e){var i=t.vibrationActuator,n=e||this.settings.vibration;if(Qa(i)){var s=i.type;return t.vibrationActuator.playEffect(s,n)}Es("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(t){var e=t.axisMovementThreshold,i=t.vibration,n=t.customButtonMapping,s=parseFloat(e);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(t,e){return bt.publish(t,e)}},ya=function(A){A.buttons.forEach(function(t,e){var i=dt.settings.customButtonMapping,n=i||Ea,s=da(e,n),a=dt.buttonEvents;s.length&&s.forEach(function(g){t.pressed?(a.joypad[A.index][g]||(a.joypad[A.index][g]={pressed:!0,hold:!1,released:!1}),a.joypad[A.index][g].button=t,a.joypad[A.index][g].index=e,a.joypad[A.index][g].gamepad=A):!t.pressed&&a.joypad[A.index][g]&&(a.joypad[A.index][g].released=!0,a.joypad[A.index][g].hold=!1)})})},wa=function(A){var t=function(a){return new CustomEvent(z.AXIS_MOVEMENT.ALIAS,{detail:a})},e=dt.settings.axisMovementThreshold,i=A.axes,n=i.length,s=n/2;i.forEach(function(a,g){if(Math.abs(a)>e){var r=null,c=null,u=a;r=g<s?pe.LEFT.NAME:pe.RIGHT.NAME,(g===pe.LEFT.AXES.X||g===pe.RIGHT.AXES.X)&&(c=a<0?QA.LEFT:QA.RIGHT),(g===pe.LEFT.AXES.Y||g===pe.RIGHT.AXES.Y)&&(c=a<0?QA.TOP:QA.BOTTOM);var o={gamepad:A,totalSticks:s,stickMoved:r,directionOfMovement:c,axisMovementValue:u,axis:g};return window.dispatchEvent(t(o))}})},ma=function(A,t){t[A].pressed?(Cs(z.BUTTON_PRESS.ALIAS,t,A),t[A].pressed=!1,t[A].hold=!0,t[A].last_event=z.BUTTON_PRESS.ALIAS):t[A].hold||t[A].released&&t[A].last_event===z.BUTTON_PRESS.ALIAS&&(Cs(z.BUTTON_RELEASE.ALIAS,t,A),delete t[A])},ai={id:null,start:function(){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame,e=dt.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(e.joypad[s]||(e.joypad[s]={}),dt.instances[s]=n,ya(n),wa(n))}),e.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){ma(s,n)})}),this.id=t(this.start.bind(this))},stop:function(t){var e=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return e(t)}},Da=function(){window.addEventListener(z.CONNECT.NATIVE,function(A){if(bt.publish(z.CONNECT.ALIAS,A),!dt.loopStarted)return dt.loopStarted=!0,ai.start()}),window.addEventListener(z.DISCONNECT.NATIVE,function(A){if(bt.publish(z.DISCONNECT.ALIAS,A),dt.remove(A.gamepad.index),dt.buttonEvents.joypad[A.gamepad.index]=null,!Object.keys(dt.instances).length)return dt.loopStarted=!1,ai.stop(ai.id)}),window.addEventListener(z.BUTTON_PRESS.ALIAS,function(A){return bt.publish(z.BUTTON_PRESS.ALIAS,A)}),window.addEventListener(z.BUTTON_RELEASE.ALIAS,function(A){return bt.publish(z.BUTTON_RELEASE.ALIAS,A)}),window.addEventListener(z.AXIS_MOVEMENT.ALIAS,function(A){return bt.publish(z.AXIS_MOVEMENT.ALIAS,A)})},Cs=function(A,t,e){var i=function(r){return new CustomEvent(A,{detail:r})},n=t[e],s=n.index,a=n.gamepad,g={buttonName:e,button:t[e].button,index:s,gamepad:a};window.dispatchEvent(i(g))};Da(),pa()?window.joypad=dt:(window.joypad={},Es("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const gi={button_0:"action",button_1:"back",button_9:"back"},li={top:"up",bottom:"down",left:"left",right:"right"};class ds extends dA{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:gi,axisMapping:li,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[],this.currentPower=0}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null)}initGamepad(){if(typeof window>"u")return;const t=window.joypad;if(!t){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=t,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",e=>this.handleGamepadButtonPress(e)),this.joypad.on("axis_move",e=>this.handleGamepadAxisMove(e))}handleGamepadConnect(){!this.gamepadEnabled||!this.gamepadConfig.enabled||(this.gamepadMoveInterval=setInterval(()=>{this.processGamepadMovement()},this.gamepadConfig.moveInterval||400),this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!0),this.connectCallbacks.forEach(t=>t()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.currentPower=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(t=>t())}handleGamepadButtonPress(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:e}=t.detail,n=(this.gamepadConfig.buttonMapping||gi)[e];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(t){var s,a;if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let e=t.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||li;if(e==="top"?e=i.top||"up":e==="bottom"?e=i.bottom||"down":e==="left"?e=i.left||"left":e==="right"&&(e=i.right||"right"),this.joypad&&this.joypad.instances){const g=Object.values(this.joypad.instances);if(g.length>0){const r=g[0],c=((s=r.axes)==null?void 0:s[0])||0,u=((a=r.axes)==null?void 0:a[1])||0;this.currentPower=Math.min(1,Math.sqrt(c*c+u*u))}}this.gamepadDirections={[e]:!0};const n=["up","down","left","right"];for(const g of n)this.gamepadDirections[g]||this.applyControl(g,!1).catch(()=>{});this.processGamepadMovement()}processGamepadMovement(){var t,e;if(this.gamepadMoving&&!this.stop){if(this.joypad&&this.joypad.instances){const i=Object.values(this.joypad.instances);if(i.length>0){const n=i[0],s=((t=n.axes)==null?void 0:t[0])||0,a=((e=n.axes)==null?void 0:e[1])||0;this.currentPower=Math.min(1,Math.sqrt(s*s+a*a))}}for(const i in this.gamepadDirections)this.gamepadDirections[i]&&this.applyControl(i,!0,{power:this.currentPower}).catch(()=>{})}}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const e=["up","down","left","right"];for(const i of e)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(t){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:t.enabled!==void 0?t.enabled:!0,buttonMapping:t.buttonMapping||gi,axisMapping:t.axisMapping||li,axisThreshold:t.axisThreshold||.5,moveInterval:t.moveInterval||400,onConnect:t.onConnect,onDisconnect:t.onDisconnect,gamepadConnected:t.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(t){t.gamepad&&this.updateGamepadConfig(t.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const a of s){const g=this.boundKeys[a];if(g.actionName===String(t)){if(e===void 0){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}return new Promise(r=>{setTimeout(()=>{if(g.options.keyUp){let c=i??g.parameters;typeof c=="function"&&(c=c()),g.options.keyUp(g,c)}r()},200)})}else if(e){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}}else if(g.options.keyUp){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyUp(g,r)}break}}}setInputs(t){super.setInputs(t),this.extractGamepadConfig(t)}onConnect(t){this.connectCallbacks.push(t)}onDisconnect(t){this.disconnectCallbacks.push(t)}offConnect(t){const e=this.connectCallbacks.indexOf(t);e>-1&&this.connectCallbacks.splice(e,1)}offDisconnect(t){const e=this.disconnectCallbacks.indexOf(t);e>-1&&this.disconnectCallbacks.splice(e,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const ci={top:"up",bottom:"down",left:"left",right:"right",top_left:["up","left"],top_right:["up","right"],bottom_left:["down","left"],bottom_right:["down","right"]};class Qs extends dA{constructor(){super(...arguments),this.joystickEnabled=!0,this.joystickConfig={enabled:!0,directionMapping:ci,moveInterval:50,threshold:.1},this.joystickMoving=!1,this.joystickDirections={},this.joystickLastUpdate=0,this.joystickMoveInterval=null,this.currentPower=0}setupListeners(){}cleanup(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null)}preStep(){this.stop}handleJoystickChange(t){if(!this.joystickEnabled||!this.joystickConfig.enabled||this.stop)return;if(this.joystickLastUpdate=Date.now(),this.currentPower=t.power,t.power<(this.joystickConfig.threshold||.1)){this.stopAllMovements();return}const e=this.joystickConfig.directionMapping||ci,i=t.direction,n=e[i];if(!n){this.stopAllMovements();return}const s=Array.isArray(n)?n:[n],a=this.joystickDirections,g={};s.forEach(u=>{g[u]=!0});const r=new Set([...Object.keys(this.joystickDirections),...Object.keys(g)]);for(const u of r){const o=this.joystickDirections[u],l=g[u]||!1;o&&!l&&this.applyControl(u,!1).catch(()=>{})}this.joystickDirections={...g},this.joystickMoving=!0;const c=s.filter(u=>!a[u]);for(const u of c)this.applyControl(u,!0,{power:t.power}).catch(()=>{});this.joystickMoveInterval||(this.joystickMoveInterval=setInterval(()=>{this.processJoystickMovement()},this.joystickConfig.moveInterval||50))}handleJoystickStart(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stop}handleJoystickEnd(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stopAllMovements()}stopAllMovements(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null);const t=Object.keys(this.joystickDirections);for(const e of t)this.applyControl(e,!1).catch(()=>{});this.joystickDirections={},this.joystickMoving=!1,this.currentPower=0}processJoystickMovement(){if(this.joystickMoving&&!this.stop)for(const t in this.joystickDirections)this.joystickDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}updateJoystickConfig(t){this.joystickConfig={enabled:t.enabled!==void 0?t.enabled:!0,directionMapping:t.directionMapping||ci,moveInterval:t.moveInterval||50,threshold:t.threshold||.1}}extractJoystickConfig(t){t.joystick&&this.updateJoystickConfig(t.joystick)}getJoystickConfig(){return this.joystickConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const a of s){const g=this.boundKeys[a];if(g.actionName===String(t)){if(e===void 0){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}return new Promise(r=>{setTimeout(()=>{if(g.options.keyUp){let c=i??g.parameters;typeof c=="function"&&(c=c()),g.options.keyUp(g,c)}r()},200)})}else if(e){if(g.options.keyDown){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyDown(g,r)}}else if(g.options.keyUp){let r=i??g.parameters;typeof r=="function"&&(r=r()),g.options.keyUp(g,r)}break}}}setInputs(t){super.setInputs(t),this.extractJoystickConfig(t)}isActive(){return this.joystickMoving}}const hi={};class St{}function xt(A,t){hi[A]=t}function ps(A,t){var i;if(!hi[t])return null;const e=new hi[t];return(i=e.onInit)==null||i.call(e,A),e}var va=Object.defineProperty,tt=(A,t)=>va(A,"name",{value:t,configurable:!0}),Ye=(_e=class extends ne{constructor(e=[]){super({type:"init",items:e});Fn(this,"_items",[]);this.createProxy(e)}createProxy(e){this._items=new Proxy(e,{get:tt((i,n,s)=>{const a=i[n];return typeof a=="function"?(...g)=>{let r="update",c,u=!1,o=[],l=!0;switch(n){case"push":c=i.length,r="add",u=!0;break;case"pop":c=i.length-1,r="remove",u=!0;break;case"unshift":c=0,r="add",u=!0;break;case"shift":c=0,r="remove",u=!0;break;case"splice":c=g[0];const I=g[1],E=g.slice(2);o=E,I>0&&E.length===0?r="remove":I===0&&E.length>0?r="add":I===0&&E.length===0?l=!1:r="update",u=!0;break}const h=a.apply(i,g);return u&&l&&(n==="splice"?this.next({type:r,index:c,items:o}):this.next({type:r,index:c,items:g})),h}:Reflect.get(i,n,s)},"get"),set:tt((i,n,s)=>{const a=isNaN(Number(n))?void 0:Number(n);return i[n]=s,this.next({type:"update",index:a,items:[s]}),!0},"set")})}get items(){return this._items}set items(e){this.createProxy(e),this.next({type:"reset",items:e})}},tt(_e,"ArraySubject"),_e),ba=tt(A=>"_items"in A,"isArraySubject"),We=(Fe=class extends ne{constructor(e={}){super({type:"init",value:e});Fn(this,"_obj");this.createProxy(e)}createProxy(e){this._obj=new Proxy(e,{get:tt((i,n,s)=>Reflect.get(i,n,s),"get"),set:tt((i,n,s,a)=>{const g=n,r=g in i?"update":"add";return i[g]=s,this.next({type:r,key:g,value:s}),!0},"set"),deleteProperty:tt((i,n)=>{const s=n;if(s in i){const a=i[s];return delete i[s],this.next({type:"remove",key:s,value:a}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(e){this.createProxy(e),this.next({type:"reset",value:e})}},tt(Fe,"ObjectSubject"),Fe),Sa=tt(A=>"_obj"in A,"isObjectSubject"),xa=tt(()=>{const A="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[A]||(globalThis[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[A];let t;if(typeof window<"u")t=window;else if(typeof process<"u"&&process.versions&&process.versions.node)t=Function("return this")();else if(typeof self<"u")t=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return t[A]||(t[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),t[A]},"getGlobalReactiveStore"),nt=xa(),ui=tt(A=>{nt.currentDependencyTracker&&nt.currentDependencyTracker(A)},"trackDependency");function Y(A,t){let e;Array.isArray(A)?e=new Ye(A):typeof A=="object"&&A!==null?e=new We(A):e=new ne(A);const i=tt(()=>e instanceof Ye?e.items:e instanceof We?e.obj:e.value,"getValue"),n=tt(function(){return ui(n),i()},"fn");return n.set=s=>{const a=i();let g=!0;t!=null&&t.equal?g=!t.equal(a,s):g=a!==s,g&&(e instanceof Ye?e.items=s:e instanceof We?e.obj=s:e.next(s))},n._isFrozen=!1,n.freeze=()=>{n._isFrozen=!0},n.unfreeze=()=>{n._isFrozen=!1,e instanceof Ye?e.next({type:"init",items:e.items}):e instanceof We?e.next({type:"init",value:e.obj}):e.next(e.value)},n.mutate=s=>{const a=i();s(a)},n.update=s=>{const a=s(i());n.set(a)},n.observable=e.asObservable().pipe(Pe(()=>!n._isFrozen)),n._subject=e,n}tt(Y,"signal");function H(A){return!!(A&&A.observable)}tt(H,"isSignal");function ye(A){return H(A)&&!!A.dependencies}tt(ye,"isComputed");function Qt(A,t){var c;const e=new Set;let i=!0,n;const s=nt.currentDependencyTracker;nt.currentDependencyTracker=u=>{e.add(u)},n=A(),A.isEffect&&(t=n),nt.currentDependencyTracker=s;const a=[...e].map(u=>{if(ye(u)&&"dependencies"in u){const o=u;if(o.dependencies.size===0)return new ne(o()).asObservable()}return u.observable}),g=ni(a).pipe(Pe(()=>!i),ii(()=>A()),ca(()=>t==null?void 0:t())),r=tt(function(){return ui(r),n},"fn");return r.observable=g,r.subscription=g.subscribe(u=>{n=u}),r.dependencies=e,(c=nt.currentSubscriptionsTracker)==null||c.call(nt,r.subscription),i=!1,r}tt(Qt,"computed");function ys(A,t){var D;const e=new Set;let i=!0,n,s,a,g,r,c,u=!1,o,l=0,h=null;if(typeof A=="function")s=A,r=t==null?void 0:t.equal;else{const w=A;if(a=w.source,g=w.computation,r=w.equal,typeof a=="function"&&!H(a)){const b=a;s=tt(()=>{const _=b();if(g.length>1){const N=g(_,c);return c={source:_,value:N},N}else{const N=g(_);return c={source:_,value:N},N}},"computeFunction")}else{const b=a;s=tt(()=>{const _=b();if(g.length>1){const N=g(_,c);return c={source:_,value:N},N}else{const N=g(_);return c={source:_,value:N},N}},"computeFunction")}}const I=nt.currentDependencyTracker;nt.currentDependencyTracker=w=>{e.add(w)},a&&typeof a=="function"&&!H(a)||a&&H(a)&&e.add(a),n=s(),nt.currentDependencyTracker=I;const E=new ne(n),d=[...e].map(w=>{if(ye(w)&&"dependencies"in w){const b=w;if(b.dependencies.size===0)return new ne(b()).asObservable()}return w.observable});let C;d.length>0?C=ni(d).pipe(Pe(()=>!i),ii(()=>{const w=s();return r?r(n,w)||(n=w,u=!1):n!==w&&(n=w,u=!1),n})):C=E.asObservable().pipe(Pe(()=>!i));const p=tt(function(){if(ui(p),u&&e.size>0){if(h!==l){const w=s();return u=!1,o=void 0,n=w,h=null,w}return o}return u?o:(e.size===0&&(n=s()),n)},"fn");return p.observable=new $(w=>{const b=C.subscribe(N=>{e.size>0&&(l++,u=!1,h=null),n=N,w.next(N)});let _;return e.size===0&&(_=E.pipe(Pe(()=>!i)).subscribe(N=>{w.next(N)})),w.next(n),()=>{b.unsubscribe(),_&&_.unsubscribe()}}),p.subscription=p.observable.subscribe(()=>{}),p.dependencies=e,p._subject=E,p.set=w=>{u||(h=l,g&&a&&(c={source:Ii(()=>{if(typeof a=="function"){const _=a;return H(_)?_():a()}return a()}),value:w})),u=!0,o=w,n=w,E.next(w)},(D=nt.currentSubscriptionsTracker)==null||D.call(nt,p.subscription),i=!1,p}tt(ys,"linkedSignal");function Ii(A){const t=nt.currentDependencyTracker,e=nt.currentSubscriptionsTracker;nt.currentDependencyTracker=null,nt.currentSubscriptionsTracker=null;try{return A()}finally{nt.currentDependencyTracker=t,nt.currentSubscriptionsTracker=e}}tt(Ii,"untracked");function rt(A){return A.isEffect=!0,Qt(A)}tt(rt,"effect");function ws(A,t){var e={};for(var i in A)Object.prototype.hasOwnProperty.call(A,i)&&t.indexOf(i)<0&&(e[i]=A[i]);if(A!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(A);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(A,i[n])&&(e[i[n]]=A[i[n]]);return e}var ms=function(){};const Bi=(A,t,e)=>Math.min(Math.max(e,A),t),fi=.001,ka=.01,Ma=10,Ra=.05,_a=1;function Fa({duration:A=800,bounce:t=.25,velocity:e=0,mass:i=1}){let n,s,a=1-t;a=Bi(Ra,_a,a),A=Bi(ka,Ma,A/1e3),a<1?(n=c=>{const u=c*a,o=u*A,l=u-e,h=Ei(c,a),I=Math.exp(-o);return fi-l/h*I},s=c=>{const o=c*a*A,l=o*e+e,h=Math.pow(a,2)*Math.pow(c,2)*A,I=Math.exp(-o),E=Ei(Math.pow(c,2),a);return(-n(c)+fi>0?-1:1)*((l-h)*I)/E}):(n=c=>{const u=Math.exp(-c*A),o=(c-e)*A+1;return-fi+u*o},s=c=>{const u=Math.exp(-c*A),o=(e-c)*(A*A);return u*o});const g=5/A,r=Na(n,s,g);if(A=A*1e3,isNaN(r))return{stiffness:100,damping:10,duration:A};{const c=Math.pow(r,2)*i;return{stiffness:c,damping:a*2*Math.sqrt(i*c),duration:A}}}const Ga=12;function Na(A,t,e){let i=e;for(let n=1;n<Ga;n++)i=i-A(i)/t(i);return i}function Ei(A,t){return A*Math.sqrt(1-t*t)}const Ha=["duration","bounce"],La=["stiffness","damping","mass"];function Ds(A,t){return t.some(e=>A[e]!==void 0)}function Ua(A){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},A);if(!Ds(A,La)&&Ds(A,Ha)){const e=Fa(A);t=Object.assign(Object.assign(Object.assign({},t),e),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function Ci(A){var{from:t=0,to:e=1,restSpeed:i=2,restDelta:n}=A,s=ws(A,["from","to","restSpeed","restDelta"]);const a={done:!1,value:t};let{stiffness:g,damping:r,mass:c,velocity:u,duration:o,isResolvedFromDuration:l}=Ua(s),h=vs,I=vs;function E(){const d=u?-(u/1e3):0,C=e-t,p=r/(2*Math.sqrt(g*c)),D=Math.sqrt(g/c)/1e3;if(n===void 0&&(n=Math.min(Math.abs(e-t)/100,.4)),p<1){const w=Ei(D,p);h=b=>{const _=Math.exp(-p*D*b);return e-_*((d+p*D*C)/w*Math.sin(w*b)+C*Math.cos(w*b))},I=b=>{const _=Math.exp(-p*D*b);return p*D*_*(Math.sin(w*b)*(d+p*D*C)/w+C*Math.cos(w*b))-_*(Math.cos(w*b)*(d+p*D*C)-w*C*Math.sin(w*b))}}else if(p===1)h=w=>e-Math.exp(-D*w)*(C+(d+D*C)*w);else{const w=D*Math.sqrt(p*p-1);h=b=>{const _=Math.exp(-p*D*b),N=Math.min(w*b,300);return e-_*((d+p*D*C)*Math.sinh(N)+w*C*Math.cosh(N))/w}}}return E(),{next:d=>{const C=h(d);if(l)a.done=d>=o;else{const p=I(d)*1e3,D=Math.abs(p)<=i,w=Math.abs(e-C)<=n;a.done=D&&w}return a.value=a.done?e:C,a},flipTarget:()=>{u=-u,[t,e]=[e,t],E()}}}Ci.needsInterpolation=(A,t)=>typeof A=="string"||typeof t=="string";const vs=A=>0,bs=(A,t,e)=>{const i=t-A;return i===0?1:(e-A)/i},di=(A,t,e)=>-e*A+e*t+A,Ss=(A,t)=>e=>Math.max(Math.min(e,t),A),je=A=>A%1?Number(A.toFixed(5)):A,pA=/(-)?([\d]*\.?[\d])+/g,Qi=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,Ta=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Ve(A){return typeof A=="string"}const yA={test:A=>typeof A=="number",parse:parseFloat,transform:A=>A},xs=Object.assign(Object.assign({},yA),{transform:Ss(0,1)});Object.assign(Object.assign({},yA),{default:1});const qe=(A=>({test:t=>Ve(t)&&t.endsWith(A)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${A}`}))("%");Object.assign(Object.assign({},qe),{parse:A=>qe.parse(A)/100,transform:A=>qe.transform(A*100)});const pi=(A,t)=>e=>!!(Ve(e)&&Ta.test(e)&&e.startsWith(A)||t&&Object.prototype.hasOwnProperty.call(e,t)),ks=(A,t,e)=>i=>{if(!Ve(i))return i;const[n,s,a,g]=i.match(pA);return{[A]:parseFloat(n),[t]:parseFloat(s),[e]:parseFloat(a),alpha:g!==void 0?parseFloat(g):1}},re={test:pi("hsl","hue"),parse:ks("hue","saturation","lightness"),transform:({hue:A,saturation:t,lightness:e,alpha:i=1})=>"hsla("+Math.round(A)+", "+qe.transform(je(t))+", "+qe.transform(je(e))+", "+je(xs.transform(i))+")"},Oa=Ss(0,255),yi=Object.assign(Object.assign({},yA),{transform:A=>Math.round(Oa(A))}),Zt={test:pi("rgb","red"),parse:ks("red","green","blue"),transform:({red:A,green:t,blue:e,alpha:i=1})=>"rgba("+yi.transform(A)+", "+yi.transform(t)+", "+yi.transform(e)+", "+je(xs.transform(i))+")"};function Ja(A){let t="",e="",i="",n="";return A.length>5?(t=A.substr(1,2),e=A.substr(3,2),i=A.substr(5,2),n=A.substr(7,2)):(t=A.substr(1,1),e=A.substr(2,1),i=A.substr(3,1),n=A.substr(4,1),t+=t,e+=e,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(e,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const wi={test:pi("#"),parse:Ja,transform:Zt.transform},wA={test:A=>Zt.test(A)||wi.test(A)||re.test(A),parse:A=>Zt.test(A)?Zt.parse(A):re.test(A)?re.parse(A):wi.parse(A),transform:A=>Ve(A)?A:A.hasOwnProperty("red")?Zt.transform(A):re.transform(A)},Ms="${c}",Rs="${n}";function Pa(A){var t,e,i,n;return isNaN(A)&&Ve(A)&&((e=(t=A.match(pA))===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)+((n=(i=A.match(Qi))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function _s(A){typeof A=="number"&&(A=`${A}`);const t=[];let e=0;const i=A.match(Qi);i&&(e=i.length,A=A.replace(Qi,Ms),t.push(...i.map(wA.parse)));const n=A.match(pA);return n&&(A=A.replace(pA,Rs),t.push(...n.map(yA.parse))),{values:t,numColors:e,tokenised:A}}function Fs(A){return _s(A).values}function Gs(A){const{values:t,numColors:e,tokenised:i}=_s(A),n=t.length;return s=>{let a=i;for(let g=0;g<n;g++)a=a.replace(g<e?Ms:Rs,g<e?wA.transform(s[g]):je(s[g]));return a}}const Ka=A=>typeof A=="number"?0:A;function Ya(A){const t=Fs(A);return Gs(A)(t.map(Ka))}const Ns={test:Pa,parse:Fs,createTransformer:Gs,getAnimatableNone:Ya};function mi(A,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<.16666666666666666?A+(t-A)*6*e:e<.5?t:e<.6666666666666666?A+(t-A)*(.6666666666666666-e)*6:A}function Hs({hue:A,saturation:t,lightness:e,alpha:i}){A/=360,t/=100,e/=100;let n=0,s=0,a=0;if(!t)n=s=a=e;else{const g=e<.5?e*(1+t):e+t-e*t,r=2*e-g;n=mi(r,g,A+.3333333333333333),s=mi(r,g,A),a=mi(r,g,A-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(a*255),alpha:i}}const Wa=(A,t,e)=>{const i=A*A,n=t*t;return Math.sqrt(Math.max(0,e*(n-i)+i))},ja=[wi,Zt,re],Ls=A=>ja.find(t=>t.test(A)),Us=(A,t)=>{let e=Ls(A),i=Ls(t),n=e.parse(A),s=i.parse(t);e===re&&(n=Hs(n),e=Zt),i===re&&(s=Hs(s),i=Zt);const a=Object.assign({},n);return g=>{for(const r in a)r!=="alpha"&&(a[r]=Wa(n[r],s[r],g));return a.alpha=di(n.alpha,s.alpha,g),e.transform(a)}},Va=A=>typeof A=="number",qa=(A,t)=>e=>t(A(e)),Ts=(...A)=>A.reduce(qa);function Os(A,t){return Va(A)?e=>di(A,t,e):wA.test(A)?Us(A,t):Ks(A,t)}const Js=(A,t)=>{const e=[...A],i=e.length,n=A.map((s,a)=>Os(s,t[a]));return s=>{for(let a=0;a<i;a++)e[a]=n[a](s);return e}},Xa=(A,t)=>{const e=Object.assign(Object.assign({},A),t),i={};for(const n in e)A[n]!==void 0&&t[n]!==void 0&&(i[n]=Os(A[n],t[n]));return n=>{for(const s in i)e[s]=i[s](n);return e}};function Ps(A){const t=Ns.parse(A),e=t.length;let i=0,n=0,s=0;for(let a=0;a<e;a++)i||typeof t[a]=="number"?i++:t[a].hue!==void 0?s++:n++;return{parsed:t,numNumbers:i,numRGB:n,numHSL:s}}const Ks=(A,t)=>{const e=Ns.createTransformer(t),i=Ps(A),n=Ps(t);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?Ts(Js(i.parsed,n.parsed),e):a=>`${a>0?t:A}`},Za=(A,t)=>e=>di(A,t,e);function za(A){if(typeof A=="number")return Za;if(typeof A=="string")return wA.test(A)?Us:Ks;if(Array.isArray(A))return Js;if(typeof A=="object")return Xa}function $a(A,t,e){const i=[],n=e||za(A[0]),s=A.length-1;for(let a=0;a<s;a++){let g=n(A[a],A[a+1]);if(t){const r=Array.isArray(t)?t[a]:t;g=Ts(r,g)}i.push(g)}return i}function tg([A,t],[e]){return i=>e(bs(A,t,i))}function eg(A,t){const e=A.length,i=e-1;return n=>{let s=0,a=!1;if(n<=A[0]?a=!0:n>=A[i]&&(s=i-1,a=!0),!a){let r=1;for(;r<e&&!(A[r]>n||r===i);r++);s=r-1}const g=bs(A[s],A[s+1],n);return t[s](g)}}function Ys(A,t,{clamp:e=!0,ease:i,mixer:n}={}){const s=A.length;ms(s===t.length),ms(!i||!Array.isArray(i)||i.length===s-1),A[0]>A[s-1]&&(A=[].concat(A),t=[].concat(t),A.reverse(),t.reverse());const a=$a(t,i,n),g=s===2?tg(A,a):eg(A,a);return e?r=>g(Bi(A[0],A[s-1],r)):g}const mA=A=>t=>1-A(1-t),Di=A=>t=>t<=.5?A(2*t)/2:(2-A(2*(1-t)))/2,Ag=A=>t=>Math.pow(t,A),Ws=A=>t=>t*t*((A+1)*t-A),ig=A=>{const t=Ws(A);return e=>(e*=2)<1?.5*t(e):.5*(2-Math.pow(2,-10*(e-1)))},js=1.525,ng=4/11,sg=8/11,og=9/10,rg=A=>A,vi=Ag(2),ag=mA(vi),Vs=Di(vi),qs=A=>1-Math.sin(Math.acos(A)),Xs=mA(qs),gg=Di(Xs),bi=Ws(js),lg=mA(bi),cg=Di(bi),hg=ig(js),ug=4356/361,Ig=35442/1805,Bg=16061/1805,DA=A=>{if(A===1||A===0)return A;const t=A*A;return A<ng?7.5625*t:A<sg?9.075*t-9.9*A+3.4:A<og?ug*t-Ig*A+Bg:10.8*A*A-20.52*A+10.72},fg=mA(DA),Eg=A=>A<.5?.5*(1-DA(1-A*2)):.5*DA(A*2-1)+.5;function Cg(A,t){return A.map(()=>t||Vs).splice(0,A.length-1)}function dg(A){const t=A.length;return A.map((e,i)=>i!==0?i/(t-1):0)}function Qg(A,t){return A.map(e=>e*t)}function vA({from:A=0,to:t=1,ease:e,offset:i,duration:n=300}){const s={done:!1,value:A},a=Array.isArray(t)?t:[A,t],g=Qg(i&&i.length===a.length?i:dg(a),n);function r(){return Ys(g,a,{ease:Array.isArray(e)?e:Cg(a,e)})}let c=r();return{next:u=>(s.value=c(u),s.done=u>=n,s),flipTarget:()=>{a.reverse(),c=r()}}}function pg({velocity:A=0,from:t=0,power:e=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const a={done:!1,value:t};let g=e*A;const r=t+g,c=s===void 0?r:s(r);return c!==r&&(g=c-t),{next:u=>{const o=-g*Math.exp(-u/i);return a.done=!(o>n||o<-n),a.value=a.done?c:c+o,a},flipTarget:()=>{}}}const Zs={keyframes:vA,spring:Ci,decay:pg};function yg(A){if(Array.isArray(A.to))return vA;if(Zs[A.type])return Zs[A.type];const t=new Set(Object.keys(A));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?vA:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?Ci:vA}const zs=1/60*1e3,wg=typeof performance<"u"?()=>performance.now():()=>Date.now(),$s=typeof window<"u"?A=>window.requestAnimationFrame(A):A=>setTimeout(()=>A(wg()),zs);function mg(A){let t=[],e=[],i=0,n=!1,s=!1;const a=new WeakSet,g={schedule:(r,c=!1,u=!1)=>{const o=u&&n,l=o?t:e;return c&&a.add(r),l.indexOf(r)===-1&&(l.push(r),o&&n&&(i=t.length)),r},cancel:r=>{const c=e.indexOf(r);c!==-1&&e.splice(c,1),a.delete(r)},process:r=>{if(n){s=!0;return}if(n=!0,[t,e]=[e,t],e.length=0,i=t.length,i)for(let c=0;c<i;c++){const u=t[c];u(r),a.has(u)&&(g.schedule(u),A())}n=!1,s&&(s=!1,g.process(r))}};return g}const Dg=40;let Si=!0,Xe=!1,xi=!1;const Ze={delta:0,timestamp:0},ze=["read","update","preRender","render","postRender"],bA=ze.reduce((A,t)=>(A[t]=mg(()=>Xe=!0),A),{}),vg=ze.reduce((A,t)=>{const e=bA[t];return A[t]=(i,n=!1,s=!1)=>(Xe||xg(),e.schedule(i,n,s)),A},{}),bg=ze.reduce((A,t)=>(A[t]=bA[t].cancel,A),{});ze.reduce((A,t)=>(A[t]=()=>bA[t].process(Ze),A),{});const Sg=A=>bA[A].process(Ze),to=A=>{Xe=!1,Ze.delta=Si?zs:Math.max(Math.min(A-Ze.timestamp,Dg),1),Ze.timestamp=A,xi=!0,ze.forEach(Sg),xi=!1,Xe&&(Si=!1,$s(to))},xg=()=>{Xe=!0,Si=!0,xi||$s(to)};function eo(A,t,e=0){return A-t-e}function kg(A,t,e=0,i=!0){return i?eo(t+-A,t,e):t-(A-t)+e}function Mg(A,t,e,i){return i?A>=t+e:A<=-e}const Rg=A=>{const t=({delta:e})=>A(e);return{start:()=>vg.update(t,!0),stop:()=>bg.update(t)}};function Ao(A){var t,e,{from:i,autoplay:n=!0,driver:s=Rg,elapsed:a=0,repeat:g=0,repeatType:r="loop",repeatDelay:c=0,onPlay:u,onStop:o,onComplete:l,onRepeat:h,onUpdate:I}=A,E=ws(A,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:d}=E,C,p=0,D=E.duration,w,b=!1,_=!0,N;const J=yg(E);!((e=(t=J).needsInterpolation)===null||e===void 0)&&e.call(t,i,d)&&(N=Ys([0,100],[i,d],{clamp:!1}),i=0,d=100);const L=J(Object.assign(Object.assign({},E),{from:i,to:d}));function O(){p++,r==="reverse"?(_=p%2===0,a=kg(a,D,c,_)):(a=eo(a,D,c),r==="mirror"&&L.flipTarget()),b=!1,h&&h()}function j(){C.stop(),l&&l()}function et(Z){if(_||(Z=-Z),a+=Z,!b){const ft=L.next(Math.max(0,a));w=ft.value,N&&(w=N(w)),b=_?ft.done:a<=0}I==null||I(w),b&&(p===0&&(D??(D=a)),p<g?Mg(a,D,c,_)&&O():j())}function at(){u==null||u(),C=s(et),C.start()}return n&&at(),{stop:()=>{o==null||o(),C.stop()}}}const _g=A=>{if(typeof A=="number")return t=>Math.round(t/A)*A;{let t=0;const e=A.length;return i=>{let n=Math.abs(A[0]-i);for(t=1;t<e;t++){const s=A[t],a=Math.abs(s-i);if(a===0)return s;if(a>n)return A[t-1];if(t===e-1)return s;n=a}}}};function Fg(){return globalThis.__CANVAS_ENGINE_TICK__}function we(A){return A.animatedState!==void 0}function ki(A,t={}){const e={current:A,start:A,end:A},i=20;let n=null,s=!1;const a=Y(A),g=Y(e);rt(()=>{const u=g();a.set(u.current)});function r(u,o={}){if(u===void 0)return g();const l=g(),h={current:l.current,start:l.current,end:u};g.set(h),n&&(n.stop(),n=null),s=!1;const I={...t,...o},E=I.duration??i,d=I.ease??(w=>w);I.tick||Fg();const C=l.current,p=u,D=o.onComplete??t.onComplete;n=Ao({from:C,to:p,duration:E,ease:d,onUpdate:w=>{var _,N;if(s)return;const b=w;g.update(J=>({...J,current:b})),(_=I.onUpdate)==null||_.call(I,b),(N=o.onUpdate)==null||N.call(o,b)},onComplete:()=>{g.update(w=>({...w,current:p})),D==null||D()}})}const c=function(){return g().current};for(const u in a)c[u]=a[u];return c.animatedState=g,c.update=u=>{r(u(g().current))},c.set=async(u,o={})=>new Promise(l=>{const h=o.onComplete;r(u,{...o,onComplete:()=>{h?h():t.onComplete&&t.onComplete(),l()}})}),c.pause=()=>{s||(s=!0,n&&(n.stop(),n=null))},c.resume=()=>{if(!s)return;s=!1;const u=g();u.current!==u.end&&r(u.end,t)},c}async function Gg(A){for(const t of A)Array.isArray(t)?await Promise.all(t.map(e=>e())):await t()}const Mi={},pt=A=>A&&typeof A=="object"&&"tag"in A&&"props"in A&&"componentInstance"in A,Ri=A=>typeof A=="string"||typeof A=="number"||typeof A=="boolean"||A===null||A===void 0;function gt(A,t){Mi[A]=t}let io=!1;function _i(){io||(io=!0)}function kt(A){var e,i;if(!A)return!1;const t=((e=A.propObservables)==null?void 0:e.freeze)??((i=A.props)==null?void 0:i.freeze);if(t!=null){if(H(t)){if(t()===!0)return!0}else if(t===!0)return!0}return A.parent?kt(A.parent):!1}function Fi(A,t){if(!A.propObservables)return;const e=i=>{if(H(i)&&we(i)){const n=i;t?n.pause():n.resume()}else CA(i)&&!pt(i)&&Object.values(i).forEach(e)};Object.values(A.propObservables).forEach(e)}function ht(A){var t,e,i,n,s,a;if(Array.isArray(A)){A.forEach(g=>ht(g));return}if(A){if((t=A.props)!=null&&t.children)for(let g of A.props.children)ht(g);for(let g in A.directives)(i=(e=A.directives[g]).onDestroy)==null||i.call(e,A);A.componentInstance&&A.componentInstance.onDestroy?A.componentInstance.onDestroy(A.parent,()=>{var g,r,c;(g=A.propSubscriptions)==null||g.forEach(u=>u.unsubscribe()),(r=A.effectSubscriptions)==null||r.forEach(u=>u.unsubscribe()),(c=A.effectUnmounts)==null||c.forEach(u=>{se(u)?u.then(o=>{o==null||o()}):u==null||u()})}):((n=A.propSubscriptions)==null||n.forEach(g=>g.unsubscribe()),(s=A.effectSubscriptions)==null||s.forEach(g=>g.unsubscribe()),(a=A.effectUnmounts)==null||a.forEach(g=>g==null?void 0:g()))}}function It(A,t){var o,l,h;if(!Mi[A])throw new Error(`Component ${A} is not registered`);const e=new Mi[A],i={tag:A,props:{},componentInstance:e,propSubscriptions:[],propObservables:t,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){ht(this)},allElements:new ie,isFrozen:!1};if(t){const I=(E,d="")=>{const C=(p,D,w)=>{if(p==""){i.props[D]=w;return}oi(i.props,p+"."+D,w)};Object.entries(E).forEach(([p,D])=>{if(H(D)){const w=D;if("dependencies"in w&&w.dependencies.size==0){C(d,p,w()),p==="freeze"&&(i.isFrozen=w()===!0);return}if(p==="freeze"){i.isFrozen=w()===!0,Fi(i,i.isFrozen),i.propSubscriptions.push(w.observable.subscribe(b=>{const _=i.isFrozen;i.isFrozen=b===!0,_!==i.isFrozen&&Fi(i,i.isFrozen)}));return}i.propSubscriptions.push(w.observable.subscribe(b=>{var _,N,J;if(kt(i)){we(w)&&w.pause();return}if(we(w)&&w.resume(),C(d,p,b),i.directives[p]&&((N=(_=i.directives[p]).onUpdate)==null||N.call(_,b,i)),p=="tick")return kt(i),void 0;(J=e.onUpdate)==null||J.call(e,d==""?{[p]:b}:oi({},d+"."+p,b))}))}else p==="freeze"&&(i.isFrozen=D===!0,Fi(i,i.isFrozen)),CA(D)&&p!="context"&&!pt(D)?I(D,(d?d+".":"")+p):C(d,p,D)})};I(t)}(o=e.onInit)==null||o.call(e,i.props);const n=new ie;if(t!=null&&t.isRoot&&(i.allElements=n,i.props.context.rootElement=i,(h=(l=i.componentInstance).onMount)==null||h.call(l,i),c(i)),t)for(let I in t){const E=ps(i,I);E&&(i.directives[I]=E)}async function s(I){return(await Promise.all(I.map(async d=>H(d)?d():se(d)?await d:d))).every(d=>d!==void 0)}function a(I,E,d,C){const p=d.filter(b=>H(b));if(d.filter(b=>se(b)),p.length===0)return;const D=p.map(b=>b.observable),w=ni(D).subscribe(async()=>{if(await s(d)){w.unsubscribe();const _=E.propSubscriptions.indexOf(w);_>-1&&E.propSubscriptions.splice(_,1),g(I,E,C),c(E)}});E.propSubscriptions.push(w)}function g(I,E,d){var C,p,D,w;(p=(C=E.componentInstance).onMount)==null||p.call(C,E,d);for(let b in E.directives)(w=(D=E.directives[b]).onMount)==null||w.call(D,E);E.effectMounts.forEach(b=>{E.effectUnmounts.push(b(E))})}async function r(I,E,d){var p,D;let C=I;for(;(C==null?void 0:C.tag)==="fragment";)C=C.parent;if(E.props.context=C.props.context,E.parent=C,!((p=E.propObservables)!=null&&p.freeze)&&!((D=E.props)!=null&&D.freeze)&&kt(C)&&(E.isFrozen=!0),E.props.dependencies&&Array.isArray(E.props.dependencies)){const w=E.props.dependencies;if(!await s(w)){a(C,E,w,d);return}}g(C,E,d)}async function c(I){var E;if(I.props.attach&&(H((E=I.propObservables)==null?void 0:E.attach)?await new Promise(C=>{let p=null;I.propSubscriptions.push(I.propObservables.attach.observable.subscribe(async D=>{const w=(D==null?void 0:D.value)??D;if(!w)throw new Error(`attach in ${I.tag} is undefined or null, add a component`);p&&ht(p),p=w,await u(I,w),C(void 0)}))}):I.props.children.push(I.props.attach)),!!I.props.children)for(let d of I.props.children)d&&await u(I,d)}async function u(I,E){if(se(E)&&(E=await E),E instanceof $){const d=E.subscribe(C=>{if(C&&typeof C=="object"&&"elements"in C){const{elements:p,prev:D}=C,w=p.filter(b=>b!==null);if(D){w.forEach(async b=>{const _=I.props.children.indexOf(D.props.key);b instanceof $?await u(I,b):pt(b)&&(r(I,b,_+1),c(b))});return}w.forEach(async b=>{Array.isArray(b)?b.forEach(async _=>{_ instanceof $?await u(I,_):pt(_)&&(r(I,_),c(_))}):b instanceof $?await u(I,b):pt(b)&&(r(I,b),c(b))})}else pt(C)?(r(I,C),c(C)):Array.isArray(C)&&C.forEach(async p=>{p instanceof $?await u(I,p):pt(p)&&(r(I,p),c(p))});n.next(void 0)});I.effectSubscriptions.push(d)}else pt(E)&&(r(I,E),await c(E))}return i}function Ng(A,t){return ye(A)&&A.dependencies.size==0?A=Y(A()):H(A)||(A=Y(A)),la(()=>{let e=[],i=new Map,n=!0;const s=g=>g?pt(g)?g:{tag:"fragment",props:{children:Array.isArray(g)?g:[g]},componentInstance:{},propSubscriptions:[],effectSubscriptions:[],effectMounts:[],effectUnmounts:[],propObservables:{},parent:null,directives:{},destroy(){ht(this)},allElements:new ie,isFrozen:!1}:null,a=g=>Array.isArray(g());return new $(g=>{const r=a(A)?A.observable.subscribe(c=>{if(n){n=!1,e.forEach(l=>l.destroy()),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const I=s(t(l,h));I&&(e.push(I),i.set(h,I))}),g.next({elements:[...e]});return}const u=Array.isArray(c)||c&&typeof c=="object"&&!("type"in c);if(c.type==="init"||c.type==="reset"||u){e.forEach(l=>ht(l)),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const I=s(t(l,h));I&&(e.push(I),i.set(h,I))})}else if(c.type==="add"&&c.index!==void 0){const o=c.items.map((l,h)=>{const I=s(t(l,c.index+h));return I&&i.set(c.index+h,I),I}).filter(l=>l!==null);e.splice(c.index,0,...o)}else if(c.type==="remove"&&c.index!==void 0)e.splice(c.index,1).forEach(l=>{ht(l),i.delete(c.index)});else if(c.type==="update"&&c.index!==void 0&&c.items.length===1){const o=c.index,l=c.items[0];if(o>=e.length||e[o]===void 0||!i.has(o)){const h=s(t(l,o));h?(e.splice(o,0,h),i.set(o,h)):console.warn(`Element creation returned null for index ${o} during add-like update.`)}else{const h=e[o];ht(h);const I=s(t(l,o));I?(e[o]=I,i.set(o,I)):(e.splice(o,1),i.delete(o))}}g.next({elements:[...e]})}):A.observable.subscribe(c=>{const u=c.key;if(n){n=!1,e.forEach(l=>ht(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const I=s(t(h,l));I&&(e.push(I),i.set(l,I))}),g.next({elements:[...e]});return}if(c.type==="init"||c.type==="reset"){e.forEach(l=>ht(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const I=s(t(h,l));I&&(e.push(I),i.set(l,I))})}else if(c.type==="add"&&c.key&&c.value!==void 0){const o=s(t(c.value,u));o&&(e.push(o),i.set(u,o))}else if(c.type==="remove"&&c.key){const o=e.findIndex(l=>i.get(u)===l);if(o!==-1){const[l]=e.splice(o,1);ht(l),i.delete(u)}}else if(c.type==="update"&&c.key&&c.value!==void 0){const o=e.findIndex(l=>i.get(u)===l);if(o!==-1){const l=e[o];ht(l);const h=s(t(c.value,u));h&&(e[o]=h,i.set(u,h))}}g.next({elements:[...e]})});return()=>{r.unsubscribe(),e.forEach(c=>ht(c))}})}).pipe(ha({bufferSize:1,refCount:!0}))}function Hg(A,t,...e){let i=null,n=-1;const s=[];let a=null;const g=c=>H(c)?c:typeof c=="function"?Qt(c):Y(c);for(const c of e)if(Array.isArray(c))s.push({condition:g(c[0]),elementFn:c[1]});else if(typeof c=="function"){a=c;break}const r=[{condition:g(A),elementFn:t},...s];return new $(c=>{const u=[],o=()=>{let l=-1;for(let E=0;E<r.length;E++){const d=r[E].condition;if(d()){l=E;break}}const h=l===-1&&a,I=h?-2:l;if(I!==n)if(i&&(ht(i),i=null),n=I,h){let E=a();se(E)?fA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else if(l>=0){let E=r[l].elementFn();se(E)?fA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else c.next({elements:[]})};return r.forEach(({condition:l})=>{const h=l;u.push(h.observable.subscribe(()=>{o()}))}),o(),()=>{u.forEach(l=>l.unsubscribe()),i&&ht(i)}}).pipe(rs())}class no extends St{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null,this.joystickControls=null,this.freezeSubscription=null,this.element=null}onInit(t){var a,g,r;this.element=t;const e=((a=t.props.controls)==null?void 0:a.value)??t.props.controls;if(!e)return;this.keyboardControls=new fs,this.keyboardControls.setInputs(e),this.keyboardControls.start();const i=e.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new ds,this.gamepadControls.setInputs(e),this.gamepadControls.start());const n=e.joystick;n!==void 0&&n.enabled!==!1&&(this.joystickControls=new Qs,this.joystickControls.setInputs(e),this.joystickControls.start()),kt(t)&&this.stopInputs();const s=((g=t.propObservables)==null?void 0:g.freeze)??((r=t.props)==null?void 0:r.freeze);H(s)&&(this.freezeSubscription=s.observable.subscribe(c=>{c?this.stopInputs():this.listenInputs()}))}onMount(t){}onUpdate(t,e){var n;const i=((n=t.controls)==null?void 0:n.value)??t.controls;i&&(this.keyboardControls&&this.keyboardControls.setInputs(i),this.gamepadControls&&this.gamepadControls.setInputs(i)),t.freeze!==void 0&&this.element&&(kt(this.element)?this.stopInputs():this.listenInputs())}onDestroy(t){this.freezeSubscription&&(this.freezeSubscription.unsubscribe(),this.freezeSubscription=null),this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null),this.joystickControls&&(this.joystickControls.destroy(),this.joystickControls=null),this.element=null}getControl(t){var e;return(e=this.keyboardControls)==null?void 0:e.getControl(t)}getControls(){var t;return((t=this.keyboardControls)==null?void 0:t.getControls())||{}}async applyControl(t,e,i){this.keyboardControls&&await this.keyboardControls.applyControl(t,e),this.gamepadControls&&await this.gamepadControls.applyControl(t,e,i),this.joystickControls&&await this.joystickControls.applyControl(t,e,i)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs(),this.joystickControls&&this.joystickControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs(),this.joystickControls&&this.joystickControls.listenInputs()}get options(){var t;return((t=this.keyboardControls)==null?void 0:t.options)||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}get joystick(){return this.joystickControls}}xt("controls",no);class so extends St{constructor(){super(...arguments),this.fps=60,this.deltaTime=0,this.frame=0,this.timestamp=0,this.requestedDelay=0,this.lastTimestamp=0,this._stop=!1}onInit(t){var e;this.tick=(e=t.propObservables)==null?void 0:e.tick}onDestroy(){}onMount(t){}onUpdate(t){}nextTick(t){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=Qe()-this.timestamp,this.timestamp=t,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~Ke(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(t={}){t.maxFps&&(this.maxFps=t.maxFps),t.fps&&(this.fps=t.fps),t.delay&&(this.requestedDelay=t.delay);const e=i=>{as()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(Qe())},Ke(this.fps)+this.requestedDelay)};if(this.maxFps){const i=Ke(this.maxFps);let n=Qe(),s=Qe();const a=g=>{if(this._stop)return;e(a),n=Qe();const r=n-s;r>i&&(s=n-r%i,this.nextTick(g))};e(a)}else{const i=n=>{e(i),this.nextTick(n)};e(i)}return this}stop(){this._stop=!0}}xt("tick",so);const yt=(A,t={})=>{if(H(A))return A();const e={};for(let i in A){const n=A[i];e[i]=Ri(n)?Y(n):n}for(let i in t)i in e||(e[i]=Ri(t[i])?Y(t[i]):t[i]);return e},Gi=A=>t=>{const e=H(A)?A():A,i={};for(const n in t){const s=t[n],a=e[n];let g;if(typeof s=="function")Ni(n,a,[s]),g=a;else if(Array.isArray(s))Ni(n,a,s),g=a;else if(s&&typeof s=="object"){if(s.required&&a===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const r=Array.isArray(s.type)?s.type:[s.type];Ni(n,a,r)}if(s.validator&&!s.validator(a,e))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);a===void 0&&"default"in s?g=typeof s.default=="function"?s.default(e):s.default:g=a}i[n]=H(g)?g:Y(g)}return{...yt(e),...i}};function Ni(A,t,e){if(t==null)return;const i=H(t)?t():t;if(!e.some(s=>s===Number?typeof i=="number":s===String?typeof i=="string":s===Boolean?typeof i=="boolean":s===Function?typeof i=="function":s===Object?typeof i=="object":s===Array?Array.isArray(i):s===null?i===null:i instanceof s))throw new Error(`Invalid prop: type check failed for prop "${A}". Expected ${e.map(s=>s.name).join(" or ")}`)}class oo extends St{onInit(t){}onMount(t){this.onUpdate(t.props.viewportFollow,t)}onUpdate(t,e){var n;const i=(n=e.props.context)==null?void 0:n.viewport;if(!i){if(t)throw ri("ViewportFollow directive requires a Viewport component to be mounted in the same context");return}if(t)if(t===!0)i.follow(e.componentInstance);else{const s=yt(t,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(e.componentInstance,{speed:s.speed(),acceleration:s.acceleration(),radius:s.radius()})}else t===null&&i.plugins.remove("follow")}onDestroy(t){var n;const{viewportFollow:e}=t.props,i=(n=t.props.context)==null?void 0:n.viewport;e&&i&&i.plugins.remove("follow")}}xt("viewportFollow",oo);var $e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lg(A){return A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var ae={};/*!
4
4
  * howler.js v2.2.4
5
5
  * howlerjs.com
6
6
  *
@@ -8,7 +8,7 @@ var CanvasEngine=function(x,v){"use strict";var rc=Object.defineProperty;var gr=
8
8
  * goldfirestudios.com
9
9
  *
10
10
  * MIT License
11
- */(function(e){(function(){var t=function(){this.init()};t.prototype={init:function(){var o=this||A;return o._counter=1e3,o._html5AudioPool=[],o.html5PoolSize=10,o._codecs={},o._howls=[],o._muted=!1,o._volume=1,o._canPlayEvent="canplaythrough",o._navigator=typeof window<"u"&&window.navigator?window.navigator:null,o.masterGain=null,o.noAudio=!1,o.usingWebAudio=!0,o.autoSuspend=!0,o.ctx=null,o.autoUnlock=!0,o._setup(),o},volume:function(o){var h=this||A;if(o=parseFloat(o),h.ctx||I(),typeof o<"u"&&o>=0&&o<=1){if(h._volume=o,h._muted)return h;h.usingWebAudio&&h.masterGain.gain.setValueAtTime(o,A.ctx.currentTime);for(var c=0;c<h._howls.length;c++)if(!h._howls[c]._webAudio)for(var E=h._howls[c]._getSoundIds(),f=0;f<E.length;f++){var Q=h._howls[c]._soundById(E[f]);Q&&Q._node&&(Q._node.volume=Q._volume*o)}return h}return h._volume},mute:function(o){var h=this||A;h.ctx||I(),h._muted=o,h.usingWebAudio&&h.masterGain.gain.setValueAtTime(o?0:h._volume,A.ctx.currentTime);for(var c=0;c<h._howls.length;c++)if(!h._howls[c]._webAudio)for(var E=h._howls[c]._getSoundIds(),f=0;f<E.length;f++){var Q=h._howls[c]._soundById(E[f]);Q&&Q._node&&(Q._node.muted=o?!0:Q._muted)}return h},stop:function(){for(var o=this||A,h=0;h<o._howls.length;h++)o._howls[h].stop();return o},unload:function(){for(var o=this||A,h=o._howls.length-1;h>=0;h--)o._howls[h].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,I()),o},codecs:function(o){return(this||A)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||A;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var h=new Audio;typeof h.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var h=new Audio;h.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||A,h=null;try{h=typeof Audio<"u"?new Audio:null}catch{return o}if(!h||typeof h.canPlayType!="function")return o;var c=h.canPlayType("audio/mpeg;").replace(/^no$/,""),E=o._navigator?o._navigator.userAgent:"",f=E.match(/OPR\/(\d+)/g),Q=f&&parseInt(f[0].split("/")[1],10)<33,C=E.indexOf("Safari")!==-1&&E.indexOf("Chrome")===-1,p=E.match(/Version\/(.*?) /),D=C&&p&&parseInt(p[1],10)<15;return o._codecs={mp3:!!(!Q&&(c||h.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!c,opus:!!h.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!h.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!h.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(h.canPlayType('audio/wav; codecs="1"')||h.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!h.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!h.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(h.canPlayType("audio/x-m4a;")||h.canPlayType("audio/m4a;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(h.canPlayType("audio/x-m4b;")||h.canPlayType("audio/m4b;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(h.canPlayType("audio/x-mp4;")||h.canPlayType("audio/mp4;")||h.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!D&&h.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!D&&h.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!h.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(h.canPlayType("audio/x-flac;")||h.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||A;if(!(o._audioUnlocked||!o.ctx)){o._audioUnlocked=!1,o.autoUnlock=!1,!o._mobileUnloaded&&o.ctx.sampleRate!==44100&&(o._mobileUnloaded=!0,o.unload()),o._scratchBuffer=o.ctx.createBuffer(1,1,22050);var h=function(c){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var E=new Audio;E._unlocked=!0,o._releaseHtml5Audio(E)}catch{o.noAudio=!0;break}for(var f=0;f<o._howls.length;f++)if(!o._howls[f]._webAudio)for(var Q=o._howls[f]._getSoundIds(),C=0;C<Q.length;C++){var p=o._howls[f]._soundById(Q[C]);p&&p._node&&!p._node._unlocked&&(p._node._unlocked=!0,p._node.load())}o._autoResume();var D=o.ctx.createBufferSource();D.buffer=o._scratchBuffer,D.connect(o.ctx.destination),typeof D.start>"u"?D.noteOn(0):D.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),D.onended=function(){D.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",h,!0),document.removeEventListener("touchend",h,!0),document.removeEventListener("click",h,!0),document.removeEventListener("keydown",h,!0);for(var w=0;w<o._howls.length;w++)o._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",h,!0),document.addEventListener("touchend",h,!0),document.addEventListener("click",h,!0),document.addEventListener("keydown",h,!0),o}},_obtainHtml5Audio:function(){var o=this||A;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var h=new Audio().play();return h&&typeof Promise<"u"&&(h instanceof Promise||typeof h.then=="function")&&h.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var h=this||A;return o._unlocked&&h._html5AudioPool.push(o),h},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!A.usingWebAudio)){for(var h=0;h<o._howls.length;h++)if(o._howls[h]._webAudio){for(var c=0;c<o._howls[h]._sounds.length;c++)if(!o._howls[h]._sounds[c]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var E=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(E,E)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!A.usingWebAudio))return o.state==="running"&&o.ctx.state!=="interrupted"&&o._suspendTimer?(clearTimeout(o._suspendTimer),o._suspendTimer=null):o.state==="suspended"||o.state==="running"&&o.ctx.state==="interrupted"?(o.ctx.resume().then(function(){o.state="running";for(var h=0;h<o._howls.length;h++)o._howls[h]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var A=new t,i=function(o){var h=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}h.init(o)};i.prototype={init:function(o){var h=this;return A.ctx||I(),h._autoplay=o.autoplay||!1,h._format=typeof o.format!="string"?o.format:[o.format],h._html5=o.html5||!1,h._muted=o.mute||!1,h._loop=o.loop||!1,h._pool=o.pool||5,h._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,h._rate=o.rate||1,h._sprite=o.sprite||{},h._src=typeof o.src!="string"?o.src:[o.src],h._volume=o.volume!==void 0?o.volume:1,h._xhr={method:o.xhr&&o.xhr.method?o.xhr.method:"GET",headers:o.xhr&&o.xhr.headers?o.xhr.headers:null,withCredentials:o.xhr&&o.xhr.withCredentials?o.xhr.withCredentials:!1},h._duration=0,h._state="unloaded",h._sounds=[],h._endTimers={},h._queue=[],h._playLock=!1,h._onend=o.onend?[{fn:o.onend}]:[],h._onfade=o.onfade?[{fn:o.onfade}]:[],h._onload=o.onload?[{fn:o.onload}]:[],h._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],h._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],h._onpause=o.onpause?[{fn:o.onpause}]:[],h._onplay=o.onplay?[{fn:o.onplay}]:[],h._onstop=o.onstop?[{fn:o.onstop}]:[],h._onmute=o.onmute?[{fn:o.onmute}]:[],h._onvolume=o.onvolume?[{fn:o.onvolume}]:[],h._onrate=o.onrate?[{fn:o.onrate}]:[],h._onseek=o.onseek?[{fn:o.onseek}]:[],h._onunlock=o.onunlock?[{fn:o.onunlock}]:[],h._onresume=[],h._webAudio=A.usingWebAudio&&!h._html5,typeof A.ctx<"u"&&A.ctx&&A.autoUnlock&&A._unlockAudio(),A._howls.push(h),h._autoplay&&h._queue.push({event:"play",action:function(){h.play()}}),h._preload&&h._preload!=="none"&&h.load(),h},load:function(){var o=this,h=null;if(A.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var c=0;c<o._src.length;c++){var E,f;if(o._format&&o._format[c])E=o._format[c];else{if(f=o._src[c],typeof f!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}E=/^data:audio\/([^;,]+);/i.exec(f),E||(E=/\.([^.]+)$/.exec(f.split("?",1)[0])),E&&(E=E[1].toLowerCase())}if(E||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),E&&A.codecs(E)){h=o._src[c];break}}if(!h){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=h,o._state="loading",window.location.protocol==="https:"&&h.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&a(o),o},play:function(o,h){var c=this,E=null;if(typeof o=="number")E=o,o=null;else{if(typeof o=="string"&&c._state==="loaded"&&!c._sprite[o])return null;if(typeof o>"u"&&(o="__default",!c._playLock)){for(var f=0,Q=0;Q<c._sounds.length;Q++)c._sounds[Q]._paused&&!c._sounds[Q]._ended&&(f++,E=c._sounds[Q]._id);f===1?o=null:E=null}}var C=E?c._soundById(E):c._inactiveSound();if(!C)return null;if(E&&!o&&(o=C._sprite||"__default"),c._state!=="loaded"){C._sprite=o,C._ended=!1;var p=C._id;return c._queue.push({event:"play",action:function(){c.play(p)}}),p}if(E&&!C._paused)return h||c._loadQueue("play"),C._id;c._webAudio&&A._autoResume();var D=Math.max(0,C._seek>0?C._seek:c._sprite[o][0]/1e3),w=Math.max(0,(c._sprite[o][0]+c._sprite[o][1])/1e3-D),S=w*1e3/Math.abs(C._rate),_=c._sprite[o][0]/1e3,N=(c._sprite[o][0]+c._sprite[o][1])/1e3;C._sprite=o,C._ended=!1;var J=function(){C._paused=!1,C._seek=D,C._start=_,C._stop=N,C._loop=!!(C._loop||c._sprite[o][2])};if(D>=N){c._ended(C);return}var U=C._node;if(c._webAudio){var z=function(){c._playLock=!1,J(),c._refreshBuffer(C);var V=C._muted||c._muted?0:C._volume;U.gain.setValueAtTime(V,A.ctx.currentTime),C._playStart=A.ctx.currentTime,typeof U.bufferSource.start>"u"?C._loop?U.bufferSource.noteGrainOn(0,D,86400):U.bufferSource.noteGrainOn(0,D,w):C._loop?U.bufferSource.start(0,D,86400):U.bufferSource.start(0,D,w),S!==1/0&&(c._endTimers[C._id]=setTimeout(c._ended.bind(c,C),S)),h||setTimeout(function(){c._emit("play",C._id),c._loadQueue()},0)};A.state==="running"&&A.ctx.state!=="interrupted"?z():(c._playLock=!0,c.once("resume",z),c._clearTimer(C._id))}else{var st=function(){U.currentTime=D,U.muted=C._muted||c._muted||A._muted||U.muted,U.volume=C._volume*A.volume(),U.playbackRate=C._rate;try{var V=U.play();if(V&&typeof Promise<"u"&&(V instanceof Promise||typeof V.then=="function")?(c._playLock=!0,J(),V.then(function(){c._playLock=!1,U._unlocked=!0,h?c._loadQueue():c._emit("play",C._id)}).catch(function(){c._playLock=!1,c._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),C._ended=!0,C._paused=!0})):h||(c._playLock=!1,J(),c._emit("play",C._id)),U.playbackRate=C._rate,U.paused){c._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}o!=="__default"||C._loop?c._endTimers[C._id]=setTimeout(c._ended.bind(c,C),S):(c._endTimers[C._id]=function(){c._ended(C),U.removeEventListener("ended",c._endTimers[C._id],!1)},U.addEventListener("ended",c._endTimers[C._id],!1))}catch(ut){c._emit("playerror",C._id,ut)}};U.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(U.src=c._src,U.load());var ct=window&&window.ejecta||!U.readyState&&A._navigator.isCocoonJS;if(U.readyState>=3||ct)st();else{c._playLock=!0,c._state="loading";var gt=function(){c._state="loaded",st(),U.removeEventListener(A._canPlayEvent,gt,!1)};U.addEventListener(A._canPlayEvent,gt,!1),c._clearTimer(C._id)}}return C._id},pause:function(o){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"pause",action:function(){h.pause(o)}}),h;for(var c=h._getSoundIds(o),E=0;E<c.length;E++){h._clearTimer(c[E]);var f=h._soundById(c[E]);if(f&&!f._paused&&(f._seek=h.seek(c[E]),f._rateSeek=0,f._paused=!0,h._stopFade(c[E]),f._node))if(h._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),h._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||h._emit("pause",f?f._id:null)}return h},stop:function(o,h){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"stop",action:function(){c.stop(o)}}),c;for(var E=c._getSoundIds(o),f=0;f<E.length;f++){c._clearTimer(E[f]);var Q=c._soundById(E[f]);Q&&(Q._seek=Q._start||0,Q._rateSeek=0,Q._paused=!0,Q._ended=!0,c._stopFade(E[f]),Q._node&&(c._webAudio?Q._node.bufferSource&&(typeof Q._node.bufferSource.stop>"u"?Q._node.bufferSource.noteOff(0):Q._node.bufferSource.stop(0),c._cleanBuffer(Q._node)):(!isNaN(Q._node.duration)||Q._node.duration===1/0)&&(Q._node.currentTime=Q._start||0,Q._node.pause(),Q._node.duration===1/0&&c._clearSound(Q._node))),h||c._emit("stop",Q._id))}return c},mute:function(o,h){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"mute",action:function(){c.mute(o,h)}}),c;if(typeof h>"u")if(typeof o=="boolean")c._muted=o;else return c._muted;for(var E=c._getSoundIds(h),f=0;f<E.length;f++){var Q=c._soundById(E[f]);Q&&(Q._muted=o,Q._interval&&c._stopFade(Q._id),c._webAudio&&Q._node?Q._node.gain.setValueAtTime(o?0:Q._volume,A.ctx.currentTime):Q._node&&(Q._node.muted=A._muted?!0:o),c._emit("mute",Q._id))}return c},volume:function(){var o=this,h=arguments,c,E;if(h.length===0)return o._volume;if(h.length===1||h.length===2&&typeof h[1]>"u"){var f=o._getSoundIds(),Q=f.indexOf(h[0]);Q>=0?E=parseInt(h[0],10):c=parseFloat(h[0])}else h.length>=2&&(c=parseFloat(h[0]),E=parseInt(h[1],10));var C;if(typeof c<"u"&&c>=0&&c<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,h)}}),o;typeof E>"u"&&(o._volume=c),E=o._getSoundIds(E);for(var p=0;p<E.length;p++)C=o._soundById(E[p]),C&&(C._volume=c,h[2]||o._stopFade(E[p]),o._webAudio&&C._node&&!C._muted?C._node.gain.setValueAtTime(c,A.ctx.currentTime):C._node&&!C._muted&&(C._node.volume=c*A.volume()),o._emit("volume",C._id))}else return C=E?o._soundById(E):o._sounds[0],C?C._volume:0;return o},fade:function(o,h,c,E){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(o,h,c,E)}}),f;o=Math.min(Math.max(0,parseFloat(o)),1),h=Math.min(Math.max(0,parseFloat(h)),1),c=parseFloat(c),f.volume(o,E);for(var Q=f._getSoundIds(E),C=0;C<Q.length;C++){var p=f._soundById(Q[C]);if(p){if(E||f._stopFade(Q[C]),f._webAudio&&!p._muted){var D=A.ctx.currentTime,w=D+c/1e3;p._volume=o,p._node.gain.setValueAtTime(o,D),p._node.gain.linearRampToValueAtTime(h,w)}f._startFadeInterval(p,o,h,c,Q[C],typeof E>"u")}}return f},_startFadeInterval:function(o,h,c,E,f,Q){var C=this,p=h,D=c-h,w=Math.abs(D/.01),S=Math.max(4,w>0?E/w:E),_=Date.now();o._fadeTo=c,o._interval=setInterval(function(){var N=(Date.now()-_)/E;_=Date.now(),p+=D*N,p=Math.round(p*100)/100,D<0?p=Math.max(c,p):p=Math.min(c,p),C._webAudio?o._volume=p:C.volume(p,o._id,!0),Q&&(C._volume=p),(c<h&&p<=c||c>h&&p>=c)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,C.volume(c,o._id),C._emit("fade",o._id))},S)},_stopFade:function(o){var h=this,c=h._soundById(o);return c&&c._interval&&(h._webAudio&&c._node.gain.cancelScheduledValues(A.ctx.currentTime),clearInterval(c._interval),c._interval=null,h.volume(c._fadeTo,o),c._fadeTo=null,h._emit("fade",o)),h},loop:function(){var o=this,h=arguments,c,E,f;if(h.length===0)return o._loop;if(h.length===1)if(typeof h[0]=="boolean")c=h[0],o._loop=c;else return f=o._soundById(parseInt(h[0],10)),f?f._loop:!1;else h.length===2&&(c=h[0],E=parseInt(h[1],10));for(var Q=o._getSoundIds(E),C=0;C<Q.length;C++)f=o._soundById(Q[C]),f&&(f._loop=c,o._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=c,c&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,o.playing(Q[C])&&(o.pause(Q[C],!0),o.play(Q[C],!0)))));return o},rate:function(){var o=this,h=arguments,c,E;if(h.length===0)E=o._sounds[0]._id;else if(h.length===1){var f=o._getSoundIds(),Q=f.indexOf(h[0]);Q>=0?E=parseInt(h[0],10):c=parseFloat(h[0])}else h.length===2&&(c=parseFloat(h[0]),E=parseInt(h[1],10));var C;if(typeof c=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,h)}}),o;typeof E>"u"&&(o._rate=c),E=o._getSoundIds(E);for(var p=0;p<E.length;p++)if(C=o._soundById(E[p]),C){o.playing(E[p])&&(C._rateSeek=o.seek(E[p]),C._playStart=o._webAudio?A.ctx.currentTime:C._playStart),C._rate=c,o._webAudio&&C._node&&C._node.bufferSource?C._node.bufferSource.playbackRate.setValueAtTime(c,A.ctx.currentTime):C._node&&(C._node.playbackRate=c);var D=o.seek(E[p]),w=(o._sprite[C._sprite][0]+o._sprite[C._sprite][1])/1e3-D,S=w*1e3/Math.abs(C._rate);(o._endTimers[E[p]]||!C._paused)&&(o._clearTimer(E[p]),o._endTimers[E[p]]=setTimeout(o._ended.bind(o,C),S)),o._emit("rate",C._id)}}else return C=o._soundById(E),C?C._rate:o._rate;return o},seek:function(){var o=this,h=arguments,c,E;if(h.length===0)o._sounds.length&&(E=o._sounds[0]._id);else if(h.length===1){var f=o._getSoundIds(),Q=f.indexOf(h[0]);Q>=0?E=parseInt(h[0],10):o._sounds.length&&(E=o._sounds[0]._id,c=parseFloat(h[0]))}else h.length===2&&(c=parseFloat(h[0]),E=parseInt(h[1],10));if(typeof E>"u")return 0;if(typeof c=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,h)}}),o;var C=o._soundById(E);if(C)if(typeof c=="number"&&c>=0){var p=o.playing(E);p&&o.pause(E,!0),C._seek=c,C._ended=!1,o._clearTimer(E),!o._webAudio&&C._node&&!isNaN(C._node.duration)&&(C._node.currentTime=c);var D=function(){p&&o.play(E,!0),o._emit("seek",E)};if(p&&!o._webAudio){var w=function(){o._playLock?setTimeout(w,0):D()};setTimeout(w,0)}else D()}else if(o._webAudio){var S=o.playing(E)?A.ctx.currentTime-C._playStart:0,_=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(_+S*Math.abs(C._rate))}else return C._node.currentTime;return o},playing:function(o){var h=this;if(typeof o=="number"){var c=h._soundById(o);return c?!c._paused:!1}for(var E=0;E<h._sounds.length;E++)if(!h._sounds[E]._paused)return!0;return!1},duration:function(o){var h=this,c=h._duration,E=h._soundById(o);return E&&(c=h._sprite[E._sprite][1]/1e3),c},state:function(){return this._state},unload:function(){for(var o=this,h=o._sounds,c=0;c<h.length;c++)h[c]._paused||o.stop(h[c]._id),o._webAudio||(o._clearSound(h[c]._node),h[c]._node.removeEventListener("error",h[c]._errorFn,!1),h[c]._node.removeEventListener(A._canPlayEvent,h[c]._loadFn,!1),h[c]._node.removeEventListener("ended",h[c]._endFn,!1),A._releaseHtml5Audio(h[c]._node)),delete h[c]._node,o._clearTimer(h[c]._id);var E=A._howls.indexOf(o);E>=0&&A._howls.splice(E,1);var f=!0;for(c=0;c<A._howls.length;c++)if(A._howls[c]._src===o._src||o._src.indexOf(A._howls[c]._src)>=0){f=!1;break}return f&&delete s[o._src],A.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,h,c,E){var f=this,Q=f["_on"+o];return typeof h=="function"&&Q.push(E?{id:c,fn:h,once:E}:{id:c,fn:h}),f},off:function(o,h,c){var E=this,f=E["_on"+o],Q=0;if(typeof h=="number"&&(c=h,h=null),h||c)for(Q=0;Q<f.length;Q++){var C=c===f[Q].id;if(h===f[Q].fn&&C||!h&&C){f.splice(Q,1);break}}else if(o)E["_on"+o]=[];else{var p=Object.keys(E);for(Q=0;Q<p.length;Q++)p[Q].indexOf("_on")===0&&Array.isArray(E[p[Q]])&&(E[p[Q]]=[])}return E},once:function(o,h,c){var E=this;return E.on(o,h,c,1),E},_emit:function(o,h,c){for(var E=this,f=E["_on"+o],Q=f.length-1;Q>=0;Q--)(!f[Q].id||f[Q].id===h||o==="load")&&(setTimeout((function(C){C.call(this,h,c)}).bind(E,f[Q].fn),0),f[Q].once&&E.off(o,f[Q].fn,f[Q].id));return E._loadQueue(o),E},_loadQueue:function(o){var h=this;if(h._queue.length>0){var c=h._queue[0];c.event===o&&(h._queue.shift(),h._loadQueue()),o||c.action()}return h},_ended:function(o){var h=this,c=o._sprite;if(!h._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(h._ended.bind(h,o),100),h;var E=!!(o._loop||h._sprite[c][2]);if(h._emit("end",o._id),!h._webAudio&&E&&h.stop(o._id,!0).play(o._id),h._webAudio&&E){h._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=A.ctx.currentTime;var f=(o._stop-o._start)*1e3/Math.abs(o._rate);h._endTimers[o._id]=setTimeout(h._ended.bind(h,o),f)}return h._webAudio&&!E&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,h._clearTimer(o._id),h._cleanBuffer(o._node),A._autoSuspend()),!h._webAudio&&!E&&h.stop(o._id,!0),h},_clearTimer:function(o){var h=this;if(h._endTimers[o]){if(typeof h._endTimers[o]!="function")clearTimeout(h._endTimers[o]);else{var c=h._soundById(o);c&&c._node&&c._node.removeEventListener("ended",h._endTimers[o],!1)}delete h._endTimers[o]}return h},_soundById:function(o){for(var h=this,c=0;c<h._sounds.length;c++)if(o===h._sounds[c]._id)return h._sounds[c];return null},_inactiveSound:function(){var o=this;o._drain();for(var h=0;h<o._sounds.length;h++)if(o._sounds[h]._ended)return o._sounds[h].reset();return new n(o)},_drain:function(){var o=this,h=o._pool,c=0,E=0;if(!(o._sounds.length<h)){for(E=0;E<o._sounds.length;E++)o._sounds[E]._ended&&c++;for(E=o._sounds.length-1;E>=0;E--){if(c<=h)return;o._sounds[E]._ended&&(o._webAudio&&o._sounds[E]._node&&o._sounds[E]._node.disconnect(0),o._sounds.splice(E,1),c--)}}},_getSoundIds:function(o){var h=this;if(typeof o>"u"){for(var c=[],E=0;E<h._sounds.length;E++)c.push(h._sounds[E]._id);return c}else return[o]},_refreshBuffer:function(o){var h=this;return o._node.bufferSource=A.ctx.createBufferSource(),o._node.bufferSource.buffer=s[h._src],o._panner?o._node.bufferSource.connect(o._panner):o._node.bufferSource.connect(o._node),o._node.bufferSource.loop=o._loop,o._loop&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop||0),o._node.bufferSource.playbackRate.setValueAtTime(o._rate,A.ctx.currentTime),h},_cleanBuffer:function(o){var h=this,c=A._navigator&&A._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return h;if(A._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),c))try{o.bufferSource.buffer=A._scratchBuffer}catch{}return o.bufferSource=null,h},_clearSound:function(o){var h=/MSIE |Trident\//.test(A._navigator&&A._navigator.userAgent);h||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,h=o._parent;return o._muted=h._muted,o._loop=h._loop,o._volume=h._volume,o._rate=h._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++A._counter,h._sounds.push(o),o.create(),o},create:function(){var o=this,h=o._parent,c=A._muted||o._muted||o._parent._muted?0:o._volume;return h._webAudio?(o._node=typeof A.ctx.createGain>"u"?A.ctx.createGainNode():A.ctx.createGain(),o._node.gain.setValueAtTime(c,A.ctx.currentTime),o._node.paused=!0,o._node.connect(A.masterGain)):A.noAudio||(o._node=A._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(A._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=h._src,o._node.preload=h._preload===!0?"auto":h._preload,o._node.volume=c*A.volume(),o._node.load()),o},reset:function(){var o=this,h=o._parent;return o._muted=h._muted,o._loop=h._loop,o._volume=h._volume,o._rate=h._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++A._counter,o},_errorListener:function(){var o=this;o._parent._emit("loaderror",o._id,o._node.error?o._node.error.code:0),o._node.removeEventListener("error",o._errorFn,!1)},_loadListener:function(){var o=this,h=o._parent;h._duration=Math.ceil(o._node.duration*10)/10,Object.keys(h._sprite).length===0&&(h._sprite={__default:[0,h._duration*1e3]}),h._state!=="loaded"&&(h._state="loaded",h._emit("load"),h._loadQueue()),o._node.removeEventListener(A._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,h=o._parent;h._duration===1/0&&(h._duration=Math.ceil(o._node.duration*10)/10,h._sprite.__default[1]===1/0&&(h._sprite.__default[1]=h._duration*1e3),h._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},a=function(o){var h=o._src;if(s[h]){o._duration=s[h].duration,l(o);return}if(/^data:[^;]+;base64,/.test(h)){for(var c=atob(h.split(",")[1]),E=new Uint8Array(c.length),f=0;f<c.length;++f)E[f]=c.charCodeAt(f);r(E.buffer,o)}else{var Q=new XMLHttpRequest;Q.open(o._xhr.method,h,!0),Q.withCredentials=o._xhr.withCredentials,Q.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(C){Q.setRequestHeader(C,o._xhr.headers[C])}),Q.onload=function(){var C=(Q.status+"")[0];if(C!=="0"&&C!=="2"&&C!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+Q.status+".");return}r(Q.response,o)},Q.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[h],o.load())},g(Q)}},g=function(o){try{o.send()}catch{o.onerror()}},r=function(o,h){var c=function(){h._emit("loaderror",null,"Decoding audio data failed.")},E=function(f){f&&h._sounds.length>0?(s[h._src]=f,l(h,f)):c()};typeof Promise<"u"&&A.ctx.decodeAudioData.length===1?A.ctx.decodeAudioData(o).then(E).catch(c):A.ctx.decodeAudioData(o,E,c)},l=function(o,h){h&&!o._duration&&(o._duration=h.duration),Object.keys(o._sprite).length===0&&(o._sprite={__default:[0,o._duration*1e3]}),o._state!=="loaded"&&(o._state="loaded",o._emit("load"),o._loadQueue())},I=function(){if(A.usingWebAudio){try{typeof AudioContext<"u"?A.ctx=new AudioContext:typeof webkitAudioContext<"u"?A.ctx=new webkitAudioContext:A.usingWebAudio=!1}catch{A.usingWebAudio=!1}A.ctx||(A.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(A._navigator&&A._navigator.platform),h=A._navigator&&A._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),c=h?parseInt(h[1],10):null;if(o&&c&&c<9){var E=/safari/.test(A._navigator&&A._navigator.userAgent.toLowerCase());A._navigator&&!E&&(A.usingWebAudio=!1)}A.usingWebAudio&&(A.masterGain=typeof A.ctx.createGain>"u"?A.ctx.createGainNode():A.ctx.createGain(),A.masterGain.gain.setValueAtTime(A._muted?0:A._volume,A.ctx.currentTime),A.masterGain.connect(A.ctx.destination)),A._setup()}};e.Howler=A,e.Howl=i,typeof qA<"u"?(qA.HowlerGlobal=t,qA.Howler=A,qA.Howl=i,qA.Sound=n):typeof window<"u"&&(window.HowlerGlobal=t,window.Howler=A,window.Howl=i,window.Sound=n)})();/*!
11
+ */(function(A){(function(){var t=function(){this.init()};t.prototype={init:function(){var o=this||e;return o._counter=1e3,o._html5AudioPool=[],o.html5PoolSize=10,o._codecs={},o._howls=[],o._muted=!1,o._volume=1,o._canPlayEvent="canplaythrough",o._navigator=typeof window<"u"&&window.navigator?window.navigator:null,o.masterGain=null,o.noAudio=!1,o.usingWebAudio=!0,o.autoSuspend=!0,o.ctx=null,o.autoUnlock=!0,o._setup(),o},volume:function(o){var l=this||e;if(o=parseFloat(o),l.ctx||u(),typeof o<"u"&&o>=0&&o<=1){if(l._volume=o,l._muted)return l;l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var I=l._howls[h]._getSoundIds(),E=0;E<I.length;E++){var d=l._howls[h]._soundById(I[E]);d&&d._node&&(d._node.volume=d._volume*o)}return l}return l._volume},mute:function(o){var l=this||e;l.ctx||u(),l._muted=o,l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o?0:l._volume,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var I=l._howls[h]._getSoundIds(),E=0;E<I.length;E++){var d=l._howls[h]._soundById(I[E]);d&&d._node&&(d._node.muted=o?!0:d._muted)}return l},stop:function(){for(var o=this||e,l=0;l<o._howls.length;l++)o._howls[l].stop();return o},unload:function(){for(var o=this||e,l=o._howls.length-1;l>=0;l--)o._howls[l].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,u()),o},codecs:function(o){return(this||e)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||e;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var l=new Audio;typeof l.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var l=new Audio;l.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||e,l=null;try{l=typeof Audio<"u"?new Audio:null}catch{return o}if(!l||typeof l.canPlayType!="function")return o;var h=l.canPlayType("audio/mpeg;").replace(/^no$/,""),I=o._navigator?o._navigator.userAgent:"",E=I.match(/OPR\/(\d+)/g),d=E&&parseInt(E[0].split("/")[1],10)<33,C=I.indexOf("Safari")!==-1&&I.indexOf("Chrome")===-1,p=I.match(/Version\/(.*?) /),D=C&&p&&parseInt(p[1],10)<15;return o._codecs={mp3:!!(!d&&(h||l.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!h,opus:!!l.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(l.canPlayType('audio/wav; codecs="1"')||l.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!l.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!l.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(l.canPlayType("audio/x-m4a;")||l.canPlayType("audio/m4a;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(l.canPlayType("audio/x-m4b;")||l.canPlayType("audio/m4b;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(l.canPlayType("audio/x-mp4;")||l.canPlayType("audio/mp4;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!D&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!D&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!l.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(l.canPlayType("audio/x-flac;")||l.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||e;if(!(o._audioUnlocked||!o.ctx)){o._audioUnlocked=!1,o.autoUnlock=!1,!o._mobileUnloaded&&o.ctx.sampleRate!==44100&&(o._mobileUnloaded=!0,o.unload()),o._scratchBuffer=o.ctx.createBuffer(1,1,22050);var l=function(h){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var I=new Audio;I._unlocked=!0,o._releaseHtml5Audio(I)}catch{o.noAudio=!0;break}for(var E=0;E<o._howls.length;E++)if(!o._howls[E]._webAudio)for(var d=o._howls[E]._getSoundIds(),C=0;C<d.length;C++){var p=o._howls[E]._soundById(d[C]);p&&p._node&&!p._node._unlocked&&(p._node._unlocked=!0,p._node.load())}o._autoResume();var D=o.ctx.createBufferSource();D.buffer=o._scratchBuffer,D.connect(o.ctx.destination),typeof D.start>"u"?D.noteOn(0):D.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),D.onended=function(){D.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",l,!0),document.removeEventListener("touchend",l,!0),document.removeEventListener("click",l,!0),document.removeEventListener("keydown",l,!0);for(var w=0;w<o._howls.length;w++)o._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",l,!0),document.addEventListener("touchend",l,!0),document.addEventListener("click",l,!0),document.addEventListener("keydown",l,!0),o}},_obtainHtml5Audio:function(){var o=this||e;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var l=new Audio().play();return l&&typeof Promise<"u"&&(l instanceof Promise||typeof l.then=="function")&&l.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var l=this||e;return o._unlocked&&l._html5AudioPool.push(o),l},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!e.usingWebAudio)){for(var l=0;l<o._howls.length;l++)if(o._howls[l]._webAudio){for(var h=0;h<o._howls[l]._sounds.length;h++)if(!o._howls[l]._sounds[h]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var I=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(I,I)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!e.usingWebAudio))return o.state==="running"&&o.ctx.state!=="interrupted"&&o._suspendTimer?(clearTimeout(o._suspendTimer),o._suspendTimer=null):o.state==="suspended"||o.state==="running"&&o.ctx.state==="interrupted"?(o.ctx.resume().then(function(){o.state="running";for(var l=0;l<o._howls.length;l++)o._howls[l]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var e=new t,i=function(o){var l=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}l.init(o)};i.prototype={init:function(o){var l=this;return e.ctx||u(),l._autoplay=o.autoplay||!1,l._format=typeof o.format!="string"?o.format:[o.format],l._html5=o.html5||!1,l._muted=o.mute||!1,l._loop=o.loop||!1,l._pool=o.pool||5,l._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,l._rate=o.rate||1,l._sprite=o.sprite||{},l._src=typeof o.src!="string"?o.src:[o.src],l._volume=o.volume!==void 0?o.volume:1,l._xhr={method:o.xhr&&o.xhr.method?o.xhr.method:"GET",headers:o.xhr&&o.xhr.headers?o.xhr.headers:null,withCredentials:o.xhr&&o.xhr.withCredentials?o.xhr.withCredentials:!1},l._duration=0,l._state="unloaded",l._sounds=[],l._endTimers={},l._queue=[],l._playLock=!1,l._onend=o.onend?[{fn:o.onend}]:[],l._onfade=o.onfade?[{fn:o.onfade}]:[],l._onload=o.onload?[{fn:o.onload}]:[],l._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],l._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],l._onpause=o.onpause?[{fn:o.onpause}]:[],l._onplay=o.onplay?[{fn:o.onplay}]:[],l._onstop=o.onstop?[{fn:o.onstop}]:[],l._onmute=o.onmute?[{fn:o.onmute}]:[],l._onvolume=o.onvolume?[{fn:o.onvolume}]:[],l._onrate=o.onrate?[{fn:o.onrate}]:[],l._onseek=o.onseek?[{fn:o.onseek}]:[],l._onunlock=o.onunlock?[{fn:o.onunlock}]:[],l._onresume=[],l._webAudio=e.usingWebAudio&&!l._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(l),l._autoplay&&l._queue.push({event:"play",action:function(){l.play()}}),l._preload&&l._preload!=="none"&&l.load(),l},load:function(){var o=this,l=null;if(e.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var h=0;h<o._src.length;h++){var I,E;if(o._format&&o._format[h])I=o._format[h];else{if(E=o._src[h],typeof E!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}I=/^data:audio\/([^;,]+);/i.exec(E),I||(I=/\.([^.]+)$/.exec(E.split("?",1)[0])),I&&(I=I[1].toLowerCase())}if(I||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),I&&e.codecs(I)){l=o._src[h];break}}if(!l){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=l,o._state="loading",window.location.protocol==="https:"&&l.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&a(o),o},play:function(o,l){var h=this,I=null;if(typeof o=="number")I=o,o=null;else{if(typeof o=="string"&&h._state==="loaded"&&!h._sprite[o])return null;if(typeof o>"u"&&(o="__default",!h._playLock)){for(var E=0,d=0;d<h._sounds.length;d++)h._sounds[d]._paused&&!h._sounds[d]._ended&&(E++,I=h._sounds[d]._id);E===1?o=null:I=null}}var C=I?h._soundById(I):h._inactiveSound();if(!C)return null;if(I&&!o&&(o=C._sprite||"__default"),h._state!=="loaded"){C._sprite=o,C._ended=!1;var p=C._id;return h._queue.push({event:"play",action:function(){h.play(p)}}),p}if(I&&!C._paused)return l||h._loadQueue("play"),C._id;h._webAudio&&e._autoResume();var D=Math.max(0,C._seek>0?C._seek:h._sprite[o][0]/1e3),w=Math.max(0,(h._sprite[o][0]+h._sprite[o][1])/1e3-D),b=w*1e3/Math.abs(C._rate),_=h._sprite[o][0]/1e3,N=(h._sprite[o][0]+h._sprite[o][1])/1e3;C._sprite=o,C._ended=!1;var J=function(){C._paused=!1,C._seek=D,C._start=_,C._stop=N,C._loop=!!(C._loop||h._sprite[o][2])};if(D>=N){h._ended(C);return}var L=C._node;if(h._webAudio){var O=function(){h._playLock=!1,J(),h._refreshBuffer(C);var Z=C._muted||h._muted?0:C._volume;L.gain.setValueAtTime(Z,e.ctx.currentTime),C._playStart=e.ctx.currentTime,typeof L.bufferSource.start>"u"?C._loop?L.bufferSource.noteGrainOn(0,D,86400):L.bufferSource.noteGrainOn(0,D,w):C._loop?L.bufferSource.start(0,D,86400):L.bufferSource.start(0,D,w),b!==1/0&&(h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),b)),l||setTimeout(function(){h._emit("play",C._id),h._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?O():(h._playLock=!0,h.once("resume",O),h._clearTimer(C._id))}else{var j=function(){L.currentTime=D,L.muted=C._muted||h._muted||e._muted||L.muted,L.volume=C._volume*e.volume(),L.playbackRate=C._rate;try{var Z=L.play();if(Z&&typeof Promise<"u"&&(Z instanceof Promise||typeof Z.then=="function")?(h._playLock=!0,J(),Z.then(function(){h._playLock=!1,L._unlocked=!0,l?h._loadQueue():h._emit("play",C._id)}).catch(function(){h._playLock=!1,h._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),C._ended=!0,C._paused=!0})):l||(h._playLock=!1,J(),h._emit("play",C._id)),L.playbackRate=C._rate,L.paused){h._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}o!=="__default"||C._loop?h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),b):(h._endTimers[C._id]=function(){h._ended(C),L.removeEventListener("ended",h._endTimers[C._id],!1)},L.addEventListener("ended",h._endTimers[C._id],!1))}catch(ft){h._emit("playerror",C._id,ft)}};L.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(L.src=h._src,L.load());var et=window&&window.ejecta||!L.readyState&&e._navigator.isCocoonJS;if(L.readyState>=3||et)j();else{h._playLock=!0,h._state="loading";var at=function(){h._state="loaded",j(),L.removeEventListener(e._canPlayEvent,at,!1)};L.addEventListener(e._canPlayEvent,at,!1),h._clearTimer(C._id)}}return C._id},pause:function(o){var l=this;if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"pause",action:function(){l.pause(o)}}),l;for(var h=l._getSoundIds(o),I=0;I<h.length;I++){l._clearTimer(h[I]);var E=l._soundById(h[I]);if(E&&!E._paused&&(E._seek=l.seek(h[I]),E._rateSeek=0,E._paused=!0,l._stopFade(h[I]),E._node))if(l._webAudio){if(!E._node.bufferSource)continue;typeof E._node.bufferSource.stop>"u"?E._node.bufferSource.noteOff(0):E._node.bufferSource.stop(0),l._cleanBuffer(E._node)}else(!isNaN(E._node.duration)||E._node.duration===1/0)&&E._node.pause();arguments[1]||l._emit("pause",E?E._id:null)}return l},stop:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"stop",action:function(){h.stop(o)}}),h;for(var I=h._getSoundIds(o),E=0;E<I.length;E++){h._clearTimer(I[E]);var d=h._soundById(I[E]);d&&(d._seek=d._start||0,d._rateSeek=0,d._paused=!0,d._ended=!0,h._stopFade(I[E]),d._node&&(h._webAudio?d._node.bufferSource&&(typeof d._node.bufferSource.stop>"u"?d._node.bufferSource.noteOff(0):d._node.bufferSource.stop(0),h._cleanBuffer(d._node)):(!isNaN(d._node.duration)||d._node.duration===1/0)&&(d._node.currentTime=d._start||0,d._node.pause(),d._node.duration===1/0&&h._clearSound(d._node))),l||h._emit("stop",d._id))}return h},mute:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"mute",action:function(){h.mute(o,l)}}),h;if(typeof l>"u")if(typeof o=="boolean")h._muted=o;else return h._muted;for(var I=h._getSoundIds(l),E=0;E<I.length;E++){var d=h._soundById(I[E]);d&&(d._muted=o,d._interval&&h._stopFade(d._id),h._webAudio&&d._node?d._node.gain.setValueAtTime(o?0:d._volume,e.ctx.currentTime):d._node&&(d._node.muted=e._muted?!0:o),h._emit("mute",d._id))}return h},volume:function(){var o=this,l=arguments,h,I;if(l.length===0)return o._volume;if(l.length===1||l.length===2&&typeof l[1]>"u"){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?I=parseInt(l[0],10):h=parseFloat(l[0])}else l.length>=2&&(h=parseFloat(l[0]),I=parseInt(l[1],10));var C;if(typeof h<"u"&&h>=0&&h<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,l)}}),o;typeof I>"u"&&(o._volume=h),I=o._getSoundIds(I);for(var p=0;p<I.length;p++)C=o._soundById(I[p]),C&&(C._volume=h,l[2]||o._stopFade(I[p]),o._webAudio&&C._node&&!C._muted?C._node.gain.setValueAtTime(h,e.ctx.currentTime):C._node&&!C._muted&&(C._node.volume=h*e.volume()),o._emit("volume",C._id))}else return C=I?o._soundById(I):o._sounds[0],C?C._volume:0;return o},fade:function(o,l,h,I){var E=this;if(E._state!=="loaded"||E._playLock)return E._queue.push({event:"fade",action:function(){E.fade(o,l,h,I)}}),E;o=Math.min(Math.max(0,parseFloat(o)),1),l=Math.min(Math.max(0,parseFloat(l)),1),h=parseFloat(h),E.volume(o,I);for(var d=E._getSoundIds(I),C=0;C<d.length;C++){var p=E._soundById(d[C]);if(p){if(I||E._stopFade(d[C]),E._webAudio&&!p._muted){var D=e.ctx.currentTime,w=D+h/1e3;p._volume=o,p._node.gain.setValueAtTime(o,D),p._node.gain.linearRampToValueAtTime(l,w)}E._startFadeInterval(p,o,l,h,d[C],typeof I>"u")}}return E},_startFadeInterval:function(o,l,h,I,E,d){var C=this,p=l,D=h-l,w=Math.abs(D/.01),b=Math.max(4,w>0?I/w:I),_=Date.now();o._fadeTo=h,o._interval=setInterval(function(){var N=(Date.now()-_)/I;_=Date.now(),p+=D*N,p=Math.round(p*100)/100,D<0?p=Math.max(h,p):p=Math.min(h,p),C._webAudio?o._volume=p:C.volume(p,o._id,!0),d&&(C._volume=p),(h<l&&p<=h||h>l&&p>=h)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,C.volume(h,o._id),C._emit("fade",o._id))},b)},_stopFade:function(o){var l=this,h=l._soundById(o);return h&&h._interval&&(l._webAudio&&h._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(h._interval),h._interval=null,l.volume(h._fadeTo,o),h._fadeTo=null,l._emit("fade",o)),l},loop:function(){var o=this,l=arguments,h,I,E;if(l.length===0)return o._loop;if(l.length===1)if(typeof l[0]=="boolean")h=l[0],o._loop=h;else return E=o._soundById(parseInt(l[0],10)),E?E._loop:!1;else l.length===2&&(h=l[0],I=parseInt(l[1],10));for(var d=o._getSoundIds(I),C=0;C<d.length;C++)E=o._soundById(d[C]),E&&(E._loop=h,o._webAudio&&E._node&&E._node.bufferSource&&(E._node.bufferSource.loop=h,h&&(E._node.bufferSource.loopStart=E._start||0,E._node.bufferSource.loopEnd=E._stop,o.playing(d[C])&&(o.pause(d[C],!0),o.play(d[C],!0)))));return o},rate:function(){var o=this,l=arguments,h,I;if(l.length===0)I=o._sounds[0]._id;else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?I=parseInt(l[0],10):h=parseFloat(l[0])}else l.length===2&&(h=parseFloat(l[0]),I=parseInt(l[1],10));var C;if(typeof h=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,l)}}),o;typeof I>"u"&&(o._rate=h),I=o._getSoundIds(I);for(var p=0;p<I.length;p++)if(C=o._soundById(I[p]),C){o.playing(I[p])&&(C._rateSeek=o.seek(I[p]),C._playStart=o._webAudio?e.ctx.currentTime:C._playStart),C._rate=h,o._webAudio&&C._node&&C._node.bufferSource?C._node.bufferSource.playbackRate.setValueAtTime(h,e.ctx.currentTime):C._node&&(C._node.playbackRate=h);var D=o.seek(I[p]),w=(o._sprite[C._sprite][0]+o._sprite[C._sprite][1])/1e3-D,b=w*1e3/Math.abs(C._rate);(o._endTimers[I[p]]||!C._paused)&&(o._clearTimer(I[p]),o._endTimers[I[p]]=setTimeout(o._ended.bind(o,C),b)),o._emit("rate",C._id)}}else return C=o._soundById(I),C?C._rate:o._rate;return o},seek:function(){var o=this,l=arguments,h,I;if(l.length===0)o._sounds.length&&(I=o._sounds[0]._id);else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?I=parseInt(l[0],10):o._sounds.length&&(I=o._sounds[0]._id,h=parseFloat(l[0]))}else l.length===2&&(h=parseFloat(l[0]),I=parseInt(l[1],10));if(typeof I>"u")return 0;if(typeof h=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,l)}}),o;var C=o._soundById(I);if(C)if(typeof h=="number"&&h>=0){var p=o.playing(I);p&&o.pause(I,!0),C._seek=h,C._ended=!1,o._clearTimer(I),!o._webAudio&&C._node&&!isNaN(C._node.duration)&&(C._node.currentTime=h);var D=function(){p&&o.play(I,!0),o._emit("seek",I)};if(p&&!o._webAudio){var w=function(){o._playLock?setTimeout(w,0):D()};setTimeout(w,0)}else D()}else if(o._webAudio){var b=o.playing(I)?e.ctx.currentTime-C._playStart:0,_=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(_+b*Math.abs(C._rate))}else return C._node.currentTime;return o},playing:function(o){var l=this;if(typeof o=="number"){var h=l._soundById(o);return h?!h._paused:!1}for(var I=0;I<l._sounds.length;I++)if(!l._sounds[I]._paused)return!0;return!1},duration:function(o){var l=this,h=l._duration,I=l._soundById(o);return I&&(h=l._sprite[I._sprite][1]/1e3),h},state:function(){return this._state},unload:function(){for(var o=this,l=o._sounds,h=0;h<l.length;h++)l[h]._paused||o.stop(l[h]._id),o._webAudio||(o._clearSound(l[h]._node),l[h]._node.removeEventListener("error",l[h]._errorFn,!1),l[h]._node.removeEventListener(e._canPlayEvent,l[h]._loadFn,!1),l[h]._node.removeEventListener("ended",l[h]._endFn,!1),e._releaseHtml5Audio(l[h]._node)),delete l[h]._node,o._clearTimer(l[h]._id);var I=e._howls.indexOf(o);I>=0&&e._howls.splice(I,1);var E=!0;for(h=0;h<e._howls.length;h++)if(e._howls[h]._src===o._src||o._src.indexOf(e._howls[h]._src)>=0){E=!1;break}return E&&delete s[o._src],e.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,l,h,I){var E=this,d=E["_on"+o];return typeof l=="function"&&d.push(I?{id:h,fn:l,once:I}:{id:h,fn:l}),E},off:function(o,l,h){var I=this,E=I["_on"+o],d=0;if(typeof l=="number"&&(h=l,l=null),l||h)for(d=0;d<E.length;d++){var C=h===E[d].id;if(l===E[d].fn&&C||!l&&C){E.splice(d,1);break}}else if(o)I["_on"+o]=[];else{var p=Object.keys(I);for(d=0;d<p.length;d++)p[d].indexOf("_on")===0&&Array.isArray(I[p[d]])&&(I[p[d]]=[])}return I},once:function(o,l,h){var I=this;return I.on(o,l,h,1),I},_emit:function(o,l,h){for(var I=this,E=I["_on"+o],d=E.length-1;d>=0;d--)(!E[d].id||E[d].id===l||o==="load")&&(setTimeout((function(C){C.call(this,l,h)}).bind(I,E[d].fn),0),E[d].once&&I.off(o,E[d].fn,E[d].id));return I._loadQueue(o),I},_loadQueue:function(o){var l=this;if(l._queue.length>0){var h=l._queue[0];h.event===o&&(l._queue.shift(),l._loadQueue()),o||h.action()}return l},_ended:function(o){var l=this,h=o._sprite;if(!l._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(l._ended.bind(l,o),100),l;var I=!!(o._loop||l._sprite[h][2]);if(l._emit("end",o._id),!l._webAudio&&I&&l.stop(o._id,!0).play(o._id),l._webAudio&&I){l._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=e.ctx.currentTime;var E=(o._stop-o._start)*1e3/Math.abs(o._rate);l._endTimers[o._id]=setTimeout(l._ended.bind(l,o),E)}return l._webAudio&&!I&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,l._clearTimer(o._id),l._cleanBuffer(o._node),e._autoSuspend()),!l._webAudio&&!I&&l.stop(o._id,!0),l},_clearTimer:function(o){var l=this;if(l._endTimers[o]){if(typeof l._endTimers[o]!="function")clearTimeout(l._endTimers[o]);else{var h=l._soundById(o);h&&h._node&&h._node.removeEventListener("ended",l._endTimers[o],!1)}delete l._endTimers[o]}return l},_soundById:function(o){for(var l=this,h=0;h<l._sounds.length;h++)if(o===l._sounds[h]._id)return l._sounds[h];return null},_inactiveSound:function(){var o=this;o._drain();for(var l=0;l<o._sounds.length;l++)if(o._sounds[l]._ended)return o._sounds[l].reset();return new n(o)},_drain:function(){var o=this,l=o._pool,h=0,I=0;if(!(o._sounds.length<l)){for(I=0;I<o._sounds.length;I++)o._sounds[I]._ended&&h++;for(I=o._sounds.length-1;I>=0;I--){if(h<=l)return;o._sounds[I]._ended&&(o._webAudio&&o._sounds[I]._node&&o._sounds[I]._node.disconnect(0),o._sounds.splice(I,1),h--)}}},_getSoundIds:function(o){var l=this;if(typeof o>"u"){for(var h=[],I=0;I<l._sounds.length;I++)h.push(l._sounds[I]._id);return h}else return[o]},_refreshBuffer:function(o){var l=this;return o._node.bufferSource=e.ctx.createBufferSource(),o._node.bufferSource.buffer=s[l._src],o._panner?o._node.bufferSource.connect(o._panner):o._node.bufferSource.connect(o._node),o._node.bufferSource.loop=o._loop,o._loop&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop||0),o._node.bufferSource.playbackRate.setValueAtTime(o._rate,e.ctx.currentTime),l},_cleanBuffer:function(o){var l=this,h=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return l;if(e._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),h))try{o.bufferSource.buffer=e._scratchBuffer}catch{}return o.bufferSource=null,l},_clearSound:function(o){var l=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);l||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._counter,l._sounds.push(o),o.create(),o},create:function(){var o=this,l=o._parent,h=e._muted||o._muted||o._parent._muted?0:o._volume;return l._webAudio?(o._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),o._node.gain.setValueAtTime(h,e.ctx.currentTime),o._node.paused=!0,o._node.connect(e.masterGain)):e.noAudio||(o._node=e._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(e._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=l._src,o._node.preload=l._preload===!0?"auto":l._preload,o._node.volume=h*e.volume(),o._node.load()),o},reset:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._counter,o},_errorListener:function(){var o=this;o._parent._emit("loaderror",o._id,o._node.error?o._node.error.code:0),o._node.removeEventListener("error",o._errorFn,!1)},_loadListener:function(){var o=this,l=o._parent;l._duration=Math.ceil(o._node.duration*10)/10,Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._loadQueue()),o._node.removeEventListener(e._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,l=o._parent;l._duration===1/0&&(l._duration=Math.ceil(o._node.duration*10)/10,l._sprite.__default[1]===1/0&&(l._sprite.__default[1]=l._duration*1e3),l._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},a=function(o){var l=o._src;if(s[l]){o._duration=s[l].duration,c(o);return}if(/^data:[^;]+;base64,/.test(l)){for(var h=atob(l.split(",")[1]),I=new Uint8Array(h.length),E=0;E<h.length;++E)I[E]=h.charCodeAt(E);r(I.buffer,o)}else{var d=new XMLHttpRequest;d.open(o._xhr.method,l,!0),d.withCredentials=o._xhr.withCredentials,d.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(C){d.setRequestHeader(C,o._xhr.headers[C])}),d.onload=function(){var C=(d.status+"")[0];if(C!=="0"&&C!=="2"&&C!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+d.status+".");return}r(d.response,o)},d.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[l],o.load())},g(d)}},g=function(o){try{o.send()}catch{o.onerror()}},r=function(o,l){var h=function(){l._emit("loaderror",null,"Decoding audio data failed.")},I=function(E){E&&l._sounds.length>0?(s[l._src]=E,c(l,E)):h()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(o).then(I).catch(h):e.ctx.decodeAudioData(o,I,h)},c=function(o,l){l&&!o._duration&&(o._duration=l.duration),Object.keys(o._sprite).length===0&&(o._sprite={__default:[0,o._duration*1e3]}),o._state!=="loaded"&&(o._state="loaded",o._emit("load"),o._loadQueue())},u=function(){if(e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),l=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),h=l?parseInt(l[1],10):null;if(o&&h&&h<9){var I=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!I&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};A.Howler=e,A.Howl=i,typeof $e<"u"?($e.HowlerGlobal=t,$e.Howler=e,$e.Howl=i,$e.Sound=n):typeof window<"u"&&(window.HowlerGlobal=t,window.Howler=e,window.Howl=i,window.Sound=n)})();/*!
12
12
  * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.
13
13
  *
14
14
  * howler.js v2.2.4
@@ -18,12 +18,12 @@ var CanvasEngine=function(x,v){"use strict";var rc=Object.defineProperty;var gr=
18
18
  * goldfirestudios.com
19
19
  *
20
20
  * MIT License
21
- */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(A){var i=this;if(!i.ctx||!i.ctx.listener)return i;for(var n=i._howls.length-1;n>=0;n--)i._howls[n].stereo(A);return i},HowlerGlobal.prototype.pos=function(A,i,n){var s=this;if(!s.ctx||!s.ctx.listener)return s;if(i=typeof i!="number"?s._pos[1]:i,n=typeof n!="number"?s._pos[2]:n,typeof A=="number")s._pos=[A,i,n],typeof s.ctx.listener.positionX<"u"?(s.ctx.listener.positionX.setTargetAtTime(s._pos[0],Howler.ctx.currentTime,.1),s.ctx.listener.positionY.setTargetAtTime(s._pos[1],Howler.ctx.currentTime,.1),s.ctx.listener.positionZ.setTargetAtTime(s._pos[2],Howler.ctx.currentTime,.1)):s.ctx.listener.setPosition(s._pos[0],s._pos[1],s._pos[2]);else return s._pos;return s},HowlerGlobal.prototype.orientation=function(A,i,n,s,a,g){var r=this;if(!r.ctx||!r.ctx.listener)return r;var l=r._orientation;if(i=typeof i!="number"?l[1]:i,n=typeof n!="number"?l[2]:n,s=typeof s!="number"?l[3]:s,a=typeof a!="number"?l[4]:a,g=typeof g!="number"?l[5]:g,typeof A=="number")r._orientation=[A,i,n,s,a,g],typeof r.ctx.listener.forwardX<"u"?(r.ctx.listener.forwardX.setTargetAtTime(A,Howler.ctx.currentTime,.1),r.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),r.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),r.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),r.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),r.ctx.listener.upZ.setTargetAtTime(g,Howler.ctx.currentTime,.1)):r.ctx.listener.setOrientation(A,i,n,s,a,g);else return l;return r},Howl.prototype.init=function(A){return function(i){var n=this;return n._orientation=i.orientation||[1,0,0],n._stereo=i.stereo||null,n._pos=i.pos||null,n._pannerAttr={coneInnerAngle:typeof i.coneInnerAngle<"u"?i.coneInnerAngle:360,coneOuterAngle:typeof i.coneOuterAngle<"u"?i.coneOuterAngle:360,coneOuterGain:typeof i.coneOuterGain<"u"?i.coneOuterGain:0,distanceModel:typeof i.distanceModel<"u"?i.distanceModel:"inverse",maxDistance:typeof i.maxDistance<"u"?i.maxDistance:1e4,panningModel:typeof i.panningModel<"u"?i.panningModel:"HRTF",refDistance:typeof i.refDistance<"u"?i.refDistance:1,rolloffFactor:typeof i.rolloffFactor<"u"?i.rolloffFactor:1},n._onstereo=i.onstereo?[{fn:i.onstereo}]:[],n._onpos=i.onpos?[{fn:i.onpos}]:[],n._onorientation=i.onorientation?[{fn:i.onorientation}]:[],A.call(this,i)}}(Howl.prototype.init),Howl.prototype.stereo=function(A,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(A,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof A=="number")n._stereo=A,n._pos=[A,0,0];else return n._stereo;for(var a=n._getSoundIds(i),g=0;g<a.length;g++){var r=n._soundById(a[g]);if(r)if(typeof A=="number")r._stereo=A,r._pos=[A,0,0],r._node&&(r._pannerAttr.panningModel="equalpower",(!r._panner||!r._panner.pan)&&t(r,s),s==="spatial"?typeof r._panner.positionX<"u"?(r._panner.positionX.setValueAtTime(A,Howler.ctx.currentTime),r._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),r._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):r._panner.setPosition(A,0,0):r._panner.pan.setValueAtTime(A,Howler.ctx.currentTime)),n._emit("stereo",r._id);else return r._stereo}return n},Howl.prototype.pos=function(A,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(A,i,n,s)}}),a;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof A=="number")a._pos=[A,i,n];else return a._pos;for(var g=a._getSoundIds(s),r=0;r<g.length;r++){var l=a._soundById(g[r]);if(l)if(typeof A=="number")l._pos=[A,i,n],l._node&&((!l._panner||l._panner.pan)&&t(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(A,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setPosition(A,i,n)),a._emit("pos",l._id);else return l._pos}return a},Howl.prototype.orientation=function(A,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(A,i,n,s)}}),a;if(i=typeof i!="number"?a._orientation[1]:i,n=typeof n!="number"?a._orientation[2]:n,typeof s>"u")if(typeof A=="number")a._orientation=[A,i,n];else return a._orientation;for(var g=a._getSoundIds(s),r=0;r<g.length;r++){var l=a._soundById(g[r]);if(l)if(typeof A=="number")l._orientation=[A,i,n],l._node&&(l._panner||(l._pos||(l._pos=a._pos||[0,0,-.5]),t(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(A,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setOrientation(A,i,n)),a._emit("orientation",l._id);else return l._orientation}return a},Howl.prototype.pannerAttr=function(){var A=this,i=arguments,n,s,a;if(!A._webAudio)return A;if(i.length===0)return A._pannerAttr;if(i.length===1)if(typeof i[0]=="object")n=i[0],typeof s>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),A._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:A._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:A._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:A._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:A._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:A._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:A._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:A._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:A._panningModel});else return a=A._soundById(parseInt(i[0],10)),a?a._pannerAttr:A._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var g=A._getSoundIds(s),r=0;r<g.length;r++)if(a=A._soundById(g[r]),a){var l=a._pannerAttr;l={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:l.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:l.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:l.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:l.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:l.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:l.panningModel};var I=a._panner;I||(a._pos||(a._pos=A._pos||[0,0,-.5]),t(a,"spatial"),I=a._panner),I.coneInnerAngle=l.coneInnerAngle,I.coneOuterAngle=l.coneOuterAngle,I.coneOuterGain=l.coneOuterGain,I.distanceModel=l.distanceModel,I.maxDistance=l.maxDistance,I.refDistance=l.refDistance,I.rolloffFactor=l.rolloffFactor,I.panningModel=l.panningModel}return A},Sound.prototype.init=function(A){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,A.call(this),i._stereo?n.stereo(i._stereo):i._pos&&n.pos(i._pos[0],i._pos[1],i._pos[2],i._id)}}(Sound.prototype.init),Sound.prototype.reset=function(A){return function(){var i=this,n=i._parent;return i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,i._stereo?n.stereo(i._stereo):i._pos?n.pos(i._pos[0],i._pos[1],i._pos[2],i._id):i._panner&&(i._panner.disconnect(0),i._panner=void 0,n._refreshBuffer(i)),A.call(this)}}(Sound.prototype.reset);var t=function(A,i){i=i||"spatial",i==="spatial"?(A._panner=Howler.ctx.createPanner(),A._panner.coneInnerAngle=A._pannerAttr.coneInnerAngle,A._panner.coneOuterAngle=A._pannerAttr.coneOuterAngle,A._panner.coneOuterGain=A._pannerAttr.coneOuterGain,A._panner.distanceModel=A._pannerAttr.distanceModel,A._panner.maxDistance=A._pannerAttr.maxDistance,A._panner.refDistance=A._pannerAttr.refDistance,A._panner.rolloffFactor=A._pannerAttr.rolloffFactor,A._panner.panningModel=A._pannerAttr.panningModel,typeof A._panner.positionX<"u"?(A._panner.positionX.setValueAtTime(A._pos[0],Howler.ctx.currentTime),A._panner.positionY.setValueAtTime(A._pos[1],Howler.ctx.currentTime),A._panner.positionZ.setValueAtTime(A._pos[2],Howler.ctx.currentTime)):A._panner.setPosition(A._pos[0],A._pos[1],A._pos[2]),typeof A._panner.orientationX<"u"?(A._panner.orientationX.setValueAtTime(A._orientation[0],Howler.ctx.currentTime),A._panner.orientationY.setValueAtTime(A._orientation[1],Howler.ctx.currentTime),A._panner.orientationZ.setValueAtTime(A._orientation[2],Howler.ctx.currentTime)):A._panner.setOrientation(A._orientation[0],A._orientation[1],A._orientation[2])):(A._panner=Howler.ctx.createStereoPanner(),A._panner.pan.setValueAtTime(A._stereo,Howler.ctx.currentTime)),A._panner.connect(A._node),A._paused||A._parent.pause(A._id,!0).play(A._id,!0)}})()})(nA);const kg=lr({__proto__:null,default:xg(nA)},[nA]),$s=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let to=class extends Mt{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(t){}onMount(t){const{props:A}=t,i=A.context.tick,n=A.sound.value??A.sound;if(!n.src)return;const{src:s,autoplay:a,loop:g,volume:r,spatial:l}=n,I=Array.isArray(s)?s:[s];for(const o of I){if(!o)continue;const h=new nA.Howl({src:o,autoplay:a,loop:g,volume:r});for(let c of $s){if(!n[c])continue;const E=n[c];this.eventsFn.push(E),h.on(c,E)}this.sounds.push(h)}if(l&&this.sounds.length>0){const{soundListenerPosition:o}=A.context;if(!o)throw new ni("SoundListenerPosition directive is required for spatial sound in component parent");const{x:h,y:c}=o;this.tickSubscription=nt(()=>{i();const{x:E,y:f}=t.componentInstance,Q=ss(E,f,h(),c()),C=Math.max(this.maxVolume-Q/this.maxDistance,0);this.sounds.forEach(p=>p.volume(C))}).subscription}this.onUpdate(n)}onUpdate(t){const A=t.value??t,{volume:i,loop:n,mute:s,seek:a,playing:g,rate:r,spatial:l}=A;this.sounds.forEach(I=>{i!==void 0&&I.volume(i),n!==void 0&&I.loop(n),s!==void 0&&I.mute(s),a!==void 0&&I.seek(a),g!==void 0&&(g?I.play():I.pause()),r!==void 0&&I.rate(r)}),l&&(this.maxVolume=l.maxVolume??this.maxVolume,this.maxDistance=l.maxDistance??this.maxDistance)}onDestroy(){var t;this.sounds.forEach(A=>{A.stop();for(let i of $s){const n=this.eventsFn.find(s=>s===this.eventsFn[i]);n&&A.off(i,n)}}),this.sounds=[],this.eventsFn=[],(t=this.tickSubscription)==null||t.unsubscribe()}};class Mg extends Mt{onMount(t){var A;t.props.context.soundListenerPosition=(A=t.propObservables)==null?void 0:A.soundListenerPosition}onInit(t){}onUpdate(t){}onDestroy(){}}Rt("sound",to),Rt("soundListenerPosition",Mg);const Rg=(e,t,A)=>{e.props.context={...e.props.context??{},[t]:A}};class Ao extends Mt{constructor(){super(...arguments),this.elementRef=null}onInit(t){this.elementRef=t}onMount(t){Rg(t,"drop",t)}onUpdate(){}onDestroy(){this.elementRef=null}}class eo extends Mt{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new v.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new v.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(t){this.elementRef=t,this.onDragMoveHandler=this.onDragMove.bind(this),this.onDragEndHandler=this.onDragEnd.bind(this),this.onDragStartHandler=this.onPointerDown.bind(this),this.onKeyDownHandler=this.onKeyDown.bind(this),this.onKeyUpHandler=this.onKeyUp.bind(this)}onMount(t){const{rootElement:A,canvasSize:i,viewport:n,tick:s}=t.props.context,a=t.componentInstance,g=this.dragProps;if(Object.keys(g).length===0){this.onDestroy();return}if(!a||(this.stageRef=A.componentInstance,!this.stageRef))return;this.viewport=n,a.eventMode="static",this.stageRef.eventMode="static";const l=nt(()=>{this.stageRef&&(this.stageRef.hitArea=new v.Rectangle(0,0,i().width,i().height))});a.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),g.keyToPress&&g.keyToPress,window.addEventListener("keydown",this.onKeyDownHandler),window.addEventListener("keyup",this.onKeyUpHandler),this.subscriptions=[s.observable.subscribe(()=>{this.isDragging&&this.viewport&&this.updateViewportPosition(this.lastPointerPosition)}),l.subscription]}get dragProps(){var i;const t=(i=this.elementRef)==null?void 0:i.props.drag,A=ft((t==null?void 0:t.value)??t,{snap:0,viewport:{},direction:"all",keyToPress:[]});return A.viewport=ft(A.viewport,{edgeThreshold:300,maxSpeed:40}),A}get axis(){const t=this.dragProps.direction(),A={x:!0,y:!0};return t==="x"&&(A.y=!1),t==="y"&&(A.x=!1),A}onDragMove(t){var c,E;if(!this.isDragging||!((c=this.elementRef)!=null&&c.componentInstance)||!this.elementRef.componentInstance.parent)return;const A=this.elementRef.componentInstance,i=A.parent,n=this.dragProps,s=this.elementRef.propObservables,a=mg((n==null?void 0:n.snap())??0);(E=n==null?void 0:n.move)==null||E.call(n,t);const g=i.toLocal(t.global),r=g.x-this.offsetInParent.x,l=g.y-this.offsetInParent.y;n!=null&&n.snap()?(A.position.x=a(r),A.position.y=a(l)):(this.axis.x&&(A.position.x=r),this.axis.y&&(A.position.y=l)),this.lastPointerPosition.copyFrom(t.global);const{x:I,y:o}=s,h=(f,Q)=>{QA(f)?f.dependencies.forEach(C=>{C.set(Q)}):T(f)&&f.set(Q)};I!==void 0&&h(I,A.position.x),o!==void 0&&h(o,A.position.y)}updateViewportPosition(t){var Q,C;if(!this.viewport||!this.elementRef)return;const A=this.dragProps,i=(Q=A==null?void 0:A.viewport)==null?void 0:Q.edgeThreshold(),n=(C=A==null?void 0:A.viewport)==null?void 0:C.maxSpeed(),s=0,a=this.viewport.screenWidth,g=0,r=this.viewport.screenHeight,l=this.elementRef.componentInstance,I=t.x-s,o=a-t.x,h=t.y-g,c=r-t.y;let E=0,f=0;if(I<i?E=-(n*(1-I/i)):o<i&&(E=n*(1-o/i)),h<i?f=-(n*(1-h/i)):c<i&&(f=n*(1-c/i)),E!==0||f!==0){const p=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+E,this.viewport.center.y+f),this.axis.x&&p.x!==this.viewport.center.x&&(l.position.x+=E),this.axis.y&&p.y!==this.viewport.center.y&&(l.position.y+=f)}}onDragEnd(){var A;if(this.pointerIsDown=!1,!this.isDragging)return;const t=this.dragProps;this.isDragging=!1,(A=t==null?void 0:t.end)==null||A.call(t),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(t){this.pressedKeys.add(t.code),this.pressedKeys.add(t.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(t){this.pressedKeys.delete(t.code),this.pressedKeys.delete(t.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const t=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!t||t.length===0?!0:t.some(A=>this.pressedKeys.has(A)?!0:A.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):A.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):A.toLowerCase()==="control"||A.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):A.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(t){var s;if(!((s=this.elementRef)!=null&&s.componentInstance)||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const A=this.elementRef.componentInstance,n=A.parent.toLocal(t.global);this.offsetInParent.x=n.x-A.position.x,this.offsetInParent.y=n.y-A.position.y,this.lastPointerPosition.copyFrom(t.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){var A;if(this.isDragging||!this.stageRef)return;this.isDragging=!0;const t=this.dragProps;(A=t==null?void 0:t.start)==null||A.call(t),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){var A;this.subscriptions.forEach(i=>i.unsubscribe());const t=(A=this.elementRef)==null?void 0:A.componentInstance;t&&t.off("pointerdown",this.onDragStartHandler),this.stageRef&&(this.stageRef.off("pointermove",this.onDragMoveHandler),this.stageRef.off("pointerup",this.onDragEndHandler),this.stageRef.off("pointerupoutside",this.onDragEndHandler)),window.removeEventListener("keydown",this.onKeyDownHandler),window.removeEventListener("keyup",this.onKeyUpHandler),this.stageRef=null,this.viewport=null,this.pressedKeys.clear(),this.pointerIsDown=!1}}Rt("drag",eo),Rt("drop",Ao);class io extends Mt{onInit(t){}onMount(t){const{image:A}=t.props.transition,i=new v.Sprite(v.Texture.from(A));i.texture.baseTexture.wrapMode=v.WRAP_MODES.REPEAT;const n=new v.DisplacementFilter(i),s=t.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{Vs({from:0,to:1,duration:500,onUpdate:a=>{n.scale.x=a,n.scale.y=a}})},5e3)}onUpdate(t){}onDestroy(){}}Rt("transition",io);function XA(e){return(e==null?void 0:e.start)&&(e==null?void 0:e.listen)}function _g(e){const t=W({config:e,value:0,resolve:A=>{}});return{start:A=>new Promise(i=>{const n=Math.random();t.set({config:{...e,...A},resolve:i,value:n})}),listen:()=>({config:e,seed:t()})}}function ve(e,t){if(!XA(e))throw new Error("In 'on(arg)' must have a trigger signal type");let A;return nt(()=>{const n=e.listen(),s=n==null?void 0:n.seed;if(s){if(A===void 0){A=s.value;return}if(s.value!==A){A=s.value;try{const a=t(n==null?void 0:n.seed.config);a&&typeof a.then=="function"?a.then(g=>s.resolve(g)).catch(()=>s.resolve(void 0)):s.resolve(a)}catch{s.resolve(void 0)}}}}).subscription}class no extends Mt{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new v.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(t){this.elementRef=t}onMount(t){const A=t.componentInstance;if(!A)return;const i=this.shakeProps;!i.trigger||!XA(i.trigger)||(this.originalPosition.set(A.position.x,A.position.y),this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.shakeSubscription=ve(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){var A;const t=(A=this.elementRef)==null?void 0:A.props.shake;return ft((t==null?void 0:t.value)??t,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(t){var h,c,E;if(!((h=this.elementRef)!=null&&h.componentInstance))return;const A=this.elementRef.componentInstance,i=this.shakeProps,n=(t==null?void 0:t.intensity)??i.intensity(),s=(t==null?void 0:t.duration)??i.duration(),a=(t==null?void 0:t.frequency)??i.frequency(),g=(t==null?void 0:t.direction)??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null);const r=this.originalPosition.x===0&&this.originalPosition.y===0&&A.parent,l=A.position.x!==this.originalPosition.x||A.position.y!==this.originalPosition.y;(r||l)&&this.originalPosition.set(A.position.x,A.position.y),A.position.x=this.originalPosition.x,A.position.y=this.originalPosition.y,(c=i.onStart)==null||c.call(i),this.currentShakeConfig={intensity:n,frequency:a,direction:g,randomSeed:Math.random()*1e3},this.progressSignal?await this.progressSignal.set(0,{duration:0}):this.progressSignal=Si(0,{duration:s,ease:f=>f});const I=g!=="y",o=g!=="x";this.positionEffect=nt(()=>{if(!A||!this.progressSignal||!this.currentShakeConfig)return;const f=this.progressSignal(),Q=this.currentShakeConfig,C=1-f,p=f*Q.frequency,D=Math.sin(p*Math.PI*2),w=Math.sin(Q.randomSeed+f*10)*.25+1,S=I?D*Q.intensity*C*w:0,_=o?D*Q.intensity*C*w:0;A.position.x=this.originalPosition.x+S,A.position.y=this.originalPosition.y+_}).subscription,await this.progressSignal.set(1,{duration:s}),A&&(A.position.x=this.originalPosition.x,A.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(E=i.onComplete)==null||E.call(i)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var t;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(t=this.elementRef)!=null&&t.componentInstance){const A=this.elementRef.componentInstance;A.position.x=this.originalPosition.x,A.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.elementRef=null}}Rt("shake",no);class so extends Mt{constructor(){super(...arguments),this.elementRef=null,this.progressSignal=null,this.flashSubscription=null,this.alphaEffect=null,this.tintEffect=null,this.originalAlpha=1,this.originalTint=16777215,this.currentFlashConfig=null}onInit(t){this.elementRef=t}onMount(t){const A=t.componentInstance;if(!A)return;const i=this.flashProps;if(!i.trigger||!XA(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=A.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=A.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(T(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=ve(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){var A;const t=(A=this.elementRef)==null?void 0:A.props.flash;return ft((t==null?void 0:t.value)??t,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(t){var h,c,E;if(!((h=this.elementRef)!=null&&h.componentInstance))return;const A=this.elementRef.componentInstance,i=this.flashProps,n=(t==null?void 0:t.type)??(typeof i.type=="function"?i.type():i.type),s=(t==null?void 0:t.duration)??(typeof i.duration=="function"?i.duration():i.duration),a=(t==null?void 0:t.cycles)??(typeof i.cycles=="function"?i.cycles():i.cycles),g=(t==null?void 0:t.alpha)??(typeof i.alpha=="function"?i.alpha():i.alpha),r=(t==null?void 0:t.tint)??(typeof i.tint=="function"?i.tint():i.tint);this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),A.alpha=this.originalAlpha;const l=A.tint;if(l!==void 0){const f=typeof this.originalTint=="number"?this.originalTint:16777215;T(l)?l.set(f):A.tint=f}(c=i.onStart)==null||c.call(i),this.progressSignal&&await this.progressSignal.set(0,{duration:0});const I={type:n,duration:s,cycles:a,flashAlpha:g,flashTint:r};if(this.currentFlashConfig=I,this.progressSignal||(this.progressSignal=Si(0,{duration:s,ease:f=>f})),(n==="alpha"||n==="both")&&(this.alphaEffect=nt(()=>{if(!A||!this.progressSignal||!this.currentFlashConfig)return;const f=this.progressSignal(),Q=this.currentFlashConfig,C=f*Q.cycles%1,p=C<.5?C*2:1-(C-.5)*2,D=this.originalAlpha+(Q.flashAlpha-this.originalAlpha)*p;A.alpha=D}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=nt(()=>{if(!A||!this.progressSignal||!this.currentFlashConfig)return;const f=A.tint;if(f===void 0)return;const Q=T(f),C=this.progressSignal(),p=this.currentFlashConfig,D=C*p.cycles%1,w=D<.5?D*2:1-(D-.5)*2,S=this.originalTint>>16&255,_=this.originalTint>>8&255,N=this.originalTint&255,J=p.flashTint>>16&255,U=p.flashTint>>8&255,z=p.flashTint&255,st=Math.round(S+(J-S)*w),ct=Math.round(_+(U-_)*w),gt=Math.round(N+(z-N)*w),V=st<<16|ct<<8|gt;Q?f.set(V):A.tint=V}).subscription),await this.progressSignal.set(1,{duration:s}),this.currentFlashConfig===I&&A){A.alpha=this.originalAlpha;const f=A.tint;if(f!==void 0){const Q=typeof this.originalTint=="number"?this.originalTint:16777215;T(f)?f.set(Q):A.tint=Q}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null}(E=i.onComplete)==null||E.call(i)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var t;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(t=this.elementRef)!=null&&t.componentInstance){const A=this.elementRef.componentInstance;A.alpha=this.originalAlpha;const i=A.tint;if(i!==void 0){const n=typeof this.originalTint=="number"?this.originalTint:16777215;T(i)?i.set(n):A.tint=n}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}Rt("flash",so);function Xt(e){return e&&typeof e=="string"?e.endsWith("%"):!1}const oo=["added","childAdded","childRemoved","click","clickcapture","destroyed","globalmousemove","globalpointermove","globaltouchmove","mousedown","mousedowncapture","mouseenter","mouseentercapture","mouseleave","mouseleavecapture","mousemove","mousemovecapture","mouseout","mouseoutcapture","mouseover","mouseovercapture","mouseup","mouseupcapture","mouseupoutside","mouseupoutsidecapture","pointercancel","pointercancelcapture","pointerdown","pointerdowncapture","pointerenter","pointerentercapture","pointerleave","pointerleavecapture","pointermove","pointermovecapture","pointerout","pointeroutcapture","pointerover","pointerovercapture","pointertap","pointertapcapture","pointerup","pointerupcapture","pointerupoutside","pointerupoutsidecapture","removed","rightclick","rightclickcapture","rightdown","rightdowncapture","rightup","rightupcapture","rightupoutside","rightupoutsidecapture","tap","tapcapture","touchcancel","touchcancelcapture","touchend","touchendcapture","touchendoutside","touchendoutsidecapture","touchmove","touchmovecapture","touchstart","touchstartcapture","wheel","wheelcapture"];function Dt(e){var t,A,i,n,s;return s=class extends e{constructor(){super(...arguments);ae(this,t);ae(this,A);ae(this,i);ae(this,n);jt(this,t,null),this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new v.ObservablePoint({_onUpdate:()=>{}},0,0),this.isCustomAnchor=!1,this.displayWidth=W(0),this.displayHeight=W(0),this.overrideProps=[],this.layout=null,this.onBeforeDestroy=null,this.onAfterMount=null,this.subjectInit=new AA(null),this.disableLayout=!1,jt(this,A,new Map),jt(this,i,null),jt(this,n,null)}getElement(){return It(this,n)}get deltaRatio(){var r,l;return(l=(r=It(this,t))==null?void 0:r.scheduler)==null?void 0:l.tick.value.deltaRatio}get parentIsFlex(){var r;return this.disableLayout?!1:(r=this.parent)==null?void 0:r.isFlex}onInit(r){this._id=r.id;for(let l of oo)if(r[l]&&!this.overrideProps.includes(l)){this.eventMode="static";const I=r[l],o=(...h)=>{if(!(It(this,n)&&_t(It(this,n))))return I(...h)};l==="click"?(this.on("pointertap",o),It(this,A).set("pointertap",o)):(this.on(l,o),It(this,A).set(l,o))}(r.onBeforeDestroy||r["on-before-destroy"])&&(this.onBeforeDestroy=r.onBeforeDestroy||r["on-before-destroy"]),(r.onAfterMount||r["on-after-mount"])&&(this.onAfterMount=r.onAfterMount||r["on-after-mount"]),(r.justifyContent||r.alignItems||r.flexDirection||r.flexWrap||r.alignContent||r.display=="flex"||Xt(r.width)||Xt(r.height)||r.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount(r,l){if(!this.destroyed&&(jt(this,n,r),jt(this,t,r.props.context),r.parent)){const I=r.parent.componentInstance;if(I.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(h){console.warn("Failed to set layout:",h)}l===void 0?I.addChild(this):I.addChildAt(this,l),this.isMounted=!0,this.onUpdate(r.props);const o=h=>{h.computedLayout&&jt(this,i,{width:h.computedLayout.width,height:h.computedLayout.height})};this.on("layout",o),It(this,A).set("layout",o),this.onAfterMount&&await this.onAfterMount()}}onUpdate(r){if(this.fullProps={...this.fullProps,...r},this.destroyed||!It(this,t)||!this.parent)return;r.x!==void 0&&this.setX(r.x),r.y!==void 0&&this.setY(r.y),r.scale!==void 0&&fA(this.scale,r.scale),r.anchor!==void 0&&!this.isCustomAnchor&&fA(this.anchor,r.anchor),r.width!==void 0&&this.setWidth(r.width),r.height!==void 0&&this.setHeight(r.height),r.minWidth!==void 0&&this.setMinWidth(r.minWidth),r.minHeight!==void 0&&this.setMinHeight(r.minHeight),r.maxWidth!==void 0&&this.setMaxWidth(r.maxWidth),r.maxHeight!==void 0&&this.setMaxHeight(r.maxHeight),r.aspectRatio!==void 0&&this.setAspectRatio(r.aspectRatio),r.flexGrow!==void 0&&this.setFlexGrow(r.flexGrow),r.flexShrink!==void 0&&this.setFlexShrink(r.flexShrink),r.flexBasis!==void 0&&this.setFlexBasis(r.flexBasis),r.rowGap!==void 0&&this.setRowGap(r.rowGap),r.columnGap!==void 0&&this.setColumnGap(r.columnGap),r.top!==void 0&&this.setTop(r.top),r.left!==void 0&&this.setLeft(r.left),r.right!==void 0&&this.setRight(r.right),r.bottom!==void 0&&this.setBottom(r.bottom),r.objectFit!==void 0&&this.setObjectFit(r.objectFit),r.objectPosition!==void 0&&this.setObjectPosition(r.objectPosition),r.transformOrigin!==void 0&&this.setTransformOrigin(r.transformOrigin),r.skew!==void 0&&fA(this.skew,r.skew),r.tint&&(this.tint=r.tint),r.rotation!==void 0&&(this.rotation=r.rotation),r.angle!==void 0&&(this.angle=r.angle),r.zIndex!==void 0&&(this.zIndex=r.zIndex),r.roundPixels!==void 0&&(this.roundPixels=r.roundPixels),r.cursor&&(this.cursor=r.cursor),r.visible!==void 0&&(this.visible=r.visible),r.alpha!==void 0&&(this.alpha=r.alpha),r.pivot&&fA(this.pivot,r.pivot),r.flexDirection&&this.setFlexDirection(r.flexDirection),r.flexWrap&&this.setFlexWrap(r.flexWrap),r.justifyContent&&this.setJustifyContent(r.justifyContent),r.alignItems&&this.setAlignItems(r.alignItems),r.alignContent&&this.setAlignContent(r.alignContent),r.alignSelf&&this.setAlignSelf(r.alignSelf),r.margin&&this.setMargin(r.margin),r.padding&&this.setPadding(r.padding),r.gap&&this.setGap(r.gap),r.border&&this.setBorder(r.border),r.positionType&&this.setPositionType(r.positionType),r.filters&&(this.filters=r.filters),r.maskOf&&pt(r.maskOf)&&(r.maskOf.componentInstance.mask=this),r.blendMode&&(this.blendMode=r.blendMode),r.filterArea&&(this.filterArea=r.filterArea);const l=this.filters||[];if(r.blur){let I=l.find(o=>o instanceof v.BlurFilter);if(!I){const o=typeof r.blur=="number"?{strength:r.blur}:r.blur;I=new v.BlurFilter(o),l.push(I)}Object.assign(I,r.blur)}this.filters=l}async onDestroy(r,l){for(const[I,o]of It(this,A))this.off(I,o);It(this,A).clear(),jt(this,n,null),this.onBeforeDestroy&&await this.onBeforeDestroy(),l&&l(),super.destroy()}setFlexDirection(r){this.layout={flexDirection:r}}setFlexWrap(r){this.layout={flexWrap:r}}setAlignContent(r){this.layout={alignContent:r}}setAlignSelf(r){this.layout={alignSelf:r}}setAlignItems(r){this.layout={alignItems:r}}setJustifyContent(r){this.layout={justifyContent:r}}setPosition(r){r instanceof Array?r.length===2?this.layout={positionY:r[0],positionX:r[1]}:r.length===4&&(this.layout={positionTop:r[0],positionRight:r[1],positionBottom:r[2],positionLeft:r[3]}):this.layout={position:r}}setX(r){r=r+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=r,this.layout={x:r}):this.x=r}setY(r){r=r+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=r,this.layout={y:r}):this.y=r}setPadding(r){r instanceof Array?r.length===2?this.layout={paddingVertical:r[0],paddingHorizontal:r[1]}:r.length===4&&(this.layout={paddingTop:r[0],paddingRight:r[1],paddingBottom:r[2],paddingLeft:r[3]}):this.layout={padding:r}}setMargin(r){r instanceof Array?r.length===2?this.layout={marginVertical:r[0],marginHorizontal:r[1]}:r.length===4&&(this.layout={marginTop:r[0],marginRight:r[1],marginBottom:r[2],marginLeft:r[3]}):this.layout={margin:r}}setGap(r){this.layout={gap:r}}setBorder(r){r instanceof Array?r.length===2?this.layout={borderVertical:r[0],borderHorizontal:r[1]}:r.length===4&&(this.layout={borderTop:r[0],borderRight:r[1],borderBottom:r[2],borderLeft:r[3]}):this.layout={border:r}}setPositionType(r){this.layout={position:r}}setWidth(r){this.displayWidth.set(r),this.parentIsFlex?this.layout={width:r}:this.width=r}setHeight(r){this.displayHeight.set(r),this.parentIsFlex?this.layout={height:r}:this.height=r}getWidth(){var l;return Xt(this.fullProps.width)?((l=It(this,i))==null?void 0:l.width)!==void 0?It(this,i).width:typeof this.width=="number"?this.width:0:typeof this.width=="number"&&this.width>0?this.width:typeof this.displayWidth()=="number"?this.displayWidth():0}getHeight(){var l;return Xt(this.fullProps.height)?((l=It(this,i))==null?void 0:l.height)!==void 0?It(this,i).height:typeof this.height=="number"?this.height:0:typeof this.height=="number"&&this.height>0?this.height:typeof this.displayHeight()=="number"?this.displayHeight():0}setMinWidth(r){this.layout={minWidth:r}}setMinHeight(r){this.layout={minHeight:r}}setMaxWidth(r){this.layout={maxWidth:r}}setMaxHeight(r){this.layout={maxHeight:r}}setAspectRatio(r){this.layout={aspectRatio:r}}setFlexGrow(r){this.layout={flexGrow:r}}setFlexShrink(r){this.layout={flexShrink:r}}setFlexBasis(r){this.layout={flexBasis:r}}setRowGap(r){this.layout={rowGap:r}}setColumnGap(r){this.layout={columnGap:r}}setTop(r){this.layout={top:r}}setLeft(r){this.layout={left:r}}setRight(r){this.layout={right:r}}setBottom(r){this.layout={bottom:r}}setObjectFit(r){this.layout={objectFit:r}}setObjectPosition(r){this.layout={objectPosition:r}}setTransformOrigin(r){this.layout={transformOrigin:r}}},t=new WeakMap,A=new WeakMap,i=new WeakMap,n=new WeakMap,s}class Fg{constructor(){this.assets=new Map,this.onProgressCallbacks=new Set,this.onCompleteCallbacks=new Set,this.assetCounter=0,this.isComplete=!1}registerAsset(t){const A=`asset_${this.assetCounter++}_${t}`;return this.assets.set(A,{progress:0,completed:!1}),this.isComplete=!1,this.updateGlobalProgress(),A}updateProgress(t,A){const i=this.assets.get(t);if(!i){console.warn(`Asset ${t} not found in tracker`);return}i.progress=Math.max(0,Math.min(1,A)),this.updateGlobalProgress()}completeAsset(t){const A=this.assets.get(t);if(!A){console.warn(`Asset ${t} not found in tracker`);return}A.progress=1,A.completed=!0,this.updateGlobalProgress(),this.checkCompletion()}removeAsset(t){this.assets.delete(t),this.updateGlobalProgress()}onProgress(t){this.onProgressCallbacks.add(t);try{t(this.getGlobalProgress())}catch(A){console.error("Error in onProgress callback:",A)}return()=>{this.onProgressCallbacks.delete(t)}}onComplete(t){return this.onCompleteCallbacks.add(t),this.isComplete&&t(),()=>{this.onCompleteCallbacks.delete(t)}}getGlobalProgress(){if(this.assets.size===0)return 1;let t=0;for(const A of this.assets.values())t+=A.progress;return t/this.assets.size}getAssetCount(){return this.assets.size}getCompletedCount(){let t=0;for(const A of this.assets.values())A.completed&&t++;return t}checkCompletion(){if(this.isComplete)return;Array.from(this.assets.values()).every(A=>A.completed)&&this.assets.size>0&&(this.isComplete=!0,this.onCompleteCallbacks.forEach(A=>{try{A()}catch(i){console.error("Error in onComplete callback:",i)}}))}updateGlobalProgress(){const t=this.getGlobalProgress();Array.from(this.onProgressCallbacks).forEach(i=>{try{i(t)}catch(n){console.error("Error in onProgress callback:",n)}})}reset(){this.assets.clear(),this.onProgressCallbacks.clear(),this.onCompleteCallbacks.clear(),this.assetCounter=0,this.isComplete=!1}}at("Canvas",class extends Dt(v.Container){});const Gg=async(e={})=>{let{cursorStyles:t,width:A,height:i,class:n}=ft(e);e.width||(A=W(800)),e.height||(i=W(600));const s=W({width:0,height:0});e.isRoot=!0;const a=new Fg,g={...e,context:{canvasSize:s,app:W(null),globalLoader:a},width:A==null?void 0:A(),height:i==null?void 0:i()};e.tick?g.context.tick=e.tick:g.context.tick=g.tick=W({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}),globalThis.__CANVAS_ENGINE_TICK__=g.context.tick;const r=Et("Canvas",g);return r.render=(l,I)=>{if(!I)return;const o=I.renderer,h=o.view.canvas;globalThis.__PIXI_STAGE__=r.componentInstance,globalThis.__PIXI_RENDERER__=o,e.tickStart!==!1&&r.directives.tick.start(),nt(()=>{r.propObservables.tick(),o.render(r.componentInstance)}),I.stage=r.componentInstance,I.stage.layout={width:I.screen.width,height:I.screen.height,justifyContent:e.justifyContent,alignItems:e.alignItems},s.set({width:I.screen.width,height:I.screen.height}),I.renderer.on("resize",(E,f)=>{s.set({width:E,height:f}),I.stage.layout&&(I.stage.layout={width:E,height:f})}),e.tickStart!==!1&&r.directives.tick.start(),I.ticker.add(()=>{r.propObservables.tick()}),t&&nt(()=>{o.events.cursorStyles=t()}),n&&nt(()=>{h.classList.add(n())});const c=l.querySelector("canvas");c?l.replaceChild(h,c):l.appendChild(h),g.context.app.set(I)},r};class Fi extends Dt(v.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(t){t.anchor&&(fA(this._anchorPoints,t.anchor),t.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(t),t.sortableChildren!=null&&(this.sortableChildren=t.sortableChildren)}async onMount(t){await super.onMount(t);const{componentInstance:A,props:i}=t,{pixiChildren:n}=i;n&&n.forEach(g=>{A.addChild(g)});const s=Xt(i.width),a=Xt(i.height);(s||a)&&this.on("layout",g=>{const r=g.computedLayout;s&&r.width!==void 0&&this.displayWidth.set(r.width),a&&r.height!==void 0&&this.displayHeight.set(r.height)})}}at("Container",Fi);const ZA=e=>(at("Container",Fi),Et("Container",e));class Ng extends Dt(v.Graphics){async onInit(t){await super.onInit(t)}async onMount(t,A){await super.onMount(t,A);const{props:i,propObservables:n}=t,s=T(n==null?void 0:n.width)?n.width:W(i.width||0),a=T(n==null?void 0:n.height)?n.height:W(i.height||0);this._width=s,this._height=a;const g=Xt(s()),r=Xt(a());i.draw&&(this.clearEffect=nt(()=>{var o;const l=s(),I=a();typeof l=="string"||typeof I=="string"||(this.clear(),(o=i.draw)==null||o.call(i,this,l,I),this.subjectInit.next(this))})),this.on("layout",l=>{const I=l.computedLayout;g&&T(s)&&s()!==I.width&&s.set(I.width),r&&T(a)&&a()!==I.height&&a.set(I.height)})}onUpdate(t){super.onUpdate(t),t.width!==void 0&&this._width&&this._width()!==t.width&&this._width.set(t.width),t.height!==void 0&&this._height&&this._height()!==t.height&&this._height.set(t.height)}async onDestroy(t,A){const i=async()=>{var n;(n=this.clearEffect)==null||n.subscription.unsubscribe(),A()};await super.onDestroy(t,i)}}at("Graphics",Ng);function Zt(e){return Et("Graphics",e)}function ro(e){const{color:t,borderRadius:A,border:i}=ft(e,{borderRadius:null,border:null});return Zt({draw:(n,s,a)=>{A()?n.roundRect(0,0,s,a,A()):n.rect(0,0,s,a),i&&n.stroke(i),n.fill(t())},...e})}function Hg(e,t,A){const{color:i,border:n}=A;"radius"in A?e.circle(0,0,A.radius()):e.ellipse(0,0,A.width()/2,A.height()/2),n()&&e.stroke(n()),e.fill(i())}function ao(e){const{radius:t,color:A,border:i}=ft(e,{border:null});return Zt({draw:n=>Hg(n,"circle",{radius:t,color:A,border:i}),...e})}function go(e){const{width:t,height:A,color:i,border:n}=ft(e,{border:null});return Zt({draw:(s,a,g)=>{s.ellipse(0,0,a/2,g/2),n()&&s.stroke(n()),s.fill(i())},...e})}function Lg(e){const{width:t,height:A,color:i,border:n}=ft(e,{border:null,color:"#000"});return Zt({draw:(s,a,g)=>{s.moveTo(0,g),s.lineTo(a/2,0),s.lineTo(a,g),s.lineTo(0,g),s.fill(i()),n&&s.stroke(n)},...e})}function Ug(e){return Zt({draw:async t=>{if(e.src){const A=await v.Assets.load({src:e.src,data:{parseAsGraphicsContext:!0}}),i=new v.Graphics(A);t.context=i.context}else e.content?t.svg(e.content):e.svg&&t.svg(e.svg)},...e})}class Og extends Dt(v.Mesh){constructor(){super({geometry:new v.Geometry})}onInit(t){if(super.onInit(t),t.geometry)try{this.geometry=t.geometry}catch(A){console.warn("Failed to set geometry:",A)}t.shader&&(this.shader=t.shader)}async onUpdate(t){if(super.onUpdate(t),t.geometry)try{this.geometry=t.geometry}catch(A){console.warn("Failed to update geometry:",A)}t.shader&&(this.shader=t.shader),t.texture?typeof t.texture=="string"?this.texture=await v.Assets.load(t.texture):this.texture=t.texture:t.image&&(this.texture=await v.Assets.load(t.image)),t.tint!==void 0&&(this.tint=t.tint),t.blendMode!==void 0&&(this.blendMode=t.blendMode),t.roundPixels!==void 0&&(this.roundPixels=t.roundPixels)}async onDestroy(t,A){const i=async()=>{A()};await super.onDestroy(t,i)}}at("Mesh",Og);const Tg=e=>Et("Mesh",e);x.currentSubscriptionsTracker=null,x.mountTracker=null;function Gi(e){var t;(t=x.mountTracker)==null||t.call(x,e)}function Jg(e){Gi(t=>{const{context:A}=t.props;let i;return A.tick&&(i=A.tick.observable.subscribe(({value:n})=>{_t(t)||e(n,t)})),()=>{i==null||i.unsubscribe()}})}function lt(e,t={},...A){const i=new Set,n=new Set;x.currentSubscriptionsTracker=a=>{i.add(a)},x.mountTracker=a=>{n.add(a)},A[0]instanceof Array&&(A=A[0]);let s;return Array.isArray(e)?e.length===1?s=e[0]:s=lt(ZA,{},...e):"tag"in e||e instanceof X?s=e:s=e({...t,children:A}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],t!=null&&t.dependencies&&(s.props=s.props||{},s.props.dependencies=t.dependencies),s instanceof Promise&&s.then(a=>{a.props.isRoot&&n.forEach(g=>g(a))}),x.currentSubscriptionsTracker=null,x.mountTracker=null,s}function Pg(e){return lt(ZA)}/*!
21
+ */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var i=this;if(!i.ctx||!i.ctx.listener)return i;for(var n=i._howls.length-1;n>=0;n--)i._howls[n].stereo(e);return i},HowlerGlobal.prototype.pos=function(e,i,n){var s=this;if(!s.ctx||!s.ctx.listener)return s;if(i=typeof i!="number"?s._pos[1]:i,n=typeof n!="number"?s._pos[2]:n,typeof e=="number")s._pos=[e,i,n],typeof s.ctx.listener.positionX<"u"?(s.ctx.listener.positionX.setTargetAtTime(s._pos[0],Howler.ctx.currentTime,.1),s.ctx.listener.positionY.setTargetAtTime(s._pos[1],Howler.ctx.currentTime,.1),s.ctx.listener.positionZ.setTargetAtTime(s._pos[2],Howler.ctx.currentTime,.1)):s.ctx.listener.setPosition(s._pos[0],s._pos[1],s._pos[2]);else return s._pos;return s},HowlerGlobal.prototype.orientation=function(e,i,n,s,a,g){var r=this;if(!r.ctx||!r.ctx.listener)return r;var c=r._orientation;if(i=typeof i!="number"?c[1]:i,n=typeof n!="number"?c[2]:n,s=typeof s!="number"?c[3]:s,a=typeof a!="number"?c[4]:a,g=typeof g!="number"?c[5]:g,typeof e=="number")r._orientation=[e,i,n,s,a,g],typeof r.ctx.listener.forwardX<"u"?(r.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),r.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),r.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),r.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),r.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),r.ctx.listener.upZ.setTargetAtTime(g,Howler.ctx.currentTime,.1)):r.ctx.listener.setOrientation(e,i,n,s,a,g);else return c;return r},Howl.prototype.init=function(e){return function(i){var n=this;return n._orientation=i.orientation||[1,0,0],n._stereo=i.stereo||null,n._pos=i.pos||null,n._pannerAttr={coneInnerAngle:typeof i.coneInnerAngle<"u"?i.coneInnerAngle:360,coneOuterAngle:typeof i.coneOuterAngle<"u"?i.coneOuterAngle:360,coneOuterGain:typeof i.coneOuterGain<"u"?i.coneOuterGain:0,distanceModel:typeof i.distanceModel<"u"?i.distanceModel:"inverse",maxDistance:typeof i.maxDistance<"u"?i.maxDistance:1e4,panningModel:typeof i.panningModel<"u"?i.panningModel:"HRTF",refDistance:typeof i.refDistance<"u"?i.refDistance:1,rolloffFactor:typeof i.rolloffFactor<"u"?i.rolloffFactor:1},n._onstereo=i.onstereo?[{fn:i.onstereo}]:[],n._onpos=i.onpos?[{fn:i.onpos}]:[],n._onorientation=i.onorientation?[{fn:i.onorientation}]:[],e.call(this,i)}}(Howl.prototype.init),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof e=="number")n._stereo=e,n._pos=[e,0,0];else return n._stereo;for(var a=n._getSoundIds(i),g=0;g<a.length;g++){var r=n._soundById(a[g]);if(r)if(typeof e=="number")r._stereo=e,r._pos=[e,0,0],r._node&&(r._pannerAttr.panningModel="equalpower",(!r._panner||!r._panner.pan)&&t(r,s),s==="spatial"?typeof r._panner.positionX<"u"?(r._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),r._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),r._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):r._panner.setPosition(e,0,0):r._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),n._emit("stereo",r._id);else return r._stereo}return n},Howl.prototype.pos=function(e,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(e,i,n,s)}}),a;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof e=="number")a._pos=[e,i,n];else return a._pos;for(var g=a._getSoundIds(s),r=0;r<g.length;r++){var c=a._soundById(g[r]);if(c)if(typeof e=="number")c._pos=[e,i,n],c._node&&((!c._panner||c._panner.pan)&&t(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(e,i,n)),a._emit("pos",c._id);else return c._pos}return a},Howl.prototype.orientation=function(e,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(e,i,n,s)}}),a;if(i=typeof i!="number"?a._orientation[1]:i,n=typeof n!="number"?a._orientation[2]:n,typeof s>"u")if(typeof e=="number")a._orientation=[e,i,n];else return a._orientation;for(var g=a._getSoundIds(s),r=0;r<g.length;r++){var c=a._soundById(g[r]);if(c)if(typeof e=="number")c._orientation=[e,i,n],c._node&&(c._panner||(c._pos||(c._pos=a._pos||[0,0,-.5]),t(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(e,i,n)),a._emit("orientation",c._id);else return c._orientation}return a},Howl.prototype.pannerAttr=function(){var e=this,i=arguments,n,s,a;if(!e._webAudio)return e;if(i.length===0)return e._pannerAttr;if(i.length===1)if(typeof i[0]=="object")n=i[0],typeof s>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),e._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:e._panningModel});else return a=e._soundById(parseInt(i[0],10)),a?a._pannerAttr:e._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var g=e._getSoundIds(s),r=0;r<g.length;r++)if(a=e._soundById(g[r]),a){var c=a._pannerAttr;c={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:c.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:c.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:c.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:c.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:c.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:c.panningModel};var u=a._panner;u||(a._pos||(a._pos=e._pos||[0,0,-.5]),t(a,"spatial"),u=a._panner),u.coneInnerAngle=c.coneInnerAngle,u.coneOuterAngle=c.coneOuterAngle,u.coneOuterGain=c.coneOuterGain,u.distanceModel=c.distanceModel,u.maxDistance=c.maxDistance,u.refDistance=c.refDistance,u.rolloffFactor=c.rolloffFactor,u.panningModel=c.panningModel}return e},Sound.prototype.init=function(e){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,e.call(this),i._stereo?n.stereo(i._stereo):i._pos&&n.pos(i._pos[0],i._pos[1],i._pos[2],i._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var i=this,n=i._parent;return i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,i._stereo?n.stereo(i._stereo):i._pos?n.pos(i._pos[0],i._pos[1],i._pos[2],i._id):i._panner&&(i._panner.disconnect(0),i._panner=void 0,n._refreshBuffer(i)),e.call(this)}}(Sound.prototype.reset);var t=function(e,i){i=i||"spatial",i==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()})(ae);const Ug=Qr({__proto__:null,default:Lg(ae)},[ae]),ro=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let ao=class extends St{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(t){}onMount(t){const{props:e}=t,i=e.context.tick,n=e.sound.value??e.sound;if(!n.src)return;const{src:s,autoplay:a,loop:g,volume:r,spatial:c}=n,u=Array.isArray(s)?s:[s];for(const o of u){if(!o)continue;const l=new ae.Howl({src:o,autoplay:a,loop:g,volume:r});for(let h of ro){if(!n[h])continue;const I=n[h];this.eventsFn.push(I),l.on(h,I)}this.sounds.push(l)}if(c&&this.sounds.length>0){const{soundListenerPosition:o}=e.context;if(!o)throw new ri("SoundListenerPosition directive is required for spatial sound in component parent");const{x:l,y:h}=o;this.tickSubscription=rt(()=>{i();const{x:I,y:E}=t.componentInstance,d=hs(I,E,l(),h()),C=Math.max(this.maxVolume-d/this.maxDistance,0);this.sounds.forEach(p=>p.volume(C))}).subscription}this.onUpdate(n)}onUpdate(t){const e=t.value??t,{volume:i,loop:n,mute:s,seek:a,playing:g,rate:r,spatial:c}=e;this.sounds.forEach(u=>{i!==void 0&&u.volume(i),n!==void 0&&u.loop(n),s!==void 0&&u.mute(s),a!==void 0&&u.seek(a),g!==void 0&&(g?u.play():u.pause()),r!==void 0&&u.rate(r)}),c&&(this.maxVolume=c.maxVolume??this.maxVolume,this.maxDistance=c.maxDistance??this.maxDistance)}onDestroy(){var t;this.sounds.forEach(e=>{e.stop();for(let i of ro){const n=this.eventsFn.find(s=>s===this.eventsFn[i]);n&&e.off(i,n)}}),this.sounds=[],this.eventsFn=[],(t=this.tickSubscription)==null||t.unsubscribe()}};class Tg extends St{onMount(t){var e;t.props.context.soundListenerPosition=(e=t.propObservables)==null?void 0:e.soundListenerPosition}onInit(t){}onUpdate(t){}onDestroy(){}}xt("sound",ao),xt("soundListenerPosition",Tg);const Og=(A,t,e)=>{A.props.context={...A.props.context??{},[t]:e}};class go extends St{constructor(){super(...arguments),this.elementRef=null}onInit(t){this.elementRef=t}onMount(t){Og(t,"drop",t)}onUpdate(){}onDestroy(){this.elementRef=null}}class lo extends St{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new v.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new v.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(t){this.elementRef=t,this.onDragMoveHandler=this.onDragMove.bind(this),this.onDragEndHandler=this.onDragEnd.bind(this),this.onDragStartHandler=this.onPointerDown.bind(this),this.onKeyDownHandler=this.onKeyDown.bind(this),this.onKeyUpHandler=this.onKeyUp.bind(this)}onMount(t){const{rootElement:e,canvasSize:i,viewport:n,tick:s}=t.props.context,a=t.componentInstance,g=this.dragProps;if(Object.keys(g).length===0){this.onDestroy();return}if(!a||(this.stageRef=e.componentInstance,!this.stageRef))return;this.viewport=n,a.eventMode="static",this.stageRef.eventMode="static";const c=rt(()=>{this.stageRef&&(this.stageRef.hitArea=new v.Rectangle(0,0,i().width,i().height))});a.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),g.keyToPress&&g.keyToPress,window.addEventListener("keydown",this.onKeyDownHandler),window.addEventListener("keyup",this.onKeyUpHandler),this.subscriptions=[s.observable.subscribe(()=>{this.isDragging&&this.viewport&&this.updateViewportPosition(this.lastPointerPosition)}),c.subscription]}get dragProps(){var i;const t=(i=this.elementRef)==null?void 0:i.props.drag,e=yt((t==null?void 0:t.value)??t,{snap:0,viewport:{},direction:"all",keyToPress:[]});return e.viewport=yt(e.viewport,{edgeThreshold:300,maxSpeed:40}),e}get axis(){const t=this.dragProps.direction(),e={x:!0,y:!0};return t==="x"&&(e.y=!1),t==="y"&&(e.x=!1),e}onDragMove(t){var h,I;if(!this.isDragging||!((h=this.elementRef)!=null&&h.componentInstance)||!this.elementRef.componentInstance.parent)return;const e=this.elementRef.componentInstance,i=e.parent,n=this.dragProps,s=this.elementRef.propObservables,a=_g((n==null?void 0:n.snap())??0);(I=n==null?void 0:n.move)==null||I.call(n,t);const g=i.toLocal(t.global),r=g.x-this.offsetInParent.x,c=g.y-this.offsetInParent.y;n!=null&&n.snap()?(e.position.x=a(r),e.position.y=a(c)):(this.axis.x&&(e.position.x=r),this.axis.y&&(e.position.y=c)),this.lastPointerPosition.copyFrom(t.global);const{x:u,y:o}=s,l=(E,d)=>{ye(E)?E.dependencies.forEach(C=>{C.set(d)}):H(E)&&E.set(d)};u!==void 0&&l(u,e.position.x),o!==void 0&&l(o,e.position.y)}updateViewportPosition(t){var d,C;if(!this.viewport||!this.elementRef)return;const e=this.dragProps,i=(d=e==null?void 0:e.viewport)==null?void 0:d.edgeThreshold(),n=(C=e==null?void 0:e.viewport)==null?void 0:C.maxSpeed(),s=0,a=this.viewport.screenWidth,g=0,r=this.viewport.screenHeight,c=this.elementRef.componentInstance,u=t.x-s,o=a-t.x,l=t.y-g,h=r-t.y;let I=0,E=0;if(u<i?I=-(n*(1-u/i)):o<i&&(I=n*(1-o/i)),l<i?E=-(n*(1-l/i)):h<i&&(E=n*(1-h/i)),I!==0||E!==0){const p=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+I,this.viewport.center.y+E),this.axis.x&&p.x!==this.viewport.center.x&&(c.position.x+=I),this.axis.y&&p.y!==this.viewport.center.y&&(c.position.y+=E)}}onDragEnd(){var e;if(this.pointerIsDown=!1,!this.isDragging)return;const t=this.dragProps;this.isDragging=!1,(e=t==null?void 0:t.end)==null||e.call(t),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(t){this.pressedKeys.add(t.code),this.pressedKeys.add(t.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(t){this.pressedKeys.delete(t.code),this.pressedKeys.delete(t.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const t=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!t||t.length===0?!0:t.some(e=>this.pressedKeys.has(e)?!0:e.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):e.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):e.toLowerCase()==="control"||e.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):e.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(t){var s;if(!((s=this.elementRef)!=null&&s.componentInstance)||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const e=this.elementRef.componentInstance,n=e.parent.toLocal(t.global);this.offsetInParent.x=n.x-e.position.x,this.offsetInParent.y=n.y-e.position.y,this.lastPointerPosition.copyFrom(t.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){var e;if(this.isDragging||!this.stageRef)return;this.isDragging=!0;const t=this.dragProps;(e=t==null?void 0:t.start)==null||e.call(t),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){var e;this.subscriptions.forEach(i=>i.unsubscribe());const t=(e=this.elementRef)==null?void 0:e.componentInstance;t&&t.off("pointerdown",this.onDragStartHandler),this.stageRef&&(this.stageRef.off("pointermove",this.onDragMoveHandler),this.stageRef.off("pointerup",this.onDragEndHandler),this.stageRef.off("pointerupoutside",this.onDragEndHandler)),window.removeEventListener("keydown",this.onKeyDownHandler),window.removeEventListener("keyup",this.onKeyUpHandler),this.stageRef=null,this.viewport=null,this.pressedKeys.clear(),this.pointerIsDown=!1}}xt("drag",lo),xt("drop",go);class co extends St{onInit(t){}onMount(t){const{image:e}=t.props.transition,i=new v.Sprite(v.Texture.from(e));i.texture.baseTexture.wrapMode=v.WRAP_MODES.REPEAT;const n=new v.DisplacementFilter(i),s=t.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{Ao({from:0,to:1,duration:500,onUpdate:a=>{n.scale.x=a,n.scale.y=a}})},5e3)}onUpdate(t){}onDestroy(){}}xt("transition",co);function tA(A){return(A==null?void 0:A.start)&&(A==null?void 0:A.listen)}function Jg(A){const t=Y({config:A,value:0,resolve:e=>{}});return{start:e=>new Promise(i=>{const n=Math.random();t.set({config:{...A,...e},resolve:i,value:n})}),listen:()=>({config:A,seed:t()})}}function SA(A,t){if(!tA(A))throw new Error("In 'on(arg)' must have a trigger signal type");let e;return rt(()=>{const n=A.listen(),s=n==null?void 0:n.seed;if(s){if(e===void 0){e=s.value;return}if(s.value!==e){e=s.value;try{const a=t(n==null?void 0:n.seed.config);a&&typeof a.then=="function"?a.then(g=>s.resolve(g)).catch(()=>s.resolve(void 0)):s.resolve(a)}catch{s.resolve(void 0)}}}}).subscription}class ho extends St{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new v.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.shakeProps;!i.trigger||!tA(i.trigger)||(this.originalPosition.set(e.position.x,e.position.y),this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.shakeSubscription=SA(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){var e;const t=(e=this.elementRef)==null?void 0:e.props.shake;return yt((t==null?void 0:t.value)??t,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(t){var l,h,I;if(!((l=this.elementRef)!=null&&l.componentInstance))return;const e=this.elementRef.componentInstance,i=this.shakeProps,n=(t==null?void 0:t.intensity)??i.intensity(),s=(t==null?void 0:t.duration)??i.duration(),a=(t==null?void 0:t.frequency)??i.frequency(),g=(t==null?void 0:t.direction)??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null);const r=this.originalPosition.x===0&&this.originalPosition.y===0&&e.parent,c=e.position.x!==this.originalPosition.x||e.position.y!==this.originalPosition.y;(r||c)&&this.originalPosition.set(e.position.x,e.position.y),e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y,(h=i.onStart)==null||h.call(i),this.currentShakeConfig={intensity:n,frequency:a,direction:g,randomSeed:Math.random()*1e3},this.progressSignal?await this.progressSignal.set(0,{duration:0}):this.progressSignal=ki(0,{duration:s,ease:E=>E});const u=g!=="y",o=g!=="x";this.positionEffect=rt(()=>{if(!e||!this.progressSignal||!this.currentShakeConfig)return;const E=this.progressSignal(),d=this.currentShakeConfig,C=1-E,p=E*d.frequency,D=Math.sin(p*Math.PI*2),w=Math.sin(d.randomSeed+E*10)*.25+1,b=u?D*d.intensity*C*w:0,_=o?D*d.intensity*C*w:0;e.position.x=this.originalPosition.x+b,e.position.y=this.originalPosition.y+_}).subscription,await this.progressSignal.set(1,{duration:s}),e&&(e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(I=i.onComplete)==null||I.call(i)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var t;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(t=this.elementRef)!=null&&t.componentInstance){const e=this.elementRef.componentInstance;e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.elementRef=null}}xt("shake",ho);class uo extends St{constructor(){super(...arguments),this.elementRef=null,this.progressSignal=null,this.flashSubscription=null,this.alphaEffect=null,this.tintEffect=null,this.originalAlpha=1,this.originalTint=16777215,this.currentFlashConfig=null}onInit(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.flashProps;if(!i.trigger||!tA(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=e.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=e.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(H(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=SA(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){var e;const t=(e=this.elementRef)==null?void 0:e.props.flash;return yt((t==null?void 0:t.value)??t,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(t){var l,h,I;if(!((l=this.elementRef)!=null&&l.componentInstance))return;const e=this.elementRef.componentInstance,i=this.flashProps,n=(t==null?void 0:t.type)??(typeof i.type=="function"?i.type():i.type),s=(t==null?void 0:t.duration)??(typeof i.duration=="function"?i.duration():i.duration),a=(t==null?void 0:t.cycles)??(typeof i.cycles=="function"?i.cycles():i.cycles),g=(t==null?void 0:t.alpha)??(typeof i.alpha=="function"?i.alpha():i.alpha),r=(t==null?void 0:t.tint)??(typeof i.tint=="function"?i.tint():i.tint);this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),e.alpha=this.originalAlpha;const c=e.tint;if(c!==void 0){const E=typeof this.originalTint=="number"?this.originalTint:16777215;H(c)?c.set(E):e.tint=E}(h=i.onStart)==null||h.call(i),this.progressSignal&&await this.progressSignal.set(0,{duration:0});const u={type:n,duration:s,cycles:a,flashAlpha:g,flashTint:r};if(this.currentFlashConfig=u,this.progressSignal||(this.progressSignal=ki(0,{duration:s,ease:E=>E})),(n==="alpha"||n==="both")&&(this.alphaEffect=rt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const E=this.progressSignal(),d=this.currentFlashConfig,C=E*d.cycles%1,p=C<.5?C*2:1-(C-.5)*2,D=this.originalAlpha+(d.flashAlpha-this.originalAlpha)*p;e.alpha=D}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=rt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const E=e.tint;if(E===void 0)return;const d=H(E),C=this.progressSignal(),p=this.currentFlashConfig,D=C*p.cycles%1,w=D<.5?D*2:1-(D-.5)*2,b=this.originalTint>>16&255,_=this.originalTint>>8&255,N=this.originalTint&255,J=p.flashTint>>16&255,L=p.flashTint>>8&255,O=p.flashTint&255,j=Math.round(b+(J-b)*w),et=Math.round(_+(L-_)*w),at=Math.round(N+(O-N)*w),Z=j<<16|et<<8|at;d?E.set(Z):e.tint=Z}).subscription),await this.progressSignal.set(1,{duration:s}),this.currentFlashConfig===u&&e){e.alpha=this.originalAlpha;const E=e.tint;if(E!==void 0){const d=typeof this.originalTint=="number"?this.originalTint:16777215;H(E)?E.set(d):e.tint=d}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null}(I=i.onComplete)==null||I.call(i)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var t;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(t=this.elementRef)!=null&&t.componentInstance){const e=this.elementRef.componentInstance;e.alpha=this.originalAlpha;const i=e.tint;if(i!==void 0){const n=typeof this.originalTint=="number"?this.originalTint:16777215;H(i)?i.set(n):e.tint=n}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}xt("flash",uo);function zt(A){return A&&typeof A=="string"?A.endsWith("%"):!1}const Io=["added","childAdded","childRemoved","click","clickcapture","destroyed","globalmousemove","globalpointermove","globaltouchmove","mousedown","mousedowncapture","mouseenter","mouseentercapture","mouseleave","mouseleavecapture","mousemove","mousemovecapture","mouseout","mouseoutcapture","mouseover","mouseovercapture","mouseup","mouseupcapture","mouseupoutside","mouseupoutsidecapture","pointercancel","pointercancelcapture","pointerdown","pointerdowncapture","pointerenter","pointerentercapture","pointerleave","pointerleavecapture","pointermove","pointermovecapture","pointerout","pointeroutcapture","pointerover","pointerovercapture","pointertap","pointertapcapture","pointerup","pointerupcapture","pointerupoutside","pointerupoutsidecapture","removed","rightclick","rightclickcapture","rightdown","rightdowncapture","rightup","rightupcapture","rightupoutside","rightupoutsidecapture","tap","tapcapture","touchcancel","touchcancelcapture","touchend","touchendcapture","touchendoutside","touchendoutsidecapture","touchmove","touchmovecapture","touchstart","touchstartcapture","wheel","wheelcapture"];function wt(A){var t,e,i,n,s;return s=class extends A{constructor(){super(...arguments);Ue(this,t);Ue(this,e);Ue(this,i);Ue(this,n);Jt(this,t,null),this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new v.ObservablePoint({_onUpdate:()=>{}},0,0),this.isCustomAnchor=!1,this.displayWidth=Y(0),this.displayHeight=Y(0),this.overrideProps=[],this.layout=null,this.onBeforeDestroy=null,this.onAfterMount=null,this.subjectInit=new ne(null),this.disableLayout=!1,Jt(this,e,new Map),Jt(this,i,null),Jt(this,n,null)}getElement(){return At(this,n)}get deltaRatio(){var r,c;return(c=(r=At(this,t))==null?void 0:r.scheduler)==null?void 0:c.tick.value.deltaRatio}get parentIsFlex(){var r;return this.disableLayout?!1:(r=this.parent)==null?void 0:r.isFlex}onInit(r){this._id=r.id;for(let c of Io)if(r[c]&&!this.overrideProps.includes(c)){this.eventMode="static";const u=r[c],o=(...l)=>{if(!(At(this,n)&&kt(At(this,n))))return u(...l)};c==="click"?(this.on("pointertap",o),At(this,e).set("pointertap",o)):(this.on(c,o),At(this,e).set(c,o))}(r.onBeforeDestroy||r["on-before-destroy"])&&(this.onBeforeDestroy=r.onBeforeDestroy||r["on-before-destroy"]),(r.onAfterMount||r["on-after-mount"])&&(this.onAfterMount=r.onAfterMount||r["on-after-mount"]),(r.justifyContent||r.alignItems||r.flexDirection||r.flexWrap||r.alignContent||r.display=="flex"||zt(r.width)||zt(r.height)||r.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount(r,c){if(!this.destroyed&&(Jt(this,n,r),Jt(this,t,r.props.context),r.parent)){const u=r.parent.componentInstance;if(u.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(l){console.warn("Failed to set layout:",l)}c===void 0?u.addChild(this):u.addChildAt(this,c),this.isMounted=!0,this.onUpdate(r.props);const o=l=>{l.computedLayout&&Jt(this,i,{width:l.computedLayout.width,height:l.computedLayout.height})};this.on("layout",o),At(this,e).set("layout",o),this.onAfterMount&&await this.onAfterMount()}}onUpdate(r){if(this.fullProps={...this.fullProps,...r},this.destroyed||!At(this,t)||!this.parent)return;r.x!==void 0&&this.setX(r.x),r.y!==void 0&&this.setY(r.y),r.scale!==void 0&&oe(this.scale,r.scale),r.anchor!==void 0&&!this.isCustomAnchor&&oe(this.anchor,r.anchor),r.width!==void 0&&this.setWidth(r.width),r.height!==void 0&&this.setHeight(r.height),r.minWidth!==void 0&&this.setMinWidth(r.minWidth),r.minHeight!==void 0&&this.setMinHeight(r.minHeight),r.maxWidth!==void 0&&this.setMaxWidth(r.maxWidth),r.maxHeight!==void 0&&this.setMaxHeight(r.maxHeight),r.aspectRatio!==void 0&&this.setAspectRatio(r.aspectRatio),r.flexGrow!==void 0&&this.setFlexGrow(r.flexGrow),r.flexShrink!==void 0&&this.setFlexShrink(r.flexShrink),r.flexBasis!==void 0&&this.setFlexBasis(r.flexBasis),r.rowGap!==void 0&&this.setRowGap(r.rowGap),r.columnGap!==void 0&&this.setColumnGap(r.columnGap),r.top!==void 0&&this.setTop(r.top),r.left!==void 0&&this.setLeft(r.left),r.right!==void 0&&this.setRight(r.right),r.bottom!==void 0&&this.setBottom(r.bottom),r.objectFit!==void 0&&this.setObjectFit(r.objectFit),r.objectPosition!==void 0&&this.setObjectPosition(r.objectPosition),r.transformOrigin!==void 0&&this.setTransformOrigin(r.transformOrigin),r.skew!==void 0&&oe(this.skew,r.skew),r.tint&&(this.tint=r.tint),r.rotation!==void 0&&(this.rotation=r.rotation),r.angle!==void 0&&(this.angle=r.angle),r.zIndex!==void 0&&(this.zIndex=r.zIndex),r.roundPixels!==void 0&&(this.roundPixels=r.roundPixels),r.cursor&&(this.cursor=r.cursor),r.visible!==void 0&&(this.visible=r.visible),r.alpha!==void 0&&(this.alpha=r.alpha),r.pivot&&oe(this.pivot,r.pivot),r.flexDirection&&this.setFlexDirection(r.flexDirection),r.flexWrap&&this.setFlexWrap(r.flexWrap),r.justifyContent&&this.setJustifyContent(r.justifyContent),r.alignItems&&this.setAlignItems(r.alignItems),r.alignContent&&this.setAlignContent(r.alignContent),r.alignSelf&&this.setAlignSelf(r.alignSelf),r.margin&&this.setMargin(r.margin),r.padding&&this.setPadding(r.padding),r.gap&&this.setGap(r.gap),r.border&&this.setBorder(r.border),r.positionType&&this.setPositionType(r.positionType),r.filters&&(this.filters=r.filters),r.maskOf&&pt(r.maskOf)&&(r.maskOf.componentInstance.mask=this),r.blendMode&&(this.blendMode=r.blendMode),r.filterArea&&(this.filterArea=r.filterArea);const c=this.filters||[];if(r.blur){let u=c.find(o=>o instanceof v.BlurFilter);if(!u){const o=typeof r.blur=="number"?{strength:r.blur}:r.blur;u=new v.BlurFilter(o),c.push(u)}Object.assign(u,r.blur)}this.filters=c}async onDestroy(r,c){for(const[u,o]of At(this,e))this.off(u,o);At(this,e).clear(),Jt(this,n,null),this.onBeforeDestroy&&await this.onBeforeDestroy(),c&&c(),super.destroy()}setFlexDirection(r){this.layout={flexDirection:r}}setFlexWrap(r){this.layout={flexWrap:r}}setAlignContent(r){this.layout={alignContent:r}}setAlignSelf(r){this.layout={alignSelf:r}}setAlignItems(r){this.layout={alignItems:r}}setJustifyContent(r){this.layout={justifyContent:r}}setPosition(r){r instanceof Array?r.length===2?this.layout={positionY:r[0],positionX:r[1]}:r.length===4&&(this.layout={positionTop:r[0],positionRight:r[1],positionBottom:r[2],positionLeft:r[3]}):this.layout={position:r}}setX(r){r=r+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=r,this.layout={x:r}):this.x=r}setY(r){r=r+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=r,this.layout={y:r}):this.y=r}setPadding(r){r instanceof Array?r.length===2?this.layout={paddingVertical:r[0],paddingHorizontal:r[1]}:r.length===4&&(this.layout={paddingTop:r[0],paddingRight:r[1],paddingBottom:r[2],paddingLeft:r[3]}):this.layout={padding:r}}setMargin(r){r instanceof Array?r.length===2?this.layout={marginVertical:r[0],marginHorizontal:r[1]}:r.length===4&&(this.layout={marginTop:r[0],marginRight:r[1],marginBottom:r[2],marginLeft:r[3]}):this.layout={margin:r}}setGap(r){this.layout={gap:r}}setBorder(r){r instanceof Array?r.length===2?this.layout={borderVertical:r[0],borderHorizontal:r[1]}:r.length===4&&(this.layout={borderTop:r[0],borderRight:r[1],borderBottom:r[2],borderLeft:r[3]}):this.layout={border:r}}setPositionType(r){this.layout={position:r}}setWidth(r){this.displayWidth.set(r),this.parentIsFlex?this.layout={width:r}:this.width=r}setHeight(r){this.displayHeight.set(r),this.parentIsFlex?this.layout={height:r}:this.height=r}getWidth(){var c;return zt(this.fullProps.width)?((c=At(this,i))==null?void 0:c.width)!==void 0?At(this,i).width:typeof this.width=="number"?this.width:0:typeof this.width=="number"&&this.width>0?this.width:typeof this.displayWidth()=="number"?this.displayWidth():0}getHeight(){var c;return zt(this.fullProps.height)?((c=At(this,i))==null?void 0:c.height)!==void 0?At(this,i).height:typeof this.height=="number"?this.height:0:typeof this.height=="number"&&this.height>0?this.height:typeof this.displayHeight()=="number"?this.displayHeight():0}setMinWidth(r){this.layout={minWidth:r}}setMinHeight(r){this.layout={minHeight:r}}setMaxWidth(r){this.layout={maxWidth:r}}setMaxHeight(r){this.layout={maxHeight:r}}setAspectRatio(r){this.layout={aspectRatio:r}}setFlexGrow(r){this.layout={flexGrow:r}}setFlexShrink(r){this.layout={flexShrink:r}}setFlexBasis(r){this.layout={flexBasis:r}}setRowGap(r){this.layout={rowGap:r}}setColumnGap(r){this.layout={columnGap:r}}setTop(r){this.layout={top:r}}setLeft(r){this.layout={left:r}}setRight(r){this.layout={right:r}}setBottom(r){this.layout={bottom:r}}setObjectFit(r){try{this.layout={objectFit:r}}catch{}}setObjectPosition(r){try{this.layout={objectPosition:r}}catch{}}setTransformOrigin(r){try{this.layout={transformOrigin:r}}catch{}}},t=new WeakMap,e=new WeakMap,i=new WeakMap,n=new WeakMap,s}class Pg{constructor(){this.assets=new Map,this.onProgressCallbacks=new Set,this.onCompleteCallbacks=new Set,this.assetCounter=0,this.isComplete=!1}registerAsset(t){const e=`asset_${this.assetCounter++}_${t}`;return this.assets.set(e,{progress:0,completed:!1}),this.isComplete=!1,this.updateGlobalProgress(),e}updateProgress(t,e){const i=this.assets.get(t);if(!i){console.warn(`Asset ${t} not found in tracker`);return}i.progress=Math.max(0,Math.min(1,e)),this.updateGlobalProgress()}completeAsset(t){const e=this.assets.get(t);if(!e){console.warn(`Asset ${t} not found in tracker`);return}e.progress=1,e.completed=!0,this.updateGlobalProgress(),this.checkCompletion()}removeAsset(t){this.assets.delete(t),this.updateGlobalProgress()}onProgress(t){this.onProgressCallbacks.add(t);try{t(this.getGlobalProgress())}catch(e){console.error("Error in onProgress callback:",e)}return()=>{this.onProgressCallbacks.delete(t)}}onComplete(t){return this.onCompleteCallbacks.add(t),this.isComplete&&t(),()=>{this.onCompleteCallbacks.delete(t)}}getGlobalProgress(){if(this.assets.size===0)return 1;let t=0;for(const e of this.assets.values())t+=e.progress;return t/this.assets.size}getAssetCount(){return this.assets.size}getCompletedCount(){let t=0;for(const e of this.assets.values())e.completed&&t++;return t}checkCompletion(){if(this.isComplete)return;Array.from(this.assets.values()).every(e=>e.completed)&&this.assets.size>0&&(this.isComplete=!0,this.onCompleteCallbacks.forEach(e=>{try{e()}catch(i){console.error("Error in onComplete callback:",i)}}))}updateGlobalProgress(){const t=this.getGlobalProgress();Array.from(this.onProgressCallbacks).forEach(i=>{try{i(t)}catch(n){console.error("Error in onProgress callback:",n)}})}reset(){this.assets.clear(),this.onProgressCallbacks.clear(),this.onCompleteCallbacks.clear(),this.assetCounter=0,this.isComplete=!1}}gt("Canvas",class extends wt(v.Container){});const Kg=async(A={})=>{let{cursorStyles:t,width:e,height:i,class:n}=yt(A);A.width||(e=Y(800)),A.height||(i=Y(600));const s=Y({width:0,height:0});A.isRoot=!0;const a=new Pg,g={...A,context:{canvasSize:s,app:Y(null),globalLoader:a},width:e==null?void 0:e(),height:i==null?void 0:i()};A.tick?g.context.tick=A.tick:g.context.tick=g.tick=Y({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}),globalThis.__CANVAS_ENGINE_TICK__=g.context.tick;const r=It("Canvas",g);return r.render=(c,u)=>{if(!u)return;const o=u.renderer,l=o.view.canvas;globalThis.__PIXI_STAGE__=r.componentInstance,globalThis.__PIXI_RENDERER__=o,A.tickStart!==!1&&r.directives.tick.start(),rt(()=>{r.propObservables.tick(),o.render(r.componentInstance)}),u.stage=r.componentInstance,u.stage.layout={width:u.screen.width,height:u.screen.height,justifyContent:A.justifyContent,alignItems:A.alignItems},s.set({width:u.screen.width,height:u.screen.height}),u.renderer.on("resize",(I,E)=>{s.set({width:I,height:E}),u.stage.layout&&(u.stage.layout={width:I,height:E})}),A.tickStart!==!1&&r.directives.tick.start(),u.ticker.add(()=>{r.propObservables.tick()}),t&&rt(()=>{o.events.cursorStyles=t()}),n&&rt(()=>{l.classList.add(n())});const h=c.querySelector("canvas");h?c.replaceChild(l,h):c.appendChild(l),g.context.app.set(u)},r};class Hi extends wt(v.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(t){t.anchor&&(oe(this._anchorPoints,t.anchor),t.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(t),t.sortableChildren!=null&&(this.sortableChildren=t.sortableChildren)}async onMount(t){await super.onMount(t);const{componentInstance:e,props:i}=t,{pixiChildren:n}=i;n&&n.forEach(g=>{e.addChild(g)});const s=zt(i.width),a=zt(i.height);(s||a)&&this.on("layout",g=>{const r=g.computedLayout;s&&r.width!==void 0&&this.displayWidth.set(r.width),a&&r.height!==void 0&&this.displayHeight.set(r.height)})}}gt("Container",Hi);const eA=A=>(gt("Container",Hi),It("Container",A));class Yg extends wt(v.Graphics){constructor(){super(...arguments),this.isCustomAnchor=!0}async onInit(t){await super.onInit(t),this.setObjectFit("none")}async onMount(t,e){await super.onMount(t,e);const{props:i,propObservables:n}=t,s=H(n==null?void 0:n.width)?n.width:Y(i.width||0),a=H(n==null?void 0:n.height)?n.height:Y(i.height||0),g=H(n==null?void 0:n.anchor)?n.anchor:Y(i.anchor||[0,0]);this._width=s,this._height=a;const r=zt(s()),c=zt(a());i.draw&&(this.clearEffect=rt(()=>{var h;const u=s(),o=a(),l=g();typeof u=="string"||typeof o=="string"||(this.clear(),(h=i.draw)==null||h.call(i,this,u,o,l),this.subjectInit.next(this))})),this.on("layout",u=>{const o=u.computedLayout;r&&H(s)&&s()!==o.width&&s.set(o.width),c&&H(a)&&a()!==o.height&&a.set(o.height)})}onUpdate(t){super.onUpdate(t),t.width!==void 0&&this._width&&this._width()!==t.width&&this._width.set(t.width),t.height!==void 0&&this._height&&this._height()!==t.height&&this._height.set(t.height)}async onDestroy(t,e){const i=async()=>{var n;(n=this.clearEffect)==null||n.subscription.unsubscribe(),e()};await super.onDestroy(t,i)}}gt("Graphics",Yg);function ge(A){return It("Graphics",A)}const Li=(A,t,e)=>{const i=new v.ObservablePoint({_onUpdate:()=>{}},0,0);oe(i,A);const n=i.x,s=i.y;return{x:-n*t,y:-s*e}};function Bo(A){const{color:t,borderRadius:e,border:i}=yt(A,{borderRadius:null,border:null});return ge({draw:(n,s,a,g)=>{const{x:r,y:c}=Li(g,s,a);e()?n.roundRect(r,c,s,a,e()):n.rect(r,c,s,a),i&&n.stroke(i),n.fill(t())},...A})}function Ui(A){const{color:t,border:e,radius:i}=yt(A,{border:null,radius:null});return ge({draw:(n,s,a,g)=>{const{x:r,y:c}=Li(g,s,a);s==a||a==0?n.circle(r,c,i()||s):n.ellipse(r,c,s,a),e()&&n.stroke(e()),n.fill(t())},...A})}function fo(A){return Ui(A)}function Wg(A){const{color:t,border:e}=yt(A,{border:null,color:"#000"});return ge({draw:(i,n,s,a)=>{const{x:g,y:r}=Li(a,n,s);i.moveTo(g,r+s),i.lineTo(g+n/2,r),i.lineTo(g+n,r+s),i.lineTo(g,r+s),i.fill(t()),e&&i.stroke(e)},...A})}function jg(A){return ge({draw:async t=>{if(A.src){const e=await v.Assets.load({src:A.src,data:{parseAsGraphicsContext:!0}}),i=new v.Graphics(e);t.context=i.context}else A.content?t.svg(A.content):A.svg&&t.svg(A.svg)},...A})}class Vg extends wt(v.Mesh){constructor(){super({geometry:new v.Geometry})}onInit(t){if(super.onInit(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to set geometry:",e)}t.shader&&(this.shader=t.shader)}async onUpdate(t){if(super.onUpdate(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to update geometry:",e)}t.shader&&(this.shader=t.shader),t.texture?typeof t.texture=="string"?this.texture=await v.Assets.load(t.texture):this.texture=t.texture:t.image&&(this.texture=await v.Assets.load(t.image)),t.tint!==void 0&&(this.tint=t.tint),t.blendMode!==void 0&&(this.blendMode=t.blendMode),t.roundPixels!==void 0&&(this.roundPixels=t.roundPixels)}async onDestroy(t,e){const i=async()=>{e()};await super.onDestroy(t,i)}}gt("Mesh",Vg);const qg=A=>It("Mesh",A);x.currentSubscriptionsTracker=null,x.mountTracker=null;function Ti(A){var t;(t=x.mountTracker)==null||t.call(x,A)}function Xg(A){Ti(t=>{const{context:e}=t.props;let i;return e.tick&&(i=e.tick.observable.subscribe(({value:n})=>{kt(t)||A(n,t)})),()=>{i==null||i.unsubscribe()}})}function ut(A,t={},...e){const i=new Set,n=new Set;x.currentSubscriptionsTracker=a=>{i.add(a)},x.mountTracker=a=>{n.add(a)},e[0]instanceof Array&&(e=e[0]);let s;return Array.isArray(A)?A.length===1?s=A[0]:s=ut(eA,{},...A):"tag"in A||A instanceof $?s=A:s=A({...t,children:e}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],t!=null&&t.dependencies&&(s.props=s.props||{},s.props.dependencies=t.dependencies),s instanceof Promise&&s.then(a=>{a.props.isRoot&&n.forEach(g=>g(a))}),x.currentSubscriptionsTracker=null,x.mountTracker=null,s}function Zg(A){return ut(eA)}/*!
22
22
  * @barvynkoa/particle-emitter - v6.0.0
23
23
  * Compiled Mon, 27 May 2024 12:15:21 UTC
24
24
  *
25
25
  * @barvynkoa/particle-emitter is licensed under the MIT License.
26
26
  * http://www.opensource.org/licenses/mit-license
27
- */class Ni{constructor(t){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(t)}init(t){if(!t||!t.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(t[0]))for(let A=0;A<t.length;++A){const i=t[A];let n=i[0];for(let s=1;s<i.length;++s){const a=i[s];this.segments.push({p1:n,p2:a,l:0}),n=a}}else{let A=t[0];for(let i=1;i<t.length;++i){const n=t[i];this.segments.push({p1:A,p2:n,l:0}),A=n}}for(let A=0;A<this.segments.length;++A){const{p1:i,p2:n}=this.segments[A],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[A].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(t){const A=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=A;else for(let g=0;g<this.countingLengths.length;++g)if(A<this.countingLengths[g]){i=this.segments[g],n=g===0?A:A-this.countingLengths[g-1];break}n/=i.l||1;const{p1:s,p2:a}=i;t.x=s.x+n*(a.x-s.x),t.y=s.y+n*(a.y-s.y)}}Ni.type="polygonalChain",Ni.editorConfig=null;class Hi{constructor(t){this.x=t.x,this.y=t.y,this.w=t.w,this.h=t.h}getRandPos(t){t.x=Math.random()*this.w+this.x,t.y=Math.random()*this.h+this.y}}Hi.type="rect",Hi.editorConfig=null;class Ft{constructor(t,A,i){this.value=t,this.time=A,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:co(i):this.ease=null}static createList(t){if("list"in t){const i=t.list;let n;const{value:s,time:a}=i[0],g=n=new Ft(typeof s=="string"?be(s):s,a,t.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let r=1;r<i.length;++r){const{value:l,time:I}=i[r];n.next=new Ft(typeof l=="string"?be(l):l,I),n=n.next}return g.isStepped=!!t.isStepped,g}const A=new Ft(typeof t.start=="string"?be(t.start):t.start,0);return t.end!==t.start&&(A.next=new Ft(typeof t.end=="string"?be(t.end):t.end,1)),A}}let zA=v.Texture.from;const Gt=Math.PI/180;function Ot(e,t){if(!e)return;const A=Math.sin(e),i=Math.cos(e),n=t.x*i-t.y*A,s=t.x*A+t.y*i;t.x=n,t.y=s}function Se(e,t,A){return e<<16|t<<8|A}function ho(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function Kg(e){const t=1/ho(e);e.x*=t,e.y*=t}function lo(e,t){e.x*=t,e.y*=t}function be(e,t){t||(t={}),e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2));let A;return e.length===8&&(A=e.substr(0,2),e=e.substr(2)),t.r=parseInt(e.substr(0,2),16),t.g=parseInt(e.substr(2,2),16),t.b=parseInt(e.substr(4,2),16),A&&(t.a=parseInt(A,16)),t}function co(e){const t=e.length,A=1/t;return function(i){const n=t*i|0,s=(i-n*A)*t,a=e[n]||e[t-1];return a.s+s*(2*(1-s)*(a.cp-a.s)+s*(a.e-a.s))}}function Yg(e){return e||"normal"}class xe{constructor(t){this.x=t.x||0,this.y=t.y||0,this.radius=t.radius,this.innerRadius=t.innerRadius||0,this.rotation=!!t.affectRotation}getRandPos(t){this.innerRadius!==this.radius?t.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:t.x=this.radius,t.y=0;const A=Math.random()*Math.PI*2;this.rotation&&(t.rotation+=A),Ot(A,t.position),t.position.x+=this.x,t.position.y+=this.y}}xe.type="torus",xe.editorConfig=null;var j;(function(e){e[e.Spawn=0]="Spawn",e[e.Normal=2]="Normal",e[e.Late=5]="Late"})(j||(j={}));class Li{constructor(t){this.order=j.Late,this.minStart=t.minStart,this.maxStart=t.maxStart,this.accel=t.accel,this.rotate=!!t.rotate,this.maxSpeed=t.maxSpeed??0}initParticles(t){let A=t;for(;A;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;A.config.velocity?A.config.velocity.set(i,0):A.config.velocity=new v.Point(i,0),Ot(A.rotation,A.config.velocity),A=A.next}}updateParticle(t,A){const i=t.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*A,i.y+=this.accel.y*A,this.maxSpeed){const a=ho(i);a>this.maxSpeed&&lo(i,this.maxSpeed/a)}t.x+=(n+i.x)/2*A,t.y+=(s+i.y)/2*A,this.rotate&&(t.rotation=Math.atan2(i.y,i.x))}}Li.type="moveAcceleration",Li.editorConfig=null;function Wg(e){return this.ease&&(e=this.ease(e)),(this.first.next.value-this.first.value)*e+this.first.value}function jg(e){this.ease&&(e=this.ease(e));const t=this.first.value,A=this.first.next.value,i=(A.r-t.r)*e+t.r,n=(A.g-t.g)*e+t.g,s=(A.b-t.b)*e+t.b;return Se(i,n,s)}function Vg(e){this.ease&&(e=this.ease(e));let t=this.first,A=t.next;for(;e>A.time;)t=A,A=A.next;return e=(e-t.time)/(A.time-t.time),(A.value-t.value)*e+t.value}function qg(e){this.ease&&(e=this.ease(e));let t=this.first,A=t.next;for(;e>A.time;)t=A,A=A.next;e=(e-t.time)/(A.time-t.time);const i=t.value,n=A.value,s=(n.r-i.r)*e+i.r,a=(n.g-i.g)*e+i.g,g=(n.b-i.b)*e+i.b;return Se(s,a,g)}function Xg(e){this.ease&&(e=this.ease(e));let t=this.first;for(;t.next&&e>t.next.time;)t=t.next;return t.value}function Zg(e){this.ease&&(e=this.ease(e));let t=this.first;for(;t.next&&e>t.next.time;)t=t.next;const A=t.value;return Se(A.r,A.g,A.b)}class $A{constructor(t=!1){this.first=null,this.isColor=!!t,this.interpolate=null,this.ease=null}reset(t){this.first=t,t.next&&t.next.time>=1?this.interpolate=this.isColor?jg:Wg:t.isStepped?this.interpolate=this.isColor?Zg:Xg:this.interpolate=this.isColor?qg:Vg,this.ease=this.first.ease}}class Ui{constructor(t){this.order=j.Normal,this.list=new $A(!1),this.list.reset(Ft.createList(t.alpha))}initParticles(t){let A=t;for(;A;)A.alpha=this.list.first.value,A=A.next}updateParticle(t){t.alpha=this.list.interpolate(t.agePercent)}}Ui.type="alpha",Ui.editorConfig=null;class Oi{constructor(t){this.order=j.Normal,this.value=t.alpha}initParticles(t){let A=t;for(;A;)A.alpha=this.value,A=A.next}}Oi.type="alphaStatic",Oi.editorConfig=null;function Io(e){const t=[];for(let A=0;A<e.length;++A){let i=e[A];if(typeof i=="string")t.push(zA(i));else if(i instanceof v.Texture)t.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=zA(i.texture):i=i.texture;n>0;--n)t.push(i)}}return t}class Ti{constructor(t){this.order=j.Normal,this.anims=[];for(let A=0;A<t.anims.length;++A){const i=t.anims[A],n=Io(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,a={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(a)}}initParticles(t){let A=t;for(;A;){const i=Math.floor(Math.random()*this.anims.length),n=A.config.anim=this.anims[i];A.texture=n.textures[0],A.config.animElapsed=0,n.framerate===-1?(A.config.animDuration=A.maxLife,A.config.animFramerate=n.textures.length/A.maxLife):(A.config.animDuration=n.duration,A.config.animFramerate=n.framerate),A=A.next}}updateParticle(t,A){const i=t.config,n=i.anim;i.animElapsed+=A,i.animElapsed>=i.animDuration&&(i.anim.loop?i.animElapsed=i.animElapsed%i.animDuration:i.animElapsed=i.animDuration-1e-6);const s=i.animElapsed*i.animFramerate+1e-7|0;t.texture=n.textures[s]||n.textures[n.textures.length-1]||v.Texture.EMPTY}}Ti.type="animatedRandom",Ti.editorConfig=null;class Ji{constructor(t){this.order=j.Normal;const A=t.anim,i=Io(A.textures),n=A.framerate<0?-1:A.framerate>0?A.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!A.loop:!1}}initParticles(t){let A=t;const i=this.anim;for(;A;)A.texture=i.textures[0],A.config.animElapsed=0,i.framerate===-1?(A.config.animDuration=A.maxLife,A.config.animFramerate=i.textures.length/A.maxLife):(A.config.animDuration=i.duration,A.config.animFramerate=i.framerate),A=A.next}updateParticle(t,A){const i=this.anim,n=t.config;n.animElapsed+=A,n.animElapsed>=n.animDuration&&(i.loop?n.animElapsed=n.animElapsed%n.animDuration:n.animElapsed=n.animDuration-1e-6);const s=n.animElapsed*n.animFramerate+1e-7|0;t.texture=i.textures[s]||i.textures[i.textures.length-1]||v.Texture.EMPTY}}Ji.type="animatedSingle",Ji.editorConfig=null;class Pi{constructor(t){this.order=j.Normal,this.value=t.blendMode}initParticles(t){let A=t;for(;A;)A.blendMode=Yg(this.value),A=A.next}}Pi.type="blendMode",Pi.editorConfig=null;class Ki{constructor(t){this.order=j.Spawn,this.spacing=t.spacing*Gt,this.start=t.start*Gt,this.distance=t.distance}initParticles(t){let A=0,i=t;for(;i;){let n;this.spacing?n=this.start+this.spacing*A:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,Ot(n,i.position)),i=i.next,++A}}}Ki.type="spawnBurst",Ki.editorConfig=null;class Yi{constructor(t){this.order=j.Normal,this.list=new $A(!0),this.list.reset(Ft.createList(t.color))}initParticles(t){let A=t;const i=this.list.first.value,n=Se(i.r,i.g,i.b);for(;A;)A.tint=n,A=A.next}updateParticle(t){t.tint=this.list.interpolate(t.agePercent)}}Yi.type="color",Yi.editorConfig=null;class Wi{constructor(t){this.order=j.Normal;let A=t.color;A.charAt(0)==="#"?A=A.substr(1):A.indexOf("0x")===0&&(A=A.substr(2)),this.value=parseInt(A,16)}initParticles(t){let A=t;for(;A;)A.tint=this.value,A=A.next}}Wi.type="colorStatic",Wi.editorConfig=null;class ji{constructor(t){this.order=j.Normal,this.index=0,this.textures=t.textures.map(A=>typeof A=="string"?zA(A):A)}initParticles(t){let A=t;for(;A;)A.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),A=A.next}}ji.type="textureOrdered",ji.editorConfig=null;const pA=new v.Point,uo=["E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","abs","acos","acosh","asin","asinh","atan","atanh","atan2","cbrt","ceil","cos","cosh","exp","expm1","floor","fround","hypot","log","log1p","log10","log2","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh"],zg=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(uo).join("|"),"g");function $g(e){const t=e.match(zg);for(let A=t.length-1;A>=0;--A)uo.indexOf(t[A])>=0&&(t[A]=`Math.${t[A]}`);return e=t.join(""),new Function("x",`return ${e};`)}class Vi{constructor(t){if(this.order=j.Late,t.path)if(typeof t.path=="function")this.path=t.path;else try{this.path=$g(t.path)}catch{this.path=null}else this.path=A=>A;this.list=new $A(!1),this.list.reset(Ft.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let A=t;for(;A;){A.config.initRotation=A.rotation,A.config.initPosition?A.config.initPosition.copyFrom(A.position):A.config.initPosition=new v.Point(A.x,A.y),A.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;A.config.speedMult=i,A=A.next}}updateParticle(t,A){const i=this.list.interpolate(t.agePercent)*t.config.speedMult;t.config.movement+=i*A,pA.x=t.config.movement,pA.y=this.path(pA.x),Ot(t.config.initRotation,pA),t.position.x=t.config.initPosition.x+pA.x,t.position.y=t.config.initPosition.y+pA.y}}Vi.type="movePath",Vi.editorConfig=null;class qi{constructor(){this.order=j.Spawn}initParticles(t){}}qi.type="spawnPoint",qi.editorConfig=null;class Xi{constructor(t){this.order=j.Normal,this.textures=t.textures.map(A=>typeof A=="string"?zA(A):A)}initParticles(t){let A=t;for(;A;){const i=Math.floor(Math.random()*this.textures.length);A.texture=this.textures[i],A=A.next}}}Xi.type="textureRandom",Xi.editorConfig=null;class Zi{constructor(t){this.order=j.Normal,this.minStart=t.minStart*Gt,this.maxStart=t.maxStart*Gt,this.minSpeed=t.minSpeed*Gt,this.maxSpeed=t.maxSpeed*Gt,this.accel=t.accel*Gt}initParticles(t){let A=t;for(;A;)this.minStart===this.maxStart?A.rotation+=this.maxStart:A.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,A.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,A=A.next}updateParticle(t,A){if(this.accel){const i=t.config.rotSpeed;t.config.rotSpeed+=this.accel*A,t.rotation+=(t.config.rotSpeed+i)/2*A}else t.rotation+=t.config.rotSpeed*A}}Zi.type="rotation",Zi.editorConfig=null;class zi{constructor(t){this.order=j.Normal,this.min=t.min*Gt,this.max=t.max*Gt}initParticles(t){let A=t;for(;A;)this.min===this.max?A.rotation+=this.max:A.rotation+=Math.random()*(this.max-this.min)+this.min,A=A.next}}zi.type="rotationStatic",zi.editorConfig=null;class $i{constructor(t){this.order=j.Late+1,this.rotation=(t.rotation||0)*Gt}initParticles(t){let A=t;for(;A;)A.rotation=this.rotation,A=A.next}}$i.type="noRotation",$i.editorConfig=null;class tn{constructor(t){this.order=j.Normal,this.list=new $A(!1),this.list.reset(Ft.createList(t.scale)),this.minMult=t.minMult??1}initParticles(t){let A=t;for(;A;){const i=Math.random()*(1-this.minMult)+this.minMult;A.config.scaleMult=i,A.scale.x=A.scale.y=this.list.first.value*i,A=A.next}}updateParticle(t){t.scale.x=t.scale.y=this.list.interpolate(t.agePercent)*t.config.scaleMult}}tn.type="scale",tn.editorConfig=null;class An{constructor(t){this.order=j.Normal,this.min=t.min,this.max=t.max}initParticles(t){let A=t;for(;A;){const i=Math.random()*(this.max-this.min)+this.min;A.scale.x=A.scale.y=i,A=A.next}}}An.type="scaleStatic",An.editorConfig=null;class vt{static registerShape(t,A){vt.shapes[A||t.type]=t}constructor(t){this.order=j.Spawn;const A=vt.shapes[t.type];if(!A)throw new Error(`No shape found with type '${t.type}'`);this.shape=new A(t.data)}initParticles(t){let A=t;for(;A;)this.shape.getRandPos(A),A=A.next}}vt.type="spawnShape",vt.editorConfig=null,vt.shapes={},vt.registerShape(Ni),vt.registerShape(Hi),vt.registerShape(xe),vt.registerShape(xe,"circle");class en{constructor(t){this.order=j.Normal,this.texture=typeof t.texture=="string"?zA(t.texture):t.texture}initParticles(t){let A=t;for(;A;)A.texture=this.texture,A=A.next}}en.type="textureSingle",en.editorConfig=null;class nn{constructor(t){this.order=j.Late,this.list=new $A(!1),this.list.reset(Ft.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let A=t;for(;A;){const i=Math.random()*(1-this.minMult)+this.minMult;A.config.speedMult=i,A.config.velocity?A.config.velocity.set(this.list.first.value*i,0):A.config.velocity=new v.Point(this.list.first.value*i,0),Ot(A.rotation,A.config.velocity),A=A.next}}updateParticle(t,A){const i=this.list.interpolate(t.agePercent)*t.config.speedMult,n=t.config.velocity;Kg(n),lo(n,i),t.x+=n.x*A,t.y+=n.y*A}}nn.type="moveSpeed",nn.editorConfig=null;class sn{constructor(t){this.order=j.Late,this.min=t.min,this.max=t.max}initParticles(t){let A=t;for(;A;){const i=Math.random()*(this.max-this.min)+this.min;A.config.velocity?A.config.velocity.set(i,0):A.config.velocity=new v.Point(i,0),Ot(A.rotation,A.config.velocity),A=A.next}}updateParticle(t,A){const i=t.config.velocity;t.x+=i.x*A,t.y+=i.y*A}}sn.type="moveSpeedStatic",sn.editorConfig=null;class on extends v.Sprite{constructor(t){super(),this.prevChild=this.nextChild=null,this.emitter=t,this.config={},this.anchor.x=this.anchor.y=.5,this.maxLife=0,this.age=0,this.agePercent=0,this.oneOverLife=0,this.next=null,this.prev=null,this.init=this.init,this.kill=this.kill}init(t){this.maxLife=t,this.age=this.agePercent=0,this.rotation=0,this.position.x=this.position.y=0,this.scale.x=this.scale.y=1,this.tint=16777215,this.alpha=1,this.oneOverLife=1/this.maxLife,this.visible=!0}kill(){this.emitter.recycle(this)}destroy(){this.parent&&this.parent.removeChild(this),this.emitter=this.next=this.prev=null,super.destroy()}}const rn=v.Ticker.shared,sA=Symbol("Position particle per emitter position");class K{static registerBehavior(t){K.knownBehaviors[t.type]=t}constructor(t,A){this.initBehaviors=[],this.updateBehaviors=[],this.recycleBehaviors=[],this.minLifetime=0,this.maxLifetime=0,this.customEase=null,this._frequency=1,this.spawnChance=1,this.maxParticles=1e3,this.emitterLifetime=-1,this.spawnPos=new v.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new v.Point,this._prevEmitterPos=new v.Point,this._prevPosIsValid=!1,this._posChanged=!1,this._parent=null,this.addAtBack=!1,this.particleCount=0,this._emit=!1,this._spawnTimer=0,this._emitterLife=-1,this._activeParticlesFirst=null,this._activeParticlesLast=null,this._poolFirst=null,this._origConfig=null,this._autoUpdate=!1,this._destroyWhenComplete=!1,this._completeCallback=null,this.parent=t,A&&this.init(A),this.recycle=this.recycle,this.update=this.update,this.rotate=this.rotate,this.updateSpawnPos=this.updateSpawnPos,this.updateOwnerPos=this.updateOwnerPos}get frequency(){return this._frequency}set frequency(t){typeof t=="number"&&t>0?this._frequency=t:this._frequency=1}get parent(){return this._parent}set parent(t){this.cleanup(),this._parent=t}init(t){if(!t)return;this.cleanup(),this._origConfig=t,this.minLifetime=t.lifetime.min,this.maxLifetime=t.lifetime.max,t.ease?this.customEase=typeof t.ease=="function"?t.ease:co(t.ease):this.customEase=null,this.particlesPerWave=1,t.particlesPerWave&&t.particlesPerWave>1&&(this.particlesPerWave=t.particlesPerWave),this.frequency=t.frequency,this.spawnChance=typeof t.spawnChance=="number"&&t.spawnChance>0?t.spawnChance:1,this.emitterLifetime=t.emitterLifetime||-1,this.maxParticles=t.maxParticles>0?t.maxParticles:1e3,this.addAtBack=!!t.addAtBack,this.rotation=0,this.ownerPos.set(0),t.pos?this.spawnPos.copyFrom(t.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=t.emit===void 0?!0:!!t.emit,this.autoUpdate=!!t.autoUpdate;const A=t.behaviors.map(i=>{const n=K.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);A.push(sA),A.sort((i,n)=>i===sA?n.order===j.Spawn?1:-1:n===sA?i.order===j.Spawn?-1:1:i.order-n.order),this.initBehaviors=A.slice(),this.updateBehaviors=A.filter(i=>i!==sA&&i.updateParticle),this.recycleBehaviors=A.filter(i=>i!==sA&&i.recycleParticle)}getBehavior(t){return K.knownBehaviors[t]&&this.initBehaviors.find(A=>A instanceof K.knownBehaviors[t])||null}fillPool(t){for(;t>0;--t){const A=new on(this);A.next=this._poolFirst,this._poolFirst=A}}recycle(t,A=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(t,!A);t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t===this._activeParticlesLast&&(this._activeParticlesLast=t.prev),t===this._activeParticlesFirst&&(this._activeParticlesFirst=t.next),t.prev=null,t.next=this._poolFirst,this._poolFirst=t,t.parent&&t.parent.removeChild(t),--this.particleCount}rotate(t){if(this.rotation===t)return;const A=t-this.rotation;this.rotation=t,Ot(A,this.spawnPos),this._posChanged=!0}updateSpawnPos(t,A){this._posChanged=!0,this.spawnPos.x=t,this.spawnPos.y=A}updateOwnerPos(t,A){this._posChanged=!0,this.ownerPos.x=t,this.ownerPos.y=A}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(t){this._emit=!!t,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){this._autoUpdate&&!t?rn.remove(this.update,this):!this._autoUpdate&&t&&rn.add(this.update,this),this._autoUpdate=!!t}playOnceAndDestroy(t){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=t}playOnce(t){this.emit=!0,this._completeCallback=t}update(t){if(typeof t!="number"&&(t=t.deltaTime),this._autoUpdate&&(t=rn.elapsedMS*.001),!this._parent)return;for(let a=this._activeParticlesFirst,g;a;a=g)if(g=a.next,a.age+=t,a.age>a.maxLife||a.age<0)this.recycle(a);else{let r=a.age*a.oneOverLife;this.customEase&&(this.customEase.length===4?r=this.customEase(r,0,1,1):r=this.customEase(r)),a.agePercent=r;for(let l=0;l<this.updateBehaviors.length;++l)if(this.updateBehaviors[l].updateParticle(a,t)){this.recycle(a);break}}let A,i;this._prevPosIsValid&&(A=this._prevEmitterPos.x,i=this._prevEmitterPos.y);const n=this.ownerPos.x+this.spawnPos.x,s=this.ownerPos.y+this.spawnPos.y;if(this._emit)for(this._spawnTimer-=t<0?0:t;this._spawnTimer<=0;){if(this._emitterLife>=0&&(this._emitterLife-=this._frequency,this._emitterLife<=0)){this._spawnTimer=0,this._emitterLife=0,this.emit=!1;break}if(this.particleCount>=this.maxParticles){this._spawnTimer+=this._frequency;continue}let a,g;if(this._prevPosIsValid&&this._posChanged){const I=1+this._spawnTimer/t;a=(n-A)*I+A,g=(s-i)*I+i}else a=n,g=s;let r=null,l=null;for(let I=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),o=0;o<I;++o){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let h;if(this.minLifetime===this.maxLifetime?h=this.minLifetime:h=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=h)continue;let c;this._poolFirst?(c=this._poolFirst,this._poolFirst=this._poolFirst.next,c.next=null):c=new on(this),c.init(h),this.addAtBack?this._parent.addChildAt(c,0):this._parent.addChild(c),r?(l.next=c,c.prev=l,l=c):l=r=c,++this.particleCount}if(r){this._activeParticlesLast?(this._activeParticlesLast.next=r,r.prev=this._activeParticlesLast,this._activeParticlesLast=l):(this._activeParticlesFirst=r,this._activeParticlesLast=l);for(let I=0;I<this.initBehaviors.length;++I){const o=this.initBehaviors[I];if(o===sA)for(let h=r,c;h;h=c){c=h.next,this.rotation!==0&&(Ot(this.rotation,h.position),h.rotation+=this.rotation),h.position.x+=a,h.position.y+=g,h.age+=-this._spawnTimer;let E=h.age*h.oneOverLife;this.customEase&&(this.customEase.length===4?E=this.customEase(E,0,1,1):E=this.customEase(E)),h.agePercent=E}else o.initParticles(r)}for(let I=r,o;I;I=o){o=I.next;for(let h=0;h<this.updateBehaviors.length;++h)if(this.updateBehaviors[h].updateParticle(I,-this._spawnTimer)){this.recycle(I);break}}}this._spawnTimer+=this._frequency}if(this._posChanged&&(this._prevEmitterPos.x=n,this._prevEmitterPos.y=s,this._prevPosIsValid=!0,this._posChanged=!1),!this._emit&&!this._activeParticlesFirst){if(this._completeCallback){const a=this._completeCallback;this._completeCallback=null,a()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const t=this.ownerPos.x+this.spawnPos.x,A=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),a=0;a<s;++a){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let g;this._poolFirst?(g=this._poolFirst,this._poolFirst=this._poolFirst.next,g.next=null):g=new on(this);let r;this.minLifetime===this.maxLifetime?r=this.minLifetime:r=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,g.init(r),this.addAtBack?this._parent.addChildAt(g,0):this._parent.addChild(g),i?(n.next=g,g.prev=n,n=g):n=i=g,++this.particleCount}if(i){this._activeParticlesLast?(this._activeParticlesLast.next=i,i.prev=this._activeParticlesLast,this._activeParticlesLast=n):(this._activeParticlesFirst=i,this._activeParticlesLast=n);for(let s=0;s<this.initBehaviors.length;++s){const a=this.initBehaviors[s];if(a===sA)for(let g=i,r;g;g=r)r=g.next,this.rotation!==0&&(Ot(this.rotation,g.position),g.rotation+=this.rotation),g.position.x+=t,g.position.y+=A;else a.initParticles(i)}}}cleanup(){let t,A;for(t=this._activeParticlesFirst;t;t=A)A=t.next,this.recycle(t,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let t;for(let A=this._poolFirst;A;A=t)t=A.next,A.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}K.knownBehaviors={},K.registerBehavior(Li),K.registerBehavior(Ui),K.registerBehavior(Oi),K.registerBehavior(Ti),K.registerBehavior(Ji),K.registerBehavior(Pi),K.registerBehavior(Ki),K.registerBehavior(Yi),K.registerBehavior(Wi),K.registerBehavior(ji),K.registerBehavior(Vi),K.registerBehavior(qi),K.registerBehavior(Xi),K.registerBehavior(Zi),K.registerBehavior(zi),K.registerBehavior($i),K.registerBehavior(tn),K.registerBehavior(An),K.registerBehavior(vt),K.registerBehavior(en),K.registerBehavior(nn),K.registerBehavior(sn);class th extends Fi{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(t){await super.onMount(t);const{props:A}=t,i=A.context.tick;this.emitter=new K(this,A.config),this.subscriptionTick=i.observable.subscribe(n=>{if(!this.emitter)return;const s=Date.now();this.emitter.update((s-this.elapsed)*.001),this.elapsed=s})}onUpdate(t){}async onDestroy(t,A){const i=async()=>{var n;(n=this.emitter)==null||n.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),A()};await super.onDestroy(t,i)}}at("ParticlesEmitter",th);function Ah(e){return Et("ParticlesEmitter",e)}const Bo=console.log;class Eo extends Dt(v.Sprite){constructor(){super(...arguments),this.currentAnimation=null,this.time=0,this.frameIndex=0,this.animations=new Map,this.subscriptionSheet=[],this.sheetParams={},this.sheetCurrentAnimation="stand",this.app=null,this.globalLoader=null,this.trackedAssetIds=new Set,this.currentAnimationContainer=null}get renderer(){var t;return(t=this.app)==null?void 0:t.renderer}async detectImageDimensions(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${t}`);let A=null;this.globalLoader&&(A=this.globalLoader.registerAsset(t),this.trackedAssetIds.add(A));const i=await v.Assets.load(t,n=>{this.globalLoader&&A&&this.globalLoader.updateProgress(A,n)});return this.globalLoader&&A&&this.globalLoader.completeAsset(A),{width:i.width,height:i.height}}async createTextures(t){let{width:A,height:i,framesHeight:n,framesWidth:s,image:a,offset:g}=t;if(!a||typeof a!="string"||a.trim()==="")return console.warn("Invalid image path provided to createTextures:",a),[];let r=null;this.globalLoader&&(r=this.globalLoader.registerAsset(a),this.trackedAssetIds.add(r));const l=await v.Assets.load(a,f=>{this.globalLoader&&r&&this.globalLoader.updateProgress(r,f)});this.globalLoader&&r&&this.globalLoader.completeAsset(r),(!A||A<=0)&&(A=l.width,t.width=A),(!i||i<=0)&&(i=l.height,t.height=i);const I=t.spriteWidth,o=t.spriteHeight,h=[],c=g&&g.x||0,E=g&&g.y||0;for(let f=0;f<n;f++){h[f]=[];for(let Q=0;Q<s;Q++){const C=Q*I+c,p=f*o+E;if(p>i)throw Bo(`Warning, there is a problem with the height of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the height of the image.`);if(C>A)throw Bo(`Warning, there is a problem with the width of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the width of the image.`);h[f].push(new v.Texture({source:l.source,frame:new v.Rectangle(C,p,I,o)}))}}return h}async createAnimations(){const{textures:t}=this.spritesheet;if(t)for(let A in t){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((f,Q)=>({...f,[Q]:this.spritesheet[Q]}),{}),...t[A]},{rectWidth:a,width:g=0,framesWidth:r=1,rectHeight:l,height:I=0,framesHeight:o=1,image:h}=s;let c=g,E=I;if(h&&(!c||c<=0||!E||E<=0)){const f=await this.detectImageDimensions(h);(!c||c<=0)&&(c=f.width,s.width=c),(!E||E<=0)&&(E=f.height,s.height=E)}s.spriteWidth=a||c/r,s.spriteHeight=l||E/o,this.animations.set(A,{frames:await this.createTextures(s),name:A,animations:t[A].animations,params:[],data:s,sprites:[]})}}async onMount(t){var r,l;this["#element"]=t;const{props:A,propObservables:i}=t,n=A.context.tick,s=A.sheet??{},a=((r=A.sheet)==null?void 0:r.definition)??{};if(this.app=A.context.app(),this.globalLoader=((l=A.context)==null?void 0:l.globalLoader)||null,s!=null&&s.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(I=>{this.destroyed||this.update(I)}),a&&(this.spritesheet=a.value??a,await this.createAnimations()),s.params)for(let I in i==null?void 0:i.sheet.params){const o=i==null?void 0:i.sheet.params[I];T(o)?this.subscriptionSheet.push(o.observable.subscribe(h=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[I]:h}])})):this.play(this.sheetCurrentAnimation,[{[I]:o}])}const g=dt(()=>{const{x:I,y:o}=i??{};if(!I||!o)return!1;const h=I,c=o,E=dA(h)&&h.animatedState().current!==h.animatedState().end,f=dA(c)&&c.animatedState().current!==c.animatedState().end;return E||f});nt(()=>{const I=g();this.isMounted&&(I?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.has(this.sheetCurrentAnimation)&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(t)}async onUpdate(t){var s,a,g,r;if(this.destroyed)return;super.onUpdate(t),!this.globalLoader&&((s=t.context)!=null&&s.globalLoader)&&(this.globalLoader=t.context.globalLoader);const A=async l=>{var c;if(!l||typeof l!="string"||l.trim()==="")return console.warn("Invalid image path provided to setTexture:",l),null;let I=null;this.globalLoader&&(I=this.globalLoader.registerAsset(l),this.trackedAssetIds.add(I));const o=(c=this.fullProps.loader)==null?void 0:c.onProgress,h=await v.Assets.load(l,E=>{var f;if(this.globalLoader&&I&&this.globalLoader.updateProgress(I,E),o&&o(E),E==1){this.globalLoader&&I&&this.globalLoader.completeAsset(I);const Q=(f=this.fullProps.loader)==null?void 0:f.onComplete;Q&&setTimeout(()=>{Q(h)})}});return h},i=t.sheet,n=((a=t.sheet)==null?void 0:a.definition)??{};if((n==null?void 0:n.type)==="reset"&&(this.spritesheet=n.value??n,await this.resetAnimations()),i!=null&&i.params&&(this.sheetParams=i==null?void 0:i.params),i!=null&&i.playing&&this.isMounted&&this.spritesheet&&this.animations.size>0&&(this.sheetCurrentAnimation=i==null?void 0:i.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),t.hitbox&&(this.hitbox=t.hitbox.value??t.hitbox),t.scaleMode)this.baseTexture.scaleMode=t.scaleMode;else if(t.image&&this.fullProps.rectangle===void 0){const l=await A(this.fullProps.image);l&&(this.texture=l)}else t.texture&&(pt(t.texture)?(t.texture.componentInstance.subjectInit.subscribe(),this.texture=(g=this.renderer)==null?void 0:g.generateTexture(t.texture.componentInstance)):this.texture=t.texture);if(t.rectangle!==void 0){const{x:l,y:I,width:o,height:h}=((r=t.rectangle)==null?void 0:r.value)??t.rectangle,c=await A(this.fullProps.image);c&&(this.texture=new v.Texture({source:c.source,frame:new v.Rectangle(l,I,o,h)}))}}async onDestroy(t,A){const i=async()=>{this.globalLoader&&(this.trackedAssetIds.forEach(n=>{this.globalLoader.removeAsset(n)}),this.trackedAssetIds.clear()),this.subscriptionSheet.forEach(n=>n.unsubscribe()),this.subscriptionTick.unsubscribe(),this.currentAnimationContainer&&this.parent instanceof v.Container&&this.parent.removeChild(this.currentAnimationContainer),A&&A()};await super.onDestroy(t,i)}has(t){return this.animations.has(t)}get(t){return this.animations.get(t)}isPlaying(t){return t?this.currentAnimation==null?!1:this.currentAnimation.name==t:!!this.currentAnimation}stop(){this.currentAnimation=null}play(t,A=[]){var r;const i=(r=this.currentAnimation)==null?void 0:r.params;if(this.isPlaying(t)&&Be(A,i||[]))return;const n=this.get(t);if(!n)throw new Error(`Impossible to play the ${t} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(A);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let a=n.animations;a=is(a)?a(...s):a,this.currentAnimationContainer=new v.Container;for(let l of a){const I=new v.Sprite;for(let o of l)this.currentAnimation.sprites.push(o);this.currentAnimationContainer.addChild(I)}const g=this.currentAnimation.data.sound;g&&new nA.Howl({src:g,autoplay:!0,loop:!1,volume:1}),this.update({deltaRatio:1})}async resetAnimations(){this.stop(),this.animations.clear(),this.currentAnimation=null,this.currentAnimationContainer=null,this.time=0,this.frameIndex=0,this.removeChildren(),this.spritesheet&&(await this.createAnimations(),this.play(this.sheetCurrentAnimation,[this.sheetParams]))}update({deltaRatio:t}){const A=this.getElement();if(A&&_t(A)||!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const i=this,{frames:n,sprites:s,data:a}=this.currentAnimation;let g=s[this.frameIndex];const r=s[this.frameIndex+1];for(let l of this.currentAnimationContainer.children){let I=function(Q,C){const D=o(C||Q);D!==void 0&&(i[Q]=D)};if(!g||g.frameY==null||g.frameX==null)continue;this.texture=n[g.frameY][g.frameX];const o=Q=>g[Q]??a[Q]??this.spritesheet[Q],h=Q=>{const C=o(Q);C&&this[Q].set(...C)};this.applyTransform&&(g={...g,...this.applyTransform(g,a,this.spritesheet)});const c=o("spriteRealSize"),E=typeof c=="number"?c:c==null?void 0:c.height;typeof c=="number"||c==null||c.width;const f=()=>{if(E&&this.hitbox){const{spriteWidth:Q,spriteHeight:C}=a,p=(Q-this.hitbox.w)/2/Q,D=(C-E)/2,w=(C-this.hitbox.h-D)/C;this.anchor.set(p,w)}};g.sound,f(),h("anchor"),h("scale"),h("skew"),h("pivot"),I("alpha","opacity"),I("x"),I("y"),I("angle"),I("rotation"),I("visible")}if(!r){this.time=0,this.frameIndex=0,this.onFinish&&s.length>1&&this.onFinish();return}this.time+=t??1,this.time>=r.time&&this.frameIndex++}}at("Sprite",Eo);const an=e=>(at("Sprite",Eo),Et("Sprite",e));function eh(e){const t={audioprocess:null,canplay:null,canplaythrough:null,complete:null,durationchange:null,emptied:null,ended:null,loadeddata:null,loadedmetadata:null,pause:null,play:null,playing:null,progress:null,ratechange:null,seeked:null,seeking:null,stalled:null,suspend:null,timeupdate:null,volumechange:null,waiting:null},A=W(null),i=Ri(e),{play:n,loop:s,muted:a}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return nt(()=>{const g=A(),r=n();g&&r!==void 0&&(r?g.play():g.pause()),g&&s()&&(g.loop=s()),g&&a()&&(g.muted=a())}),Gi(()=>()=>{for(let g in t)t[g]&&A().removeEventListener(g,t[g])}),lt(an,{...e,image:e.src,loader:{onComplete:g=>{var l;const r=g.source.resource;A.set(r),(l=e==null?void 0:e.loader)!=null&&l.onComplete&&e.loader.onComplete(g);for(let I in t)if(e[I]){const o=h=>{e[I](h)};t[I]=o,r.addEventListener(I,o)}}}})}class ih extends Dt(v.Text){constructor(){super(...arguments),this.fullText="",this.currentIndex=0,this.typewriterSpeed=1,this._wordWrapWidth=0,this.typewriterOptions={},this.lastSoundTime=0,this.soundDuration=0}async onMount(t,A){const{props:i}=t;await super.onMount(t,A);const n=i.context.tick;i.text&&i.typewriter&&(this.fullText=i.text,this.text="",this.currentIndex=0,i.typewriter&&(this.typewriterOptions=i.typewriter,this.typewriterOptions.skip&&XA(this.typewriterOptions.skip)&&ve(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(t){if(super.onUpdate(t),t.typewriter&&t.typewriter&&(this.typewriterOptions=t.typewriter,t.typewriter.sound&&this.initializeTypewriterSound()),t.text!==void 0&&(this.text=""+t.text),t.text!==void 0&&t.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=t.text,this.updateLayout()),t.style){for(const A in t.style)this.style[A]=t.style[A];t.style.wordWrapWidth&&(this._wordWrapWidth=t.style.wordWrapWidth)}t.color&&(this.style.fill=t.color),t.size&&(this.style.fontSize=t.size),t.fontFamily&&(this.style.fontFamily=t.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){var t;(t=this.typewriterOptions.sound)!=null&&t.src&&(this.typewriterSound=new nA.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{var A;if(this.typewriterSound){const i=this.typewriterSound.duration(),n=((A=this.typewriterOptions.sound)==null?void 0:A.rate)??1;this.soundDuration=i/n*1e3}}}))}playTypewriterSound(t){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&t-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=t)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const t=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,t),this.currentIndex=t,this.typewriterOptions.sound&&this.playTypewriterSound(Date.now()),this.updateLayout(),this.currentIndex===this.fullText.length&&this.onCompleteCallback&&this.onCompleteCallback()}}skipTypewriter(){this.skipSignal&&this.skipSignal(),this.text=this.fullText,this.currentIndex=this.fullText.length,this.updateLayout()}async onDestroy(t,A){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),A&&A()};await super.onDestroy(t,i)}}at("Text",ih);function fo(e){return Et("Text",e)}class nh extends Dt(v.TilingSprite){onUpdate(t){super.onUpdate(t),t.image&&(this.texture=v.Texture.from(t.image)),t.tileScale&&this.tileScale.set(t.tileScale.x,t.tileScale.y),t.tilePosition&&this.tilePosition.set(t.tilePosition.x,t.tilePosition.y),t.width!==void 0&&(this.width=t.width),t.height!==void 0&&(this.height=t.height)}}at("TilingSprite",nh);function sh(e){return Et("TilingSprite",e)}var oh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function rh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Co={exports:{}};(function(e,t){(function(){var A,i;i=function(n){return e.exports=n},A={linear:function(n,s,a,g){return a*n/g+s},easeInQuad:function(n,s,a,g){return a*(n/=g)*n+s},easeOutQuad:function(n,s,a,g){return-a*(n/=g)*(n-2)+s},easeInOutQuad:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n+s:-a/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,a,g){return a*(n/=g)*n*n+s},easeOutCubic:function(n,s,a,g){return a*((n=n/g-1)*n*n+1)+s},easeInOutCubic:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n+s:a/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,a,g){return a*(n/=g)*n*n*n+s},easeOutQuart:function(n,s,a,g){return-a*((n=n/g-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n*n+s:-a/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,a,g){return a*(n/=g)*n*n*n*n+s},easeOutQuint:function(n,s,a,g){return a*((n=n/g-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n*n*n+s:a/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,a,g){return-a*Math.cos(n/g*(Math.PI/2))+a+s},easeOutSine:function(n,s,a,g){return a*Math.sin(n/g*(Math.PI/2))+s},easeInOutSine:function(n,s,a,g){return-a/2*(Math.cos(Math.PI*n/g)-1)+s},easeInExpo:function(n,s,a,g){return n===0?s:a*Math.pow(2,10*(n/g-1))+s},easeOutExpo:function(n,s,a,g){return n===g?s+a:a*(-Math.pow(2,-10*n/g)+1)+s},easeInOutExpo:function(n,s,a,g){return(n/=g/2)<1?a/2*Math.pow(2,10*(n-1))+s:a/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,a,g){return-a*(Math.sqrt(1-(n/=g)*n)-1)+s},easeOutCirc:function(n,s,a,g){return a*Math.sqrt(1-(n=n/g-1)*n)+s},easeInOutCirc:function(n,s,a,g){return(n/=g/2)<1?-a/2*(Math.sqrt(1-n*n)-1)+s:a/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,a,g){var r,l,I;return I=1.70158,l=0,r=a,n===0||(n/=g),l||(l=g*.3),r<Math.abs(a)?(r=a,I=l/4):I=l/(2*Math.PI)*Math.asin(a/r),-(r*Math.pow(2,10*(n-=1))*Math.sin((n*g-I)*(2*Math.PI)/l))+s},easeOutElastic:function(n,s,a,g){var r,l,I;return I=1.70158,l=0,r=a,n===0||(n/=g),l||(l=g*.3),r<Math.abs(a)?(r=a,I=l/4):I=l/(2*Math.PI)*Math.asin(a/r),r*Math.pow(2,-10*n)*Math.sin((n*g-I)*(2*Math.PI)/l)+a+s},easeInOutElastic:function(n,s,a,g){var r,l,I;return I=1.70158,l=0,r=a,n===0||(n/=g/2),l||(l=g*.44999999999999996),r<Math.abs(a)?(r=a,I=l/4):I=l/(2*Math.PI)*Math.asin(a/r),n<1?-.5*(r*Math.pow(2,10*(n-=1))*Math.sin((n*g-I)*(2*Math.PI)/l))+s:r*Math.pow(2,-10*(n-=1))*Math.sin((n*g-I)*(2*Math.PI)/l)*.5+a+s},easeInBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),a*(n/=g)*n*((r+1)*n-r)+s},easeOutBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),a*((n=n/g-1)*n*((r+1)*n+r)+1)+s},easeInOutBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),(n/=g/2)<1?a/2*(n*n*(((r*=1.525)+1)*n-r))+s:a/2*((n-=2)*n*(((r*=1.525)+1)*n+r)+2)+s},easeInBounce:function(n,s,a,g){var r;return r=A.easeOutBounce(g-n,0,a,g),a-r+s},easeOutBounce:function(n,s,a,g){return(n/=g)<.36363636363636365?a*(7.5625*n*n)+s:n<.7272727272727273?a*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?a*(7.5625*(n-=.8181818181818182)*n+.9375)+s:a*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,a,g){var r;return n<g/2?(r=A.easeInBounce(n*2,0,a,g),r*.5+s):(r=A.easeOutBounce(n*2-g,0,a,g),r*.5+a*.5+s)}},i(A)}).call(oh)})(Co);var ah=Co.exports;const Qo=rh(ah);function ke(e,t){if(e){if(typeof e=="function")return e;if(typeof e=="string")return Qo[e]}else return Qo[t]}class gh{constructor(t){this.viewport=t,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new v.Rectangle(0,0,this.viewport.worldWidth,this.viewport.worldHeight)),this.viewport.on("pointerdown",this.down,this),this.viewport.options.allowPreserveDragOutside?this.viewport.on("globalpointermove",this.move,this):this.viewport.on("pointermove",this.move,this),this.viewport.on("pointerup",this.up,this),this.viewport.on("pointerupoutside",this.up,this),this.viewport.on("pointercancel",this.up,this),this.viewport.options.allowPreserveDragOutside||this.viewport.on("pointerleave",this.up,this),this.wheelFunction=t=>this.handleWheel(t),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var t;(t=this.viewport.options.events.domElement)==null||t.removeEventListener("wheel",this.wheelFunction)}down(t){if(!(this.viewport.pause||!this.viewport.visible)){if(t.pointerType==="mouse"?this.isMouseDown=!0:this.get(t.pointerId)||this.touches.push({id:t.pointerId,last:null}),this.count()===1){this.last=t.global.clone();const A=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!A||!A.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(t)&&this.viewport.options.stopPropagation&&t.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(t){return Math.abs(t)>=this.viewport.threshold}move(t){if(this.viewport.pause||!this.viewport.visible)return;const A=this.viewport.plugins.move(t);if(this.clickedAvailable&&this.last){const i=t.global.x-this.last.x,n=t.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}A&&this.viewport.options.stopPropagation&&t.stopPropagation()}up(t){if(this.viewport.pause||!this.viewport.visible)return;t.pointerType==="mouse"&&(this.isMouseDown=!1),t.pointerType!=="mouse"&&this.remove(t.pointerId);const A=this.viewport.plugins.up(t);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:t,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),A&&this.viewport.options.stopPropagation&&t.stopPropagation()}getPointerPosition(t){const A=new v.Point;return this.viewport.options.events.mapPositionToPoint(A,t.clientX,t.clientY),A}handleWheel(t){if(this.viewport.pause||!this.viewport.visible)return;const A=this.viewport.toLocal(this.getPointerPosition(t));this.viewport.left<=A.x&&A.x<=this.viewport.right&&this.viewport.top<=A.y&&A.y<=this.viewport.bottom&&this.viewport.plugins.wheel(t)&&!this.viewport.options.passiveWheel&&t.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(t){for(const A of this.touches)if(A.id===t)return A;return null}remove(t){for(let A=0;A<this.touches.length;A++)if(this.touches[A].id===t){this.touches.splice(A,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const te=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class hh{constructor(t){this.viewport=t,this.list=[],this.plugins={}}add(t,A,i=te.length){const n=this.plugins[t];n&&n.destroy(),this.plugins[t]=A;const s=te.indexOf(t);s!==-1&&te.splice(s,1),te.splice(i,0,t),this.sort()}get(t,A){var i;return A&&(i=this.plugins[t])!=null&&i.paused?null:this.plugins[t]}update(t){for(const A of this.list)A.update(t)}resize(){for(const t of this.list)t.resize()}reset(){for(const t of this.list)t.reset()}removeAll(){this.list.forEach(t=>{t.destroy()}),this.plugins={},this.sort()}remove(t){var A;this.plugins[t]&&((A=this.plugins[t])==null||A.destroy(),delete this.plugins[t],this.viewport.emit("plugin-remove",t),this.sort())}pause(t){var A;(A=this.plugins[t])==null||A.pause()}resume(t){var A;(A=this.plugins[t])==null||A.resume()}sort(){this.list=[];for(const t of te)this.plugins[t]&&this.list.push(this.plugins[t])}down(t){let A=!1;for(const i of this.list)i.down(t)&&(A=!0);return A}move(t){let A=!1;for(const i of this.viewport.plugins.list)i.move(t)&&(A=!0);return A}up(t){let A=!1;for(const i of this.list)i.up(t)&&(A=!0);return A}wheel(t){let A=!1;for(const i of this.list)i.wheel(t)&&(A=!0);return A}}class yt{constructor(t){this.parent=t,this.paused=!1}destroy(){}down(t){return!1}move(t){return!1}up(t){return!1}wheel(t){return!1}update(t){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const lh={removeOnInterrupt:!1,ease:"linear",time:1e3};class ch extends yt{constructor(t,A={}){super(t),this.startWidth=null,this.startHeight=null,this.deltaWidth=null,this.deltaHeight=null,this.width=null,this.height=null,this.time=0,this.options=Object.assign({},lh,A),this.options.ease=ke(this.options.ease),this.setupPosition(),this.setupZoom(),this.time=0}setupPosition(){typeof this.options.position<"u"?(this.startX=this.parent.center.x,this.startY=this.parent.center.y,this.deltaX=this.options.position.x-this.parent.center.x,this.deltaY=this.options.position.y-this.parent.center.y,this.keepCenter=!1):this.keepCenter=!0}setupZoom(){this.width=null,this.height=null,typeof this.options.scale<"u"?this.width=this.parent.screenWidth/this.options.scale:typeof this.options.scaleX<"u"||typeof this.options.scaleY<"u"?(typeof this.options.scaleX<"u"&&(this.width=this.parent.screenWidth/this.options.scaleX),typeof this.options.scaleY<"u"&&(this.height=this.parent.screenHeight/this.options.scaleY)):(typeof this.options.width<"u"&&(this.width=this.options.width),typeof this.options.height<"u"&&(this.height=this.options.height)),this.width!==null&&(this.startWidth=this.parent.screenWidthInWorldPixels,this.deltaWidth=this.width-this.startWidth),this.height!==null&&(this.startHeight=this.parent.screenHeightInWorldPixels,this.deltaHeight=this.height-this.startHeight)}down(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("animate"),!1}complete(){this.parent.plugins.remove("animate"),this.width!==null&&this.parent.fitWidth(this.width,this.keepCenter,this.height===null),this.height!==null&&this.parent.fitHeight(this.height,this.keepCenter,this.width===null),!this.keepCenter&&this.options.position&&this.parent.moveCenter(this.options.position),this.parent.emit("animate-end",this.parent),this.options.callbackOnComplete&&this.options.callbackOnComplete(this.parent)}update(t){if(this.paused)return;this.time+=t;const A=new v.Point(this.parent.scale.x,this.parent.scale.y);if(this.time>=this.options.time){const i=this.parent.width,n=this.parent.height;this.complete(),(i!==this.parent.width||n!==this.parent.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:A,type:"animate"})}else{const i=this.options.ease(this.time,0,1,this.options.time);if(this.width!==null){const n=this.startWidth,s=this.deltaWidth;this.parent.fitWidth(n+s*i,this.keepCenter,this.height===null)}if(this.height!==null){const n=this.startHeight,s=this.deltaHeight;this.parent.fitHeight(n+s*i,this.keepCenter,this.width===null)}if(this.width===null?this.parent.scale.x=this.parent.scale.y:this.height===null&&(this.parent.scale.y=this.parent.scale.x),!this.keepCenter){const n=this.startX,s=this.startY,a=this.deltaX,g=this.deltaY,r=new v.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+a*i,s+g*i),this.parent.emit("moved",{viewport:this.parent,original:r,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:A,type:"animate"})}}}const Ih={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class uh extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Ih,A),this.ease=ke(this.options.ease,"easeInOutSine"),this.options.sides?this.options.sides==="all"?this.top=this.bottom=this.left=this.right=!0:this.options.sides==="horizontal"?(this.right=this.left=!0,this.top=this.bottom=!1):this.options.sides==="vertical"?(this.left=this.right=!1,this.top=this.bottom=!0):(this.top=this.options.sides.indexOf("top")!==-1,this.bottom=this.options.sides.indexOf("bottom")!==-1,this.left=this.options.sides.indexOf("left")!==-1,this.right=this.options.sides.indexOf("right")!==-1):this.left=this.top=this.right=this.bottom=!1;const i=this.options.underflow.toLowerCase();i==="center"?(this.underflowX=0,this.underflowY=0):(this.underflowX=i.indexOf("left")!==-1?-1:i.indexOf("right")!==-1?1:0,this.underflowY=i.indexOf("top")!==-1?-1:i.indexOf("bottom")!==-1?1:0),this.reset()}isActive(){return this.toX!==null||this.toY!==null}down(){return this.toX=this.toY=null,!1}up(){return this.bounce(),!1}update(t){if(!this.paused){if(this.bounce(),this.toX){const A=this.toX;A.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),A.time>=this.options.time?(this.parent.x=A.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(A.time,A.start,A.delta,this.options.time)}if(this.toY){const A=this.toY;A.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),A.time>=this.options.time?(this.parent.y=A.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(A.time,A.start,A.delta,this.options.time)}}}calcUnderflowX(){let t;switch(this.underflowX){case-1:t=0;break;case 1:t=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:t=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return t}calcUnderflowY(){let t;switch(this.underflowY){case-1:t=0;break;case 1:t=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:t=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return t}oob(){const t=this.options.bounceBox;if(t){const A=typeof t.x>"u"?0:t.x,i=typeof t.y>"u"?0:t.y,n=typeof t.width>"u"?this.parent.worldWidth:t.width,s=typeof t.height>"u"?this.parent.worldHeight:t.height;return{left:this.parent.left<A,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new v.Point(A*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new v.Point(n*this.parent.scale.x-this.parent.screenWidth,s*this.parent.scale.y-this.parent.screenHeight)}}return{left:this.parent.left<0,right:this.parent.right>this.parent.worldWidth,top:this.parent.top<0,bottom:this.parent.bottom>this.parent.worldHeight,topLeft:new v.Point(0,0),bottomRight:new v.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var t,A;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((t=n.options)==null?void 0:t.friction)||n.y&&n.percentChangeY===((A=n.options)==null?void 0:A.friction))&&(i=this.oob(),(i.left&&this.left||i.right&&this.right)&&(n.percentChangeX=this.options.friction),(i.top&&this.top||i.bottom&&this.bottom)&&(n.percentChangeY=this.options.friction));const s=this.parent.plugins.get("drag",!0)||{},a=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(a!=null&&a.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const g=i.topLeft,r=i.bottomRight;if(!this.toX&&!n.x){let l=null;i.left&&this.left?l=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-g.x:i.right&&this.right&&(l=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-r.x),l!==null&&this.parent.x!==l&&(this.toX={time:0,start:this.parent.x,delta:l-this.parent.x,end:l},this.parent.emit("bounce-x-start",this.parent))}if(!this.toY&&!n.y){let l=null;i.top&&this.top?l=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-g.y:i.bottom&&this.bottom&&(l=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-r.y),l!==null&&this.parent.y!==l&&(this.toY={time:0,start:this.parent.y,delta:l-this.parent.y,end:l},this.parent.emit("bounce-y-start",this.parent))}}}reset(){this.toX=this.toY=null,this.bounce()}}const Bh={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class Eh extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Bh,A),this.options.direction&&(this.options.left=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.right=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.top=this.options.direction==="y"||this.options.direction==="all"?!0:null,this.options.bottom=this.options.direction==="y"||this.options.direction==="all"?!0:null),this.parseUnderflow(),this.last={x:null,y:null,scaleX:null,scaleY:null},this.update()}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="none"?this.noUnderflow=!0:t==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=t.indexOf("left")!==-1?-1:t.indexOf("right")!==-1?1:0,this.underflowY=t.indexOf("top")!==-1?-1:t.indexOf("bottom")!==-1?1:0,this.noUnderflow=!1)}move(){return this.update(),!1}update(){if(this.paused||this.parent.x===this.last.x&&this.parent.y===this.last.y&&this.parent.scale.x===this.last.scaleX&&this.parent.scale.y===this.last.scaleY)return;const t=new v.Point(this.parent.x,this.parent.y),A=this.parent.plugins.decelerate||{};if(this.options.left!==null||this.options.right!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x!==0&&(this.parent.x=0,i=!0);break;case 1:this.parent.x!==this.parent.screenWidth-this.parent.screenWorldWidth&&(this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth,i=!0);break;default:this.parent.x!==(this.parent.screenWidth-this.parent.screenWorldWidth)/2&&(this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2,i=!0)}else this.options.left!==null&&this.parent.left<(this.options.left===!0?0:this.options.left)&&(this.parent.x=-(this.options.left===!0?0:this.options.left)*this.parent.scale.x,A.x=0,i=!0),this.options.right!==null&&this.parent.right>(this.options.right===!0?this.parent.worldWidth:this.options.right)&&(this.parent.x=-(this.options.right===!0?this.parent.worldWidth:this.options.right)*this.parent.scale.x+this.parent.screenWidth,A.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,type:"clamp-x"})}if(this.options.top!==null||this.options.bottom!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y!==0&&(this.parent.y=0,i=!0);break;case 1:this.parent.y!==this.parent.screenHeight-this.parent.screenWorldHeight&&(this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight,i=!0);break;default:this.parent.y!==(this.parent.screenHeight-this.parent.screenWorldHeight)/2&&(this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2,i=!0)}else this.options.top!==null&&this.parent.top<(this.options.top===!0?0:this.options.top)&&(this.parent.y=-(this.options.top===!0?0:this.options.top)*this.parent.scale.y,A.y=0,i=!0),this.options.bottom!==null&&this.parent.bottom>(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)&&(this.parent.y=-(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)*this.parent.scale.y+this.parent.screenHeight,A.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,type:"clamp-y"})}this.last.x=this.parent.x,this.last.y=this.parent.y,this.last.scaleX=this.parent.scale.x,this.last.scaleY=this.parent.scale.y}reset(){this.update()}}const fh={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class Ch extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},fh,A),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let t=this.parent.worldScreenWidth,A=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&t<this.options.minWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.minWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,t=this.parent.worldScreenWidth,A=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&t>this.options.maxWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.maxWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,t=this.parent.worldScreenWidth,A=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&A<this.options.minHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.minHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,t=this.parent.worldScreenWidth,A=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&A>this.options.maxHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.maxHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}}else if(this.options.minScale||this.options.maxScale){const t={x:null,y:null},A={x:null,y:null};if(typeof this.options.minScale=="number")t.x=this.options.minScale,t.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")A.x=this.options.maxScale,A.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;A.x=typeof s.x>"u"?null:s.x,A.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;t.x!==null&&i<t.x&&(i=t.x),A.x!==null&&i>A.x&&(i=A.x),t.y!==null&&n<t.y&&(n=t.y),A.y!==null&&n>A.y&&(n=A.y),(i!==this.parent.scale.x||n!==this.parent.scale.y)&&(this.parent.scale.set(i,n),this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"}))}}}reset(){this.clamp()}}const Qh={friction:.98,bounce:.8,minSpeed:.01},zt=16;class dh extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Qh,A),this.saved=[],this.timeSinceRelease=0,this.reset(),this.parent.on("moved",i=>this.handleMoved(i))}down(){return this.saved=[],this.x=this.y=null,!1}isActive(){return!!(this.x||this.y)}move(){if(this.paused)return!1;const t=this.parent.input.count();return(t===1||t>1&&!this.parent.plugins.get("pinch",!0))&&(this.saved.push({x:this.parent.x,y:this.parent.y,time:performance.now()}),this.saved.length>60&&this.saved.splice(0,30)),!1}handleMoved(t){if(this.saved.length){const A=this.saved[this.saved.length-1];t.type==="clamp-x"&&t.original?A.x===t.original.x&&(A.x=this.parent.x):t.type==="clamp-y"&&t.original&&A.y===t.original.y&&(A.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const t=performance.now();for(const A of this.saved)if(A.time>=t-100){const i=t-A.time;this.x=(this.parent.x-A.x)/i,this.y=(this.parent.y-A.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(t){t=t||{},typeof t.x<"u"&&(this.x=t.x,this.percentChangeX=this.options.friction),typeof t.y<"u"&&(this.y=t.y,this.percentChangeY=this.options.friction)}update(t){if(this.paused)return;const A=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+t;if(this.x){const s=this.percentChangeX,a=Math.log(s);this.parent.x+=this.x*zt/a*(Math.pow(s,n/zt)-Math.pow(s,i/zt)),this.x*=Math.pow(this.percentChangeX,t/zt)}if(this.y){const s=this.percentChangeY,a=Math.log(s);this.parent.y+=this.y*zt/a*(Math.pow(s,n/zt)-Math.pow(s,i/zt)),this.y*=Math.pow(this.percentChangeY,t/zt)}this.timeSinceRelease+=t,this.x&&this.y?Math.abs(this.x)<this.options.minSpeed&&Math.abs(this.y)<this.options.minSpeed&&(this.x=0,this.y=0):(Math.abs(this.x||0)<this.options.minSpeed&&(this.x=0),Math.abs(this.y||0)<this.options.minSpeed&&(this.y=0)),A&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const ph={direction:"all",pressDrag:!0,wheel:!0,wheelScroll:1,reverse:!1,clampWheel:!1,underflow:"center",factor:1,mouseButtons:"all",keyToPress:null,ignoreKeyToPressOnTouch:!1,lineHeight:20,wheelSwapAxes:!1};class yh extends yt{constructor(t,A={}){super(t),this.windowEventHandlers=[],this.options=Object.assign({},ph,A),this.moved=!1,this.reverse=this.options.reverse?1:-1,this.xDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="x",this.yDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="y",this.keyIsPressed=!1,this.parseUnderflow(),this.mouseButtons(this.options.mouseButtons),this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){const A=n=>{t.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{t.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",A)}addWindowEventHandler(t,A){typeof window>"u"||(window.addEventListener(t,A),this.windowEventHandlers.push({event:t,handler:A}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:t,handler:A})=>{window.removeEventListener(t,A)})}mouseButtons(t){!t||t==="all"?this.mouse=[!0,!0,!0]:this.mouse=[t.indexOf("left")!==-1,t.indexOf("middle")!==-1,t.indexOf("right")!==-1]}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="center"?(this.underflowX=0,this.underflowY=0):(t.includes("left")?this.underflowX=-1:t.includes("right")?this.underflowX=1:this.underflowX=0,t.includes("top")?this.underflowY=-1:t.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(t){const A=t.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!A||this.mouse[t.button]))}checkKeyPress(t){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&t.data.pointerType==="touch"}down(t){return this.paused||!this.options.pressDrag?!1:this.checkButtons(t)&&this.checkKeyPress(t)?(this.last={x:t.global.x,y:t.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=t.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(t){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===t.data.pointerId){const A=t.global.x,i=t.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:A,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const a=s.x-this.last.x,g=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(a)||this.yDirection&&this.parent.input.checkThreshold(g))return this.xDirection&&(this.parent.x+=(s.x-this.last.x)*this.options.factor),this.yDirection&&(this.parent.y+=(s.y-this.last.y)*this.options.factor),this.last=s,this.moved||this.parent.emit("drag-start",{event:t,screen:new v.Point(this.last.x,this.last.y),world:this.parent.toWorld(new v.Point(this.last.x,this.last.y)),viewport:this.parent}),this.moved=!0,this.parent.emit("moved",{viewport:this.parent,type:"drag"}),!0}else this.moved=!1}return!1}up(t){if(this.paused)return!1;const A=this.parent.input.touches;if(A.length===1){const i=A[0];return i.last&&(this.last={x:i.last.x,y:i.last.y},this.current=i.id),this.moved=!1,!0}else if(this.last&&this.moved){const i=new v.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:t,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(t){if(this.paused)return!1;if(this.options.wheel){const A=this.parent.plugins.get("wheel",!0);if(!A||!A.options.wheelZoom&&!t.ctrlKey){const i=t.deltaMode?this.options.lineHeight:1,n=[t.deltaX,t.deltaY],[s,a]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=a*i*this.options.wheelScroll*this.reverse),this.options.clampWheel&&this.clamp(),this.parent.emit("wheel-scroll",this.parent),this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.options.passiveWheel||t.preventDefault(),this.parent.options.stopPropagation&&t.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const t=this.parent.plugins.get("decelerate",!0)||{};if(this.options.clampWheel!=="y")if(this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x=0;break;case 1:this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}else this.parent.left<0?(this.parent.x=0,t.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,t.x=0);if(this.options.clampWheel!=="x")if(this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y=0;break;case 1:this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}else this.parent.top<0&&(this.parent.y=0,t.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,t.y=0)}}const wh={speed:0,acceleration:null,radius:null};class mh extends yt{constructor(t,A,i={}){super(t),this.target=A,this.options=Object.assign({},wh,i),this.velocity={x:0,y:0}}update(t){if(this.paused)return;const A=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-A.y,2)+Math.pow(this.target.x-A.x,2))>this.options.radius){const g=Math.atan2(this.target.y-A.y,this.target.x-A.x);i=this.target.x-Math.cos(g)*this.options.radius,n=this.target.y-Math.sin(g)*this.options.radius}else return;const s=i-A.x,a=n-A.y;if(s||a)if(this.options.speed)if(this.options.acceleration){const g=Math.atan2(n-A.y,i-A.x),r=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));if(r){const l=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);r>l?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*t,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*t,this.options.speed))}:this.velocity={x:Math.max(this.velocity.x-this.options.acceleration*this.options.speed,0),y:Math.max(this.velocity.y-this.options.acceleration*this.options.speed,0)};const I=Math.cos(g)*this.velocity.x,o=Math.sin(g)*this.velocity.y,h=Math.abs(I)>Math.abs(s)?i:A.x+I,c=Math.abs(o)>Math.abs(a)?n:A.y+o;this.parent.moveCenter(h,c),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const g=Math.atan2(n-A.y,i-A.x),r=Math.cos(g)*this.options.speed,l=Math.sin(g)*this.options.speed,I=Math.abs(r)>Math.abs(s)?i:A.x+r,o=Math.abs(l)>Math.abs(a)?n:A.y+l;this.parent.moveCenter(I,o),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}else this.parent.moveCenter(i,n),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}const Dh={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class vh extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Dh,A),this.reverse=this.options.reverse?1:-1,this.radiusSquared=typeof this.options.radius=="number"?Math.pow(this.options.radius,2):null,this.resize()}resize(){const t=this.options.distance;t!==null?(this.left=t,this.top=t,this.right=this.parent.screenWidth-t,this.bottom=this.parent.screenHeight-t):this.options.radius||(this.left=this.options.left,this.top=this.options.top,this.right=this.options.right===null?null:this.parent.screenWidth-this.options.right,this.bottom=this.options.bottom===null?null:this.parent.screenHeight-this.options.bottom)}down(){return this.paused||this.options.allowButtons||(this.horizontal=this.vertical=null),!1}move(t){if(this.paused||t.pointerType!=="mouse"&&t.pointerId!==1||!this.options.allowButtons&&t.buttons!==0)return!1;const A=t.global.x,i=t.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-A,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-A);this.options.linear?(this.horizontal=Math.round(Math.cos(s))*this.options.speed*this.reverse*.06,this.vertical=Math.round(Math.sin(s))*this.options.speed*this.reverse*.06):(this.horizontal=Math.cos(s)*this.options.speed*this.reverse*.06,this.vertical=Math.sin(s)*this.options.speed*this.reverse*.06)}else this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=0}else this.left!==null&&A<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&A>this.right?this.horizontal=-1*this.reverse*this.options.speed*.06:(this.decelerateHorizontal(),this.horizontal=0),this.top!==null&&i<this.top?this.vertical=Number(this.reverse)*this.options.speed*.06:this.bottom!==null&&i>this.bottom?this.vertical=-1*this.reverse*this.options.speed*.06:(this.decelerateVertical(),this.vertical=0);return!1}decelerateHorizontal(){const t=this.parent.plugins.get("decelerate",!0);this.horizontal&&t&&!this.options.noDecelerate&&t.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const t=this.parent.plugins.get("decelerate",!0);this.vertical&&t&&!this.options.noDecelerate&&t.activate({y:this.vertical*this.options.speed*this.reverse/16.666666666666668})}up(){return this.paused||(this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=null),!1}update(){if(!this.paused&&(this.horizontal||this.vertical)){const t=this.parent.center;this.horizontal&&(t.x+=this.horizontal*this.options.speed),this.vertical&&(t.y+=this.vertical*this.options.speed),this.parent.moveCenter(t),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const Sh={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},bh=new v.Point;class xh extends yt{constructor(t,A={}){super(t),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},Sh,A)}down(){return this.parent.input.count()>=2?(this.active=!0,!0):!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}move(t){if(this.paused||!this.active)return!1;const{x:A,y:i}=(this.parent.parent||this.parent).toLocal(t.global,void 0,bh),n=this.parent.input.touches;if(n.length>=2){const s=n[0],a=n[1],g=s.last&&a.last?Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2)):null;if(s.id===t.pointerId?s.last={x:A,y:i,data:t}:a.id===t.pointerId&&(a.last={x:A,y:i,data:t}),g){let r;const l=new v.Point(s.last.x+(a.last.x-s.last.x)/2,s.last.y+(a.last.y-s.last.y)/2);this.options.center||(r=this.parent.toLocal(l,this.parent.parent||this.parent));let I=Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2));I=I===0?I=1e-10:I;const o=(1-g/I)*this.options.percent*(this.isAxisX()?this.parent.scale.x:this.parent.scale.y);this.isAxisX()&&(this.parent.scale.x+=o),this.isAxisY()&&(this.parent.scale.y+=o),this.parent.emit("zoomed",{viewport:this.parent,type:"pinch",center:l});const h=this.parent.plugins.get("clamp-zoom",!0);if(h&&h.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const c=(this.parent.parent||this.parent).toLocal(r,this.parent);this.parent.x+=(l.x-c.x)*this.options.factor,this.parent.y+=(l.y-c.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})}!this.options.noDrag&&this.lastCenter&&(this.parent.x+=(l.x-this.lastCenter.x)*this.options.factor,this.parent.y+=(l.y-this.lastCenter.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})),this.lastCenter=l,this.moved=!0}else this.pinching||(this.parent.emit("pinch-start",this.parent),this.pinching=!0);return!0}return!1}up(){return this.pinching&&this.parent.input.touches.length<=1?(this.active=!1,this.lastCenter=null,this.pinching=!1,this.moved=!1,this.parent.emit("pinch-end",this.parent),!0):!1}}const kh={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class Mh extends yt{constructor(t,A,i,n={}){super(t),this.options=Object.assign({},kh,n),this.ease=ke(n.ease,"easeInOutSine"),this.x=A,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const t=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-t.x,this.deltaY=this.y-t.y,this.startX=t.x,this.startY=t.y,this.parent.emit("snap-start",this.parent)}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap"):this.options.interrupt&&(this.snapping=null),!1}up(){if(this.parent.input.count()===0){const t=this.parent.plugins.get("decelerate",!0);t&&(t.x||t.y)&&(t.percentChangeX=t.percentChangeY=this.options.friction)}return!1}update(t){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const A=this.snapping;A.time+=t;let i,n,s;const a=this.startX,g=this.startY,r=this.deltaX,l=this.deltaY;if(A.time>this.options.time)i=!0,n=a+r,s=g+l;else{const I=this.ease(A.time,0,1,this.options.time);n=a+r*I,s=g+l*I}this.options.topLeft?this.parent.moveCorner(n,s):this.parent.moveCenter(n,s),this.parent.emit("moved",{viewport:this.parent,type:"snap"}),i&&(this.options.removeOnComplete&&this.parent.plugins.remove("snap"),this.parent.emit("snap-end",this.parent),this.snapping=null)}else{const A=this.options.topLeft?this.parent.corner:this.parent.center;(A.x!==this.x||A.y!==this.y)&&this.snapStart()}}}const Rh={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class _h extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Rh,A),this.ease=ke(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=t.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=t.screenHeight/this.options.height,this.yIndependent=!0),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale,this.options.time===0?(t.container.scale.x=this.xScale,t.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):A.forceStart&&this.createSnapping()}createSnapping(){const t=this.parent.worldScreenWidth,A=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:t,startY:A,deltaX:i-t,deltaY:n-A},this.parent.emit("snap-zoom-start",this.parent)}resize(){this.snapping=null,this.options.width>0&&(this.xScale=this.parent.screenWidth/this.options.width),this.options.height>0&&(this.yScale=this.parent.screenHeight/this.options.height),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap-zoom"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap-zoom"):this.options.interrupt&&(this.snapping=null),!1}update(t){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let A;if(!this.options.center&&!this.options.noMove&&(A=this.parent.center),!this.snapping)(this.parent.scale.x!==this.xScale||this.parent.scale.y!==this.yScale)&&this.createSnapping();else if(this.snapping){const i=this.snapping;if(i.time+=t,i.time>=this.options.time)this.parent.scale.set(this.xScale,this.yScale),this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom"),this.parent.emit("snap-zoom-end",this.parent),this.snapping=null;else{const s=this.snapping,a=this.ease(s.time,s.startX,s.deltaX,this.options.time),g=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/a,this.parent.scale.y=this.parent.screenHeight/g}const n=this.parent.plugins.get("clamp-zoom",!0);n&&n.clamp(),this.options.noMove||(this.options.center?this.parent.moveCenter(this.options.center):this.parent.moveCenter(A))}}resume(){this.snapping=null,super.resume()}}const Fh={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class Gh extends yt{constructor(t,A={}){super(t),this.options=Object.assign({},Fh,A),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){typeof window>"u"||(window.addEventListener("keydown",A=>{t.includes(A.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",A=>{t.includes(A.code)&&(this.keyIsPressed=!1)}))}checkKeyPress(){return!this.options.keyToPress||this.keyIsPressed}down(){return this.options.interrupt&&(this.smoothing=null),!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}update(){if(this.smoothing){const t=this.smoothingCenter,A=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x+=A.x),this.isAxisY()&&(this.parent.scale.y+=A.y),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const n=this.parent.plugins.get("clamp-zoom",!0);if(n&&n.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const s=this.parent.parent||this.parent;s.toLocal(i,this.parent,i);const a=s.toLocal(t);this.parent.x+=a.x-i.x,this.parent.y+=a.y-i.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.smoothingCount++,typeof this.options.smooth=="number"&&this.smoothingCount>=this.options.smooth&&(this.smoothing=null)}}pinch(t){if(this.paused)return;const A=this.parent.input.getPointerPosition(t),i=-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(A)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const g=this.parent.parent||this.parent;g.toLocal(s,this.parent,s);const r=g.toLocal(A);this.parent.x+=r.x-s.x,this.parent.y+=r.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}wheel(t){if(this.paused||!this.checkKeyPress())return!1;if(t.ctrlKey&&this.options.trackpadPinch)this.pinch(t);else if(this.options.wheelZoom){const A=this.parent.input.getPointerPosition(t),i=(this.options.reverse?-1:1)*-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/500,n=Math.pow(2,(1+this.options.percent)*i);if(this.options.smooth){const s={x:this.smoothing?this.smoothing.x*(this.options.smooth-this.smoothingCount):0,y:this.smoothing?this.smoothing.y*(this.options.smooth-this.smoothingCount):0};this.smoothing={x:((this.parent.scale.x+s.x)*n-this.parent.scale.x)/this.options.smooth,y:((this.parent.scale.y+s.y)*n-this.parent.scale.y)/this.options.smooth},this.smoothingCount=0,this.smoothingCenter=A}else{let s;this.options.center||(s=this.parent.toLocal(A)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const g=this.parent.parent||this.parent;g.toLocal(s,this.parent,s);const r=g.toLocal(A);this.parent.x+=r.x-s.x,this.parent.y+=r.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}return!this.parent.options.passiveWheel}}const Nh={screenWidth:typeof window>"u"?0:window.innerWidth,screenHeight:typeof window>"u"?0:window.innerHeight,worldWidth:null,worldHeight:null,threshold:5,passiveWheel:!0,stopPropagation:!1,forceHitArea:null,noTicker:!1,disableOnContextMenu:!1,ticker:v.Ticker.shared,allowPreserveDragOutside:!1};class Hh extends v.Container{constructor(t){super(),this._disableOnContextMenu=A=>A.preventDefault(),this.options={...Nh,...t},this.screenWidth=this.options.screenWidth,this.screenHeight=this.options.screenHeight,this._worldWidth=this.options.worldWidth,this._worldHeight=this.options.worldHeight,this.forceHitArea=this.options.forceHitArea,this.threshold=this.options.threshold,this.options.disableOnContextMenu&&this.options.events.domElement.addEventListener("contextmenu",this._disableOnContextMenu),this.options.noTicker||(this.tickerFunction=()=>this.update(this.options.ticker.elapsedMS),this.options.ticker.add(this.tickerFunction)),this.input=new gh(this),this.plugins=new hh(this)}destroy(t){var A;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((A=this.options.events.domElement)==null||A.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(t)}update(t){this.pause||(this.plugins.update(t),this.lastViewport&&(this.lastViewport.x!==this.x||this.lastViewport.y!==this.y?this.moving=!0:this.moving&&(this.emit("moved-end",this),this.moving=!1),this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y?this.zooming=!0:this.zooming&&(this.emit("zoomed-end",this),this.zooming=!1)),this.forceHitArea||(this._hitAreaDefault=new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight),this.hitArea=this._hitAreaDefault),this._dirty=this._dirty||!this.lastViewport||this.lastViewport.x!==this.x||this.lastViewport.y!==this.y||this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y,this.lastViewport={x:this.x,y:this.y,scaleX:this.scale.x,scaleY:this.scale.y},this.emit("frame-end",this))}resize(t=typeof window>"u"?0:window.innerWidth,A=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=t,this.screenHeight=A,typeof i<"u"&&(this._worldWidth=i),typeof n<"u"&&(this._worldHeight=n),this.plugins.resize(),this.dirty=!0}get worldWidth(){return this._worldWidth?this._worldWidth:this.width/this.scale.x}set worldWidth(t){this._worldWidth=t,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(t){this._worldHeight=t,this.plugins.resize()}getVisibleBounds(){return new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(t,A){return arguments.length===2?this.toLocal(new v.Point(t,A)):this.toLocal(t)}toScreen(t,A){return arguments.length===2?this.toGlobal(new v.Point(t,A)):this.toGlobal(t)}get worldScreenWidth(){return this.screenWidth/this.scale.x}get worldScreenHeight(){return this.screenHeight/this.scale.y}get screenWorldWidth(){return this.worldWidth*this.scale.x}get screenWorldHeight(){return this.worldHeight*this.scale.y}get center(){return new v.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(t){this.moveCenter(t)}moveCenter(...t){let A,i;typeof t[0]=="number"?(A=t[0],i=t[1]):(A=t[0].x,i=t[0].y);const n=(this.worldScreenWidth/2-A)*this.scale.x,s=(this.worldScreenHeight/2-i)*this.scale.y;return(this.x!==n||this.y!==s)&&(this.position.set(n,s),this.plugins.reset(),this.dirty=!0),this}get corner(){return new v.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(t){this.moveCorner(t)}moveCorner(...t){let A,i;return t.length===1?(A=-t[0].x*this.scale.x,i=-t[0].y*this.scale.y):(A=-t[0]*this.scale.x,i=-t[1]*this.scale.y),(A!==this.x||i!==this.y)&&(this.position.set(A,i),this.plugins.reset(),this.dirty=!0),this}get screenWidthInWorldPixels(){return this.screenWidth/this.scale.x}get screenHeightInWorldPixels(){return this.screenHeight/this.scale.y}findFitWidth(t){return this.screenWidth/t}findFitHeight(t){return this.screenHeight/t}findFit(t,A){const i=this.screenWidth/t,n=this.screenHeight/A;return Math.min(i,n)}findCover(t,A){const i=this.screenWidth/t,n=this.screenHeight/A;return Math.max(i,n)}fitWidth(t=this.worldWidth,A,i=!0,n){let s;A&&(s=this.center),this.scale.x=this.screenWidth/t,i&&(this.scale.y=this.scale.x);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),A&&s&&this.moveCenter(s),this}fitHeight(t=this.worldHeight,A,i=!0,n){let s;A&&(s=this.center),this.scale.y=this.screenHeight/t,i&&(this.scale.x=this.scale.y);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),A&&s&&this.moveCenter(s),this}fitWorld(t){let A;t&&(A=this.center),this.scale.x=this.screenWidth/this.worldWidth,this.scale.y=this.screenHeight/this.worldHeight,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const i=this.plugins.get("clamp-zoom",!0);return i&&i.clamp(),t&&A&&this.moveCenter(A),this}fit(t,A=this.worldWidth,i=this.worldHeight){let n;t&&(n=this.center),this.scale.x=this.screenWidth/A,this.scale.y=this.screenHeight/i,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const s=this.plugins.get("clamp-zoom",!0);return s&&s.clamp(),t&&n&&this.moveCenter(n),this}setZoom(t,A){let i;A&&(i=this.center),this.scale.set(t);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),A&&i&&this.moveCenter(i),this}zoomPercent(t,A){return this.setZoom(this.scale.x+this.scale.x*t,A)}zoom(t,A){return this.fitWidth(t+this.worldScreenWidth,A),this}get scaled(){return this.scale.x}set scaled(t){this.setZoom(t,!0)}snapZoom(t){return this.plugins.add("snap-zoom",new _h(this,t)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new v.Point(this.worldWidth*this.scale.x-this.screenWidth,this.worldHeight*this.scale.y-this.screenHeight)}}get right(){return-this.x/this.scale.x+this.worldScreenWidth}set right(t){this.x=-t*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(t){this.x=-t*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(t){this.y=-t*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(t){this.y=-t*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(t){this._dirty=t}get forceHitArea(){return this._forceHitArea}set forceHitArea(t){t?(this._forceHitArea=t,this.hitArea=t):(this._forceHitArea=null,this.hitArea=new v.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(t){return this.plugins.add("drag",new yh(this,t)),this}clamp(t){return this.plugins.add("clamp",new Eh(this,t)),this}decelerate(t){return this.plugins.add("decelerate",new dh(this,t)),this}bounce(t){return this.plugins.add("bounce",new uh(this,t)),this}pinch(t){return this.plugins.add("pinch",new xh(this,t)),this}snap(t,A,i){return this.plugins.add("snap",new Mh(this,t,A,i)),this}follow(t,A){return this.plugins.add("follow",new mh(this,t,A)),this}wheel(t){return this.plugins.add("wheel",new Gh(this,t)),this}animate(t){return this.plugins.add("animate",new ch(this,t)),this}clampZoom(t){return this.plugins.add("clamp-zoom",new Ch(this,t)),this}mouseEdges(t){return this.plugins.add("mouse-edges",new vh(this,t)),this}get pause(){return!!this._pause}set pause(t){this._pause=t,this.lastViewport=null,this.moving=!1,this.zooming=!1,t&&this.input.pause()}ensureVisible(t,A,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let a=!1;t<this.left?(this.left=t,a=!0):t+i>this.right&&(this.right=t+i,a=!0),A<this.top?(this.top=A,a=!0):A+n>this.bottom&&(this.bottom=A+n,a=!0),a&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const Lh=["bounce-x-end","bounce-x-start","bounce-y-end","bounce-y-start","clicked","drag-end","drag-start","frame-end","mouse-edge-end","mouse-edge-start","moved","moved-end","pinch-end","pinch-start","snap-end","snap-start","snap-zoom-end","snap-zoom-start","wheel-scroll","zoomed","zoomed-end"];class Uh extends Dt(Hh){constructor(){const t={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};super(t),this.overrideProps=["wheel"]}onInit(t){super.onInit(t);for(let A of Lh)t[A]&&this.on(A,t[A])}async onMount(t,A){await super.onMount(t,A);const{props:i}=t,{tick:n,app:s,canvasSize:a}=i.context;nt(()=>{this.screenWidth=a().width,this.screenHeight=a().height}),nt(()=>{const g=s();if(!g)return;const r=g.renderer;r.events.domElement.addEventListener("wheel",this.input.wheelFunction),this.options.events=r.events}),this.tickSubscription=n.observable.subscribe(({value:g})=>{this.update(g.timestamp)}),t.props.context.viewport=this,this.updateViewportSettings(i)}onUpdate(t){super.onUpdate(t),this.updateViewportSettings(t)}updateViewportSettings(t){t.screenWidth!==void 0&&(this.screenWidth=t.screenWidth),t.screenHeight!==void 0&&(this.screenHeight=t.screenHeight),t.worldWidth!==void 0&&(this.worldWidth=t.worldWidth),t.worldHeight!==void 0&&(this.worldHeight=t.worldHeight),t.drag&&this.drag(t.drag),t.clamp&&this.clamp(t.clamp.value??t.clamp),t.wheel&&(t.wheel===!0?this.wheel():this.wheel(t.wheel)),t.decelerate&&(t.decelerate===!0?this.decelerate():this.decelerate(t.decelerate)),t.pinch&&(t.pinch===!0?this.pinch():this.pinch(t.pinch))}async onDestroy(t,A){const i=async()=>{this.tickSubscription.unsubscribe(),A()};await super.onDestroy(t,i)}}at("Viewport",Uh);function Oh(e){return Et("Viewport",e)}class Th extends Dt(v.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(t){for(const[A,i]of Object.entries(t))i!==void 0&&(A==="image"?this.texture=await v.Assets.load(i):A in this&&(this[A]=i))}}at("NineSliceSprite",Th);function Jh(e){return Et("NineSliceSprite",e)}const po=["click","mouseover","mouseout","mouseenter","mouseleave","mousemove","mouseup","mousedown","touchstart","touchend","touchmove","touchcancel","wheel","scroll","resize","focus","blur","change","input","submit","reset","keydown","keyup","keypress","contextmenu","drag","dragend","dragenter","dragleave","dragover","drop","dragstart","select","selectstart","selectend","selectall","selectnone"];class Ph{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(t){return["input","textarea","select"].includes(t.toLowerCase())}onInit(t){var A;typeof t.element=="string"?(this.element=document.createElement(t.element),this.isFormElementType=this.isFormElement(t.element)):(this.element=t.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(t.onBeforeDestroy||t["on-before-destroy"])&&(this.onBeforeDestroy=t.onBeforeDestroy||t["on-before-destroy"]);for(const i of po)if((A=t.attrs)!=null&&A[i]){const n=s=>{var a,g,r,l;if(i==="submit"&&this.element.tagName.toLowerCase()==="form"){s.preventDefault();const I=new FormData(this.element),o={};I.forEach((h,c)=>{o[c]?Array.isArray(o[c])?o[c].push(h):o[c]=[o[c],h]:o[c]=h}),(g=(a=t.attrs)[i])==null||g.call(a,s,o)}else(l=(r=t.attrs)[i])==null||l.call(r,s)};this.eventListeners.set(i,n),this.element.addEventListener(i,n,!1)}if(t.children)for(const i of t.children)ns(i)?i.subscribe(({elements:n})=>{for(const s of n)this.element.appendChild(s.componentInstance.element)}):this.element.appendChild(i.componentInstance.element);this.onUpdate(t)}onMount(t){const i=t.propObservables.attrs;if(this.isFormElementType&&(i!=null&&i.value)&&T(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const a=s.target;this.valueSignal.set(a.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(t){if(this.element){for(const[A,i]of Object.entries(t.attrs||{}))if(A==="class"){const n=i.items||i.value||i;if(this.element.className="",typeof n=="string")this.element.className=n;else if(Array.isArray(n))this.element.classList.add(...n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a&&this.element.classList.add(s)}else if(A==="style"){const n=i.items||i.value||i;if(typeof n=="string")this.element.setAttribute("style",n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a!=null&&(this.element.style[s]=a)}else if(A==="value"&&this.isFormElementType)if(T(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else po.includes(A)||this.element.setAttribute(A,i);t.textContent&&(this.element.textContent=t.textContent)}}async onDestroy(t,A){if(this.element){this.onBeforeDestroy&&await this.onBeforeDestroy();for(const[i,n]of this.eventListeners)this.element.removeEventListener(i,n,!1);this.eventListeners.clear(),this.element.remove(),A&&A()}}}at("DOMElement",Ph);const yo=e=>Et("DOMElement",e);class Kh extends Dt(v.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(t){const A=lt(yo,{element:"div"},t.children);this.element=A.componentInstance.element}}at("DOMContainer",Kh);const Yh=e=>Et("DOMContainer",e);var wo=(e=>(e.Normal="normal",e.Hover="hover",e.Pressed="pressed",e.Disabled="disabled",e))(wo||{});function Wh(e){const t=W("normal"),A=W(!1),i=W(!1),n=Ri(e),{text:s,disabled:a,width:g,height:r,style:l,shape:I,controlName:o}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})},shape:{type:String,default:"rect"},controlName:{type:String,default:void 0}}),h=()=>e.controls?T(e.controls)?e.controls():e.controls:null;nt(()=>{const Q=a(),C=A(),p=i();Q?t.set("disabled"):C?t.set("pressed"):p?t.set("hover"):t.set("normal")});const c={pointerenter:Q=>{var C;a()||(i.set(!0),(C=e.hoverEnter)==null||C.call(e,Q))},pointerleave:Q=>{var C;i.set(!1),A.set(!1),(C=e.hoverLeave)==null||C.call(e,Q)},pointerdown:async Q=>{var C;if(!a()){A.set(!0),(C=e.pressDown)==null||C.call(e,Q);const p=h(),D=o();p&&D&&p.applyControl&&await p.applyControl(D,!0)}},pointerup:async Q=>{var C;if(!a()&&A()){A.set(!1),(C=e.pressUp)==null||C.call(e,Q);const p=h(),D=o();p&&D&&p.applyControl&&await p.applyControl(D,!1)}},pointertap:async Q=>{var C;if(!a()){(C=e.click)==null||C.call(e,Q);const p=h(),D=o();p&&D&&p.applyControl&&await p.applyControl(D)}}},E=()=>{if(e.background)return e.background;const Q=I(),C=dt(()=>{const D=l().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},w=t();return D[w]||D.normal});if(Q==="circle"){const p=dt(()=>Math.min(g(),r())/2);return lt(ao,{radius:p,x:dt(()=>g()/2),y:dt(()=>r()/2),color:C})}else return Q==="ellipse"?lt(go,{width:g,height:r,color:C}):lt(ro,{width:g,height:r,color:C})},f=()=>e.children&&e.children.length>0?e.children:[lt(fo,{text:s,x:dt(()=>g()/2),y:dt(()=>r()/2),anchor:{x:.5,y:.5},style:dt(()=>{const C=l().text||{};return{fontSize:C.fontSize||16,fontFamily:C.fontFamily||"Arial",fill:C.color||"#ffffff"}})()})];return lt(ZA,{x:e.x,y:e.y,width:e.width,height:e.height,alpha:e.alpha,visible:e.visible,cursor:e.cursor||"pointer",...c},[E(),...f()])}function jh(e={}){const t=Object.assign({outerScale:{x:1,y:1},innerScale:{x:1,y:1},innerColor:"black",outerColor:"black"},e),A=()=>T(t.controls)?t.controls():t.controls;let i=70,n=10;const s=.5;let a=!1,g=null,r=0;const l=W(0),I=W(0),o=W(s);function h(w){const S=w.x-0,_=w.y-0;return Math.min(1,Math.sqrt(S*S+_*_)/i)}function c(w){let S=Math.atan2(w.y,w.x);return S>=-Math.PI/8&&S<0||S>=0&&S<Math.PI/8?"right":S>=Math.PI/8&&S<3*Math.PI/8?"bottom_right":S>=3*Math.PI/8&&S<5*Math.PI/8?"bottom":S>=5*Math.PI/8&&S<7*Math.PI/8?"bottom_left":S>=7*Math.PI/8&&S<Math.PI||S>=-Math.PI&&S<-7*Math.PI/8?"left":S>=-7*Math.PI/8&&S<-5*Math.PI/8?"top_left":S>=-5*Math.PI/8&&S<-3*Math.PI/8?"top":"top_right"}function E(w){var N;const S=w.currentTarget||w.target;g=w.getLocalPosition(S),a=!0,o.set(1),(N=t.onStart)==null||N.call(t);const _=A();_&&(_.handleJoystickStart?_.handleJoystickStart():_.joystick&&_.joystick.handleJoystickStart&&_.joystick.handleJoystickStart())}function f(){var S;if(!a)return;l.set(0),I.set(0),a=!1,o.set(s),(S=t.onEnd)==null||S.call(t);const w=A();w&&(w.handleJoystickEnd?w.handleJoystickEnd():w.joystick&&w.joystick.handleJoystickEnd&&w.joystick.handleJoystickEnd())}function Q(w){var ee,Ne,RA;if(a==!1)return;const S=w.currentTarget||w.target;let _=w.getLocalPosition(S),N=_.x-((g==null?void 0:g.x)??0),J=_.y-((g==null?void 0:g.y)??0),U=new cr.Point(0,0),z=0;if(N==0&&J==0)return;let st="left";if(N==0){J>0?(U.set(0,J>i?i:J),z=270,st="bottom"):(U.set(0,-(Math.abs(J)>i?i:Math.abs(J))),z=90,st="top"),l.set(U.x),I.set(U.y),r=h(U);const Ut={angle:z,direction:st,power:r};(ee=t.onChange)==null||ee.call(t,Ut);const ot=A();ot&&(ot.handleJoystickChange?ot.handleJoystickChange(Ut):ot.joystick&&ot.joystick.handleJoystickChange&&ot.joystick.handleJoystickChange(Ut));return}if(J==0){N>0?(U.set(Math.abs(N)>i?i:Math.abs(N),0),z=0,st="right"):(U.set(-(Math.abs(N)>i?i:Math.abs(N)),0),z=180,st="left"),l.set(U.x),I.set(U.y),r=h(U);const Ut={angle:z,direction:st,power:r};(Ne=t.onChange)==null||Ne.call(t,Ut);const ot=A();ot&&(ot.handleJoystickChange?ot.handleJoystickChange(Ut):ot.joystick&&ot.joystick.handleJoystickChange&&ot.joystick.handleJoystickChange(Ut));return}let ct=Math.abs(J/N),gt=Math.atan(ct);z=gt*180/Math.PI;let V=0,ut=0;N*N+J*J>=i*i?(V=i*Math.cos(gt),ut=i*Math.sin(gt)):(V=Math.abs(N)>i?i:Math.abs(N),ut=Math.abs(J)>i?i:Math.abs(J)),J<0&&(ut=-Math.abs(ut)),N<0&&(V=-Math.abs(V)),N>0&&J<0||(N<0&&J<0?z=180-z:N<0&&J>0?z=z+180:N>0&&J>0&&(z=360-z)),U.set(V,ut),r=h(U),st=c(U),l.set(U.x),I.set(U.y);const Bt={angle:z,direction:st,power:r};(RA=t.onChange)==null||RA.call(t,Bt);const Tt=A();Tt&&(Tt.handleJoystickChange?Tt.handleJoystickChange(Bt):Tt.joystick&&Tt.joystick.handleJoystickChange&&Tt.joystick.handleJoystickChange(Bt))}let C,p;t.outer?p=lt(an,{image:t.outer,anchor:{x:.5,y:.5},scale:t.outerScale}):p=lt(Zt,{draw:w=>{w.circle(0,0,i).fill(t.outerColor)},alpha:.5});const D={scale:t.innerScale,x:l,y:I,alpha:o};return t.inner?C=t.inner:C=lt(Zt,{draw:w=>{w.circle(0,0,n*2.5).fill(t.innerColor)},...D}),lt(ZA,{...e,pointerdown:E,pointerup:f,pointerupoutside:f,pointermove:Q},p,C)}var Vh=(()=>{var e=it&&it.tagName.toUpperCase()==="SCRIPT"&&it.src||new URL("index.global.js",document.baseURI).href;return function(t){t=t||{};var A;A||(A=typeof t<"u"?t:{});var i,n;A.ready=new Promise(function(u,B){i=u,n=B});var s=Object.assign({},A),a="";typeof document<"u"&&document.currentScript&&(a=document.currentScript.src),e&&(a=e),a.indexOf("blob:")!==0?a=a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1):a="";var g=A.print||console.log.bind(console),r=A.printErr||console.warn.bind(console);Object.assign(A,s),s=null;var l;A.wasmBinary&&(l=A.wasmBinary),A.noExitRuntime,typeof WebAssembly!="object"&&V("no native wasm support detected");var I,o=!1;function h(u,B,d){d=B+d;for(var y="";!(B>=d);){var m=u[B++];if(!m)break;if(m&128){var b=u[B++]&63;if((m&224)==192)y+=String.fromCharCode((m&31)<<6|b);else{var k=u[B++]&63;m=(m&240)==224?(m&15)<<12|b<<6|k:(m&7)<<18|b<<12|k<<6|u[B++]&63,65536>m?y+=String.fromCharCode(m):(m-=65536,y+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else y+=String.fromCharCode(m)}return y}var c,E,f,Q,C,p,D,w,S;function _(){var u=I.buffer;c=u,A.HEAP8=E=new Int8Array(u),A.HEAP16=Q=new Int16Array(u),A.HEAP32=p=new Int32Array(u),A.HEAPU8=f=new Uint8Array(u),A.HEAPU16=C=new Uint16Array(u),A.HEAPU32=D=new Uint32Array(u),A.HEAPF32=w=new Float32Array(u),A.HEAPF64=S=new Float64Array(u)}var N,J=[],U=[],z=[];function st(){var u=A.preRun.shift();J.unshift(u)}var ct=0,gt=null;function V(u){throw A.onAbort&&A.onAbort(u),u="Aborted("+u+")",r(u),o=!0,u=new WebAssembly.RuntimeError(u+". Build with -sASSERTIONS for more info."),n(u),u}function ut(u){return u.startsWith("data:application/octet-stream;base64,")}var Bt;if(Bt="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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",!ut(Bt)){var Tt=Bt;Bt=A.locateFile?A.locateFile(Tt,a):a+Tt}function ee(){var u=Bt;try{if(u==Bt&&l)return new Uint8Array(l);if(ut(u))try{var B=sc(u.slice(37)),d=new Uint8Array(B.length);for(u=0;u<B.length;++u)d[u]=B.charCodeAt(u);var y=d}catch{throw Error("Converting base64 string to bytes failed.")}else y=void 0;var m=y;if(m)return m;throw"both async and sync fetching of the wasm failed"}catch(b){V(b)}}function Ne(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return ee()}):fetch(Bt,{credentials:"same-origin"}).then(function(u){if(!u.ok)throw"failed to load wasm binary file at '"+Bt+"'";return u.arrayBuffer()}).catch(function(){return ee()})}function RA(u){for(;0<u.length;)u.shift()(A)}function Ut(u){if(u===void 0)return"_unknown";u=u.replace(/[^a-zA-Z0-9_]/g,"$");var B=u.charCodeAt(0);return 48<=B&&57>=B?"_"+u:u}function ot(u,B){return u=Ut(u),function(){return B.apply(this,arguments)}}var bt=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Bn=[];function He(u){var B=Error,d=ot(u,function(y){this.name=u,this.message=y,y=Error(y).stack,y!==void 0&&(this.stack=this.toString()+`
28
- `+y.replace(/^Error(:[^\n]*)?\n/,""))});return d.prototype=Object.create(B.prototype),d.prototype.constructor=d,d.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},d}var _A=void 0;function O(u){throw new _A(u)}var ie=u=>(u||O("Cannot use deleted val. handle = "+u),bt[u].value),Le=u=>{switch(u){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var B=Bn.length?Bn.pop():bt.length;return bt[B]={ga:1,value:u},B}},jo=void 0,Vo=void 0;function rt(u){for(var B="";f[u];)B+=Vo[f[u++]];return B}var ne=[];function En(){for(;ne.length;){var u=ne.pop();u.M.$=!1,u.delete()}}var se=void 0,Jt={};function fn(u,B){for(B===void 0&&O("ptr should not be undefined");u.R;)B=u.ba(B),u=u.R;return B}var gA={};function qo(u){u=sr(u);var B=rt(u);return Yt(u),B}function Xo(u,B){var d=gA[u];return d===void 0&&O(B+" has unknown type "+qo(u)),d}function Ue(){}var Cn=!1;function Zo(u){--u.count.value,u.count.value===0&&(u.T?u.U.W(u.T):u.P.N.W(u.O))}function zo(u,B,d){return B===d?u:d.R===void 0?null:(u=zo(u,B,d.R),u===null?null:d.na(u))}var $o={};function Ul(u,B){return B=fn(u,B),Jt[B]}var tr=void 0;function Oe(u){throw new tr(u)}function Te(u,B){return B.P&&B.O||Oe("makeClassHandle requires ptr and ptrType"),!!B.U!=!!B.T&&Oe("Both smartPtrType and smartPtr must be specified"),B.count={value:1},FA(Object.create(u,{M:{value:B}}))}function FA(u){return typeof FinalizationRegistry>"u"?(FA=B=>B,u):(Cn=new FinalizationRegistry(B=>{Zo(B.M)}),FA=B=>{var d=B.M;return d.T&&Cn.register(B,{M:d},B),B},Ue=B=>{Cn.unregister(B)},FA(u))}var Je={};function Qn(u){for(;u.length;){var B=u.pop();u.pop()(B)}}function oe(u){return this.fromWireType(p[u>>2])}var GA={},Pe={};function $t(u,B,d){function y(M){M=d(M),M.length!==u.length&&Oe("Mismatched type converter count");for(var F=0;F<u.length;++F)Pt(u[F],M[F])}u.forEach(function(M){Pe[M]=B});var m=Array(B.length),b=[],k=0;B.forEach((M,F)=>{gA.hasOwnProperty(M)?m[F]=gA[M]:(b.push(M),GA.hasOwnProperty(M)||(GA[M]=[]),GA[M].push(()=>{m[F]=gA[M],++k,k===b.length&&y(m)}))}),b.length===0&&y(m)}function dn(u){switch(u){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+u)}}function Pt(u,B,d={}){if(!("argPackAdvance"in B))throw new TypeError("registerType registeredInstance requires argPackAdvance");var y=B.name;if(u||O('type "'+y+'" must have a positive integer typeid pointer'),gA.hasOwnProperty(u)){if(d.ua)return;O("Cannot register type '"+y+"' twice")}gA[u]=B,delete Pe[u],GA.hasOwnProperty(u)&&(B=GA[u],delete GA[u],B.forEach(m=>m()))}function pn(u){O(u.M.P.N.name+" instance already deleted")}function tA(){}function yn(u,B,d){if(u[B].S===void 0){var y=u[B];u[B]=function(){return u[B].S.hasOwnProperty(arguments.length)||O("Function '"+d+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+u[B].S+")!"),u[B].S[arguments.length].apply(this,arguments)},u[B].S=[],u[B].S[y.Z]=y}}function Ol(u,B){A.hasOwnProperty(u)?(O("Cannot register public name '"+u+"' twice"),yn(A,u,u),A.hasOwnProperty(void 0)&&O("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),A[u].S[void 0]=B):A[u]=B}function Tl(u,B,d,y,m,b,k,M){this.name=u,this.constructor=B,this.X=d,this.W=y,this.R=m,this.pa=b,this.ba=k,this.na=M,this.ja=[]}function wn(u,B,d){for(;B!==d;)B.ba||O("Expected null or instance of "+d.name+", got an instance of "+B.name),u=B.ba(u),B=B.R;return u}function Jl(u,B){return B===null?(this.ea&&O("null is not a valid "+this.name),0):(B.M||O('Cannot pass "'+Sn(B)+'" as a '+this.name),B.M.O||O("Cannot pass deleted object as a pointer of type "+this.name),wn(B.M.O,B.M.P.N,this.N))}function Pl(u,B){if(B===null){if(this.ea&&O("null is not a valid "+this.name),this.da){var d=this.fa();return u!==null&&u.push(this.W,d),d}return 0}if(B.M||O('Cannot pass "'+Sn(B)+'" as a '+this.name),B.M.O||O("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&B.M.P.ca&&O("Cannot convert argument of type "+(B.M.U?B.M.U.name:B.M.P.name)+" to parameter type "+this.name),d=wn(B.M.O,B.M.P.N,this.N),this.da)switch(B.M.T===void 0&&O("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:B.M.U===this?d=B.M.T:O("Cannot convert argument of type "+(B.M.U?B.M.U.name:B.M.P.name)+" to parameter type "+this.name);break;case 1:d=B.M.T;break;case 2:if(B.M.U===this)d=B.M.T;else{var y=B.clone();d=this.xa(d,Le(function(){y.delete()})),u!==null&&u.push(this.W,d)}break;default:O("Unsupporting sharing policy")}return d}function Kl(u,B){return B===null?(this.ea&&O("null is not a valid "+this.name),0):(B.M||O('Cannot pass "'+Sn(B)+'" as a '+this.name),B.M.O||O("Cannot pass deleted object as a pointer of type "+this.name),B.M.P.ca&&O("Cannot convert argument of type "+B.M.P.name+" to parameter type "+this.name),wn(B.M.O,B.M.P.N,this.N))}function Kt(u,B,d,y){this.name=u,this.N=B,this.ea=d,this.ca=y,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,B.R!==void 0?this.toWireType=Pl:(this.toWireType=y?Jl:Kl,this.V=null)}function Yl(u,B){A.hasOwnProperty(u)||Oe("Replacing nonexistant public symbol"),A[u]=B,A[u].Z=void 0}function Wl(u,B){var d=[];return function(){if(d.length=0,Object.assign(d,arguments),u.includes("j")){var y=A["dynCall_"+u];y=d.length?y.apply(null,[B].concat(d)):y.call(null,B)}else y=N.get(B).apply(null,d);return y}}function xt(u,B){u=rt(u);var d=u.includes("j")?Wl(u,B):N.get(B);return typeof d!="function"&&O("unknown function pointer with signature "+u+": "+B),d}var Ar=void 0;function Ke(u,B){function d(b){m[b]||gA[b]||(Pe[b]?Pe[b].forEach(d):(y.push(b),m[b]=!0))}var y=[],m={};throw B.forEach(d),new Ar(u+": "+y.map(qo).join([", "]))}function mn(u,B,d,y,m){var b=B.length;2>b&&O("argTypes array size mismatch! Must at least get return value and 'this' types!");var k=B[1]!==null&&d!==null,M=!1;for(d=1;d<B.length;++d)if(B[d]!==null&&B[d].V===void 0){M=!0;break}var F=B[0].name!=="void",R=b-2,G=Array(R),H=[],P=[];return function(){if(arguments.length!==R&&O("function "+u+" called with "+arguments.length+" arguments, expected "+R+" args!"),P.length=0,H.length=k?2:1,H[0]=m,k){var et=B[1].toWireType(P,this);H[1]=et}for(var Y=0;Y<R;++Y)G[Y]=B[Y+2].toWireType(P,arguments[Y]),H.push(G[Y]);if(Y=y.apply(null,H),M)Qn(P);else for(var Ct=k?1:2;Ct<B.length;Ct++){var kt=Ct===1?et:G[Ct-2];B[Ct].V!==null&&B[Ct].V(kt)}return et=F?B[0].fromWireType(Y):void 0,et}}function Dn(u,B){for(var d=[],y=0;y<u;y++)d.push(D[B+4*y>>2]);return d}function vn(u){4<u&&--bt[u].ga===0&&(bt[u]=void 0,Bn.push(u))}function Sn(u){if(u===null)return"null";var B=typeof u;return B==="object"||B==="array"||B==="function"?u.toString():""+u}function jl(u,B){switch(B){case 2:return function(d){return this.fromWireType(w[d>>2])};case 3:return function(d){return this.fromWireType(S[d>>3])};default:throw new TypeError("Unknown float type: "+u)}}function Vl(u,B,d){switch(B){case 0:return d?function(y){return E[y]}:function(y){return f[y]};case 1:return d?function(y){return Q[y>>1]}:function(y){return C[y>>1]};case 2:return d?function(y){return p[y>>2]}:function(y){return D[y>>2]};default:throw new TypeError("Unknown integer type: "+u)}}function ql(u,B){for(var d="",y=0;!(y>=B/2);++y){var m=Q[u+2*y>>1];if(m==0)break;d+=String.fromCharCode(m)}return d}function Xl(u,B,d){if(d===void 0&&(d=2147483647),2>d)return 0;d-=2;var y=B;d=d<2*u.length?d/2:u.length;for(var m=0;m<d;++m)Q[B>>1]=u.charCodeAt(m),B+=2;return Q[B>>1]=0,B-y}function Zl(u){return 2*u.length}function zl(u,B){for(var d=0,y="";!(d>=B/4);){var m=p[u+4*d>>2];if(m==0)break;++d,65536<=m?(m-=65536,y+=String.fromCharCode(55296|m>>10,56320|m&1023)):y+=String.fromCharCode(m)}return y}function $l(u,B,d){if(d===void 0&&(d=2147483647),4>d)return 0;var y=B;d=y+d-4;for(var m=0;m<u.length;++m){var b=u.charCodeAt(m);if(55296<=b&&57343>=b){var k=u.charCodeAt(++m);b=65536+((b&1023)<<10)|k&1023}if(p[B>>2]=b,B+=4,B+4>d)break}return p[B>>2]=0,B-y}function tc(u){for(var B=0,d=0;d<u.length;++d){var y=u.charCodeAt(d);55296<=y&&57343>=y&&++d,B+=4}return B}var Ac={};function er(u){var B=Ac[u];return B===void 0?rt(u):B}var Ye=[];function ec(u){var B=Ye.length;return Ye.push(u),B}function ic(u,B){for(var d=Array(u),y=0;y<u;++y)d[y]=Xo(D[B+4*y>>2],"parameter "+y);return d}var ir=[],nc=[null,[],[]];_A=A.BindingError=He("BindingError"),A.count_emval_handles=function(){for(var u=0,B=5;B<bt.length;++B)bt[B]!==void 0&&++u;return u},A.get_first_emval=function(){for(var u=5;u<bt.length;++u)if(bt[u]!==void 0)return bt[u];return null},jo=A.PureVirtualError=He("PureVirtualError");for(var nr=Array(256),We=0;256>We;++We)nr[We]=String.fromCharCode(We);Vo=nr,A.getInheritedInstanceCount=function(){return Object.keys(Jt).length},A.getLiveInheritedInstances=function(){var u=[],B;for(B in Jt)Jt.hasOwnProperty(B)&&u.push(Jt[B]);return u},A.flushPendingDeletes=En,A.setDelayFunction=function(u){se=u,ne.length&&se&&se(En)},tr=A.InternalError=He("InternalError"),tA.prototype.isAliasOf=function(u){if(!(this instanceof tA&&u instanceof tA))return!1;var B=this.M.P.N,d=this.M.O,y=u.M.P.N;for(u=u.M.O;B.R;)d=B.ba(d),B=B.R;for(;y.R;)u=y.ba(u),y=y.R;return B===y&&d===u},tA.prototype.clone=function(){if(this.M.O||pn(this),this.M.aa)return this.M.count.value+=1,this;var u=FA,B=Object,d=B.create,y=Object.getPrototypeOf(this),m=this.M;return u=u(d.call(B,y,{M:{value:{count:m.count,$:m.$,aa:m.aa,O:m.O,P:m.P,T:m.T,U:m.U}}})),u.M.count.value+=1,u.M.$=!1,u},tA.prototype.delete=function(){this.M.O||pn(this),this.M.$&&!this.M.aa&&O("Object already scheduled for deletion"),Ue(this),Zo(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},tA.prototype.isDeleted=function(){return!this.M.O},tA.prototype.deleteLater=function(){return this.M.O||pn(this),this.M.$&&!this.M.aa&&O("Object already scheduled for deletion"),ne.push(this),ne.length===1&&se&&se(En),this.M.$=!0,this},Kt.prototype.qa=function(u){return this.ka&&(u=this.ka(u)),u},Kt.prototype.ha=function(u){this.W&&this.W(u)},Kt.prototype.argPackAdvance=8,Kt.prototype.readValueFromPointer=oe,Kt.prototype.deleteObject=function(u){u!==null&&u.delete()},Kt.prototype.fromWireType=function(u){function B(){return this.da?Te(this.N.X,{P:this.wa,O:d,U:this,T:u}):Te(this.N.X,{P:this,O:u})}var d=this.qa(u);if(!d)return this.ha(u),null;var y=Ul(this.N,d);if(y!==void 0)return y.M.count.value===0?(y.M.O=d,y.M.T=u,y.clone()):(y=y.clone(),this.ha(u),y);if(y=this.N.pa(d),y=$o[y],!y)return B.call(this);y=this.ca?y.la:y.pointerType;var m=zo(d,this.N,y.N);return m===null?B.call(this):this.da?Te(y.N.X,{P:y,O:m,U:this,T:u}):Te(y.N.X,{P:y,O:m})},Ar=A.UnboundTypeError=He("UnboundTypeError");var sc=typeof atob=="function"?atob:function(u){var B="",d=0;u=u.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(d++)),m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(d++)),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(d++)),k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(d++));y=y<<2|m>>4,m=(m&15)<<4|b>>2;var M=(b&3)<<6|k;B+=String.fromCharCode(y),b!==64&&(B+=String.fromCharCode(m)),k!==64&&(B+=String.fromCharCode(M))}while(d<u.length);return B},oc={l:function(u,B,d,y){V("Assertion failed: "+(u?h(f,u):"")+", at: "+[B?B?h(f,B):"":"unknown filename",d,y?y?h(f,y):"":"unknown function"])},q:function(u,B,d){u=rt(u),B=Xo(B,"wrapper"),d=ie(d);var y=[].slice,m=B.N,b=m.X,k=m.R.X,M=m.R.constructor;u=ot(u,function(){m.R.ja.forEach((function(R){if(this[R]===k[R])throw new jo("Pure virtual function "+R+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:b}),this.__construct.apply(this,y.call(arguments))}),b.__construct=function(){this===b&&O("Pass correct 'this' to __construct");var R=M.implement.apply(void 0,[this].concat(y.call(arguments)));Ue(R);var G=R.M;R.notifyOnDestruction(),G.aa=!0,Object.defineProperties(this,{M:{value:G}}),FA(this),R=G.O,R=fn(m,R),Jt.hasOwnProperty(R)?O("Tried to register registered instance: "+R):Jt[R]=this},b.__destruct=function(){this===b&&O("Pass correct 'this' to __destruct"),Ue(this);var R=this.M.O;R=fn(m,R),Jt.hasOwnProperty(R)?delete Jt[R]:O("Tried to unregister unregistered instance: "+R)},u.prototype=Object.create(b);for(var F in d)u.prototype[F]=d[F];return Le(u)},j:function(u){var B=Je[u];delete Je[u];var d=B.fa,y=B.W,m=B.ia,b=m.map(k=>k.ta).concat(m.map(k=>k.za));$t([u],b,k=>{var M={};return m.forEach((F,R)=>{var G=k[R],H=F.ra,P=F.sa,et=k[R+m.length],Y=F.ya,Ct=F.Aa;M[F.oa]={read:kt=>G.fromWireType(H(P,kt)),write:(kt,re)=>{var Wt=[];Y(Ct,kt,et.toWireType(Wt,re)),Qn(Wt)}}}),[{name:B.name,fromWireType:function(F){var R={},G;for(G in M)R[G]=M[G].read(F);return y(F),R},toWireType:function(F,R){for(var G in M)if(!(G in R))throw new TypeError('Missing field: "'+G+'"');var H=d();for(G in M)M[G].write(H,R[G]);return F!==null&&F.push(y,H),H},argPackAdvance:8,readValueFromPointer:oe,V:y}]})},v:function(){},B:function(u,B,d,y,m){var b=dn(d);B=rt(B),Pt(u,{name:B,fromWireType:function(k){return!!k},toWireType:function(k,M){return M?y:m},argPackAdvance:8,readValueFromPointer:function(k){if(d===1)var M=E;else if(d===2)M=Q;else if(d===4)M=p;else throw new TypeError("Unknown boolean type size: "+B);return this.fromWireType(M[k>>b])},V:null})},f:function(u,B,d,y,m,b,k,M,F,R,G,H,P){G=rt(G),b=xt(m,b),M&&(M=xt(k,M)),R&&(R=xt(F,R)),P=xt(H,P);var et=Ut(G);Ol(et,function(){Ke("Cannot construct "+G+" due to unbound types",[y])}),$t([u,B,d],y?[y]:[],function(Y){if(Y=Y[0],y)var Ct=Y.N,kt=Ct.X;else kt=tA.prototype;Y=ot(et,function(){if(Object.getPrototypeOf(this)!==re)throw new _A("Use 'new' to construct "+G);if(Wt.Y===void 0)throw new _A(G+" has no accessible constructor");var ar=Wt.Y[arguments.length];if(ar===void 0)throw new _A("Tried to invoke ctor of "+G+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Wt.Y).toString()+") parameters instead!");return ar.apply(this,arguments)});var re=Object.create(kt,{constructor:{value:Y}});Y.prototype=re;var Wt=new Tl(G,Y,re,P,Ct,b,M,R);Ct=new Kt(G,Wt,!0,!1),kt=new Kt(G+"*",Wt,!1,!1);var rr=new Kt(G+" const*",Wt,!1,!0);return $o[u]={pointerType:kt,la:rr},Yl(et,Y),[Ct,kt,rr]})},d:function(u,B,d,y,m,b,k){var M=Dn(d,y);B=rt(B),b=xt(m,b),$t([],[u],function(F){function R(){Ke("Cannot call "+G+" due to unbound types",M)}F=F[0];var G=F.name+"."+B;B.startsWith("@@")&&(B=Symbol[B.substring(2)]);var H=F.N.constructor;return H[B]===void 0?(R.Z=d-1,H[B]=R):(yn(H,B,G),H[B].S[d-1]=R),$t([],M,function(P){return P=mn(G,[P[0],null].concat(P.slice(1)),null,b,k),H[B].S===void 0?(P.Z=d-1,H[B]=P):H[B].S[d-1]=P,[]}),[]})},p:function(u,B,d,y,m,b){0<B||V();var k=Dn(B,d);m=xt(y,m),$t([],[u],function(M){M=M[0];var F="constructor "+M.name;if(M.N.Y===void 0&&(M.N.Y=[]),M.N.Y[B-1]!==void 0)throw new _A("Cannot register multiple constructors with identical number of parameters ("+(B-1)+") for class '"+M.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return M.N.Y[B-1]=()=>{Ke("Cannot construct "+M.name+" due to unbound types",k)},$t([],k,function(R){return R.splice(1,0,null),M.N.Y[B-1]=mn(F,R,null,m,b),[]}),[]})},a:function(u,B,d,y,m,b,k,M){var F=Dn(d,y);B=rt(B),b=xt(m,b),$t([],[u],function(R){function G(){Ke("Cannot call "+H+" due to unbound types",F)}R=R[0];var H=R.name+"."+B;B.startsWith("@@")&&(B=Symbol[B.substring(2)]),M&&R.N.ja.push(B);var P=R.N.X,et=P[B];return et===void 0||et.S===void 0&&et.className!==R.name&&et.Z===d-2?(G.Z=d-2,G.className=R.name,P[B]=G):(yn(P,B,H),P[B].S[d-2]=G),$t([],F,function(Y){return Y=mn(H,Y,R,b,k),P[B].S===void 0?(Y.Z=d-2,P[B]=Y):P[B].S[d-2]=Y,[]}),[]})},A:function(u,B){B=rt(B),Pt(u,{name:B,fromWireType:function(d){var y=ie(d);return vn(d),y},toWireType:function(d,y){return Le(y)},argPackAdvance:8,readValueFromPointer:oe,V:null})},n:function(u,B,d){d=dn(d),B=rt(B),Pt(u,{name:B,fromWireType:function(y){return y},toWireType:function(y,m){return m},argPackAdvance:8,readValueFromPointer:jl(B,d),V:null})},e:function(u,B,d,y,m){B=rt(B),m===-1&&(m=4294967295),m=dn(d);var b=M=>M;if(y===0){var k=32-8*d;b=M=>M<<k>>>k}d=B.includes("unsigned")?function(M,F){return F>>>0}:function(M,F){return F},Pt(u,{name:B,fromWireType:b,toWireType:d,argPackAdvance:8,readValueFromPointer:Vl(B,m,y!==0),V:null})},b:function(u,B,d){function y(b){b>>=2;var k=D;return new m(c,k[b+1],k[b])}var m=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][B];d=rt(d),Pt(u,{name:d,fromWireType:y,argPackAdvance:8,readValueFromPointer:y},{ua:!0})},o:function(u,B){B=rt(B);var d=B==="std::string";Pt(u,{name:B,fromWireType:function(y){var m=D[y>>2],b=y+4;if(d)for(var k=b,M=0;M<=m;++M){var F=b+M;if(M==m||f[F]==0){if(k=k?h(f,k,F-k):"",R===void 0)var R=k;else R+="\0",R+=k;k=F+1}}else{for(R=Array(m),M=0;M<m;++M)R[M]=String.fromCharCode(f[b+M]);R=R.join("")}return Yt(y),R},toWireType:function(y,m){m instanceof ArrayBuffer&&(m=new Uint8Array(m));var b,k=typeof m=="string";if(k||m instanceof Uint8Array||m instanceof Uint8ClampedArray||m instanceof Int8Array||O("Cannot pass non-string to std::string"),d&&k){var M=0;for(b=0;b<m.length;++b){var F=m.charCodeAt(b);127>=F?M++:2047>=F?M+=2:55296<=F&&57343>=F?(M+=4,++b):M+=3}b=M}else b=m.length;if(M=bn(4+b+1),F=M+4,D[M>>2]=b,d&&k){if(k=F,F=b+1,b=f,0<F){F=k+F-1;for(var R=0;R<m.length;++R){var G=m.charCodeAt(R);if(55296<=G&&57343>=G){var H=m.charCodeAt(++R);G=65536+((G&1023)<<10)|H&1023}if(127>=G){if(k>=F)break;b[k++]=G}else{if(2047>=G){if(k+1>=F)break;b[k++]=192|G>>6}else{if(65535>=G){if(k+2>=F)break;b[k++]=224|G>>12}else{if(k+3>=F)break;b[k++]=240|G>>18,b[k++]=128|G>>12&63}b[k++]=128|G>>6&63}b[k++]=128|G&63}}b[k]=0}}else if(k)for(k=0;k<b;++k)R=m.charCodeAt(k),255<R&&(Yt(F),O("String has UTF-16 code units that do not fit in 8 bits")),f[F+k]=R;else for(k=0;k<b;++k)f[F+k]=m[k];return y!==null&&y.push(Yt,M),M},argPackAdvance:8,readValueFromPointer:oe,V:function(y){Yt(y)}})},i:function(u,B,d){if(d=rt(d),B===2)var y=ql,m=Xl,b=Zl,k=()=>C,M=1;else B===4&&(y=zl,m=$l,b=tc,k=()=>D,M=2);Pt(u,{name:d,fromWireType:function(F){for(var R=D[F>>2],G=k(),H,P=F+4,et=0;et<=R;++et){var Y=F+4+et*B;(et==R||G[Y>>M]==0)&&(P=y(P,Y-P),H===void 0?H=P:(H+="\0",H+=P),P=Y+B)}return Yt(F),H},toWireType:function(F,R){typeof R!="string"&&O("Cannot pass non-string to C++ string type "+d);var G=b(R),H=bn(4+G+B);return D[H>>2]=G>>M,m(R,H+4,G+B),F!==null&&F.push(Yt,H),H},argPackAdvance:8,readValueFromPointer:oe,V:function(F){Yt(F)}})},k:function(u,B,d,y,m,b){Je[u]={name:rt(B),fa:xt(d,y),W:xt(m,b),ia:[]}},h:function(u,B,d,y,m,b,k,M,F,R){Je[u].ia.push({oa:rt(B),ta:d,ra:xt(y,m),sa:b,za:k,ya:xt(M,F),Aa:R})},C:function(u,B){B=rt(B),Pt(u,{va:!0,name:B,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(u,B,d,y,m){u=Ye[u],B=ie(B),d=er(d);var b=[];return D[y>>2]=Le(b),u(B,d,b,m)},t:function(u,B,d,y){u=Ye[u],B=ie(B),d=er(d),u(B,d,null,y)},g:vn,m:function(u,B){var d=ic(u,B),y=d[0];B=y.name+"_$"+d.slice(1).map(function(k){return k.name}).join("_")+"$";var m=ir[B];if(m!==void 0)return m;var b=Array(u-1);return m=ec((k,M,F,R)=>{for(var G=0,H=0;H<u-1;++H)b[H]=d[H+1].readValueFromPointer(R+G),G+=d[H+1].argPackAdvance;for(k=k[M].apply(k,b),H=0;H<u-1;++H)d[H+1].ma&&d[H+1].ma(b[H]);if(!y.va)return y.toWireType(F,k)}),ir[B]=m},D:function(u){4<u&&(bt[u].ga+=1)},r:function(u){var B=ie(u);Qn(B),vn(u)},c:function(){V("")},x:function(u,B,d){f.copyWithin(u,B,B+d)},w:function(u){var B=f.length;if(u>>>=0,2147483648<u)return!1;for(var d=1;4>=d;d*=2){var y=B*(1+.2/d);y=Math.min(y,u+100663296);var m=Math;y=Math.max(u,y),m=m.min.call(m,2147483648,y+(65536-y%65536)%65536);t:{try{I.grow(m-c.byteLength+65535>>>16),_();var b=1;break t}catch{}b=void 0}if(b)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(u,B,d,y){for(var m=0,b=0;b<d;b++){var k=D[B>>2],M=D[B+4>>2];B+=8;for(var F=0;F<M;F++){var R=f[k+F],G=nc[u];R===0||R===10?((u===1?g:r)(h(G,0)),G.length=0):G.push(R)}m+=M}return D[y>>2]=m,0}};(function(){function u(m){A.asm=m.exports,I=A.asm.E,_(),N=A.asm.J,U.unshift(A.asm.F),ct--,A.monitorRunDependencies&&A.monitorRunDependencies(ct),ct==0&&gt&&(m=gt,gt=null,m())}function B(m){u(m.instance)}function d(m){return Ne().then(function(b){return WebAssembly.instantiate(b,y)}).then(function(b){return b}).then(m,function(b){r("failed to asynchronously prepare wasm: "+b),V(b)})}var y={a:oc};if(ct++,A.monitorRunDependencies&&A.monitorRunDependencies(ct),A.instantiateWasm)try{return A.instantiateWasm(y,u)}catch(m){r("Module.instantiateWasm callback failed with error: "+m),n(m)}return function(){return l||typeof WebAssembly.instantiateStreaming!="function"||ut(Bt)||typeof fetch!="function"?d(B):fetch(Bt,{credentials:"same-origin"}).then(function(m){return WebAssembly.instantiateStreaming(m,y).then(B,function(b){return r("wasm streaming compile failed: "+b),r("falling back to ArrayBuffer instantiation"),d(B)})})}().catch(n),{}})(),A.___wasm_call_ctors=function(){return(A.___wasm_call_ctors=A.asm.F).apply(null,arguments)};var sr=A.___getTypeName=function(){return(sr=A.___getTypeName=A.asm.G).apply(null,arguments)};A.__embind_initialize_bindings=function(){return(A.__embind_initialize_bindings=A.asm.H).apply(null,arguments)};var bn=A._malloc=function(){return(bn=A._malloc=A.asm.I).apply(null,arguments)},Yt=A._free=function(){return(Yt=A._free=A.asm.K).apply(null,arguments)};A.dynCall_jiji=function(){return(A.dynCall_jiji=A.asm.L).apply(null,arguments)};var je;gt=function u(){je||or(),je||(gt=u)};function or(){function u(){if(!je&&(je=!0,A.calledRun=!0,!o)){if(RA(U),i(A),A.onRuntimeInitialized&&A.onRuntimeInitialized(),A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;){var B=A.postRun.shift();z.unshift(B)}RA(z)}}if(!(0<ct)){if(A.preRun)for(typeof A.preRun=="function"&&(A.preRun=[A.preRun]);A.preRun.length;)st();RA(J),0<ct||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1),u()},1)):u())}}if(A.preInit)for(typeof A.preInit=="function"&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();return or(),t.ready}})();let tt=function(e){return e[e.Auto=0]="Auto",e[e.FlexStart=1]="FlexStart",e[e.Center=2]="Center",e[e.FlexEnd=3]="FlexEnd",e[e.Stretch=4]="Stretch",e[e.Baseline=5]="Baseline",e[e.SpaceBetween=6]="SpaceBetween",e[e.SpaceAround=7]="SpaceAround",e[e.SpaceEvenly=8]="SpaceEvenly",e}({}),Me=function(e){return e[e.BorderBox=0]="BorderBox",e[e.ContentBox=1]="ContentBox",e}({}),mo=function(e){return e[e.Width=0]="Width",e[e.Height=1]="Height",e}({}),oA=function(e){return e[e.Inherit=0]="Inherit",e[e.LTR=1]="LTR",e[e.RTL=2]="RTL",e}({}),yA=function(e){return e[e.Flex=0]="Flex",e[e.None=1]="None",e[e.Contents=2]="Contents",e}({}),L=function(e){return e[e.Left=0]="Left",e[e.Top=1]="Top",e[e.Right=2]="Right",e[e.Bottom=3]="Bottom",e[e.Start=4]="Start",e[e.End=5]="End",e[e.Horizontal=6]="Horizontal",e[e.Vertical=7]="Vertical",e[e.All=8]="All",e}({}),wA=function(e){return e[e.None=0]="None",e[e.StretchFlexBasis=1]="StretchFlexBasis",e[e.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",e[e.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",e[e.All=2147483647]="All",e[e.Classic=2147483646]="Classic",e}({}),qh=function(e){return e[e.WebFlexBasis=0]="WebFlexBasis",e}({}),Nt=function(e){return e[e.Column=0]="Column",e[e.ColumnReverse=1]="ColumnReverse",e[e.Row=2]="Row",e[e.RowReverse=3]="RowReverse",e}({}),mA=function(e){return e[e.Column=0]="Column",e[e.Row=1]="Row",e[e.All=2]="All",e}({}),wt=function(e){return e[e.FlexStart=0]="FlexStart",e[e.Center=1]="Center",e[e.FlexEnd=2]="FlexEnd",e[e.SpaceBetween=3]="SpaceBetween",e[e.SpaceAround=4]="SpaceAround",e[e.SpaceEvenly=5]="SpaceEvenly",e}({}),DA=function(e){return e[e.Error=0]="Error",e[e.Warn=1]="Warn",e[e.Info=2]="Info",e[e.Debug=3]="Debug",e[e.Verbose=4]="Verbose",e[e.Fatal=5]="Fatal",e}({}),gn=function(e){return e[e.Undefined=0]="Undefined",e[e.Exactly=1]="Exactly",e[e.AtMost=2]="AtMost",e}({}),Do=function(e){return e[e.Default=0]="Default",e[e.Text=1]="Text",e}({}),vA=function(e){return e[e.Visible=0]="Visible",e[e.Hidden=1]="Hidden",e[e.Scroll=2]="Scroll",e}({}),SA=function(e){return e[e.Static=0]="Static",e[e.Relative=1]="Relative",e[e.Absolute=2]="Absolute",e}({}),Ht=function(e){return e[e.Undefined=0]="Undefined",e[e.Point=1]="Point",e[e.Percent=2]="Percent",e[e.Auto=3]="Auto",e}({}),bA=function(e){return e[e.NoWrap=0]="NoWrap",e[e.Wrap=1]="Wrap",e[e.WrapReverse=2]="WrapReverse",e}({});const Xh={ALIGN_AUTO:tt.Auto,ALIGN_FLEX_START:tt.FlexStart,ALIGN_CENTER:tt.Center,ALIGN_FLEX_END:tt.FlexEnd,ALIGN_STRETCH:tt.Stretch,ALIGN_BASELINE:tt.Baseline,ALIGN_SPACE_BETWEEN:tt.SpaceBetween,ALIGN_SPACE_AROUND:tt.SpaceAround,ALIGN_SPACE_EVENLY:tt.SpaceEvenly,BOX_SIZING_BORDER_BOX:Me.BorderBox,BOX_SIZING_CONTENT_BOX:Me.ContentBox,DIMENSION_WIDTH:mo.Width,DIMENSION_HEIGHT:mo.Height,DIRECTION_INHERIT:oA.Inherit,DIRECTION_LTR:oA.LTR,DIRECTION_RTL:oA.RTL,DISPLAY_FLEX:yA.Flex,DISPLAY_NONE:yA.None,DISPLAY_CONTENTS:yA.Contents,EDGE_LEFT:L.Left,EDGE_TOP:L.Top,EDGE_RIGHT:L.Right,EDGE_BOTTOM:L.Bottom,EDGE_START:L.Start,EDGE_END:L.End,EDGE_HORIZONTAL:L.Horizontal,EDGE_VERTICAL:L.Vertical,EDGE_ALL:L.All,ERRATA_NONE:wA.None,ERRATA_STRETCH_FLEX_BASIS:wA.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:wA.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:wA.AbsolutePercentAgainstInnerSize,ERRATA_ALL:wA.All,ERRATA_CLASSIC:wA.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:qh.WebFlexBasis,FLEX_DIRECTION_COLUMN:Nt.Column,FLEX_DIRECTION_COLUMN_REVERSE:Nt.ColumnReverse,FLEX_DIRECTION_ROW:Nt.Row,FLEX_DIRECTION_ROW_REVERSE:Nt.RowReverse,GUTTER_COLUMN:mA.Column,GUTTER_ROW:mA.Row,GUTTER_ALL:mA.All,JUSTIFY_FLEX_START:wt.FlexStart,JUSTIFY_CENTER:wt.Center,JUSTIFY_FLEX_END:wt.FlexEnd,JUSTIFY_SPACE_BETWEEN:wt.SpaceBetween,JUSTIFY_SPACE_AROUND:wt.SpaceAround,JUSTIFY_SPACE_EVENLY:wt.SpaceEvenly,LOG_LEVEL_ERROR:DA.Error,LOG_LEVEL_WARN:DA.Warn,LOG_LEVEL_INFO:DA.Info,LOG_LEVEL_DEBUG:DA.Debug,LOG_LEVEL_VERBOSE:DA.Verbose,LOG_LEVEL_FATAL:DA.Fatal,MEASURE_MODE_UNDEFINED:gn.Undefined,MEASURE_MODE_EXACTLY:gn.Exactly,MEASURE_MODE_AT_MOST:gn.AtMost,NODE_TYPE_DEFAULT:Do.Default,NODE_TYPE_TEXT:Do.Text,OVERFLOW_VISIBLE:vA.Visible,OVERFLOW_HIDDEN:vA.Hidden,OVERFLOW_SCROLL:vA.Scroll,POSITION_TYPE_STATIC:SA.Static,POSITION_TYPE_RELATIVE:SA.Relative,POSITION_TYPE_ABSOLUTE:SA.Absolute,UNIT_UNDEFINED:Ht.Undefined,UNIT_POINT:Ht.Point,UNIT_PERCENT:Ht.Percent,UNIT_AUTO:Ht.Auto,WRAP_NO_WRAP:bA.NoWrap,WRAP_WRAP:bA.Wrap,WRAP_WRAP_REVERSE:bA.WrapReverse};function Zh(e){function t(n,s,a){const g=n[s];n[s]=function(){for(var r=arguments.length,l=new Array(r),I=0;I<r;I++)l[I]=arguments[I];return a.call(this,g,...l)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Ht.Point]:e.Node.prototype[n],[Ht.Percent]:e.Node.prototype[`${n}Percent`],[Ht.Auto]:e.Node.prototype[`${n}Auto`]};t(e.Node.prototype,n,function(a){for(var g=arguments.length,r=new Array(g>1?g-1:0),l=1;l<g;l++)r[l-1]=arguments[l];const I=r.pop();let o,h;if(I==="auto")o=Ht.Auto,h=void 0;else if(typeof I=="object")o=I.unit,h=I.valueOf();else if(o=typeof I=="string"&&I.endsWith("%")?Ht.Percent:Ht.Point,h=parseFloat(I),I!==void 0&&!Number.isNaN(I)&&Number.isNaN(h))throw new Error(`Invalid value ${I} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${I}'`);return h!==void 0?s[o].call(this,...r,h):s[o].call(this,...r)})}function A(n){return e.MeasureCallback.implement({measure:function(){const{width:s,height:a}=n(...arguments);return{width:s??NaN,height:a??NaN}}})}t(e.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,A(s)):this.unsetMeasureFunc()});function i(n){return e.DirtiedCallback.implement({dirtied:n})}return t(e.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),t(e.Config.prototype,"free",function(){e.Config.destroy(this)}),t(e.Node,"create",(n,s)=>s?e.Node.createWithConfig(s):e.Node.createDefault()),t(e.Node.prototype,"free",function(){e.Node.destroy(this)}),t(e.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),t(e.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:oA.LTR;return n.call(this,s,a,g)}),{Config:e.Config,Node:e.Node,...Xh}}async function zh(){return Zh(await Vh())}let vo;function $h(){return vo}function tl(e){vo=e}function Re(e,t){return e?typeof e=="number"?e:typeof e=="string"&&e.endsWith("%")?(t??(t=1),t*(parseFloat(e)/100)):Number.isNaN(parseFloat(e))?0:parseFloat(e):0}function rA(e){return typeof e=="number"?"number":e.endsWith("%")?"percentage":Number.isNaN(parseInt(e,10))?"keyword":"number"}function _e(e,t,A){return(t[e]-A[e])/2}function So(e,t,A,i,n){const s=t==="percentage"?i[A]-n[A]:1;return Re(e)*s}function bo(e,t,A){const[i,n]=e,s=rA(i),a=rA(n),g={x:void 0,y:void 0};switch(i){case"top":g.y=0;break;case"bottom":g.y=t.height-A.height;break;case"center":n==="left"||n==="right"?g.y=_e("height",t,A):g.x=_e("width",t,A);break;case"left":g.x=0;break;case"right":g.x=t.width-A.width;break;default:{const r=n==="top"||n==="bottom"||a!=="keyword"?"width":"height",l=r==="width"?"x":"y";g[l]=So(i,s,r,t,A)}}switch(n){case"top":g.y=0;break;case"bottom":g.y=t.height-A.height;break;case"center":g.y===void 0?g.y=_e("height",t,A):g.x=_e("width",t,A);break;case"left":g.x=0;break;case"right":g.x=t.width-A.width;break;default:{const r=g.y===void 0?"y":"x",l=r==="y"?"height":"width";g[r]=So(n,a,l,t,A)}}return g}function Fe(e,t,A,i){const n=e==="right"||e==="bottom",s=A==="percentage"?t*i:t;return n?-s:s}function Al(e,t,A){const[i,n,s,a]=e,g=rA(i),r=rA(n),l=rA(s),I=rA(a);if(r==="keyword"||I==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(g!=="keyword"||l!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=bo([i,s],t,A),h={...o},c=Re(n),E=Re(a);return i==="left"||i==="right"?h.x=o.x+Fe(i,c,r,A.width):(i==="top"||i==="bottom")&&(h.y=o.y+Fe(i,c,r,A.height)),s==="left"||s==="right"?h.x=o.x+Fe(s,E,I,A.width):(s==="top"||s==="bottom")&&(h.y=o.y+Fe(s,E,I,A.height)),h}function el(e,t,A){const i=e[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(t.width-A.width)/2;break;case"bottom":n.y=t.height-A.height,n.x=(t.width-A.width)/2;break;case"left":n.x=0,n.y=(t.height-A.height)/2;break;case"right":n.x=t.width-A.width,n.y=(t.height-A.height)/2;break;case"center":n.x=(t.width-A.width)/2,n.y=(t.height-A.height)/2;break;default:{const a=rA(i)==="percentage"?t.width-A.width:1;n.x=Re(i)*a,n.y=(t.height-A.height)/2}}return n}function hn(e,t,A){if(!e)return{x:0,y:0};const i=typeof e=="string"?e.split(" "):[e];switch(i.length){case 1:return el(i,t,A);case 2:return bo(i,t,A);case 4:return Al(i,t,A);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const il=new v.Bounds,ln={width:0,height:0};function xo(e){const t=e.target.getLocalBounds(il),A=e.target.scale;return ln.width=Math.abs(t.width*A.x),ln.height=Math.abs(t.height*A.y),ln}function ko(e,t,A=.49){return Math.abs(e-t)<A}const Ae=new Map;function nl(e,t=100,A){if(!Ae.has(e)){let i=null;const n=(...s)=>{if(Ae.get(e).args=s,i)return;const a=()=>{i=null;const g=Ae.get(e).args;e(...g)};t===0?a():i=setTimeout(a,t)};Ae.set(e,{throttledFunction:n,args:null})}return Ae.get(e).throttledFunction}var sl=Object.defineProperty,ol=(e,t,A)=>t in e?sl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A,aA=(e,t,A)=>ol(e,typeof t!="symbol"?t+"":t,A);class Mo{constructor(){aA(this,"autoUpdate",!0),aA(this,"_debugEnabled",!1),aA(this,"_debugRenderer",null),aA(this,"_throttledUpdateSize"),aA(this,"_throttle",100),aA(this,"_modificationCount",50)}async init(t){tl(await zh());const{layout:A}=t??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:a}=A??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=nl(g=>this._updateSize(g),this._throttle),this._modificationCount=a??this._modificationCount}async enableDebug(t=!this._debugEnabled){if(this._debugEnabled=t,!this._debugRenderer){const A=await Promise.resolve().then(()=>Gl);this._debugRenderer=new A.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(t){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),t.addChild(this._debugRenderer.holder)),this._throttledUpdateSize(t),this.updateLayout(t)}prerender({container:t}){this.autoUpdate&&this.update(t)}_updateSize(t){const A=t._layout;if(A){const i=A.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=xo(A);if(i.width==="intrinsic"){const s=A.yoga.getWidth().value;ko(s,n.width)||(A.yoga.setWidth(n.width),A.invalidateRoot())}if(i.height==="intrinsic"){const s=A.yoga.getHeight().value;ko(s,n.height)||(A.yoga.setHeight(n.height),A.invalidateRoot())}}if(!t.visible){A._onChildRemoved();return}}for(let i=0;i<t.children.length;i++)this._updateSize(t.children[i])}updateLayout(t){var A,i,n,s;const a=t._layout;if(t.visible){if(a){const g=a.yoga,r=a.style,l=(A=t.parent)==null?void 0:A.isOverflowContainer;if(!((i=t.parent)==null?void 0:i._layout)&&!l&&a._isDirty&&(a._isDirty=!1,g.calculateLayout(r.width,r.height,g.getDirection()??oA.LTR)),g.hasNewLayout()||a._forceUpdate){g.markLayoutSeen(),a._forceUpdate=!1,a._computedLayout=g.getComputedLayout();const o=hn(r.transformOrigin,a._computedLayout,{width:0,height:0});a._computedPixiLayout={...t.computeLayoutData(a._computedLayout),originX:o.x,originY:o.y},t.emit("layout",a),(n=t.onLayout)==null||n.call(t,a),t._onUpdate()}this._debugEnabled&&(a._styles.custom.debug||a._modificationCount>this._modificationCount&&a._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(a))}for(let g=0;g<t.children.length;g++)this.updateLayout(t.children[g])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}aA(Mo,"extension",{type:[v.ExtensionType.WebGLSystem,v.ExtensionType.WebGPUSystem],name:"layout"});const Ro={"flex-start":tt.FlexStart,"flex-end":tt.FlexEnd,center:tt.Center,stretch:tt.Stretch,"space-between":tt.SpaceBetween,"space-around":tt.SpaceAround,"space-evenly":tt.SpaceEvenly},_o={"flex-start":tt.FlexStart,"flex-end":tt.FlexEnd,center:tt.Center,stretch:tt.Stretch,baseline:tt.Baseline},Fo={"border-box":Me.BorderBox,"content-box":Me.ContentBox},Go={ltr:oA.LTR,rtl:oA.RTL},No={none:yA.None,flex:yA.Flex,contents:yA.Contents},Ho={row:Nt.Row,column:Nt.Column,"row-reverse":Nt.RowReverse,"column-reverse":Nt.ColumnReverse},Lo={wrap:bA.Wrap,nowrap:bA.NoWrap,"wrap-reverse":bA.WrapReverse},Uo={"flex-start":wt.FlexStart,"flex-end":wt.FlexEnd,center:wt.Center,"space-between":wt.SpaceBetween,"space-around":wt.SpaceAround,"space-evenly":wt.SpaceEvenly},Oo={visible:vA.Visible,hidden:vA.Hidden,scroll:vA.Scroll},To={absolute:SA.Absolute,relative:SA.Relative,static:SA.Static},rl={alignContent:(e,t)=>e.setAlignContent(al(t)),alignItems:(e,t)=>e.setAlignItems(Jo(t)),alignSelf:(e,t)=>e.setAlignSelf(Jo(t)),aspectRatio:(e,t)=>e.setAspectRatio(t),borderBottomWidth:(e,t)=>e.setBorder(L.Bottom,t),borderEndWidth:(e,t)=>e.setBorder(L.End,t),borderLeftWidth:(e,t)=>e.setBorder(L.Left,t),borderRightWidth:(e,t)=>e.setBorder(L.Right,t),borderStartWidth:(e,t)=>e.setBorder(L.Start,t),borderTopWidth:(e,t)=>e.setBorder(L.Top,t),borderWidth:(e,t)=>e.setBorder(L.All,t),borderInlineWidth:(e,t)=>e.setBorder(L.Horizontal,t),borderBlockWidth:(e,t)=>e.setBorder(L.Vertical,t),bottom:(e,t)=>e.setPosition(L.Bottom,t),boxSizing:(e,t)=>e.setBoxSizing(gl(t)),direction:(e,t)=>e.setDirection(hl(t)),display:(e,t)=>e.setDisplay(ll(t)),end:(e,t)=>e.setPosition(L.End,t),flex:(e,t)=>e.setFlex(t),flexBasis:(e,t)=>e.setFlexBasis(t),flexDirection:(e,t)=>e.setFlexDirection(cl(t)),rowGap:(e,t)=>e.setGap(mA.Row,t),gap:(e,t)=>e.setGap(mA.All,t),columnGap:(e,t)=>e.setGap(mA.Column,t),flexGrow:(e,t)=>e.setFlexGrow(t),flexShrink:(e,t)=>e.setFlexShrink(t),flexWrap:(e,t)=>e.setFlexWrap(Il(t)),height:(e,t)=>e.setHeight(t),justifyContent:(e,t)=>e.setJustifyContent(ul(t)),left:(e,t)=>e.setPosition(L.Left,t),margin:(e,t)=>e.setMargin(L.All,t),marginBottom:(e,t)=>e.setMargin(L.Bottom,t),marginEnd:(e,t)=>e.setMargin(L.End,t),marginLeft:(e,t)=>e.setMargin(L.Left,t),marginRight:(e,t)=>e.setMargin(L.Right,t),marginStart:(e,t)=>e.setMargin(L.Start,t),marginTop:(e,t)=>e.setMargin(L.Top,t),marginInline:(e,t)=>e.setMargin(L.Horizontal,t),marginBlock:(e,t)=>e.setMargin(L.Vertical,t),maxHeight:(e,t)=>e.setMaxHeight(t),maxWidth:(e,t)=>e.setMaxWidth(t),minHeight:(e,t)=>e.setMinHeight(t),minWidth:(e,t)=>e.setMinWidth(t),overflow:(e,t)=>e.setOverflow(Bl(t)),padding:(e,t)=>e.setPadding(L.All,t),paddingBottom:(e,t)=>e.setPadding(L.Bottom,t),paddingEnd:(e,t)=>e.setPadding(L.End,t),paddingLeft:(e,t)=>e.setPadding(L.Left,t),paddingRight:(e,t)=>e.setPadding(L.Right,t),paddingStart:(e,t)=>e.setPadding(L.Start,t),paddingTop:(e,t)=>e.setPadding(L.Top,t),paddingInline:(e,t)=>e.setPadding(L.Horizontal,t),paddingBlock:(e,t)=>e.setPadding(L.Vertical,t),position:(e,t)=>e.setPositionType(El(t)),right:(e,t)=>e.setPosition(L.Right,t),start:(e,t)=>e.setPosition(L.Start,t),top:(e,t)=>e.setPosition(L.Top,t),insetInline:(e,t)=>e.setPosition(L.Horizontal,t),insetBlock:(e,t)=>e.setPosition(L.Vertical,t),inset:(e,t)=>e.setPosition(L.All,t),width:(e,t)=>e.setWidth(t)};function al(e){if(e in Ro)return Ro[e];throw new Error(`"${e}" is not a valid value for alignContent`)}function Jo(e){if(e in _o)return _o[e];throw new Error(`"${e}" is not a valid value for alignItems`)}function gl(e){if(e in Fo)return Fo[e];throw new Error(`"${e}" is not a valid value for boxSizing`)}function hl(e){if(e in Go)return Go[e];throw new Error(`"${e}" is not a valid value for direction`)}function ll(e){if(e in No)return No[e];throw new Error(`"${e}" is not a valid value for display`)}function cl(e){if(e in Ho)return Ho[e];throw new Error(`"${e}" is not a valid value for flexDirection`)}function Il(e){if(e in Lo)return Lo[e];throw new Error(`"${e}" is not a valid value for flexWrap`)}function ul(e){if(e in Uo)return Uo[e];throw new Error(`"${e}" is not a valid value for justifyContent`)}function Bl(e){if(e in Oo)return Oo[e];throw new Error(`"${e}" is not a valid value for overflow`)}function El(e){if(e in To)return To[e];throw new Error(`"${e}" is not a valid value for position`)}function fl(e,t={}){for(const[A,i]of Object.entries(t))try{const n=rl[A];n&&n(e,i)}catch{}if(t.width!==void 0){const A=t.left!==void 0&&t.right!==void 0?"auto":t.width;e.setWidth(A)}if(t.height!==void 0){const A=t.top!==void 0&&t.bottom!==void 0?"auto":t.height;e.setHeight(A)}}function Cl(e,t){let i={...e._styles.custom,...t};i={...{...xA.defaultStyle.shared,...e.target instanceof v.ViewContainer||i.isLeaf||xA.defaultStyle.shared.isLeaf?xA.defaultStyle.leaf:xA.defaultStyle.container},...i};const s={...i},a=i.width==="intrinsic",g=i.height==="intrinsic";if(a||g){const{width:r,height:l}=xo(e);a&&(s.width=r),g&&(s.height=l)}return{custom:i,yoga:s}}function Ql(e,t){var A;let i=t.layout,n=-1;if(!i&&t.isOverflowContainer&&(i=(A=t.parent)==null?void 0:A.layout,n=t.children.indexOf(e.target),t=t.parent),i){const s=e.yoga.getParent();if(s&&s.removeChild(e.yoga),t.children.indexOf(e.target)===t.children.length-1&&n===-1){i.yoga.insertChild(e.yoga,i.yoga.getChildCount());return}for(let a=0;a<t.children.length;a++){const g=t.children[a];if(g.layout&&g.visible&&n++,g===e.target)break}i.yoga.insertChild(e.yoga,n)}}function dl(e){const t=e.yoga.getParent();t&&t.removeChild(e.yoga)}var pl=Object.defineProperty,yl=(e,t,A)=>t in e?pl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A,St=(e,t,A)=>yl(e,typeof t!="symbol"?t+"":t,A);class xA{constructor({target:t}){St(this,"yoga"),St(this,"target"),St(this,"_isDirty",!1),St(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),St(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),St(this,"_styles",{custom:{},yoga:{}}),St(this,"_modificationCount",0),St(this,"_forceUpdate",!1),St(this,"hasParent",!1),St(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=t,this.yoga=$h().Node.create(),t.on("added",this._onChildAdded,this),t.on("removed",this._onChildRemoved,this),t.on("destroyed",this.destroy,this)}get style(){return this._styles.custom}get computedLayout(){return this._computedLayout}get computedPixiLayout(){return this._computedPixiLayout}get realX(){return this.target.localTransform.tx}get realY(){return this.target.localTransform.ty}get realScaleX(){return this.target.localTransform.a}get realScaleY(){return this.target.localTransform.d}setStyle(t){const A=Cl(this,t),i=JSON.stringify(this._styles.custom)!==JSON.stringify(A.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(A.yoga),s=i||n,a=this._trackedStyleKeys.some(g=>A.custom[g]!==this._styles.custom[g]);this._styles=A,a&&(this._forceUpdate=!0),s&&(fl(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(){const t=this.getRoot();t._layout._isDirty=!0,t._onUpdate(),this._modificationCount++}forceUpdate(){this._forceUpdate=!0}getRoot(){var t,A;let i=this.target;for(;(t=i.parent)!=null&&t._layout||(A=i.parent)!=null&&A.isOverflowContainer;)i=i.parent,i.isOverflowContainer&&(i=i.parent);return i}_onChildAdded(t){this.hasParent||(this.hasParent=!0,this.invalidateRoot(),Ql(this,t))}_onChildRemoved(){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(),dl(this))}destroy(){this.invalidateRoot(),this.yoga.free(),this.target.off("added",this._onChildAdded,this),this.target.off("removed",this._onChildRemoved,this),this._styles=null,this._computedPixiLayout=null,this._computedLayout=null,this.target=null,this.hasParent=!1}}St(xA,"defaultStyle",{leaf:{width:"intrinsic",height:"intrinsic"},container:{width:"auto",height:"auto"},shared:{transformOrigin:"50%",objectPosition:"center",flexShrink:1,flexDirection:"row",alignContent:"stretch",flexWrap:"nowrap",overflow:"visible"}});function Po(e,t,A){let i=1,n=1;switch(e){case"fill":i=t.width/A.width,n=t.height/A.height;break;case"contain":{const s=Math.min(t.width/A.width,t.height/A.height);i=s,n=s;break}case"cover":{const s=Math.max(t.width/A.width,t.height/A.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,t.width/A.width,t.height/A.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function Ko(e,t,A,i){const n=e.getLocalBounds(),s=e.layout.style.objectFit||A;let{offsetScaleX:a,offsetScaleY:g}=Po(s,t,n);const r={width:n.width*a,height:n.height*g};let{x:l,y:I}=hn(e.layout.style.objectPosition,t,r);i?(l+=n.width*a*i._x,I+=n.height*g*i._y):(l-=n.minX*a,I-=n.minY*g);const o=e.layout.style.applySizeDirectly;return(o===!0||o==null&&(e instanceof v.TilingSprite||e instanceof v.NineSliceSprite))&&(e.width=n.width*a,e.height=n.height*g,a=1,g=1),{x:t.left,y:t.top,offsetX:l,offsetY:I,scaleX:a,scaleY:g}}const cn=Object.getOwnPropertyDescriptor(v.Container.prototype,"visible"),wl={_layout:null,get layout(){return this._layout??null},set layout(e){if(e=e===!0?{}:e,!e){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=v.Container.prototype.updateLocalTransform,Object.defineProperty(v.Container.prototype,"visible",cn));return}this._layout||(this._layout=new xA({target:this}),Object.defineProperty(v.Container.prototype,"visible",{...cn,set(t){cn.set.call(this,t),this.layout&&(t&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}}),this.parent&&this.visible&&this._layout._onChildAdded(this.parent)),this._layout.setStyle(e),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;const t=this._layout,{x:A,y:i,offsetX:n,offsetY:s,scaleX:a,scaleY:g,originX:r,originY:l}=t._computedPixiLayout,I=this.localTransform,{rotation:o,skew:h,scale:c,position:E}=this,f=o+h._y,Q=o-h._x,C=Math.cos(f)*c._x,p=Math.sin(f)*c._x,D=-Math.sin(Q)*c._y,w=Math.cos(Q)*c._y,S=E._x+A-r*C-l*D,_=E._y+i-r*p-l*w;I.a=C*a,I.b=p*a,I.c=D*g,I.d=w*g,I.tx=S+(n*C+s*D)+r,I.ty=_+(n*p+s*w)+l},computeLayoutData(e){const t=this._layout,{isLeaf:A}=t._styles.custom;return A?Ko(this,e,"fill"):{x:e.left,y:e.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};v.extensions.mixin(v.Container,wl);const Yo=new v.Point(0,0),ml={computeLayoutData(e){const t=this._style;Yo.copyFrom(this.scale),this.scale=1,t.wordWrap&&(t.wordWrapWidth=e.width);let A=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=Po(i,e,A);t.wordWrap&&(t.wordWrapWidth=e.width/Math.min(1,Math.max(n,s))),A=this.getLocalBounds();const a={width:A.width*n,height:A.height*s};let{x:g,y:r}=hn(this.layout.style.objectPosition,e,a);return g+=A.width*n*this.anchor._x,r+=A.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=A.width*n,this.height=A.height*s),this.scale.copyFrom(Yo),{x:e.left,y:e.top,offsetX:g,offsetY:r,scaleX:n,scaleY:s}}};v.extensions.mixin(v.AbstractText,ml);const In=Object.getOwnPropertyDescriptor(v.AbstractText.prototype,"text");Object.defineProperty(v.AbstractText.prototype,"text",{...In,set(e){var t;const A=In.get.call(this);In.set.call(this,e),A!==e&&((t=this.layout)==null||t.forceUpdate())}});const Dl={computeLayoutData(e){return Ko(this,e,"fill",this._anchor)}};v.extensions.mixin(v.ViewContainer,Dl);var Lt=(e=>(e.Margin="margin",e.Padding="padding",e.Border="border",e.Flex="flex",e.Content="content",e))(Lt||{});function un(e,t){const A=`getComputed${t.charAt(0).toUpperCase()+t.slice(1)}`;return{top:e.yoga[A](L.Top),right:e.yoga[A](L.Right),bottom:e.yoga[A](L.Bottom),left:e.yoga[A](L.Left)}}function vl(e,t){const{width:A,height:i}=e.computedLayout,n=un(e,"margin"),s=un(e,"border"),a=un(e,"padding"),g=t.get("margin");g.outer.x=-n.left,g.outer.y=-n.top,g.outer.width=A+n.left+n.right,g.outer.height=i+n.top+n.bottom,g.inner.x=0,g.inner.y=0,g.inner.width=A,g.inner.height=i;const r=t.get("border");r.outer.x=0,r.outer.y=0,r.outer.width=A,r.outer.height=i,r.inner.x=s.left,r.inner.y=s.top,r.inner.width=A-s.left-s.right,r.inner.height=i-s.top-s.bottom;const l=t.get("padding");l.outer.copyFrom(r.inner),l.inner.x=a.left+s.left,l.inner.y=a.top+s.top,l.inner.width=A-a.left-a.right-s.left-s.right,l.inner.height=i-a.top-a.bottom-s.top-s.bottom,Sl(e,t)}function Sl(e,t){var A;const i=t.get("flex"),n=t.get("padding");i.outer.copyFrom(n.inner);const s=new v.Bounds,a=e.yoga.getChildCount();for(let r=0;r<a;r++){const I=e.yoga.getChild(r).getComputedLayout();s.addRect(new v.Rectangle(I.left,I.top,I.width,I.height))}const g=e.yoga.getFlexDirection();g===Nt.Column||g===Nt.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(A=i.inner)==null||A.copyFrom(s.rectangle),t.get("content").outer.copyFrom(s.rectangle)}var bl=Object.defineProperty,xl=(e,t,A)=>t in e?bl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A,Wo=(e,t,A)=>xl(e,typeof t!="symbol"?t+"":t,A);function kl(e,t,A){const i=Math.round(e[0]+(t[0]-e[0])*A),n=Math.round(e[1]+(t[1]-e[1])*A),s=Math.round(e[2]+(t[2]-e[2])*A);return`rgb(${i},${n},${s})`}class Ml extends v.Container{constructor(){super(),Wo(this,"graphics"),Wo(this,"heatGraphics"),this.graphics=new Map,Object.values(Lt).forEach(t=>{const A=new v.Graphics;this.graphics.set(t,A),this.addChild(A)}),this.heatGraphics=new v.Graphics,this.addChild(this.heatGraphics)}init(t){const{target:A,alpha:i,heat:n}=t;t.heatOnly||Object.entries(t).forEach(([g,r])=>{if(g==="target"||g==="alpha"||g==="heat"||g==="heatOnly")return;r=r;const l=this.graphics.get(g);if(!(!l||!r.draw))if(r.inner)this.drawCutBox(l,r.outer,r.inner,r.color,i);else{const{x:I,y:o,width:h,height:c}=r.outer;l.rect(I,o,h,Math.max(c,1)),l.fill({color:r.color,alpha:i})}});const{invalidationCount:s,draw:a}=n;if(s>0&&a){const r=Math.min(s/20,1),l=t[Lt.Margin],h=kl([255,255,0],[255,0,0],r);this.heatGraphics.rect(l.outer.x,l.outer.y,l.outer.width,l.outer.height),this.heatGraphics.fill({color:h,alpha:Math.min(.3,r)}),this.heatGraphics.stroke({color:h,alpha:Math.max(.3,r),pixelLine:!0})}this.position.set(A.x,A.y)}reset(){this.graphics.forEach(t=>t.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(t,A,i,n,s){const{x:a,y:g,width:r,height:l}=A,{x:I,y:o,width:h,height:c}=i;t.rect(a,g,r,l),t.fill({color:n,alpha:s}),t.rect(I,o,h,c),t.cut()}}var Rl=Object.defineProperty,_l=(e,t,A)=>t in e?Rl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:A}):e[t]=A,Ge=(e,t,A)=>_l(e,typeof t!="symbol"?t+"":t,A);class Fl{constructor(){Ge(this,"holder",new v.Container),Ge(this,"regions",new Map),Ge(this,"colors",{[Lt.Margin]:"#B68655",[Lt.Padding]:"#BAC57F",[Lt.Border]:"#E7C583",[Lt.Content]:"#89B1BE",[Lt.Flex]:"#6E28D9"}),Ge(this,"alpha",.75),Object.values(Lt).forEach(t=>{this.regions.set(t,{outer:new v.Rectangle,inner:new v.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let t=this.holder.children.length-1;t>=0;t--){const A=this.holder.children[t];v.BigPool.return(A)}}render(t){vl(t,this.regions);const A=Object.values(Lt).reduce((g,r)=>{const l=this.regions.get(r);if(!l)return g;const I=`debugDraw${r.charAt(0).toUpperCase()}${r.slice(1)}`;return g[r]={...l,color:this.colors[r],draw:t._styles.custom[I]??!0},g},{}),{left:i,top:n}=t.computedLayout,s=t.target.getGlobalPosition(),a=v.BigPool.get(Ml,{...A,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:t._modificationCount,draw:t._styles.custom.debugHeat!==!1},heatOnly:!t._styles.custom.debug});this.holder.addChildAt(a,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const Gl=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:Fl},Symbol.toStringTag,{value:"Module"}));v.extensions.add(Mo);const Nl=async(e,t,A)=>{const{components:i,autoRegister:n,...s}=A??{};i?(n!==!1&&ki(),Object.entries(i).forEach(([l,I])=>{at(l,I)})):ki();const a=new v.Application;await a.init({resizeTo:e,autoStart:!1,antialias:!0,...s});const g=await lt(t);if(g.tag!="Canvas")throw new Error("Canvas is required");g.render(e,a);const{backgroundColor:r}=ft(g.props,{backgroundColor:"black"});return a.renderer.background.color=r(),{canvasElement:g,app:a}},Hl={linear:za,easeIn:wi,easeInOut:Os,easeOut:$a,circIn:Ts,circInOut:tg,circOut:Js,backIn:mi,backInOut:eg,backOut:Ag,anticipate:ig,bounceIn:rg,bounceInOut:ag,bounceOut:we};class Ll{constructor(t,A,i,n,s,a,g=0){this.x0=t,this.y0=A,this.x1=i,this.y1=n,this.x2=s,this.y2=a,this.focalPoint=g,this.gradient=null,this.texture=null,this.size=600,this.size=t;const r=this.size*.5;this.canvas=v.DOMAdapter.get().createCanvas(),this.canvas.width=this.size,this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx&&(this.gradient=this.ctx.createRadialGradient(r*(1-g),r,0,r,r,r-.5))}addColorStop(t,A){this.gradient&&this.gradient.addColorStop(t,A)}render({translate:t}={}){const{x0:A,y0:i,x1:n,y1:s,x2:a,y2:g,focalPoint:r}=this,l=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,l,l),this.texture=new v.Texture({source:new v.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const I=new v.Matrix,o=Math.sqrt((n-A)*(n-A)+(s-i)*(s-i)),h=Math.sqrt((a-A)*(a-A)+(g-i)*(g-i)),c=Math.atan2(s-i,n-A),E=o/l,f=h/l;I.rotate(-c),I.scale(E,f),t&&I.translate(t.x,t.y),this.transform=I}return{texture:this.texture,matrix:this.transform}}}return x.ArraySubject=TA,x.Button=Wh,x.ButtonState=wo,x.Canvas=Gg,x.Circle=ao,x.Container=ZA,x.ControlsBase=fe,x.ControlsDirective=Xs,x.DOMContainer=Yh,x.DOMElement=yo,x.DisplayObject=Dt,x.Drag=eo,x.Drop=Ao,x.EVENTS=oo,x.Easing=Hl,x.Ellipse=go,x.Flash=so,x.GamepadControls=cs,x.Graphics=Zt,x.Howl=kg,x.Howler=nA.Howler,x.Input=os,x.Joystick=jh,x.JoystickControls=Is,x.KeyboardControls=gs,x.Mesh=Tg,x.NineSliceSprite=Jh,x.ObjectSubject=JA,x.ParticlesEmitter=Ah,x.RadialGradient=Ll,x.Rect=ro,x.Scene=Pg,x.Scheduler=Zs,x.Shake=no,x.Sound=to,x.Sprite=an,x.Svg=Ug,x.Text=fo,x.TilingSprite=sh,x.Transition=io,x.Triangle=Lg,x.Utils=oa,x.Video=eh,x.Viewport=Oh,x.ViewportFollow=zs,x.animatedSequence=vg,x.animatedSignal=Si,x.bootstrapCanvas=Nl,x.computed=dt,x.cond=bg,x.createComponent=Et,x.effect=nt,x.h=lt,x.isAnimatedSignal=dA,x.isArraySubject=Ca,x.isComputed=QA,x.isElement=pt,x.isElementFrozen=_t,x.isObjectSubject=Qa,x.isObservable=Jr,x.isPrimitive=xi,x.isSignal=T,x.isTrigger=XA,x.linkedSignal=us,x.loop=Sg,x.mount=Gi,x.on=ve,x.registerAllComponents=ki,x.registerComponent=at,x.signal=W,x.tick=Jg,x.trigger=_g,x.untracked=li,x.useDefineProps=Ri,x.useProps=ft,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}),x}({},PIXI);
27
+ */class Oi{constructor(t){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(t)}init(t){if(!t||!t.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(t[0]))for(let e=0;e<t.length;++e){const i=t[e];let n=i[0];for(let s=1;s<i.length;++s){const a=i[s];this.segments.push({p1:n,p2:a,l:0}),n=a}}else{let e=t[0];for(let i=1;i<t.length;++i){const n=t[i];this.segments.push({p1:e,p2:n,l:0}),e=n}}for(let e=0;e<this.segments.length;++e){const{p1:i,p2:n}=this.segments[e],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[e].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(t){const e=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=e;else for(let g=0;g<this.countingLengths.length;++g)if(e<this.countingLengths[g]){i=this.segments[g],n=g===0?e:e-this.countingLengths[g-1];break}n/=i.l||1;const{p1:s,p2:a}=i;t.x=s.x+n*(a.x-s.x),t.y=s.y+n*(a.y-s.y)}}Oi.type="polygonalChain",Oi.editorConfig=null;class Ji{constructor(t){this.x=t.x,this.y=t.y,this.w=t.w,this.h=t.h}getRandPos(t){t.x=Math.random()*this.w+this.x,t.y=Math.random()*this.h+this.y}}Ji.type="rect",Ji.editorConfig=null;class Nt{constructor(t,e,i){this.value=t,this.time=e,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:Qo(i):this.ease=null}static createList(t){if("list"in t){const i=t.list;let n;const{value:s,time:a}=i[0],g=n=new Nt(typeof s=="string"?kA(s):s,a,t.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let r=1;r<i.length;++r){const{value:c,time:u}=i[r];n.next=new Nt(typeof c=="string"?kA(c):c,u),n=n.next}return g.isStepped=!!t.isStepped,g}const e=new Nt(typeof t.start=="string"?kA(t.start):t.start,0);return t.end!==t.start&&(e.next=new Nt(typeof t.end=="string"?kA(t.end):t.end,1)),e}}let AA=v.Texture.from;const Ht=Math.PI/180;function Pt(A,t){if(!A)return;const e=Math.sin(A),i=Math.cos(A),n=t.x*i-t.y*e,s=t.x*e+t.y*i;t.x=n,t.y=s}function xA(A,t,e){return A<<16|t<<8|e}function Eo(A){return Math.sqrt(A.x*A.x+A.y*A.y)}function zg(A){const t=1/Eo(A);A.x*=t,A.y*=t}function Co(A,t){A.x*=t,A.y*=t}function kA(A,t){t||(t={}),A.charAt(0)==="#"?A=A.substr(1):A.indexOf("0x")===0&&(A=A.substr(2));let e;return A.length===8&&(e=A.substr(0,2),A=A.substr(2)),t.r=parseInt(A.substr(0,2),16),t.g=parseInt(A.substr(2,2),16),t.b=parseInt(A.substr(4,2),16),e&&(t.a=parseInt(e,16)),t}function Qo(A){const t=A.length,e=1/t;return function(i){const n=t*i|0,s=(i-n*e)*t,a=A[n]||A[t-1];return a.s+s*(2*(1-s)*(a.cp-a.s)+s*(a.e-a.s))}}function $g(A){return A||"normal"}class MA{constructor(t){this.x=t.x||0,this.y=t.y||0,this.radius=t.radius,this.innerRadius=t.innerRadius||0,this.rotation=!!t.affectRotation}getRandPos(t){this.innerRadius!==this.radius?t.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:t.x=this.radius,t.y=0;const e=Math.random()*Math.PI*2;this.rotation&&(t.rotation+=e),Pt(e,t.position),t.position.x+=this.x,t.position.y+=this.y}}MA.type="torus",MA.editorConfig=null;var X;(function(A){A[A.Spawn=0]="Spawn",A[A.Normal=2]="Normal",A[A.Late=5]="Late"})(X||(X={}));class Pi{constructor(t){this.order=X.Late,this.minStart=t.minStart,this.maxStart=t.maxStart,this.accel=t.accel,this.rotate=!!t.rotate,this.maxSpeed=t.maxSpeed??0}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Pt(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*e,i.y+=this.accel.y*e,this.maxSpeed){const a=Eo(i);a>this.maxSpeed&&Co(i,this.maxSpeed/a)}t.x+=(n+i.x)/2*e,t.y+=(s+i.y)/2*e,this.rotate&&(t.rotation=Math.atan2(i.y,i.x))}}Pi.type="moveAcceleration",Pi.editorConfig=null;function tl(A){return this.ease&&(A=this.ease(A)),(this.first.next.value-this.first.value)*A+this.first.value}function el(A){this.ease&&(A=this.ease(A));const t=this.first.value,e=this.first.next.value,i=(e.r-t.r)*A+t.r,n=(e.g-t.g)*A+t.g,s=(e.b-t.b)*A+t.b;return xA(i,n,s)}function Al(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;return A=(A-t.time)/(e.time-t.time),(e.value-t.value)*A+t.value}function il(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;A=(A-t.time)/(e.time-t.time);const i=t.value,n=e.value,s=(n.r-i.r)*A+i.r,a=(n.g-i.g)*A+i.g,g=(n.b-i.b)*A+i.b;return xA(s,a,g)}function nl(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;return t.value}function sl(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;const e=t.value;return xA(e.r,e.g,e.b)}class iA{constructor(t=!1){this.first=null,this.isColor=!!t,this.interpolate=null,this.ease=null}reset(t){this.first=t,t.next&&t.next.time>=1?this.interpolate=this.isColor?el:tl:t.isStepped?this.interpolate=this.isColor?sl:nl:this.interpolate=this.isColor?il:Al,this.ease=this.first.ease}}class Ki{constructor(t){this.order=X.Normal,this.list=new iA(!1),this.list.reset(Nt.createList(t.alpha))}initParticles(t){let e=t;for(;e;)e.alpha=this.list.first.value,e=e.next}updateParticle(t){t.alpha=this.list.interpolate(t.agePercent)}}Ki.type="alpha",Ki.editorConfig=null;class Yi{constructor(t){this.order=X.Normal,this.value=t.alpha}initParticles(t){let e=t;for(;e;)e.alpha=this.value,e=e.next}}Yi.type="alphaStatic",Yi.editorConfig=null;function po(A){const t=[];for(let e=0;e<A.length;++e){let i=A[e];if(typeof i=="string")t.push(AA(i));else if(i instanceof v.Texture)t.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=AA(i.texture):i=i.texture;n>0;--n)t.push(i)}}return t}class Wi{constructor(t){this.order=X.Normal,this.anims=[];for(let e=0;e<t.anims.length;++e){const i=t.anims[e],n=po(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,a={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(a)}}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.anims.length),n=e.config.anim=this.anims[i];e.texture=n.textures[0],e.config.animElapsed=0,n.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=n.textures.length/e.maxLife):(e.config.animDuration=n.duration,e.config.animFramerate=n.framerate),e=e.next}}updateParticle(t,e){const i=t.config,n=i.anim;i.animElapsed+=e,i.animElapsed>=i.animDuration&&(i.anim.loop?i.animElapsed=i.animElapsed%i.animDuration:i.animElapsed=i.animDuration-1e-6);const s=i.animElapsed*i.animFramerate+1e-7|0;t.texture=n.textures[s]||n.textures[n.textures.length-1]||v.Texture.EMPTY}}Wi.type="animatedRandom",Wi.editorConfig=null;class ji{constructor(t){this.order=X.Normal;const e=t.anim,i=po(e.textures),n=e.framerate<0?-1:e.framerate>0?e.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!e.loop:!1}}initParticles(t){let e=t;const i=this.anim;for(;e;)e.texture=i.textures[0],e.config.animElapsed=0,i.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=i.textures.length/e.maxLife):(e.config.animDuration=i.duration,e.config.animFramerate=i.framerate),e=e.next}updateParticle(t,e){const i=this.anim,n=t.config;n.animElapsed+=e,n.animElapsed>=n.animDuration&&(i.loop?n.animElapsed=n.animElapsed%n.animDuration:n.animElapsed=n.animDuration-1e-6);const s=n.animElapsed*n.animFramerate+1e-7|0;t.texture=i.textures[s]||i.textures[i.textures.length-1]||v.Texture.EMPTY}}ji.type="animatedSingle",ji.editorConfig=null;class Vi{constructor(t){this.order=X.Normal,this.value=t.blendMode}initParticles(t){let e=t;for(;e;)e.blendMode=$g(this.value),e=e.next}}Vi.type="blendMode",Vi.editorConfig=null;class qi{constructor(t){this.order=X.Spawn,this.spacing=t.spacing*Ht,this.start=t.start*Ht,this.distance=t.distance}initParticles(t){let e=0,i=t;for(;i;){let n;this.spacing?n=this.start+this.spacing*e:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,Pt(n,i.position)),i=i.next,++e}}}qi.type="spawnBurst",qi.editorConfig=null;class Xi{constructor(t){this.order=X.Normal,this.list=new iA(!0),this.list.reset(Nt.createList(t.color))}initParticles(t){let e=t;const i=this.list.first.value,n=xA(i.r,i.g,i.b);for(;e;)e.tint=n,e=e.next}updateParticle(t){t.tint=this.list.interpolate(t.agePercent)}}Xi.type="color",Xi.editorConfig=null;class Zi{constructor(t){this.order=X.Normal;let e=t.color;e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2)),this.value=parseInt(e,16)}initParticles(t){let e=t;for(;e;)e.tint=this.value,e=e.next}}Zi.type="colorStatic",Zi.editorConfig=null;class zi{constructor(t){this.order=X.Normal,this.index=0,this.textures=t.textures.map(e=>typeof e=="string"?AA(e):e)}initParticles(t){let e=t;for(;e;)e.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),e=e.next}}zi.type="textureOrdered",zi.editorConfig=null;const me=new v.Point,yo=["E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","abs","acos","acosh","asin","asinh","atan","atanh","atan2","cbrt","ceil","cos","cosh","exp","expm1","floor","fround","hypot","log","log1p","log10","log2","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh"],ol=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(yo).join("|"),"g");function rl(A){const t=A.match(ol);for(let e=t.length-1;e>=0;--e)yo.indexOf(t[e])>=0&&(t[e]=`Math.${t[e]}`);return A=t.join(""),new Function("x",`return ${A};`)}class $i{constructor(t){if(this.order=X.Late,t.path)if(typeof t.path=="function")this.path=t.path;else try{this.path=rl(t.path)}catch{this.path=null}else this.path=e=>e;this.list=new iA(!1),this.list.reset(Nt.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){e.config.initRotation=e.rotation,e.config.initPosition?e.config.initPosition.copyFrom(e.position):e.config.initPosition=new v.Point(e.x,e.y),e.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult;t.config.movement+=i*e,me.x=t.config.movement,me.y=this.path(me.x),Pt(t.config.initRotation,me),t.position.x=t.config.initPosition.x+me.x,t.position.y=t.config.initPosition.y+me.y}}$i.type="movePath",$i.editorConfig=null;class tn{constructor(){this.order=X.Spawn}initParticles(t){}}tn.type="spawnPoint",tn.editorConfig=null;class en{constructor(t){this.order=X.Normal,this.textures=t.textures.map(e=>typeof e=="string"?AA(e):e)}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.textures.length);e.texture=this.textures[i],e=e.next}}}en.type="textureRandom",en.editorConfig=null;class An{constructor(t){this.order=X.Normal,this.minStart=t.minStart*Ht,this.maxStart=t.maxStart*Ht,this.minSpeed=t.minSpeed*Ht,this.maxSpeed=t.maxSpeed*Ht,this.accel=t.accel*Ht}initParticles(t){let e=t;for(;e;)this.minStart===this.maxStart?e.rotation+=this.maxStart:e.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,e.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,e=e.next}updateParticle(t,e){if(this.accel){const i=t.config.rotSpeed;t.config.rotSpeed+=this.accel*e,t.rotation+=(t.config.rotSpeed+i)/2*e}else t.rotation+=t.config.rotSpeed*e}}An.type="rotation",An.editorConfig=null;class nn{constructor(t){this.order=X.Normal,this.min=t.min*Ht,this.max=t.max*Ht}initParticles(t){let e=t;for(;e;)this.min===this.max?e.rotation+=this.max:e.rotation+=Math.random()*(this.max-this.min)+this.min,e=e.next}}nn.type="rotationStatic",nn.editorConfig=null;class sn{constructor(t){this.order=X.Late+1,this.rotation=(t.rotation||0)*Ht}initParticles(t){let e=t;for(;e;)e.rotation=this.rotation,e=e.next}}sn.type="noRotation",sn.editorConfig=null;class on{constructor(t){this.order=X.Normal,this.list=new iA(!1),this.list.reset(Nt.createList(t.scale)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.scaleMult=i,e.scale.x=e.scale.y=this.list.first.value*i,e=e.next}}updateParticle(t){t.scale.x=t.scale.y=this.list.interpolate(t.agePercent)*t.config.scaleMult}}on.type="scale",on.editorConfig=null;class rn{constructor(t){this.order=X.Normal,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.scale.x=e.scale.y=i,e=e.next}}}rn.type="scaleStatic",rn.editorConfig=null;class Mt{static registerShape(t,e){Mt.shapes[e||t.type]=t}constructor(t){this.order=X.Spawn;const e=Mt.shapes[t.type];if(!e)throw new Error(`No shape found with type '${t.type}'`);this.shape=new e(t.data)}initParticles(t){let e=t;for(;e;)this.shape.getRandPos(e),e=e.next}}Mt.type="spawnShape",Mt.editorConfig=null,Mt.shapes={},Mt.registerShape(Oi),Mt.registerShape(Ji),Mt.registerShape(MA),Mt.registerShape(MA,"circle");class an{constructor(t){this.order=X.Normal,this.texture=typeof t.texture=="string"?AA(t.texture):t.texture}initParticles(t){let e=t;for(;e;)e.texture=this.texture,e=e.next}}an.type="textureSingle",an.editorConfig=null;class gn{constructor(t){this.order=X.Late,this.list=new iA(!1),this.list.reset(Nt.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e.config.velocity?e.config.velocity.set(this.list.first.value*i,0):e.config.velocity=new v.Point(this.list.first.value*i,0),Pt(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult,n=t.config.velocity;zg(n),Co(n,i),t.x+=n.x*e,t.y+=n.y*e}}gn.type="moveSpeed",gn.editorConfig=null;class ln{constructor(t){this.order=X.Late,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Pt(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity;t.x+=i.x*e,t.y+=i.y*e}}ln.type="moveSpeedStatic",ln.editorConfig=null;class cn extends v.Sprite{constructor(t){super(),this.prevChild=this.nextChild=null,this.emitter=t,this.config={},this.anchor.x=this.anchor.y=.5,this.maxLife=0,this.age=0,this.agePercent=0,this.oneOverLife=0,this.next=null,this.prev=null,this.init=this.init,this.kill=this.kill}init(t){this.maxLife=t,this.age=this.agePercent=0,this.rotation=0,this.position.x=this.position.y=0,this.scale.x=this.scale.y=1,this.tint=16777215,this.alpha=1,this.oneOverLife=1/this.maxLife,this.visible=!0}kill(){this.emitter.recycle(this)}destroy(){this.parent&&this.parent.removeChild(this),this.emitter=this.next=this.prev=null,super.destroy()}}const hn=v.Ticker.shared,le=Symbol("Position particle per emitter position");class W{static registerBehavior(t){W.knownBehaviors[t.type]=t}constructor(t,e){this.initBehaviors=[],this.updateBehaviors=[],this.recycleBehaviors=[],this.minLifetime=0,this.maxLifetime=0,this.customEase=null,this._frequency=1,this.spawnChance=1,this.maxParticles=1e3,this.emitterLifetime=-1,this.spawnPos=new v.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new v.Point,this._prevEmitterPos=new v.Point,this._prevPosIsValid=!1,this._posChanged=!1,this._parent=null,this.addAtBack=!1,this.particleCount=0,this._emit=!1,this._spawnTimer=0,this._emitterLife=-1,this._activeParticlesFirst=null,this._activeParticlesLast=null,this._poolFirst=null,this._origConfig=null,this._autoUpdate=!1,this._destroyWhenComplete=!1,this._completeCallback=null,this.parent=t,e&&this.init(e),this.recycle=this.recycle,this.update=this.update,this.rotate=this.rotate,this.updateSpawnPos=this.updateSpawnPos,this.updateOwnerPos=this.updateOwnerPos}get frequency(){return this._frequency}set frequency(t){typeof t=="number"&&t>0?this._frequency=t:this._frequency=1}get parent(){return this._parent}set parent(t){this.cleanup(),this._parent=t}init(t){if(!t)return;this.cleanup(),this._origConfig=t,this.minLifetime=t.lifetime.min,this.maxLifetime=t.lifetime.max,t.ease?this.customEase=typeof t.ease=="function"?t.ease:Qo(t.ease):this.customEase=null,this.particlesPerWave=1,t.particlesPerWave&&t.particlesPerWave>1&&(this.particlesPerWave=t.particlesPerWave),this.frequency=t.frequency,this.spawnChance=typeof t.spawnChance=="number"&&t.spawnChance>0?t.spawnChance:1,this.emitterLifetime=t.emitterLifetime||-1,this.maxParticles=t.maxParticles>0?t.maxParticles:1e3,this.addAtBack=!!t.addAtBack,this.rotation=0,this.ownerPos.set(0),t.pos?this.spawnPos.copyFrom(t.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=t.emit===void 0?!0:!!t.emit,this.autoUpdate=!!t.autoUpdate;const e=t.behaviors.map(i=>{const n=W.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);e.push(le),e.sort((i,n)=>i===le?n.order===X.Spawn?1:-1:n===le?i.order===X.Spawn?-1:1:i.order-n.order),this.initBehaviors=e.slice(),this.updateBehaviors=e.filter(i=>i!==le&&i.updateParticle),this.recycleBehaviors=e.filter(i=>i!==le&&i.recycleParticle)}getBehavior(t){return W.knownBehaviors[t]&&this.initBehaviors.find(e=>e instanceof W.knownBehaviors[t])||null}fillPool(t){for(;t>0;--t){const e=new cn(this);e.next=this._poolFirst,this._poolFirst=e}}recycle(t,e=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(t,!e);t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t===this._activeParticlesLast&&(this._activeParticlesLast=t.prev),t===this._activeParticlesFirst&&(this._activeParticlesFirst=t.next),t.prev=null,t.next=this._poolFirst,this._poolFirst=t,t.parent&&t.parent.removeChild(t),--this.particleCount}rotate(t){if(this.rotation===t)return;const e=t-this.rotation;this.rotation=t,Pt(e,this.spawnPos),this._posChanged=!0}updateSpawnPos(t,e){this._posChanged=!0,this.spawnPos.x=t,this.spawnPos.y=e}updateOwnerPos(t,e){this._posChanged=!0,this.ownerPos.x=t,this.ownerPos.y=e}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(t){this._emit=!!t,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){this._autoUpdate&&!t?hn.remove(this.update,this):!this._autoUpdate&&t&&hn.add(this.update,this),this._autoUpdate=!!t}playOnceAndDestroy(t){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=t}playOnce(t){this.emit=!0,this._completeCallback=t}update(t){if(typeof t!="number"&&(t=t.deltaTime),this._autoUpdate&&(t=hn.elapsedMS*.001),!this._parent)return;for(let a=this._activeParticlesFirst,g;a;a=g)if(g=a.next,a.age+=t,a.age>a.maxLife||a.age<0)this.recycle(a);else{let r=a.age*a.oneOverLife;this.customEase&&(this.customEase.length===4?r=this.customEase(r,0,1,1):r=this.customEase(r)),a.agePercent=r;for(let c=0;c<this.updateBehaviors.length;++c)if(this.updateBehaviors[c].updateParticle(a,t)){this.recycle(a);break}}let e,i;this._prevPosIsValid&&(e=this._prevEmitterPos.x,i=this._prevEmitterPos.y);const n=this.ownerPos.x+this.spawnPos.x,s=this.ownerPos.y+this.spawnPos.y;if(this._emit)for(this._spawnTimer-=t<0?0:t;this._spawnTimer<=0;){if(this._emitterLife>=0&&(this._emitterLife-=this._frequency,this._emitterLife<=0)){this._spawnTimer=0,this._emitterLife=0,this.emit=!1;break}if(this.particleCount>=this.maxParticles){this._spawnTimer+=this._frequency;continue}let a,g;if(this._prevPosIsValid&&this._posChanged){const u=1+this._spawnTimer/t;a=(n-e)*u+e,g=(s-i)*u+i}else a=n,g=s;let r=null,c=null;for(let u=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),o=0;o<u;++o){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let l;if(this.minLifetime===this.maxLifetime?l=this.minLifetime:l=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=l)continue;let h;this._poolFirst?(h=this._poolFirst,this._poolFirst=this._poolFirst.next,h.next=null):h=new cn(this),h.init(l),this.addAtBack?this._parent.addChildAt(h,0):this._parent.addChild(h),r?(c.next=h,h.prev=c,c=h):c=r=h,++this.particleCount}if(r){this._activeParticlesLast?(this._activeParticlesLast.next=r,r.prev=this._activeParticlesLast,this._activeParticlesLast=c):(this._activeParticlesFirst=r,this._activeParticlesLast=c);for(let u=0;u<this.initBehaviors.length;++u){const o=this.initBehaviors[u];if(o===le)for(let l=r,h;l;l=h){h=l.next,this.rotation!==0&&(Pt(this.rotation,l.position),l.rotation+=this.rotation),l.position.x+=a,l.position.y+=g,l.age+=-this._spawnTimer;let I=l.age*l.oneOverLife;this.customEase&&(this.customEase.length===4?I=this.customEase(I,0,1,1):I=this.customEase(I)),l.agePercent=I}else o.initParticles(r)}for(let u=r,o;u;u=o){o=u.next;for(let l=0;l<this.updateBehaviors.length;++l)if(this.updateBehaviors[l].updateParticle(u,-this._spawnTimer)){this.recycle(u);break}}}this._spawnTimer+=this._frequency}if(this._posChanged&&(this._prevEmitterPos.x=n,this._prevEmitterPos.y=s,this._prevPosIsValid=!0,this._posChanged=!1),!this._emit&&!this._activeParticlesFirst){if(this._completeCallback){const a=this._completeCallback;this._completeCallback=null,a()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const t=this.ownerPos.x+this.spawnPos.x,e=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),a=0;a<s;++a){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let g;this._poolFirst?(g=this._poolFirst,this._poolFirst=this._poolFirst.next,g.next=null):g=new cn(this);let r;this.minLifetime===this.maxLifetime?r=this.minLifetime:r=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,g.init(r),this.addAtBack?this._parent.addChildAt(g,0):this._parent.addChild(g),i?(n.next=g,g.prev=n,n=g):n=i=g,++this.particleCount}if(i){this._activeParticlesLast?(this._activeParticlesLast.next=i,i.prev=this._activeParticlesLast,this._activeParticlesLast=n):(this._activeParticlesFirst=i,this._activeParticlesLast=n);for(let s=0;s<this.initBehaviors.length;++s){const a=this.initBehaviors[s];if(a===le)for(let g=i,r;g;g=r)r=g.next,this.rotation!==0&&(Pt(this.rotation,g.position),g.rotation+=this.rotation),g.position.x+=t,g.position.y+=e;else a.initParticles(i)}}}cleanup(){let t,e;for(t=this._activeParticlesFirst;t;t=e)e=t.next,this.recycle(t,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let t;for(let e=this._poolFirst;e;e=t)t=e.next,e.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}W.knownBehaviors={},W.registerBehavior(Pi),W.registerBehavior(Ki),W.registerBehavior(Yi),W.registerBehavior(Wi),W.registerBehavior(ji),W.registerBehavior(Vi),W.registerBehavior(qi),W.registerBehavior(Xi),W.registerBehavior(Zi),W.registerBehavior(zi),W.registerBehavior($i),W.registerBehavior(tn),W.registerBehavior(en),W.registerBehavior(An),W.registerBehavior(nn),W.registerBehavior(sn),W.registerBehavior(on),W.registerBehavior(rn),W.registerBehavior(Mt),W.registerBehavior(an),W.registerBehavior(gn),W.registerBehavior(ln);class al extends Hi{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(t){await super.onMount(t);const{props:e}=t,i=e.context.tick;this.emitter=new W(this,e.config),this.subscriptionTick=i.observable.subscribe(n=>{if(!this.emitter)return;const s=Date.now();this.emitter.update((s-this.elapsed)*.001),this.elapsed=s})}onUpdate(t){}async onDestroy(t,e){const i=async()=>{var n;(n=this.emitter)==null||n.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),e()};await super.onDestroy(t,i)}}gt("ParticlesEmitter",al);function gl(A){return It("ParticlesEmitter",A)}const wo=console.log;class mo extends wt(v.Sprite){constructor(){super(...arguments),this.currentAnimation=null,this.time=0,this.frameIndex=0,this.animations=new Map,this.subscriptionSheet=[],this.sheetParams={},this.sheetCurrentAnimation="stand",this.app=null,this.globalLoader=null,this.trackedAssetIds=new Set,this.currentAnimationContainer=null}get renderer(){var t;return(t=this.app)==null?void 0:t.renderer}async detectImageDimensions(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${t}`);let e=null;this.globalLoader&&(e=this.globalLoader.registerAsset(t),this.trackedAssetIds.add(e));const i=await v.Assets.load(t,n=>{this.globalLoader&&e&&this.globalLoader.updateProgress(e,n)});return this.globalLoader&&e&&this.globalLoader.completeAsset(e),{width:i.width,height:i.height}}async createTextures(t){let{width:e,height:i,framesHeight:n,framesWidth:s,image:a,offset:g}=t;if(!a||typeof a!="string"||a.trim()==="")return console.warn("Invalid image path provided to createTextures:",a),[];let r=null;this.globalLoader&&(r=this.globalLoader.registerAsset(a),this.trackedAssetIds.add(r));const c=await v.Assets.load(a,E=>{this.globalLoader&&r&&this.globalLoader.updateProgress(r,E)});this.globalLoader&&r&&this.globalLoader.completeAsset(r),(!e||e<=0)&&(e=c.width,t.width=e),(!i||i<=0)&&(i=c.height,t.height=i);const u=t.spriteWidth,o=t.spriteHeight,l=[],h=g&&g.x||0,I=g&&g.y||0;for(let E=0;E<n;E++){l[E]=[];for(let d=0;d<s;d++){const C=d*u+h,p=E*o+I;if(p>i)throw wo(`Warning, there is a problem with the height of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the height of the image.`);if(C>e)throw wo(`Warning, there is a problem with the width of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the width of the image.`);l[E].push(new v.Texture({source:c.source,frame:new v.Rectangle(C,p,u,o)}))}}return l}async createAnimations(){const{textures:t}=this.spritesheet;if(t)for(let e in t){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((E,d)=>({...E,[d]:this.spritesheet[d]}),{}),...t[e]},{rectWidth:a,width:g=0,framesWidth:r=1,rectHeight:c,height:u=0,framesHeight:o=1,image:l}=s;let h=g,I=u;if(l&&(!h||h<=0||!I||I<=0)){const E=await this.detectImageDimensions(l);(!h||h<=0)&&(h=E.width,s.width=h),(!I||I<=0)&&(I=E.height,s.height=I)}s.spriteWidth=a||h/r,s.spriteHeight=c||I/o,this.animations.set(e,{frames:await this.createTextures(s),name:e,animations:t[e].animations,params:[],data:s,sprites:[]})}}async onMount(t){var r,c;this["#element"]=t;const{props:e,propObservables:i}=t,n=e.context.tick,s=e.sheet??{},a=((r=e.sheet)==null?void 0:r.definition)??{};if(this.app=e.context.app(),this.globalLoader=((c=e.context)==null?void 0:c.globalLoader)||null,s!=null&&s.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(u=>{this.destroyed||this.update(u)}),a){const u=a instanceof Promise?await a:a;this.spritesheet=u.value??u,await this.createAnimations()}if(s.params)for(let u in i==null?void 0:i.sheet.params){const o=i==null?void 0:i.sheet.params[u];H(o)?this.subscriptionSheet.push(o.observable.subscribe(l=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[u]:l}])})):this.play(this.sheetCurrentAnimation,[{[u]:o}])}const g=Qt(()=>{const{x:u,y:o}=i??{};if(!u||!o)return!1;const l=u,h=o,I=we(l)&&l.animatedState().current!==l.animatedState().end,E=we(h)&&h.animatedState().current!==h.animatedState().end;return I||E});rt(()=>{const u=g();this.isMounted&&(u?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.has(this.sheetCurrentAnimation)&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(t)}async onUpdate(t){var s,a,g,r;if(this.destroyed)return;super.onUpdate(t),!this.globalLoader&&((s=t.context)!=null&&s.globalLoader)&&(this.globalLoader=t.context.globalLoader);const e=async c=>{var h;if(!c||typeof c!="string"||c.trim()==="")return console.warn("Invalid image path provided to setTexture:",c),null;let u=null;this.globalLoader&&(u=this.globalLoader.registerAsset(c),this.trackedAssetIds.add(u));const o=(h=this.fullProps.loader)==null?void 0:h.onProgress,l=await v.Assets.load(c,I=>{var E;if(this.globalLoader&&u&&this.globalLoader.updateProgress(u,I),o&&o(I),I==1){this.globalLoader&&u&&this.globalLoader.completeAsset(u);const d=(E=this.fullProps.loader)==null?void 0:E.onComplete;d&&setTimeout(()=>{d(l)})}});return l},i=t.sheet,n=((a=t.sheet)==null?void 0:a.definition)??{};if((n==null?void 0:n.type)==="reset"){const c=n.value instanceof Promise?await n.value:n.value;this.spritesheet=c??n,await this.resetAnimations()}if(i!=null&&i.params&&(this.sheetParams=i==null?void 0:i.params),i!=null&&i.playing&&this.isMounted&&this.spritesheet&&this.animations.size>0&&(this.sheetCurrentAnimation=i==null?void 0:i.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),t.hitbox&&(this.hitbox=t.hitbox.value??t.hitbox),t.scaleMode)this.baseTexture.scaleMode=t.scaleMode;else if(t.image&&this.fullProps.rectangle===void 0){const c=await e(this.fullProps.image);c&&(this.texture=c)}else t.texture&&(pt(t.texture)?(t.texture.componentInstance.subjectInit.subscribe(),this.texture=(g=this.renderer)==null?void 0:g.generateTexture(t.texture.componentInstance)):this.texture=t.texture);if(t.rectangle!==void 0){const{x:c,y:u,width:o,height:l}=((r=t.rectangle)==null?void 0:r.value)??t.rectangle,h=await e(this.fullProps.image);h&&(this.texture=new v.Texture({source:h.source,frame:new v.Rectangle(c,u,o,l)}))}}async onDestroy(t,e){const i=async()=>{this.globalLoader&&(this.trackedAssetIds.forEach(n=>{this.globalLoader.removeAsset(n)}),this.trackedAssetIds.clear()),this.subscriptionSheet.forEach(n=>n.unsubscribe()),this.subscriptionTick.unsubscribe(),this.currentAnimationContainer&&this.parent instanceof v.Container&&this.parent.removeChild(this.currentAnimationContainer),e&&e()};await super.onDestroy(t,i)}has(t){return this.animations.has(t)}get(t){return this.animations.get(t)}isPlaying(t){return t?this.currentAnimation==null?!1:this.currentAnimation.name==t:!!this.currentAnimation}stop(){this.currentAnimation=null}play(t,e=[]){var r;const i=(r=this.currentAnimation)==null?void 0:r.params;if(this.isPlaying(t)&&EA(e,i||[]))return;const n=this.get(t);if(!n)throw new Error(`Impossible to play the ${t} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(e);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let a=n.animations;a=ls(a)?a(...s):a,this.currentAnimationContainer=new v.Container;for(let c of a){const u=new v.Sprite;for(let o of c)this.currentAnimation.sprites.push(o);this.currentAnimationContainer.addChild(u)}const g=this.currentAnimation.data.sound;g&&new ae.Howl({src:g,autoplay:!0,loop:!1,volume:1}),this.update({deltaRatio:1})}async resetAnimations(){this.stop(),this.animations.clear(),this.currentAnimation=null,this.currentAnimationContainer=null,this.time=0,this.frameIndex=0,this.removeChildren(),this.spritesheet&&(await this.createAnimations(),this.play(this.sheetCurrentAnimation,[this.sheetParams]))}update({deltaRatio:t}){const e=this.getElement();if(e&&kt(e)||!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const i=this,{frames:n,sprites:s,data:a}=this.currentAnimation;let g=s[this.frameIndex];const r=s[this.frameIndex+1];for(let c of this.currentAnimationContainer.children){let u=function(d,C){const D=o(C||d);D!==void 0&&(i[d]=D)};if(!g||g.frameY==null||g.frameX==null)continue;this.texture=n[g.frameY][g.frameX];const o=d=>g[d]??a[d]??this.spritesheet[d],l=d=>{const C=o(d);C&&this[d].set(...C)};this.applyTransform&&(g={...g,...this.applyTransform(g,a,this.spritesheet)});const h=o("spriteRealSize"),I=typeof h=="number"?h:h==null?void 0:h.height;typeof h=="number"||h==null||h.width;const E=()=>{if(I&&this.hitbox){const{spriteWidth:d,spriteHeight:C}=a,p=(d-this.hitbox.w)/2/d,D=(C-I)/2,w=(C-this.hitbox.h-D)/C;this.anchor.set(p,w)}};g.sound,E(),l("anchor"),l("scale"),l("skew"),l("pivot"),u("alpha","opacity"),u("x"),u("y"),u("angle"),u("rotation"),u("visible")}if(!r){this.time=0,this.frameIndex=0,this.onFinish&&s.length>1&&this.onFinish();return}this.time+=t??1,this.time>=r.time&&this.frameIndex++}}gt("Sprite",mo);const un=A=>(gt("Sprite",mo),It("Sprite",A));function ll(A){const t={audioprocess:null,canplay:null,canplaythrough:null,complete:null,durationchange:null,emptied:null,ended:null,loadeddata:null,loadedmetadata:null,pause:null,play:null,playing:null,progress:null,ratechange:null,seeked:null,seeking:null,stalled:null,suspend:null,timeupdate:null,volumechange:null,waiting:null},e=Y(null),i=Gi(A),{play:n,loop:s,muted:a}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return rt(()=>{const g=e(),r=n();g&&r!==void 0&&(r?g.play():g.pause()),g&&s()&&(g.loop=s()),g&&a()&&(g.muted=a())}),Ti(()=>()=>{for(let g in t)t[g]&&e().removeEventListener(g,t[g])}),ut(un,{...A,image:A.src,loader:{onComplete:g=>{var c;const r=g.source.resource;e.set(r),(c=A==null?void 0:A.loader)!=null&&c.onComplete&&A.loader.onComplete(g);for(let u in t)if(A[u]){const o=l=>{A[u](l)};t[u]=o,r.addEventListener(u,o)}}}})}class cl extends wt(v.Text){constructor(){super(...arguments),this.fullText="",this.currentIndex=0,this.typewriterSpeed=1,this._wordWrapWidth=0,this.typewriterOptions={},this.lastSoundTime=0,this.soundDuration=0}async onMount(t,e){const{props:i}=t;await super.onMount(t,e);const n=i.context.tick;i.text&&i.typewriter&&(this.fullText=i.text,this.text="",this.currentIndex=0,i.typewriter&&(this.typewriterOptions=i.typewriter,this.typewriterOptions.skip&&tA(this.typewriterOptions.skip)&&SA(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(t){if(super.onUpdate(t),t.typewriter&&t.typewriter&&(this.typewriterOptions=t.typewriter,t.typewriter.sound&&this.initializeTypewriterSound()),t.text!==void 0&&(this.text=""+t.text),t.text!==void 0&&t.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=t.text,this.updateLayout()),t.style){for(const e in t.style)this.style[e]=t.style[e];t.style.wordWrapWidth&&(this._wordWrapWidth=t.style.wordWrapWidth)}t.color&&(this.style.fill=t.color),t.size&&(this.style.fontSize=t.size),t.fontFamily&&(this.style.fontFamily=t.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){var t;(t=this.typewriterOptions.sound)!=null&&t.src&&(this.typewriterSound=new ae.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{var e;if(this.typewriterSound){const i=this.typewriterSound.duration(),n=((e=this.typewriterOptions.sound)==null?void 0:e.rate)??1;this.soundDuration=i/n*1e3}}}))}playTypewriterSound(t){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&t-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=t)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const t=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,t),this.currentIndex=t,this.typewriterOptions.sound&&this.playTypewriterSound(Date.now()),this.updateLayout(),this.currentIndex===this.fullText.length&&this.onCompleteCallback&&this.onCompleteCallback()}}skipTypewriter(){this.skipSignal&&this.skipSignal(),this.text=this.fullText,this.currentIndex=this.fullText.length,this.updateLayout()}async onDestroy(t,e){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),e&&e()};await super.onDestroy(t,i)}}gt("Text",cl);function Do(A){return It("Text",A)}class hl extends wt(v.TilingSprite){onUpdate(t){super.onUpdate(t),t.image&&(this.texture=v.Texture.from(t.image)),t.tileScale&&this.tileScale.set(t.tileScale.x,t.tileScale.y),t.tilePosition&&this.tilePosition.set(t.tilePosition.x,t.tilePosition.y),t.width!==void 0&&(this.width=t.width),t.height!==void 0&&(this.height=t.height)}}gt("TilingSprite",hl);function ul(A){return It("TilingSprite",A)}var Il=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Bl(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var vo={exports:{}};(function(A,t){(function(){var e,i;i=function(n){return A.exports=n},e={linear:function(n,s,a,g){return a*n/g+s},easeInQuad:function(n,s,a,g){return a*(n/=g)*n+s},easeOutQuad:function(n,s,a,g){return-a*(n/=g)*(n-2)+s},easeInOutQuad:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n+s:-a/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,a,g){return a*(n/=g)*n*n+s},easeOutCubic:function(n,s,a,g){return a*((n=n/g-1)*n*n+1)+s},easeInOutCubic:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n+s:a/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,a,g){return a*(n/=g)*n*n*n+s},easeOutQuart:function(n,s,a,g){return-a*((n=n/g-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n*n+s:-a/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,a,g){return a*(n/=g)*n*n*n*n+s},easeOutQuint:function(n,s,a,g){return a*((n=n/g-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,a,g){return(n/=g/2)<1?a/2*n*n*n*n*n+s:a/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,a,g){return-a*Math.cos(n/g*(Math.PI/2))+a+s},easeOutSine:function(n,s,a,g){return a*Math.sin(n/g*(Math.PI/2))+s},easeInOutSine:function(n,s,a,g){return-a/2*(Math.cos(Math.PI*n/g)-1)+s},easeInExpo:function(n,s,a,g){return n===0?s:a*Math.pow(2,10*(n/g-1))+s},easeOutExpo:function(n,s,a,g){return n===g?s+a:a*(-Math.pow(2,-10*n/g)+1)+s},easeInOutExpo:function(n,s,a,g){return(n/=g/2)<1?a/2*Math.pow(2,10*(n-1))+s:a/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,a,g){return-a*(Math.sqrt(1-(n/=g)*n)-1)+s},easeOutCirc:function(n,s,a,g){return a*Math.sqrt(1-(n=n/g-1)*n)+s},easeInOutCirc:function(n,s,a,g){return(n/=g/2)<1?-a/2*(Math.sqrt(1-n*n)-1)+s:a/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,a,g){var r,c,u;return u=1.70158,c=0,r=a,n===0||(n/=g),c||(c=g*.3),r<Math.abs(a)?(r=a,u=c/4):u=c/(2*Math.PI)*Math.asin(a/r),-(r*Math.pow(2,10*(n-=1))*Math.sin((n*g-u)*(2*Math.PI)/c))+s},easeOutElastic:function(n,s,a,g){var r,c,u;return u=1.70158,c=0,r=a,n===0||(n/=g),c||(c=g*.3),r<Math.abs(a)?(r=a,u=c/4):u=c/(2*Math.PI)*Math.asin(a/r),r*Math.pow(2,-10*n)*Math.sin((n*g-u)*(2*Math.PI)/c)+a+s},easeInOutElastic:function(n,s,a,g){var r,c,u;return u=1.70158,c=0,r=a,n===0||(n/=g/2),c||(c=g*.44999999999999996),r<Math.abs(a)?(r=a,u=c/4):u=c/(2*Math.PI)*Math.asin(a/r),n<1?-.5*(r*Math.pow(2,10*(n-=1))*Math.sin((n*g-u)*(2*Math.PI)/c))+s:r*Math.pow(2,-10*(n-=1))*Math.sin((n*g-u)*(2*Math.PI)/c)*.5+a+s},easeInBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),a*(n/=g)*n*((r+1)*n-r)+s},easeOutBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),a*((n=n/g-1)*n*((r+1)*n+r)+1)+s},easeInOutBack:function(n,s,a,g,r){return r===void 0&&(r=1.70158),(n/=g/2)<1?a/2*(n*n*(((r*=1.525)+1)*n-r))+s:a/2*((n-=2)*n*(((r*=1.525)+1)*n+r)+2)+s},easeInBounce:function(n,s,a,g){var r;return r=e.easeOutBounce(g-n,0,a,g),a-r+s},easeOutBounce:function(n,s,a,g){return(n/=g)<.36363636363636365?a*(7.5625*n*n)+s:n<.7272727272727273?a*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?a*(7.5625*(n-=.8181818181818182)*n+.9375)+s:a*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,a,g){var r;return n<g/2?(r=e.easeInBounce(n*2,0,a,g),r*.5+s):(r=e.easeOutBounce(n*2-g,0,a,g),r*.5+a*.5+s)}},i(e)}).call(Il)})(vo);var fl=vo.exports;const bo=Bl(fl);function RA(A,t){if(A){if(typeof A=="function")return A;if(typeof A=="string")return bo[A]}else return bo[t]}class El{constructor(t){this.viewport=t,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new v.Rectangle(0,0,this.viewport.worldWidth,this.viewport.worldHeight)),this.viewport.on("pointerdown",this.down,this),this.viewport.options.allowPreserveDragOutside?this.viewport.on("globalpointermove",this.move,this):this.viewport.on("pointermove",this.move,this),this.viewport.on("pointerup",this.up,this),this.viewport.on("pointerupoutside",this.up,this),this.viewport.on("pointercancel",this.up,this),this.viewport.options.allowPreserveDragOutside||this.viewport.on("pointerleave",this.up,this),this.wheelFunction=t=>this.handleWheel(t),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var t;(t=this.viewport.options.events.domElement)==null||t.removeEventListener("wheel",this.wheelFunction)}down(t){if(!(this.viewport.pause||!this.viewport.visible)){if(t.pointerType==="mouse"?this.isMouseDown=!0:this.get(t.pointerId)||this.touches.push({id:t.pointerId,last:null}),this.count()===1){this.last=t.global.clone();const e=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!e||!e.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(t)&&this.viewport.options.stopPropagation&&t.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(t){return Math.abs(t)>=this.viewport.threshold}move(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.plugins.move(t);if(this.clickedAvailable&&this.last){const i=t.global.x-this.last.x,n=t.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}e&&this.viewport.options.stopPropagation&&t.stopPropagation()}up(t){if(this.viewport.pause||!this.viewport.visible)return;t.pointerType==="mouse"&&(this.isMouseDown=!1),t.pointerType!=="mouse"&&this.remove(t.pointerId);const e=this.viewport.plugins.up(t);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:t,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),e&&this.viewport.options.stopPropagation&&t.stopPropagation()}getPointerPosition(t){const e=new v.Point;return this.viewport.options.events.mapPositionToPoint(e,t.clientX,t.clientY),e}handleWheel(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.toLocal(this.getPointerPosition(t));this.viewport.left<=e.x&&e.x<=this.viewport.right&&this.viewport.top<=e.y&&e.y<=this.viewport.bottom&&this.viewport.plugins.wheel(t)&&!this.viewport.options.passiveWheel&&t.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(t){for(const e of this.touches)if(e.id===t)return e;return null}remove(t){for(let e=0;e<this.touches.length;e++)if(this.touches[e].id===t){this.touches.splice(e,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const nA=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class Cl{constructor(t){this.viewport=t,this.list=[],this.plugins={}}add(t,e,i=nA.length){const n=this.plugins[t];n&&n.destroy(),this.plugins[t]=e;const s=nA.indexOf(t);s!==-1&&nA.splice(s,1),nA.splice(i,0,t),this.sort()}get(t,e){var i;return e&&(i=this.plugins[t])!=null&&i.paused?null:this.plugins[t]}update(t){for(const e of this.list)e.update(t)}resize(){for(const t of this.list)t.resize()}reset(){for(const t of this.list)t.reset()}removeAll(){this.list.forEach(t=>{t.destroy()}),this.plugins={},this.sort()}remove(t){var e;this.plugins[t]&&((e=this.plugins[t])==null||e.destroy(),delete this.plugins[t],this.viewport.emit("plugin-remove",t),this.sort())}pause(t){var e;(e=this.plugins[t])==null||e.pause()}resume(t){var e;(e=this.plugins[t])==null||e.resume()}sort(){this.list=[];for(const t of nA)this.plugins[t]&&this.list.push(this.plugins[t])}down(t){let e=!1;for(const i of this.list)i.down(t)&&(e=!0);return e}move(t){let e=!1;for(const i of this.viewport.plugins.list)i.move(t)&&(e=!0);return e}up(t){let e=!1;for(const i of this.list)i.up(t)&&(e=!0);return e}wheel(t){let e=!1;for(const i of this.list)i.wheel(t)&&(e=!0);return e}}class mt{constructor(t){this.parent=t,this.paused=!1}destroy(){}down(t){return!1}move(t){return!1}up(t){return!1}wheel(t){return!1}update(t){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const dl={removeOnInterrupt:!1,ease:"linear",time:1e3};class Ql extends mt{constructor(t,e={}){super(t),this.startWidth=null,this.startHeight=null,this.deltaWidth=null,this.deltaHeight=null,this.width=null,this.height=null,this.time=0,this.options=Object.assign({},dl,e),this.options.ease=RA(this.options.ease),this.setupPosition(),this.setupZoom(),this.time=0}setupPosition(){typeof this.options.position<"u"?(this.startX=this.parent.center.x,this.startY=this.parent.center.y,this.deltaX=this.options.position.x-this.parent.center.x,this.deltaY=this.options.position.y-this.parent.center.y,this.keepCenter=!1):this.keepCenter=!0}setupZoom(){this.width=null,this.height=null,typeof this.options.scale<"u"?this.width=this.parent.screenWidth/this.options.scale:typeof this.options.scaleX<"u"||typeof this.options.scaleY<"u"?(typeof this.options.scaleX<"u"&&(this.width=this.parent.screenWidth/this.options.scaleX),typeof this.options.scaleY<"u"&&(this.height=this.parent.screenHeight/this.options.scaleY)):(typeof this.options.width<"u"&&(this.width=this.options.width),typeof this.options.height<"u"&&(this.height=this.options.height)),this.width!==null&&(this.startWidth=this.parent.screenWidthInWorldPixels,this.deltaWidth=this.width-this.startWidth),this.height!==null&&(this.startHeight=this.parent.screenHeightInWorldPixels,this.deltaHeight=this.height-this.startHeight)}down(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("animate"),!1}complete(){this.parent.plugins.remove("animate"),this.width!==null&&this.parent.fitWidth(this.width,this.keepCenter,this.height===null),this.height!==null&&this.parent.fitHeight(this.height,this.keepCenter,this.width===null),!this.keepCenter&&this.options.position&&this.parent.moveCenter(this.options.position),this.parent.emit("animate-end",this.parent),this.options.callbackOnComplete&&this.options.callbackOnComplete(this.parent)}update(t){if(this.paused)return;this.time+=t;const e=new v.Point(this.parent.scale.x,this.parent.scale.y);if(this.time>=this.options.time){const i=this.parent.width,n=this.parent.height;this.complete(),(i!==this.parent.width||n!==this.parent.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:e,type:"animate"})}else{const i=this.options.ease(this.time,0,1,this.options.time);if(this.width!==null){const n=this.startWidth,s=this.deltaWidth;this.parent.fitWidth(n+s*i,this.keepCenter,this.height===null)}if(this.height!==null){const n=this.startHeight,s=this.deltaHeight;this.parent.fitHeight(n+s*i,this.keepCenter,this.width===null)}if(this.width===null?this.parent.scale.x=this.parent.scale.y:this.height===null&&(this.parent.scale.y=this.parent.scale.x),!this.keepCenter){const n=this.startX,s=this.startY,a=this.deltaX,g=this.deltaY,r=new v.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+a*i,s+g*i),this.parent.emit("moved",{viewport:this.parent,original:r,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:e,type:"animate"})}}}const pl={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class yl extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},pl,e),this.ease=RA(this.options.ease,"easeInOutSine"),this.options.sides?this.options.sides==="all"?this.top=this.bottom=this.left=this.right=!0:this.options.sides==="horizontal"?(this.right=this.left=!0,this.top=this.bottom=!1):this.options.sides==="vertical"?(this.left=this.right=!1,this.top=this.bottom=!0):(this.top=this.options.sides.indexOf("top")!==-1,this.bottom=this.options.sides.indexOf("bottom")!==-1,this.left=this.options.sides.indexOf("left")!==-1,this.right=this.options.sides.indexOf("right")!==-1):this.left=this.top=this.right=this.bottom=!1;const i=this.options.underflow.toLowerCase();i==="center"?(this.underflowX=0,this.underflowY=0):(this.underflowX=i.indexOf("left")!==-1?-1:i.indexOf("right")!==-1?1:0,this.underflowY=i.indexOf("top")!==-1?-1:i.indexOf("bottom")!==-1?1:0),this.reset()}isActive(){return this.toX!==null||this.toY!==null}down(){return this.toX=this.toY=null,!1}up(){return this.bounce(),!1}update(t){if(!this.paused){if(this.bounce(),this.toX){const e=this.toX;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),e.time>=this.options.time?(this.parent.x=e.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(e.time,e.start,e.delta,this.options.time)}if(this.toY){const e=this.toY;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),e.time>=this.options.time?(this.parent.y=e.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(e.time,e.start,e.delta,this.options.time)}}}calcUnderflowX(){let t;switch(this.underflowX){case-1:t=0;break;case 1:t=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:t=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return t}calcUnderflowY(){let t;switch(this.underflowY){case-1:t=0;break;case 1:t=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:t=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return t}oob(){const t=this.options.bounceBox;if(t){const e=typeof t.x>"u"?0:t.x,i=typeof t.y>"u"?0:t.y,n=typeof t.width>"u"?this.parent.worldWidth:t.width,s=typeof t.height>"u"?this.parent.worldHeight:t.height;return{left:this.parent.left<e,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new v.Point(e*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new v.Point(n*this.parent.scale.x-this.parent.screenWidth,s*this.parent.scale.y-this.parent.screenHeight)}}return{left:this.parent.left<0,right:this.parent.right>this.parent.worldWidth,top:this.parent.top<0,bottom:this.parent.bottom>this.parent.worldHeight,topLeft:new v.Point(0,0),bottomRight:new v.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var t,e;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((t=n.options)==null?void 0:t.friction)||n.y&&n.percentChangeY===((e=n.options)==null?void 0:e.friction))&&(i=this.oob(),(i.left&&this.left||i.right&&this.right)&&(n.percentChangeX=this.options.friction),(i.top&&this.top||i.bottom&&this.bottom)&&(n.percentChangeY=this.options.friction));const s=this.parent.plugins.get("drag",!0)||{},a=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(a!=null&&a.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const g=i.topLeft,r=i.bottomRight;if(!this.toX&&!n.x){let c=null;i.left&&this.left?c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-g.x:i.right&&this.right&&(c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-r.x),c!==null&&this.parent.x!==c&&(this.toX={time:0,start:this.parent.x,delta:c-this.parent.x,end:c},this.parent.emit("bounce-x-start",this.parent))}if(!this.toY&&!n.y){let c=null;i.top&&this.top?c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-g.y:i.bottom&&this.bottom&&(c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-r.y),c!==null&&this.parent.y!==c&&(this.toY={time:0,start:this.parent.y,delta:c-this.parent.y,end:c},this.parent.emit("bounce-y-start",this.parent))}}}reset(){this.toX=this.toY=null,this.bounce()}}const wl={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class ml extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},wl,e),this.options.direction&&(this.options.left=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.right=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.top=this.options.direction==="y"||this.options.direction==="all"?!0:null,this.options.bottom=this.options.direction==="y"||this.options.direction==="all"?!0:null),this.parseUnderflow(),this.last={x:null,y:null,scaleX:null,scaleY:null},this.update()}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="none"?this.noUnderflow=!0:t==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=t.indexOf("left")!==-1?-1:t.indexOf("right")!==-1?1:0,this.underflowY=t.indexOf("top")!==-1?-1:t.indexOf("bottom")!==-1?1:0,this.noUnderflow=!1)}move(){return this.update(),!1}update(){if(this.paused||this.parent.x===this.last.x&&this.parent.y===this.last.y&&this.parent.scale.x===this.last.scaleX&&this.parent.scale.y===this.last.scaleY)return;const t=new v.Point(this.parent.x,this.parent.y),e=this.parent.plugins.decelerate||{};if(this.options.left!==null||this.options.right!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x!==0&&(this.parent.x=0,i=!0);break;case 1:this.parent.x!==this.parent.screenWidth-this.parent.screenWorldWidth&&(this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth,i=!0);break;default:this.parent.x!==(this.parent.screenWidth-this.parent.screenWorldWidth)/2&&(this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2,i=!0)}else this.options.left!==null&&this.parent.left<(this.options.left===!0?0:this.options.left)&&(this.parent.x=-(this.options.left===!0?0:this.options.left)*this.parent.scale.x,e.x=0,i=!0),this.options.right!==null&&this.parent.right>(this.options.right===!0?this.parent.worldWidth:this.options.right)&&(this.parent.x=-(this.options.right===!0?this.parent.worldWidth:this.options.right)*this.parent.scale.x+this.parent.screenWidth,e.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,type:"clamp-x"})}if(this.options.top!==null||this.options.bottom!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y!==0&&(this.parent.y=0,i=!0);break;case 1:this.parent.y!==this.parent.screenHeight-this.parent.screenWorldHeight&&(this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight,i=!0);break;default:this.parent.y!==(this.parent.screenHeight-this.parent.screenWorldHeight)/2&&(this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2,i=!0)}else this.options.top!==null&&this.parent.top<(this.options.top===!0?0:this.options.top)&&(this.parent.y=-(this.options.top===!0?0:this.options.top)*this.parent.scale.y,e.y=0,i=!0),this.options.bottom!==null&&this.parent.bottom>(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)&&(this.parent.y=-(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)*this.parent.scale.y+this.parent.screenHeight,e.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,type:"clamp-y"})}this.last.x=this.parent.x,this.last.y=this.parent.y,this.last.scaleX=this.parent.scale.x,this.last.scaleY=this.parent.scale.y}reset(){this.update()}}const Dl={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class vl extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},Dl,e),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&t<this.options.minWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.minWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&t>this.options.maxWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.maxWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&e<this.options.minHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.minHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&e>this.options.maxHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.maxHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}}else if(this.options.minScale||this.options.maxScale){const t={x:null,y:null},e={x:null,y:null};if(typeof this.options.minScale=="number")t.x=this.options.minScale,t.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")e.x=this.options.maxScale,e.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;e.x=typeof s.x>"u"?null:s.x,e.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;t.x!==null&&i<t.x&&(i=t.x),e.x!==null&&i>e.x&&(i=e.x),t.y!==null&&n<t.y&&(n=t.y),e.y!==null&&n>e.y&&(n=e.y),(i!==this.parent.scale.x||n!==this.parent.scale.y)&&(this.parent.scale.set(i,n),this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"}))}}}reset(){this.clamp()}}const bl={friction:.98,bounce:.8,minSpeed:.01},$t=16;class Sl extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},bl,e),this.saved=[],this.timeSinceRelease=0,this.reset(),this.parent.on("moved",i=>this.handleMoved(i))}down(){return this.saved=[],this.x=this.y=null,!1}isActive(){return!!(this.x||this.y)}move(){if(this.paused)return!1;const t=this.parent.input.count();return(t===1||t>1&&!this.parent.plugins.get("pinch",!0))&&(this.saved.push({x:this.parent.x,y:this.parent.y,time:performance.now()}),this.saved.length>60&&this.saved.splice(0,30)),!1}handleMoved(t){if(this.saved.length){const e=this.saved[this.saved.length-1];t.type==="clamp-x"&&t.original?e.x===t.original.x&&(e.x=this.parent.x):t.type==="clamp-y"&&t.original&&e.y===t.original.y&&(e.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const t=performance.now();for(const e of this.saved)if(e.time>=t-100){const i=t-e.time;this.x=(this.parent.x-e.x)/i,this.y=(this.parent.y-e.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(t){t=t||{},typeof t.x<"u"&&(this.x=t.x,this.percentChangeX=this.options.friction),typeof t.y<"u"&&(this.y=t.y,this.percentChangeY=this.options.friction)}update(t){if(this.paused)return;const e=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+t;if(this.x){const s=this.percentChangeX,a=Math.log(s);this.parent.x+=this.x*$t/a*(Math.pow(s,n/$t)-Math.pow(s,i/$t)),this.x*=Math.pow(this.percentChangeX,t/$t)}if(this.y){const s=this.percentChangeY,a=Math.log(s);this.parent.y+=this.y*$t/a*(Math.pow(s,n/$t)-Math.pow(s,i/$t)),this.y*=Math.pow(this.percentChangeY,t/$t)}this.timeSinceRelease+=t,this.x&&this.y?Math.abs(this.x)<this.options.minSpeed&&Math.abs(this.y)<this.options.minSpeed&&(this.x=0,this.y=0):(Math.abs(this.x||0)<this.options.minSpeed&&(this.x=0),Math.abs(this.y||0)<this.options.minSpeed&&(this.y=0)),e&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const xl={direction:"all",pressDrag:!0,wheel:!0,wheelScroll:1,reverse:!1,clampWheel:!1,underflow:"center",factor:1,mouseButtons:"all",keyToPress:null,ignoreKeyToPressOnTouch:!1,lineHeight:20,wheelSwapAxes:!1};class kl extends mt{constructor(t,e={}){super(t),this.windowEventHandlers=[],this.options=Object.assign({},xl,e),this.moved=!1,this.reverse=this.options.reverse?1:-1,this.xDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="x",this.yDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="y",this.keyIsPressed=!1,this.parseUnderflow(),this.mouseButtons(this.options.mouseButtons),this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){const e=n=>{t.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{t.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",e)}addWindowEventHandler(t,e){typeof window>"u"||(window.addEventListener(t,e),this.windowEventHandlers.push({event:t,handler:e}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:t,handler:e})=>{window.removeEventListener(t,e)})}mouseButtons(t){!t||t==="all"?this.mouse=[!0,!0,!0]:this.mouse=[t.indexOf("left")!==-1,t.indexOf("middle")!==-1,t.indexOf("right")!==-1]}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="center"?(this.underflowX=0,this.underflowY=0):(t.includes("left")?this.underflowX=-1:t.includes("right")?this.underflowX=1:this.underflowX=0,t.includes("top")?this.underflowY=-1:t.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(t){const e=t.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!e||this.mouse[t.button]))}checkKeyPress(t){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&t.data.pointerType==="touch"}down(t){return this.paused||!this.options.pressDrag?!1:this.checkButtons(t)&&this.checkKeyPress(t)?(this.last={x:t.global.x,y:t.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=t.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(t){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===t.data.pointerId){const e=t.global.x,i=t.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:e,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const a=s.x-this.last.x,g=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(a)||this.yDirection&&this.parent.input.checkThreshold(g))return this.xDirection&&(this.parent.x+=(s.x-this.last.x)*this.options.factor),this.yDirection&&(this.parent.y+=(s.y-this.last.y)*this.options.factor),this.last=s,this.moved||this.parent.emit("drag-start",{event:t,screen:new v.Point(this.last.x,this.last.y),world:this.parent.toWorld(new v.Point(this.last.x,this.last.y)),viewport:this.parent}),this.moved=!0,this.parent.emit("moved",{viewport:this.parent,type:"drag"}),!0}else this.moved=!1}return!1}up(t){if(this.paused)return!1;const e=this.parent.input.touches;if(e.length===1){const i=e[0];return i.last&&(this.last={x:i.last.x,y:i.last.y},this.current=i.id),this.moved=!1,!0}else if(this.last&&this.moved){const i=new v.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:t,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(t){if(this.paused)return!1;if(this.options.wheel){const e=this.parent.plugins.get("wheel",!0);if(!e||!e.options.wheelZoom&&!t.ctrlKey){const i=t.deltaMode?this.options.lineHeight:1,n=[t.deltaX,t.deltaY],[s,a]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=a*i*this.options.wheelScroll*this.reverse),this.options.clampWheel&&this.clamp(),this.parent.emit("wheel-scroll",this.parent),this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.options.passiveWheel||t.preventDefault(),this.parent.options.stopPropagation&&t.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const t=this.parent.plugins.get("decelerate",!0)||{};if(this.options.clampWheel!=="y")if(this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x=0;break;case 1:this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}else this.parent.left<0?(this.parent.x=0,t.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,t.x=0);if(this.options.clampWheel!=="x")if(this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y=0;break;case 1:this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}else this.parent.top<0&&(this.parent.y=0,t.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,t.y=0)}}const Ml={speed:0,acceleration:null,radius:null};class Rl extends mt{constructor(t,e,i={}){super(t),this.target=e,this.options=Object.assign({},Ml,i),this.velocity={x:0,y:0}}update(t){if(this.paused)return;const e=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-e.y,2)+Math.pow(this.target.x-e.x,2))>this.options.radius){const g=Math.atan2(this.target.y-e.y,this.target.x-e.x);i=this.target.x-Math.cos(g)*this.options.radius,n=this.target.y-Math.sin(g)*this.options.radius}else return;const s=i-e.x,a=n-e.y;if(s||a)if(this.options.speed)if(this.options.acceleration){const g=Math.atan2(n-e.y,i-e.x),r=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));if(r){const c=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);r>c?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*t,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*t,this.options.speed))}:this.velocity={x:Math.max(this.velocity.x-this.options.acceleration*this.options.speed,0),y:Math.max(this.velocity.y-this.options.acceleration*this.options.speed,0)};const u=Math.cos(g)*this.velocity.x,o=Math.sin(g)*this.velocity.y,l=Math.abs(u)>Math.abs(s)?i:e.x+u,h=Math.abs(o)>Math.abs(a)?n:e.y+o;this.parent.moveCenter(l,h),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const g=Math.atan2(n-e.y,i-e.x),r=Math.cos(g)*this.options.speed,c=Math.sin(g)*this.options.speed,u=Math.abs(r)>Math.abs(s)?i:e.x+r,o=Math.abs(c)>Math.abs(a)?n:e.y+c;this.parent.moveCenter(u,o),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}else this.parent.moveCenter(i,n),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}const _l={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class Fl extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},_l,e),this.reverse=this.options.reverse?1:-1,this.radiusSquared=typeof this.options.radius=="number"?Math.pow(this.options.radius,2):null,this.resize()}resize(){const t=this.options.distance;t!==null?(this.left=t,this.top=t,this.right=this.parent.screenWidth-t,this.bottom=this.parent.screenHeight-t):this.options.radius||(this.left=this.options.left,this.top=this.options.top,this.right=this.options.right===null?null:this.parent.screenWidth-this.options.right,this.bottom=this.options.bottom===null?null:this.parent.screenHeight-this.options.bottom)}down(){return this.paused||this.options.allowButtons||(this.horizontal=this.vertical=null),!1}move(t){if(this.paused||t.pointerType!=="mouse"&&t.pointerId!==1||!this.options.allowButtons&&t.buttons!==0)return!1;const e=t.global.x,i=t.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-e,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-e);this.options.linear?(this.horizontal=Math.round(Math.cos(s))*this.options.speed*this.reverse*.06,this.vertical=Math.round(Math.sin(s))*this.options.speed*this.reverse*.06):(this.horizontal=Math.cos(s)*this.options.speed*this.reverse*.06,this.vertical=Math.sin(s)*this.options.speed*this.reverse*.06)}else this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=0}else this.left!==null&&e<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&e>this.right?this.horizontal=-1*this.reverse*this.options.speed*.06:(this.decelerateHorizontal(),this.horizontal=0),this.top!==null&&i<this.top?this.vertical=Number(this.reverse)*this.options.speed*.06:this.bottom!==null&&i>this.bottom?this.vertical=-1*this.reverse*this.options.speed*.06:(this.decelerateVertical(),this.vertical=0);return!1}decelerateHorizontal(){const t=this.parent.plugins.get("decelerate",!0);this.horizontal&&t&&!this.options.noDecelerate&&t.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const t=this.parent.plugins.get("decelerate",!0);this.vertical&&t&&!this.options.noDecelerate&&t.activate({y:this.vertical*this.options.speed*this.reverse/16.666666666666668})}up(){return this.paused||(this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=null),!1}update(){if(!this.paused&&(this.horizontal||this.vertical)){const t=this.parent.center;this.horizontal&&(t.x+=this.horizontal*this.options.speed),this.vertical&&(t.y+=this.vertical*this.options.speed),this.parent.moveCenter(t),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const Gl={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},Nl=new v.Point;class Hl extends mt{constructor(t,e={}){super(t),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},Gl,e)}down(){return this.parent.input.count()>=2?(this.active=!0,!0):!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}move(t){if(this.paused||!this.active)return!1;const{x:e,y:i}=(this.parent.parent||this.parent).toLocal(t.global,void 0,Nl),n=this.parent.input.touches;if(n.length>=2){const s=n[0],a=n[1],g=s.last&&a.last?Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2)):null;if(s.id===t.pointerId?s.last={x:e,y:i,data:t}:a.id===t.pointerId&&(a.last={x:e,y:i,data:t}),g){let r;const c=new v.Point(s.last.x+(a.last.x-s.last.x)/2,s.last.y+(a.last.y-s.last.y)/2);this.options.center||(r=this.parent.toLocal(c,this.parent.parent||this.parent));let u=Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2));u=u===0?u=1e-10:u;const o=(1-g/u)*this.options.percent*(this.isAxisX()?this.parent.scale.x:this.parent.scale.y);this.isAxisX()&&(this.parent.scale.x+=o),this.isAxisY()&&(this.parent.scale.y+=o),this.parent.emit("zoomed",{viewport:this.parent,type:"pinch",center:c});const l=this.parent.plugins.get("clamp-zoom",!0);if(l&&l.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const h=(this.parent.parent||this.parent).toLocal(r,this.parent);this.parent.x+=(c.x-h.x)*this.options.factor,this.parent.y+=(c.y-h.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})}!this.options.noDrag&&this.lastCenter&&(this.parent.x+=(c.x-this.lastCenter.x)*this.options.factor,this.parent.y+=(c.y-this.lastCenter.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})),this.lastCenter=c,this.moved=!0}else this.pinching||(this.parent.emit("pinch-start",this.parent),this.pinching=!0);return!0}return!1}up(){return this.pinching&&this.parent.input.touches.length<=1?(this.active=!1,this.lastCenter=null,this.pinching=!1,this.moved=!1,this.parent.emit("pinch-end",this.parent),!0):!1}}const Ll={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class Ul extends mt{constructor(t,e,i,n={}){super(t),this.options=Object.assign({},Ll,n),this.ease=RA(n.ease,"easeInOutSine"),this.x=e,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const t=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-t.x,this.deltaY=this.y-t.y,this.startX=t.x,this.startY=t.y,this.parent.emit("snap-start",this.parent)}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap"):this.options.interrupt&&(this.snapping=null),!1}up(){if(this.parent.input.count()===0){const t=this.parent.plugins.get("decelerate",!0);t&&(t.x||t.y)&&(t.percentChangeX=t.percentChangeY=this.options.friction)}return!1}update(t){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const e=this.snapping;e.time+=t;let i,n,s;const a=this.startX,g=this.startY,r=this.deltaX,c=this.deltaY;if(e.time>this.options.time)i=!0,n=a+r,s=g+c;else{const u=this.ease(e.time,0,1,this.options.time);n=a+r*u,s=g+c*u}this.options.topLeft?this.parent.moveCorner(n,s):this.parent.moveCenter(n,s),this.parent.emit("moved",{viewport:this.parent,type:"snap"}),i&&(this.options.removeOnComplete&&this.parent.plugins.remove("snap"),this.parent.emit("snap-end",this.parent),this.snapping=null)}else{const e=this.options.topLeft?this.parent.corner:this.parent.center;(e.x!==this.x||e.y!==this.y)&&this.snapStart()}}}const Tl={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class Ol extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},Tl,e),this.ease=RA(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=t.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=t.screenHeight/this.options.height,this.yIndependent=!0),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale,this.options.time===0?(t.container.scale.x=this.xScale,t.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):e.forceStart&&this.createSnapping()}createSnapping(){const t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:t,startY:e,deltaX:i-t,deltaY:n-e},this.parent.emit("snap-zoom-start",this.parent)}resize(){this.snapping=null,this.options.width>0&&(this.xScale=this.parent.screenWidth/this.options.width),this.options.height>0&&(this.yScale=this.parent.screenHeight/this.options.height),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap-zoom"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap-zoom"):this.options.interrupt&&(this.snapping=null),!1}update(t){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let e;if(!this.options.center&&!this.options.noMove&&(e=this.parent.center),!this.snapping)(this.parent.scale.x!==this.xScale||this.parent.scale.y!==this.yScale)&&this.createSnapping();else if(this.snapping){const i=this.snapping;if(i.time+=t,i.time>=this.options.time)this.parent.scale.set(this.xScale,this.yScale),this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom"),this.parent.emit("snap-zoom-end",this.parent),this.snapping=null;else{const s=this.snapping,a=this.ease(s.time,s.startX,s.deltaX,this.options.time),g=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/a,this.parent.scale.y=this.parent.screenHeight/g}const n=this.parent.plugins.get("clamp-zoom",!0);n&&n.clamp(),this.options.noMove||(this.options.center?this.parent.moveCenter(this.options.center):this.parent.moveCenter(e))}}resume(){this.snapping=null,super.resume()}}const Jl={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class Pl extends mt{constructor(t,e={}){super(t),this.options=Object.assign({},Jl,e),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){typeof window>"u"||(window.addEventListener("keydown",e=>{t.includes(e.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",e=>{t.includes(e.code)&&(this.keyIsPressed=!1)}))}checkKeyPress(){return!this.options.keyToPress||this.keyIsPressed}down(){return this.options.interrupt&&(this.smoothing=null),!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}update(){if(this.smoothing){const t=this.smoothingCenter,e=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x+=e.x),this.isAxisY()&&(this.parent.scale.y+=e.y),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const n=this.parent.plugins.get("clamp-zoom",!0);if(n&&n.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const s=this.parent.parent||this.parent;s.toLocal(i,this.parent,i);const a=s.toLocal(t);this.parent.x+=a.x-i.x,this.parent.y+=a.y-i.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.smoothingCount++,typeof this.options.smooth=="number"&&this.smoothingCount>=this.options.smooth&&(this.smoothing=null)}}pinch(t){if(this.paused)return;const e=this.parent.input.getPointerPosition(t),i=-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const g=this.parent.parent||this.parent;g.toLocal(s,this.parent,s);const r=g.toLocal(e);this.parent.x+=r.x-s.x,this.parent.y+=r.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}wheel(t){if(this.paused||!this.checkKeyPress())return!1;if(t.ctrlKey&&this.options.trackpadPinch)this.pinch(t);else if(this.options.wheelZoom){const e=this.parent.input.getPointerPosition(t),i=(this.options.reverse?-1:1)*-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/500,n=Math.pow(2,(1+this.options.percent)*i);if(this.options.smooth){const s={x:this.smoothing?this.smoothing.x*(this.options.smooth-this.smoothingCount):0,y:this.smoothing?this.smoothing.y*(this.options.smooth-this.smoothingCount):0};this.smoothing={x:((this.parent.scale.x+s.x)*n-this.parent.scale.x)/this.options.smooth,y:((this.parent.scale.y+s.y)*n-this.parent.scale.y)/this.options.smooth},this.smoothingCount=0,this.smoothingCenter=e}else{let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const g=this.parent.parent||this.parent;g.toLocal(s,this.parent,s);const r=g.toLocal(e);this.parent.x+=r.x-s.x,this.parent.y+=r.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}return!this.parent.options.passiveWheel}}const Kl={screenWidth:typeof window>"u"?0:window.innerWidth,screenHeight:typeof window>"u"?0:window.innerHeight,worldWidth:null,worldHeight:null,threshold:5,passiveWheel:!0,stopPropagation:!1,forceHitArea:null,noTicker:!1,disableOnContextMenu:!1,ticker:v.Ticker.shared,allowPreserveDragOutside:!1};class Yl extends v.Container{constructor(t){super(),this._disableOnContextMenu=e=>e.preventDefault(),this.options={...Kl,...t},this.screenWidth=this.options.screenWidth,this.screenHeight=this.options.screenHeight,this._worldWidth=this.options.worldWidth,this._worldHeight=this.options.worldHeight,this.forceHitArea=this.options.forceHitArea,this.threshold=this.options.threshold,this.options.disableOnContextMenu&&this.options.events.domElement.addEventListener("contextmenu",this._disableOnContextMenu),this.options.noTicker||(this.tickerFunction=()=>this.update(this.options.ticker.elapsedMS),this.options.ticker.add(this.tickerFunction)),this.input=new El(this),this.plugins=new Cl(this)}destroy(t){var e;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((e=this.options.events.domElement)==null||e.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(t)}update(t){this.pause||(this.plugins.update(t),this.lastViewport&&(this.lastViewport.x!==this.x||this.lastViewport.y!==this.y?this.moving=!0:this.moving&&(this.emit("moved-end",this),this.moving=!1),this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y?this.zooming=!0:this.zooming&&(this.emit("zoomed-end",this),this.zooming=!1)),this.forceHitArea||(this._hitAreaDefault=new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight),this.hitArea=this._hitAreaDefault),this._dirty=this._dirty||!this.lastViewport||this.lastViewport.x!==this.x||this.lastViewport.y!==this.y||this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y,this.lastViewport={x:this.x,y:this.y,scaleX:this.scale.x,scaleY:this.scale.y},this.emit("frame-end",this))}resize(t=typeof window>"u"?0:window.innerWidth,e=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=t,this.screenHeight=e,typeof i<"u"&&(this._worldWidth=i),typeof n<"u"&&(this._worldHeight=n),this.plugins.resize(),this.dirty=!0}get worldWidth(){return this._worldWidth?this._worldWidth:this.width/this.scale.x}set worldWidth(t){this._worldWidth=t,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(t){this._worldHeight=t,this.plugins.resize()}getVisibleBounds(){return new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(t,e){return arguments.length===2?this.toLocal(new v.Point(t,e)):this.toLocal(t)}toScreen(t,e){return arguments.length===2?this.toGlobal(new v.Point(t,e)):this.toGlobal(t)}get worldScreenWidth(){return this.screenWidth/this.scale.x}get worldScreenHeight(){return this.screenHeight/this.scale.y}get screenWorldWidth(){return this.worldWidth*this.scale.x}get screenWorldHeight(){return this.worldHeight*this.scale.y}get center(){return new v.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(t){this.moveCenter(t)}moveCenter(...t){let e,i;typeof t[0]=="number"?(e=t[0],i=t[1]):(e=t[0].x,i=t[0].y);const n=(this.worldScreenWidth/2-e)*this.scale.x,s=(this.worldScreenHeight/2-i)*this.scale.y;return(this.x!==n||this.y!==s)&&(this.position.set(n,s),this.plugins.reset(),this.dirty=!0),this}get corner(){return new v.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(t){this.moveCorner(t)}moveCorner(...t){let e,i;return t.length===1?(e=-t[0].x*this.scale.x,i=-t[0].y*this.scale.y):(e=-t[0]*this.scale.x,i=-t[1]*this.scale.y),(e!==this.x||i!==this.y)&&(this.position.set(e,i),this.plugins.reset(),this.dirty=!0),this}get screenWidthInWorldPixels(){return this.screenWidth/this.scale.x}get screenHeightInWorldPixels(){return this.screenHeight/this.scale.y}findFitWidth(t){return this.screenWidth/t}findFitHeight(t){return this.screenHeight/t}findFit(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.min(i,n)}findCover(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.max(i,n)}fitWidth(t=this.worldWidth,e,i=!0,n){let s;e&&(s=this.center),this.scale.x=this.screenWidth/t,i&&(this.scale.y=this.scale.x);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),e&&s&&this.moveCenter(s),this}fitHeight(t=this.worldHeight,e,i=!0,n){let s;e&&(s=this.center),this.scale.y=this.screenHeight/t,i&&(this.scale.x=this.scale.y);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),e&&s&&this.moveCenter(s),this}fitWorld(t){let e;t&&(e=this.center),this.scale.x=this.screenWidth/this.worldWidth,this.scale.y=this.screenHeight/this.worldHeight,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const i=this.plugins.get("clamp-zoom",!0);return i&&i.clamp(),t&&e&&this.moveCenter(e),this}fit(t,e=this.worldWidth,i=this.worldHeight){let n;t&&(n=this.center),this.scale.x=this.screenWidth/e,this.scale.y=this.screenHeight/i,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const s=this.plugins.get("clamp-zoom",!0);return s&&s.clamp(),t&&n&&this.moveCenter(n),this}setZoom(t,e){let i;e&&(i=this.center),this.scale.set(t);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),e&&i&&this.moveCenter(i),this}zoomPercent(t,e){return this.setZoom(this.scale.x+this.scale.x*t,e)}zoom(t,e){return this.fitWidth(t+this.worldScreenWidth,e),this}get scaled(){return this.scale.x}set scaled(t){this.setZoom(t,!0)}snapZoom(t){return this.plugins.add("snap-zoom",new Ol(this,t)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new v.Point(this.worldWidth*this.scale.x-this.screenWidth,this.worldHeight*this.scale.y-this.screenHeight)}}get right(){return-this.x/this.scale.x+this.worldScreenWidth}set right(t){this.x=-t*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(t){this.x=-t*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(t){this.y=-t*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(t){this.y=-t*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(t){this._dirty=t}get forceHitArea(){return this._forceHitArea}set forceHitArea(t){t?(this._forceHitArea=t,this.hitArea=t):(this._forceHitArea=null,this.hitArea=new v.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(t){return this.plugins.add("drag",new kl(this,t)),this}clamp(t){return this.plugins.add("clamp",new ml(this,t)),this}decelerate(t){return this.plugins.add("decelerate",new Sl(this,t)),this}bounce(t){return this.plugins.add("bounce",new yl(this,t)),this}pinch(t){return this.plugins.add("pinch",new Hl(this,t)),this}snap(t,e,i){return this.plugins.add("snap",new Ul(this,t,e,i)),this}follow(t,e){return this.plugins.add("follow",new Rl(this,t,e)),this}wheel(t){return this.plugins.add("wheel",new Pl(this,t)),this}animate(t){return this.plugins.add("animate",new Ql(this,t)),this}clampZoom(t){return this.plugins.add("clamp-zoom",new vl(this,t)),this}mouseEdges(t){return this.plugins.add("mouse-edges",new Fl(this,t)),this}get pause(){return!!this._pause}set pause(t){this._pause=t,this.lastViewport=null,this.moving=!1,this.zooming=!1,t&&this.input.pause()}ensureVisible(t,e,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let a=!1;t<this.left?(this.left=t,a=!0):t+i>this.right&&(this.right=t+i,a=!0),e<this.top?(this.top=e,a=!0):e+n>this.bottom&&(this.bottom=e+n,a=!0),a&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const Wl=["bounce-x-end","bounce-x-start","bounce-y-end","bounce-y-start","clicked","drag-end","drag-start","frame-end","mouse-edge-end","mouse-edge-start","moved","moved-end","pinch-end","pinch-start","snap-end","snap-start","snap-zoom-end","snap-zoom-start","wheel-scroll","zoomed","zoomed-end"];class jl extends wt(v.Container){constructor(){super();Ue(this,Rt);this.overrideProps=["wheel"];const e={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};this.viewport=new Yl(e),super.addChild(this.viewport),Jt(this,Rt,new v.Graphics),super.addChild(At(this,Rt)),this.mask=At(this,Rt)}addChild(...e){return this.viewport.addChild(...e)}addChildAt(e,i){return this.viewport.addChildAt(e,i)}onInit(e){super.onInit(e);for(let i of Wl)e[i]&&this.viewport.on(i,e[i])}async onMount(e,i){e.props.context.viewport=this.viewport,await super.onMount(e,i);const{props:n}=e,{tick:s,app:a,canvasSize:g}=n.context;rt(()=>{n.screenWidth===void 0&&(this.viewport.screenWidth=g().width),n.screenHeight===void 0&&(this.viewport.screenHeight=g().height),this.updateMask()}),rt(()=>{const r=a();if(!r)return;const c=r.renderer;c.events.domElement.addEventListener("wheel",this.viewport.input.wheelFunction),this.viewport.options.events=c.events}),this.tickSubscription=s.observable.subscribe(({value:r})=>{this.viewport.update(r.deltaTime)}),this.updateViewportSettings(n)}onUpdate(e){super.onUpdate(e),this.updateViewportSettings(e)}updateViewportSettings(e){e.screenWidth!==void 0&&(this.viewport.screenWidth=e.screenWidth),e.screenHeight!==void 0&&(this.viewport.screenHeight=e.screenHeight),this.updateMask(),e.worldWidth!==void 0&&(this.viewport.worldWidth=e.worldWidth),e.worldHeight!==void 0&&(this.viewport.worldHeight=e.worldHeight),e.drag&&this.viewport.drag(e.drag),e.clamp&&this.viewport.clamp(e.clamp.value??e.clamp),e.wheel&&(e.wheel===!0?this.viewport.wheel():this.viewport.wheel(e.wheel)),e.decelerate&&(e.decelerate===!0?this.viewport.decelerate():this.viewport.decelerate(e.decelerate)),e.pinch&&(e.pinch===!0?this.viewport.pinch():this.viewport.pinch(e.pinch))}updateMask(){At(this,Rt)&&(At(this,Rt).clear(),At(this,Rt).beginFill(16777215),At(this,Rt).drawRect(0,0,this.viewport.screenWidth,this.viewport.screenHeight),At(this,Rt).endFill())}async onDestroy(e,i){const n=async()=>{this.tickSubscription.unsubscribe(),i()};await super.onDestroy(e,n)}follow(...e){return this.viewport.follow(...e)}get plugins(){return this.viewport.plugins}}Rt=new WeakMap,gt("Viewport",jl);function Vl(A){return It("Viewport",A)}class ql extends wt(v.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(t){for(const[e,i]of Object.entries(t))i!==void 0&&(e==="image"?this.texture=await v.Assets.load(i):e in this&&(this[e]=i))}}gt("NineSliceSprite",ql);function Xl(A){return It("NineSliceSprite",A)}const So=["click","mouseover","mouseout","mouseenter","mouseleave","mousemove","mouseup","mousedown","touchstart","touchend","touchmove","touchcancel","wheel","scroll","resize","focus","blur","change","input","submit","reset","keydown","keyup","keypress","contextmenu","drag","dragend","dragenter","dragleave","dragover","drop","dragstart","select","selectstart","selectend","selectall","selectnone"];class Zl{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(t){return["input","textarea","select"].includes(t.toLowerCase())}onInit(t){var e;typeof t.element=="string"?(this.element=document.createElement(t.element),this.isFormElementType=this.isFormElement(t.element)):(this.element=t.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(t.onBeforeDestroy||t["on-before-destroy"])&&(this.onBeforeDestroy=t.onBeforeDestroy||t["on-before-destroy"]);for(const i of So)if((e=t.attrs)!=null&&e[i]){const n=s=>{var a,g,r,c;if(i==="submit"&&this.element.tagName.toLowerCase()==="form"){s.preventDefault();const u=new FormData(this.element),o={};u.forEach((l,h)=>{o[h]?Array.isArray(o[h])?o[h].push(l):o[h]=[o[h],l]:o[h]=l}),(g=(a=t.attrs)[i])==null||g.call(a,s,o)}else(c=(r=t.attrs)[i])==null||c.call(r,s)};this.eventListeners.set(i,n),this.element.addEventListener(i,n,!1)}if(t.children)for(const i of t.children)cs(i)?i.subscribe(({elements:n})=>{for(const s of n)this.element.appendChild(s.componentInstance.element)}):this.element.appendChild(i.componentInstance.element);this.onUpdate(t)}onMount(t){const i=t.propObservables.attrs;if(this.isFormElementType&&(i!=null&&i.value)&&H(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const a=s.target;this.valueSignal.set(a.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(t){if(this.element){for(const[e,i]of Object.entries(t.attrs||{}))if(e==="tabindex"){const n=H(i)?i():i;n!=null?this.element.setAttribute("tabindex",String(n)):this.element.removeAttribute("tabindex")}else if(e==="class"){const n=i.items||i.value||i;if(this.element.className="",typeof n=="string")this.element.className=n;else if(Array.isArray(n))this.element.classList.add(...n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a&&this.element.classList.add(s)}else if(e==="style"){const n=i.items||i.value||i;if(typeof n=="string")this.element.setAttribute("style",n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a!=null&&(this.element.style[s]=a)}else if(e==="value"&&this.isFormElementType)if(H(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else So.includes(e)||this.element.setAttribute(e,i);t.textContent&&(this.element.textContent=t.textContent)}}async onDestroy(t,e){if(this.element){this.onBeforeDestroy&&await this.onBeforeDestroy();for(const[i,n]of this.eventListeners)this.element.removeEventListener(i,n,!1);this.eventListeners.clear(),this.element.remove(),e&&e()}}}gt("DOMElement",Zl);const xo=A=>It("DOMElement",A);class zl extends wt(v.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(t){const e=t._scopeClass;let i={element:"div"};e?(i.attrs={...t.attrs},i.attrs.class?typeof i.attrs.class=="string"?i.attrs.class=`${e} ${i.attrs.class}`:Array.isArray(i.attrs.class)?i.attrs.class=[e,...i.attrs.class]:typeof i.attrs.class=="object"&&(i.attrs.class={[e]:!0,...i.attrs.class}):i.attrs.class=e):t.attrs&&(i.attrs=t.attrs);const n=ut(xo,i,t.children);this.element=n.componentInstance.element}}gt("DOMContainer",zl);const $l=A=>It("DOMContainer",A);var ko=(A=>(A.Normal="normal",A.Hover="hover",A.Pressed="pressed",A.Disabled="disabled",A))(ko||{});function tc(A){const t=Y("normal"),e=Y(!1),i=Y(!1),n=Gi(A),{text:s,disabled:a,width:g,height:r,style:c,shape:u,controlName:o}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})},shape:{type:String,default:"rect"},controlName:{type:String,default:void 0}}),l=()=>A.controls?H(A.controls)?A.controls():A.controls:null;rt(()=>{const d=a(),C=e(),p=i();d?t.set("disabled"):C?t.set("pressed"):p?t.set("hover"):t.set("normal")});const h={pointerenter:d=>{var C;a()||(i.set(!0),(C=A.hoverEnter)==null||C.call(A,d))},pointerleave:d=>{var C;i.set(!1),e.set(!1),(C=A.hoverLeave)==null||C.call(A,d)},pointerdown:async d=>{var C;if(!a()){e.set(!0),(C=A.pressDown)==null||C.call(A,d);const p=l(),D=o();p&&D&&p.applyControl&&await p.applyControl(D,!0)}},pointerup:async d=>{var C;if(!a()&&e()){e.set(!1),(C=A.pressUp)==null||C.call(A,d);const p=l(),D=o();p&&D&&p.applyControl&&await p.applyControl(D,!1)}},pointertap:async d=>{var C;if(!a()){(C=A.click)==null||C.call(A,d);const p=l(),D=o();p&&D&&p.applyControl&&await p.applyControl(D)}}},I=()=>{if(A.background)return A.background;const d=u(),C=Qt(()=>{const D=c().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},w=t();return D[w]||D.normal});if(d==="circle"){const p=Qt(()=>Math.min(g(),r())/2);return ut(Ui,{radius:p,x:Qt(()=>g()/2),y:Qt(()=>r()/2),color:C})}else return d==="ellipse"?ut(fo,{width:g,height:r,color:C}):ut(Bo,{width:g,height:r,color:C})},E=()=>A.children&&A.children.length>0?A.children:[ut(Do,{text:s,x:Qt(()=>g()/2),y:Qt(()=>r()/2),anchor:{x:.5,y:.5},style:Qt(()=>{const C=c().text||{};return{fontSize:C.fontSize||16,fontFamily:C.fontFamily||"Arial",fill:C.color||"#ffffff"}})()})];return ut(eA,{x:A.x,y:A.y,width:A.width,height:A.height,alpha:A.alpha,visible:A.visible,cursor:A.cursor||"pointer",tabindex:A.tabindex,...h},[I(),...E()])}function ec(A={}){const t=Object.assign({outerScale:{x:1,y:1},innerScale:{x:1,y:1},innerColor:"black",outerColor:"black"},A),e=()=>H(t.controls)?t.controls():t.controls;let i=70,n=10;const s=.5;let a=!1,g=null,r=0;const c=Y(0),u=Y(0),o=Y(s);function l(w){const b=w.x-0,_=w.y-0;return Math.min(1,Math.sqrt(b*b+_*_)/i)}function h(w){let b=Math.atan2(w.y,w.x);return b>=-Math.PI/8&&b<0||b>=0&&b<Math.PI/8?"right":b>=Math.PI/8&&b<3*Math.PI/8?"bottom_right":b>=3*Math.PI/8&&b<5*Math.PI/8?"bottom":b>=5*Math.PI/8&&b<7*Math.PI/8?"bottom_left":b>=7*Math.PI/8&&b<Math.PI||b>=-Math.PI&&b<-7*Math.PI/8?"left":b>=-7*Math.PI/8&&b<-5*Math.PI/8?"top_left":b>=-5*Math.PI/8&&b<-3*Math.PI/8?"top":"top_right"}function I(w){var N;const b=w.currentTarget||w.target;g=w.getLocalPosition(b),a=!0,o.set(1),(N=t.onStart)==null||N.call(t);const _=e();_&&(_.handleJoystickStart?_.handleJoystickStart():_.joystick&&_.joystick.handleJoystickStart&&_.joystick.handleJoystickStart())}function E(){var b;if(!a)return;c.set(0),u.set(0),a=!1,o.set(s),(b=t.onEnd)==null||b.call(t);const w=e();w&&(w.handleJoystickEnd?w.handleJoystickEnd():w.joystick&&w.joystick.handleJoystickEnd&&w.joystick.handleJoystickEnd())}function d(w){var sA,UA,Ge;if(a==!1)return;const b=w.currentTarget||w.target;let _=w.getLocalPosition(b),N=_.x-((g==null?void 0:g.x)??0),J=_.y-((g==null?void 0:g.y)??0),L=new pr.Point(0,0),O=0;if(N==0&&J==0)return;let j="left";if(N==0){J>0?(L.set(0,J>i?i:J),O=270,j="bottom"):(L.set(0,-(Math.abs(J)>i?i:Math.abs(J))),O=90,j="top"),c.set(L.x),u.set(L.y),r=l(L);const Ot={angle:O,direction:j,power:r};(sA=t.onChange)==null||sA.call(t,Ot);const lt=e();lt&&(lt.handleJoystickChange?lt.handleJoystickChange(Ot):lt.joystick&&lt.joystick.handleJoystickChange&&lt.joystick.handleJoystickChange(Ot));return}if(J==0){N>0?(L.set(Math.abs(N)>i?i:Math.abs(N),0),O=0,j="right"):(L.set(-(Math.abs(N)>i?i:Math.abs(N)),0),O=180,j="left"),c.set(L.x),u.set(L.y),r=l(L);const Ot={angle:O,direction:j,power:r};(UA=t.onChange)==null||UA.call(t,Ot);const lt=e();lt&&(lt.handleJoystickChange?lt.handleJoystickChange(Ot):lt.joystick&&lt.joystick.handleJoystickChange&&lt.joystick.handleJoystickChange(Ot));return}let et=Math.abs(J/N),at=Math.atan(et);O=at*180/Math.PI;let Z=0,ft=0;N*N+J*J>=i*i?(Z=i*Math.cos(at),ft=i*Math.sin(at)):(Z=Math.abs(N)>i?i:Math.abs(N),ft=Math.abs(J)>i?i:Math.abs(J)),J<0&&(ft=-Math.abs(ft)),N<0&&(Z=-Math.abs(Z)),N>0&&J<0||(N<0&&J<0?O=180-O:N<0&&J>0?O=O+180:N>0&&J>0&&(O=360-O)),L.set(Z,ft),r=l(L),j=h(L),c.set(L.x),u.set(L.y);const Et={angle:O,direction:j,power:r};(Ge=t.onChange)==null||Ge.call(t,Et);const Kt=e();Kt&&(Kt.handleJoystickChange?Kt.handleJoystickChange(Et):Kt.joystick&&Kt.joystick.handleJoystickChange&&Kt.joystick.handleJoystickChange(Et))}let C,p;t.outer?p=ut(un,{image:t.outer,anchor:{x:.5,y:.5},scale:t.outerScale}):p=ut(ge,{draw:w=>{w.circle(0,0,i).fill(t.outerColor)},alpha:.5});const D={scale:t.innerScale,x:c,y:u,alpha:o};return t.inner?C=t.inner:C=ut(ge,{draw:w=>{w.circle(0,0,n*2.5).fill(t.innerColor)},...D}),ut(eA,{...A,pointerdown:I,pointerup:E,pointerupoutside:E,pointermove:d},p,C)}const Ie=class Ie{constructor(){this.containers=new Map,this.scrollAnimations=new Map}static getInstance(){return Ie.instance||(Ie.instance=new Ie),Ie.instance}registerContainer(t,e){this.containers.set(t,{...e,id:t})}updateContainer(t,e){const i=this.containers.get(t);i&&this.containers.set(t,{...i,...e})}setTabindex(t,e){const i=this.containers.get(t);i&&(i.tabindexSubscription&&i.tabindexSubscription.unsubscribe(),i.tabindex=e,H(e)&&(i.tabindexSubscription=e.observable.subscribe(n=>{n!==null&&n!==i.currentIndex()&&this.setIndex(t,n)})))}unregisterContainer(t){this.containers.delete(t),this.scrollAnimations.delete(t)}registerFocusable(t,e,i){const n=this.containers.get(t);if(!n){console.warn(`FocusContainer with id "${t}" not found`);return}n.focusables.set(i,e),(H(n.tabindex)?n.tabindex():n.tabindex)===i&&n.currentIndex()===null&&this.setIndex(t,i)}unregisterFocusable(t,e){const i=this.containers.get(t);i&&i.focusables.delete(e)}navigate(t,e){const i=this.containers.get(t);if(!i||i.element&&kt(i.element))return;if(i.throttle){const g=Date.now(),r=i.lastNavigateTime||0;if(g-r<i.throttle)return;i.lastNavigateTime=g}const n=i.currentIndex(),s=Array.from(i.focusables.keys()).sort((g,r)=>g-r);if(s.length===0)return;let a=null;if(n===null)a=e==="next"?s[0]:s[s.length-1];else{const g=s.indexOf(n);e==="next"?g<s.length-1?a=s[g+1]:a=s[0]:g>0?a=s[g-1]:a=s[s.length-1]}if(a!==null){const g=i.tabindex;H(g)?g.set(a):this.setIndex(t,a)}}setIndex(t,e){const i=this.containers.get(t);if(!i)return;const n=i.focusables.get(e);if(!n){console.warn(`No focusable element at index ${e} in container "${t}"`);return}i.currentIndex.set(e),i.focusedElement.set(n);const s=i.tabindex;H(s)&&s()!==e&&s.set(e),i.onFocusChange&&i.onFocusChange(e,n);const a=n.componentInstance;if(a&&a.element&&typeof a.element.focus=="function"){const g=a.element;g.focus(),typeof g.scrollIntoView=="function"&&g.scrollIntoView({block:"center",behavior:"smooth"})}if(i.autoScroll){const g=i.viewport;if(g){const r=typeof i.autoScroll=="boolean"?{center:!0}:i.autoScroll;this.scrollToElement(t,e,g,r)}}}getElement(t,e){const i=this.containers.get(t);return i&&i.focusables.get(e)||null}getCurrentIndexSignal(t){const e=this.containers.get(t);return e?e.currentIndex:null}getFocusedElementSignal(t){const e=this.containers.get(t);return e?e.focusedElement:null}isElementVisible(t,e){if(!e)return!0;const i=this.getElementBounds(t),n=e.getVisibleBounds();return i.x<n.right&&i.x+i.width>n.left&&i.y<n.bottom&&i.y+i.height>n.top}getElementBounds(t){const e=t.componentInstance;if(!e)return{x:0,y:0,width:0,height:0};const i=e.getLocalBounds(),n=e.getGlobalPosition();return{x:n.x,y:n.y,width:i.width,height:i.height}}scrollToElement(t,e,i,n={}){const s=this.containers.get(t);if(!s)return;const a=s.focusables.get(e);if(!a)return;const g=i||s.viewport;if(!g)return;const r=this.getElementBounds(a);g.getVisibleBounds();const c=n.padding||0,u=n.center!==!1,o=n.smooth||!1,l=n.duration||300;if(this.isElementVisible(a,g)){if(u){const h=r.x+r.width/2,I=r.y+r.height/2;o?this.animateScroll(t,g,h,I,l):g.moveCenter(h,I)}return}if(u){const h=r.x+r.width/2,I=r.y+r.height/2;o?this.animateScroll(t,g,h,I,l):g.moveCenter(h,I)}else{const h=r.x-c,I=r.y-c,E=r.width+c*2,d=r.height+c*2;if(o){const C=r.x+r.width/2,p=r.y+r.height/2;this.animateScroll(t,g,C,p,l)}else g.fit(h,I,E,d,c)}}animateScroll(t,e,i,n,s){const a=e.center,g=a.x,r=a.y,c={startTime:Date.now(),startX:g,startY:r,targetX:i,targetY:n,duration:s};this.scrollAnimations.set(t,c);const u=()=>{const o=this.scrollAnimations.get(t);if(!o)return;const l=Date.now()-o.startTime,h=Math.min(l/o.duration,1),I=1-Math.pow(1-h,3),E=o.startX+(o.targetX-o.startX)*I,d=o.startY+(o.targetY-o.startY)*I;e.moveCenter(E,d),h<1?requestAnimationFrame(u):this.scrollAnimations.delete(t)};requestAnimationFrame(u)}};Ie.instance=null;let _A=Ie;const Bt=_A.getInstance();class Ac extends St{constructor(){super(...arguments),this.element=null,this.controlsDirective=null,this.containerId="",this.controlsSubscription=null,this.originalControls=null}onInit(t){this.element=t;const e=t.componentInstance;e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId());const i=t.props.controls;if(!i)return;const n=H(i)?i():i;n&&(this.originalControls=n)}setupNavigationControls(t){var i,n,s,a,g,r,c,u,o;if(!this.controlsDirective){console.warn("FocusNavigation: Controls directive not found, cannot set up navigation");return}t=t.value??t;const e={...t,up:{...t.up,repeat:((i=t.up)==null?void 0:i.repeat)??!0,bind:((n=t.up)==null?void 0:n.bind)??["up","top_left","top_right"],keyDown:l=>{var h,I;this.navigate("previous"),(I=(h=t.up)==null?void 0:h.keyDown)==null||I.call(h,l)}},down:{...t.down,repeat:((s=t.down)==null?void 0:s.repeat)??!0,bind:((a=t.down)==null?void 0:a.bind)??["down","bottom_left","bottom_right"],keyDown:l=>{var h,I;this.navigate("next"),(I=(h=t.down)==null?void 0:h.keyDown)==null||I.call(h,l)}},left:{...t.left,repeat:((g=t.left)==null?void 0:g.repeat)??!0,bind:((r=t.left)==null?void 0:r.bind)??"left",keyDown:l=>{var h,I;this.navigate("previous"),(I=(h=t.left)==null?void 0:h.keyDown)==null||I.call(h,l)}},right:{...t.right,repeat:((c=t.right)==null?void 0:c.repeat)??!0,bind:((u=t.right)==null?void 0:u.bind)??"right",keyDown:l=>{var h,I;this.navigate("next"),(I=(h=t.right)==null?void 0:h.keyDown)==null||I.call(h,l)}},action:{...t.action,bind:((o=t.action)==null?void 0:o.bind)??["space","enter"],keyDown:l=>{var h,I;this.triggerAction(),(I=(h=t.action)==null?void 0:h.keyDown)==null||I.call(h,l)}}};this.controlsDirective.onUpdate({controls:e},this.element)}navigate(t){this.containerId&&Bt.navigate(this.containerId,t)}triggerAction(){if(!this.containerId)return;const t=Bt.getFocusedElementSignal(this.containerId);if(!t)return;const e=t();if(!e)return;const i=e.componentInstance;i&&typeof i.emit=="function"&&i.emit("pointertap",{target:i})}onMount(t){var n;const e=t.componentInstance;if(e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId()),this.controlsDirective=(n=t.directives)==null?void 0:n.controls,!this.controlsDirective){const{applyDirective:s}=require("../engine/reactive"),a=s(t,"controls");a&&(t.directives||(t.directives={}),t.directives.controls=a,this.controlsDirective=a)}const i=t.props.controls;if(i){const s=H(i)?i():i;s&&(this.originalControls=s,this.setupNavigationControls(s))}H(i)&&(this.controlsSubscription=i.observable.subscribe(s=>{s&&(this.originalControls=s,this.setupNavigationControls(s))}))}onUpdate(t,e){if(t.controls!==void 0){const i=H(t.controls)?t.controls():t.controls;i&&(this.originalControls=i,this.setupNavigationControls(i))}}onDestroy(t){this.controlsSubscription&&(this.controlsSubscription.unsubscribe(),this.controlsSubscription=null),this.element=null,this.controlsDirective=null,this.originalControls=null}}xt("focusNavigation",Ac);class ic extends wt(v.Container){constructor(){super(...arguments),this.containerId="",this.currentIndexSignal=null,this.focusedElementSignal=null,this.registeredFocusables=new Set}onInit(t){var s;super.onInit(t),this.containerId=`focus-container-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;const e=Y(null),i=Y(null);this.currentIndexSignal=e,this.focusedElementSignal=i;const n=t.viewport||((s=t.context)==null?void 0:s.viewport);Bt.registerContainer(this.containerId,{focusables:new Map,currentIndex:e,focusedElement:i,onFocusChange:t.onFocusChange,autoScroll:t.autoScroll,viewport:n,throttle:t.throttle??150})}async onMount(t){if(await super.onMount(t,void 0),Bt.updateContainer(this.containerId,{element:t}),t.props.controls){const e=ps(t,"focusNavigation");e&&!t.directives&&(t.directives={}),e&&(t.directives.focusNavigation=e,e.onInit(t),e.onMount(t))}if(t.allElements){const e=t.allElements.subscribe(()=>{this.registerChildren(t)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(e)}Bt.setTabindex(this.containerId,t.propObservables.tabindex),setTimeout(()=>{this.registerChildren(t)},0)}onUpdate(t){var i;super.onUpdate(t);const e=t.viewport||((i=t.context)==null?void 0:i.viewport);Bt.updateContainer(this.containerId,{viewport:e,autoScroll:t.autoScroll,onFocusChange:t.onFocusChange,throttle:t.throttle??150})}async onDestroy(t,e){for(const i of this.registeredFocusables)Bt.unregisterFocusable(this.containerId,i);this.registeredFocusables.clear(),Bt.unregisterContainer(this.containerId),await super.onDestroy(t,e)}registerChildren(t){if(!t.props.children)return;const e=n=>{for(const s of n)if(s){if(H(s)||s&&typeof s.subscribe=="function"){(H(s)?s.observable:s).subscribe(a=>{if(a&&typeof a=="object"&&"elements"in a){const g=a.elements||[];Array.isArray(g)&&e(g)}else Array.isArray(a)?e(a):a&&i(a)});continue}if(Array.isArray(s)){e(s);continue}i(s)}},i=n=>{var a,g,r;if(!n||!n.componentInstance)return;let s;if(((g=(a=n.props)==null?void 0:a.attrs)==null?void 0:g.tabindex)!==void 0){const c=n.props.attrs.tabindex;s=H(c)?c():c}else if(((r=n.props)==null?void 0:r.tabindex)!==void 0){const c=n.props.tabindex;s=H(c)?c():c}if(s!==void 0&&s>=0&&(this.registeredFocusables.has(s)||(Bt.registerFocusable(this.containerId,n,s),this.registeredFocusables.add(s))),n.props&&n.props.children)if(Array.isArray(n.props.children))e(n.props.children);else if(H(n.props.children)||n.props.children&&typeof n.props.children.subscribe=="function"){const c=(H(n.props.children)?n.props.children.observable:n.props.children).subscribe(u=>{if(u&&typeof u=="object"&&"elements"in u){const o=u.elements||[];Array.isArray(o)&&e(o)}else Array.isArray(u)?e(u):u&&i(u)});n.effectSubscriptions&&n.effectSubscriptions.push(c)}else i(n.props.children)};if(Array.isArray(t.props.children))e(t.props.children);else if(t.props.children)if(H(t.props.children)||t.props.children&&typeof t.props.children.subscribe=="function"){const n=(H(t.props.children)?t.props.children.observable:t.props.children).subscribe(s=>{if(s&&typeof s=="object"&&"elements"in s){const a=s.elements||[];Array.isArray(a)&&e(a)}else Array.isArray(s)?e(s):s&&i(s)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(n)}else i(t.props.children)}getContainerId(){return this.containerId}getCurrentIndexSignal(){return this.currentIndexSignal}getFocusedElementSignal(){return this.focusedElementSignal}}gt("FocusContainer",ic);const nc=A=>It("FocusContainer",A);var sc=(()=>{var A=ot&&ot.tagName.toUpperCase()==="SCRIPT"&&ot.src||new URL("index.global.js",document.baseURI).href;return function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var i,n;e.ready=new Promise(function(B,f){i=B,n=f});var s=Object.assign({},e),a="";typeof document<"u"&&document.currentScript&&(a=document.currentScript.src),A&&(a=A),a.indexOf("blob:")!==0?a=a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1):a="";var g=e.print||console.log.bind(console),r=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var c;e.wasmBinary&&(c=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&Z("no native wasm support detected");var u,o=!1;function l(B,f,Q){Q=f+Q;for(var y="";!(f>=Q);){var m=B[f++];if(!m)break;if(m&128){var S=B[f++]&63;if((m&224)==192)y+=String.fromCharCode((m&31)<<6|S);else{var k=B[f++]&63;m=(m&240)==224?(m&15)<<12|S<<6|k:(m&7)<<18|S<<12|k<<6|B[f++]&63,65536>m?y+=String.fromCharCode(m):(m-=65536,y+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else y+=String.fromCharCode(m)}return y}var h,I,E,d,C,p,D,w,b;function _(){var B=u.buffer;h=B,e.HEAP8=I=new Int8Array(B),e.HEAP16=d=new Int16Array(B),e.HEAP32=p=new Int32Array(B),e.HEAPU8=E=new Uint8Array(B),e.HEAPU16=C=new Uint16Array(B),e.HEAPU32=D=new Uint32Array(B),e.HEAPF32=w=new Float32Array(B),e.HEAPF64=b=new Float64Array(B)}var N,J=[],L=[],O=[];function j(){var B=e.preRun.shift();J.unshift(B)}var et=0,at=null;function Z(B){throw e.onAbort&&e.onAbort(B),B="Aborted("+B+")",r(B),o=!0,B=new WebAssembly.RuntimeError(B+". Build with -sASSERTIONS for more info."),n(B),B}function ft(B){return B.startsWith("data:application/octet-stream;base64,")}var Et;if(Et="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/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!ft(Et)){var Kt=Et;Et=e.locateFile?e.locateFile(Kt,a):a+Kt}function sA(){var B=Et;try{if(B==Et&&c)return new Uint8Array(c);if(ft(B))try{var f=wh(B.slice(37)),Q=new Uint8Array(f.length);for(B=0;B<f.length;++B)Q[B]=f.charCodeAt(B);var y=Q}catch{throw Error("Converting base64 string to bytes failed.")}else y=void 0;var m=y;if(m)return m;throw"both async and sync fetching of the wasm failed"}catch(S){Z(S)}}function UA(){return c||typeof fetch!="function"?Promise.resolve().then(function(){return sA()}):fetch(Et,{credentials:"same-origin"}).then(function(B){if(!B.ok)throw"failed to load wasm binary file at '"+Et+"'";return B.arrayBuffer()}).catch(function(){return sA()})}function Ge(B){for(;0<B.length;)B.shift()(e)}function Ot(B){if(B===void 0)return"_unknown";B=B.replace(/[^a-zA-Z0-9_]/g,"$");var f=B.charCodeAt(0);return 48<=f&&57>=f?"_"+B:B}function lt(B,f){return B=Ot(B),function(){return f.apply(this,arguments)}}var _t=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Qn=[];function TA(B){var f=Error,Q=lt(B,function(y){this.name=B,this.message=y,y=Error(y).stack,y!==void 0&&(this.stack=this.toString()+`
28
+ `+y.replace(/^Error(:[^\n]*)?\n/,""))});return Q.prototype=Object.create(f.prototype),Q.prototype.constructor=Q,Q.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Q}var Ne=void 0;function P(B){throw new Ne(B)}var oA=B=>(B||P("Cannot use deleted val. handle = "+B),_t[B].value),OA=B=>{switch(B){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var f=Qn.length?Qn.pop():_t.length;return _t[f]={ga:1,value:B},f}},Ar=void 0,ir=void 0;function ct(B){for(var f="";E[B];)f+=ir[E[B++]];return f}var rA=[];function pn(){for(;rA.length;){var B=rA.pop();B.M.$=!1,B.delete()}}var aA=void 0,Yt={};function yn(B,f){for(f===void 0&&P("ptr should not be undefined");B.R;)f=B.ba(f),B=B.R;return f}var Be={};function nr(B){B=Ir(B);var f=ct(B);return Vt(B),f}function sr(B,f){var Q=Be[B];return Q===void 0&&P(f+" has unknown type "+nr(B)),Q}function JA(){}var wn=!1;function or(B){--B.count.value,B.count.value===0&&(B.T?B.U.W(B.T):B.P.N.W(B.O))}function rr(B,f,Q){return f===Q?B:Q.R===void 0?null:(B=rr(B,f,Q.R),B===null?null:Q.na(B))}var ar={};function ih(B,f){return f=yn(B,f),Yt[f]}var gr=void 0;function PA(B){throw new gr(B)}function KA(B,f){return f.P&&f.O||PA("makeClassHandle requires ptr and ptrType"),!!f.U!=!!f.T&&PA("Both smartPtrType and smartPtr must be specified"),f.count={value:1},He(Object.create(B,{M:{value:f}}))}function He(B){return typeof FinalizationRegistry>"u"?(He=f=>f,B):(wn=new FinalizationRegistry(f=>{or(f.M)}),He=f=>{var Q=f.M;return Q.T&&wn.register(f,{M:Q},f),f},JA=f=>{wn.unregister(f)},He(B))}var YA={};function mn(B){for(;B.length;){var f=B.pop();B.pop()(f)}}function gA(B){return this.fromWireType(p[B>>2])}var Le={},WA={};function te(B,f,Q){function y(M){M=Q(M),M.length!==B.length&&PA("Mismatched type converter count");for(var F=0;F<B.length;++F)Wt(B[F],M[F])}B.forEach(function(M){WA[M]=f});var m=Array(f.length),S=[],k=0;f.forEach((M,F)=>{Be.hasOwnProperty(M)?m[F]=Be[M]:(S.push(M),Le.hasOwnProperty(M)||(Le[M]=[]),Le[M].push(()=>{m[F]=Be[M],++k,k===S.length&&y(m)}))}),S.length===0&&y(m)}function Dn(B){switch(B){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+B)}}function Wt(B,f,Q={}){if(!("argPackAdvance"in f))throw new TypeError("registerType registeredInstance requires argPackAdvance");var y=f.name;if(B||P('type "'+y+'" must have a positive integer typeid pointer'),Be.hasOwnProperty(B)){if(Q.ua)return;P("Cannot register type '"+y+"' twice")}Be[B]=f,delete WA[B],Le.hasOwnProperty(B)&&(f=Le[B],delete Le[B],f.forEach(m=>m()))}function vn(B){P(B.M.P.N.name+" instance already deleted")}function ee(){}function bn(B,f,Q){if(B[f].S===void 0){var y=B[f];B[f]=function(){return B[f].S.hasOwnProperty(arguments.length)||P("Function '"+Q+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+B[f].S+")!"),B[f].S[arguments.length].apply(this,arguments)},B[f].S=[],B[f].S[y.Z]=y}}function nh(B,f){e.hasOwnProperty(B)?(P("Cannot register public name '"+B+"' twice"),bn(e,B,B),e.hasOwnProperty(void 0)&&P("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[B].S[void 0]=f):e[B]=f}function sh(B,f,Q,y,m,S,k,M){this.name=B,this.constructor=f,this.X=Q,this.W=y,this.R=m,this.pa=S,this.ba=k,this.na=M,this.ja=[]}function Sn(B,f,Q){for(;f!==Q;)f.ba||P("Expected null or instance of "+Q.name+", got an instance of "+f.name),B=f.ba(B),f=f.R;return B}function oh(B,f){return f===null?(this.ea&&P("null is not a valid "+this.name),0):(f.M||P('Cannot pass "'+Rn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),Sn(f.M.O,f.M.P.N,this.N))}function rh(B,f){if(f===null){if(this.ea&&P("null is not a valid "+this.name),this.da){var Q=this.fa();return B!==null&&B.push(this.W,Q),Q}return 0}if(f.M||P('Cannot pass "'+Rn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&f.M.P.ca&&P("Cannot convert argument of type "+(f.M.U?f.M.U.name:f.M.P.name)+" to parameter type "+this.name),Q=Sn(f.M.O,f.M.P.N,this.N),this.da)switch(f.M.T===void 0&&P("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:f.M.U===this?Q=f.M.T:P("Cannot convert argument of type "+(f.M.U?f.M.U.name:f.M.P.name)+" to parameter type "+this.name);break;case 1:Q=f.M.T;break;case 2:if(f.M.U===this)Q=f.M.T;else{var y=f.clone();Q=this.xa(Q,OA(function(){y.delete()})),B!==null&&B.push(this.W,Q)}break;default:P("Unsupporting sharing policy")}return Q}function ah(B,f){return f===null?(this.ea&&P("null is not a valid "+this.name),0):(f.M||P('Cannot pass "'+Rn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),f.M.P.ca&&P("Cannot convert argument of type "+f.M.P.name+" to parameter type "+this.name),Sn(f.M.O,f.M.P.N,this.N))}function jt(B,f,Q,y){this.name=B,this.N=f,this.ea=Q,this.ca=y,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,f.R!==void 0?this.toWireType=rh:(this.toWireType=y?oh:ah,this.V=null)}function gh(B,f){e.hasOwnProperty(B)||PA("Replacing nonexistant public symbol"),e[B]=f,e[B].Z=void 0}function lh(B,f){var Q=[];return function(){if(Q.length=0,Object.assign(Q,arguments),B.includes("j")){var y=e["dynCall_"+B];y=Q.length?y.apply(null,[f].concat(Q)):y.call(null,f)}else y=N.get(f).apply(null,Q);return y}}function Ft(B,f){B=ct(B);var Q=B.includes("j")?lh(B,f):N.get(f);return typeof Q!="function"&&P("unknown function pointer with signature "+B+": "+f),Q}var lr=void 0;function jA(B,f){function Q(S){m[S]||Be[S]||(WA[S]?WA[S].forEach(Q):(y.push(S),m[S]=!0))}var y=[],m={};throw f.forEach(Q),new lr(B+": "+y.map(nr).join([", "]))}function xn(B,f,Q,y,m){var S=f.length;2>S&&P("argTypes array size mismatch! Must at least get return value and 'this' types!");var k=f[1]!==null&&Q!==null,M=!1;for(Q=1;Q<f.length;++Q)if(f[Q]!==null&&f[Q].V===void 0){M=!0;break}var F=f[0].name!=="void",R=S-2,G=Array(R),U=[],K=[];return function(){if(arguments.length!==R&&P("function "+B+" called with "+arguments.length+" arguments, expected "+R+" args!"),K.length=0,U.length=k?2:1,U[0]=m,k){var st=f[1].toWireType(K,this);U[1]=st}for(var V=0;V<R;++V)G[V]=f[V+2].toWireType(K,arguments[V]),U.push(G[V]);if(V=y.apply(null,U),M)mn(K);else for(var Ct=k?1:2;Ct<f.length;Ct++){var Gt=Ct===1?st:G[Ct-2];f[Ct].V!==null&&f[Ct].V(Gt)}return st=F?f[0].fromWireType(V):void 0,st}}function kn(B,f){for(var Q=[],y=0;y<B;y++)Q.push(D[f+4*y>>2]);return Q}function Mn(B){4<B&&--_t[B].ga===0&&(_t[B]=void 0,Qn.push(B))}function Rn(B){if(B===null)return"null";var f=typeof B;return f==="object"||f==="array"||f==="function"?B.toString():""+B}function ch(B,f){switch(f){case 2:return function(Q){return this.fromWireType(w[Q>>2])};case 3:return function(Q){return this.fromWireType(b[Q>>3])};default:throw new TypeError("Unknown float type: "+B)}}function hh(B,f,Q){switch(f){case 0:return Q?function(y){return I[y]}:function(y){return E[y]};case 1:return Q?function(y){return d[y>>1]}:function(y){return C[y>>1]};case 2:return Q?function(y){return p[y>>2]}:function(y){return D[y>>2]};default:throw new TypeError("Unknown integer type: "+B)}}function uh(B,f){for(var Q="",y=0;!(y>=f/2);++y){var m=d[B+2*y>>1];if(m==0)break;Q+=String.fromCharCode(m)}return Q}function Ih(B,f,Q){if(Q===void 0&&(Q=2147483647),2>Q)return 0;Q-=2;var y=f;Q=Q<2*B.length?Q/2:B.length;for(var m=0;m<Q;++m)d[f>>1]=B.charCodeAt(m),f+=2;return d[f>>1]=0,f-y}function Bh(B){return 2*B.length}function fh(B,f){for(var Q=0,y="";!(Q>=f/4);){var m=p[B+4*Q>>2];if(m==0)break;++Q,65536<=m?(m-=65536,y+=String.fromCharCode(55296|m>>10,56320|m&1023)):y+=String.fromCharCode(m)}return y}function Eh(B,f,Q){if(Q===void 0&&(Q=2147483647),4>Q)return 0;var y=f;Q=y+Q-4;for(var m=0;m<B.length;++m){var S=B.charCodeAt(m);if(55296<=S&&57343>=S){var k=B.charCodeAt(++m);S=65536+((S&1023)<<10)|k&1023}if(p[f>>2]=S,f+=4,f+4>Q)break}return p[f>>2]=0,f-y}function Ch(B){for(var f=0,Q=0;Q<B.length;++Q){var y=B.charCodeAt(Q);55296<=y&&57343>=y&&++Q,f+=4}return f}var dh={};function cr(B){var f=dh[B];return f===void 0?ct(B):f}var VA=[];function Qh(B){var f=VA.length;return VA.push(B),f}function ph(B,f){for(var Q=Array(B),y=0;y<B;++y)Q[y]=sr(D[f+4*y>>2],"parameter "+y);return Q}var hr=[],yh=[null,[],[]];Ne=e.BindingError=TA("BindingError"),e.count_emval_handles=function(){for(var B=0,f=5;f<_t.length;++f)_t[f]!==void 0&&++B;return B},e.get_first_emval=function(){for(var B=5;B<_t.length;++B)if(_t[B]!==void 0)return _t[B];return null},Ar=e.PureVirtualError=TA("PureVirtualError");for(var ur=Array(256),qA=0;256>qA;++qA)ur[qA]=String.fromCharCode(qA);ir=ur,e.getInheritedInstanceCount=function(){return Object.keys(Yt).length},e.getLiveInheritedInstances=function(){var B=[],f;for(f in Yt)Yt.hasOwnProperty(f)&&B.push(Yt[f]);return B},e.flushPendingDeletes=pn,e.setDelayFunction=function(B){aA=B,rA.length&&aA&&aA(pn)},gr=e.InternalError=TA("InternalError"),ee.prototype.isAliasOf=function(B){if(!(this instanceof ee&&B instanceof ee))return!1;var f=this.M.P.N,Q=this.M.O,y=B.M.P.N;for(B=B.M.O;f.R;)Q=f.ba(Q),f=f.R;for(;y.R;)B=y.ba(B),y=y.R;return f===y&&Q===B},ee.prototype.clone=function(){if(this.M.O||vn(this),this.M.aa)return this.M.count.value+=1,this;var B=He,f=Object,Q=f.create,y=Object.getPrototypeOf(this),m=this.M;return B=B(Q.call(f,y,{M:{value:{count:m.count,$:m.$,aa:m.aa,O:m.O,P:m.P,T:m.T,U:m.U}}})),B.M.count.value+=1,B.M.$=!1,B},ee.prototype.delete=function(){this.M.O||vn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),JA(this),or(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},ee.prototype.isDeleted=function(){return!this.M.O},ee.prototype.deleteLater=function(){return this.M.O||vn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),rA.push(this),rA.length===1&&aA&&aA(pn),this.M.$=!0,this},jt.prototype.qa=function(B){return this.ka&&(B=this.ka(B)),B},jt.prototype.ha=function(B){this.W&&this.W(B)},jt.prototype.argPackAdvance=8,jt.prototype.readValueFromPointer=gA,jt.prototype.deleteObject=function(B){B!==null&&B.delete()},jt.prototype.fromWireType=function(B){function f(){return this.da?KA(this.N.X,{P:this.wa,O:Q,U:this,T:B}):KA(this.N.X,{P:this,O:B})}var Q=this.qa(B);if(!Q)return this.ha(B),null;var y=ih(this.N,Q);if(y!==void 0)return y.M.count.value===0?(y.M.O=Q,y.M.T=B,y.clone()):(y=y.clone(),this.ha(B),y);if(y=this.N.pa(Q),y=ar[y],!y)return f.call(this);y=this.ca?y.la:y.pointerType;var m=rr(Q,this.N,y.N);return m===null?f.call(this):this.da?KA(y.N.X,{P:y,O:m,U:this,T:B}):KA(y.N.X,{P:y,O:m})},lr=e.UnboundTypeError=TA("UnboundTypeError");var wh=typeof atob=="function"?atob:function(B){var f="",Q=0;B=B.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(B.charAt(Q++)),m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(B.charAt(Q++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(B.charAt(Q++)),k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(B.charAt(Q++));y=y<<2|m>>4,m=(m&15)<<4|S>>2;var M=(S&3)<<6|k;f+=String.fromCharCode(y),S!==64&&(f+=String.fromCharCode(m)),k!==64&&(f+=String.fromCharCode(M))}while(Q<B.length);return f},mh={l:function(B,f,Q,y){Z("Assertion failed: "+(B?l(E,B):"")+", at: "+[f?f?l(E,f):"":"unknown filename",Q,y?y?l(E,y):"":"unknown function"])},q:function(B,f,Q){B=ct(B),f=sr(f,"wrapper"),Q=oA(Q);var y=[].slice,m=f.N,S=m.X,k=m.R.X,M=m.R.constructor;B=lt(B,function(){m.R.ja.forEach((function(R){if(this[R]===k[R])throw new Ar("Pure virtual function "+R+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:S}),this.__construct.apply(this,y.call(arguments))}),S.__construct=function(){this===S&&P("Pass correct 'this' to __construct");var R=M.implement.apply(void 0,[this].concat(y.call(arguments)));JA(R);var G=R.M;R.notifyOnDestruction(),G.aa=!0,Object.defineProperties(this,{M:{value:G}}),He(this),R=G.O,R=yn(m,R),Yt.hasOwnProperty(R)?P("Tried to register registered instance: "+R):Yt[R]=this},S.__destruct=function(){this===S&&P("Pass correct 'this' to __destruct"),JA(this);var R=this.M.O;R=yn(m,R),Yt.hasOwnProperty(R)?delete Yt[R]:P("Tried to unregister unregistered instance: "+R)},B.prototype=Object.create(S);for(var F in Q)B.prototype[F]=Q[F];return OA(B)},j:function(B){var f=YA[B];delete YA[B];var Q=f.fa,y=f.W,m=f.ia,S=m.map(k=>k.ta).concat(m.map(k=>k.za));te([B],S,k=>{var M={};return m.forEach((F,R)=>{var G=k[R],U=F.ra,K=F.sa,st=k[R+m.length],V=F.ya,Ct=F.Aa;M[F.oa]={read:Gt=>G.fromWireType(U(K,Gt)),write:(Gt,lA)=>{var qt=[];V(Ct,Gt,st.toWireType(qt,lA)),mn(qt)}}}),[{name:f.name,fromWireType:function(F){var R={},G;for(G in M)R[G]=M[G].read(F);return y(F),R},toWireType:function(F,R){for(var G in M)if(!(G in R))throw new TypeError('Missing field: "'+G+'"');var U=Q();for(G in M)M[G].write(U,R[G]);return F!==null&&F.push(y,U),U},argPackAdvance:8,readValueFromPointer:gA,V:y}]})},v:function(){},B:function(B,f,Q,y,m){var S=Dn(Q);f=ct(f),Wt(B,{name:f,fromWireType:function(k){return!!k},toWireType:function(k,M){return M?y:m},argPackAdvance:8,readValueFromPointer:function(k){if(Q===1)var M=I;else if(Q===2)M=d;else if(Q===4)M=p;else throw new TypeError("Unknown boolean type size: "+f);return this.fromWireType(M[k>>S])},V:null})},f:function(B,f,Q,y,m,S,k,M,F,R,G,U,K){G=ct(G),S=Ft(m,S),M&&(M=Ft(k,M)),R&&(R=Ft(F,R)),K=Ft(U,K);var st=Ot(G);nh(st,function(){jA("Cannot construct "+G+" due to unbound types",[y])}),te([B,f,Q],y?[y]:[],function(V){if(V=V[0],y)var Ct=V.N,Gt=Ct.X;else Gt=ee.prototype;V=lt(st,function(){if(Object.getPrototypeOf(this)!==lA)throw new Ne("Use 'new' to construct "+G);if(qt.Y===void 0)throw new Ne(G+" has no accessible constructor");var Er=qt.Y[arguments.length];if(Er===void 0)throw new Ne("Tried to invoke ctor of "+G+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(qt.Y).toString()+") parameters instead!");return Er.apply(this,arguments)});var lA=Object.create(Gt,{constructor:{value:V}});V.prototype=lA;var qt=new sh(G,V,lA,K,Ct,S,M,R);Ct=new jt(G,qt,!0,!1),Gt=new jt(G+"*",qt,!1,!1);var fr=new jt(G+" const*",qt,!1,!0);return ar[B]={pointerType:Gt,la:fr},gh(st,V),[Ct,Gt,fr]})},d:function(B,f,Q,y,m,S,k){var M=kn(Q,y);f=ct(f),S=Ft(m,S),te([],[B],function(F){function R(){jA("Cannot call "+G+" due to unbound types",M)}F=F[0];var G=F.name+"."+f;f.startsWith("@@")&&(f=Symbol[f.substring(2)]);var U=F.N.constructor;return U[f]===void 0?(R.Z=Q-1,U[f]=R):(bn(U,f,G),U[f].S[Q-1]=R),te([],M,function(K){return K=xn(G,[K[0],null].concat(K.slice(1)),null,S,k),U[f].S===void 0?(K.Z=Q-1,U[f]=K):U[f].S[Q-1]=K,[]}),[]})},p:function(B,f,Q,y,m,S){0<f||Z();var k=kn(f,Q);m=Ft(y,m),te([],[B],function(M){M=M[0];var F="constructor "+M.name;if(M.N.Y===void 0&&(M.N.Y=[]),M.N.Y[f-1]!==void 0)throw new Ne("Cannot register multiple constructors with identical number of parameters ("+(f-1)+") for class '"+M.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return M.N.Y[f-1]=()=>{jA("Cannot construct "+M.name+" due to unbound types",k)},te([],k,function(R){return R.splice(1,0,null),M.N.Y[f-1]=xn(F,R,null,m,S),[]}),[]})},a:function(B,f,Q,y,m,S,k,M){var F=kn(Q,y);f=ct(f),S=Ft(m,S),te([],[B],function(R){function G(){jA("Cannot call "+U+" due to unbound types",F)}R=R[0];var U=R.name+"."+f;f.startsWith("@@")&&(f=Symbol[f.substring(2)]),M&&R.N.ja.push(f);var K=R.N.X,st=K[f];return st===void 0||st.S===void 0&&st.className!==R.name&&st.Z===Q-2?(G.Z=Q-2,G.className=R.name,K[f]=G):(bn(K,f,U),K[f].S[Q-2]=G),te([],F,function(V){return V=xn(U,V,R,S,k),K[f].S===void 0?(V.Z=Q-2,K[f]=V):K[f].S[Q-2]=V,[]}),[]})},A:function(B,f){f=ct(f),Wt(B,{name:f,fromWireType:function(Q){var y=oA(Q);return Mn(Q),y},toWireType:function(Q,y){return OA(y)},argPackAdvance:8,readValueFromPointer:gA,V:null})},n:function(B,f,Q){Q=Dn(Q),f=ct(f),Wt(B,{name:f,fromWireType:function(y){return y},toWireType:function(y,m){return m},argPackAdvance:8,readValueFromPointer:ch(f,Q),V:null})},e:function(B,f,Q,y,m){f=ct(f),m===-1&&(m=4294967295),m=Dn(Q);var S=M=>M;if(y===0){var k=32-8*Q;S=M=>M<<k>>>k}Q=f.includes("unsigned")?function(M,F){return F>>>0}:function(M,F){return F},Wt(B,{name:f,fromWireType:S,toWireType:Q,argPackAdvance:8,readValueFromPointer:hh(f,m,y!==0),V:null})},b:function(B,f,Q){function y(S){S>>=2;var k=D;return new m(h,k[S+1],k[S])}var m=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][f];Q=ct(Q),Wt(B,{name:Q,fromWireType:y,argPackAdvance:8,readValueFromPointer:y},{ua:!0})},o:function(B,f){f=ct(f);var Q=f==="std::string";Wt(B,{name:f,fromWireType:function(y){var m=D[y>>2],S=y+4;if(Q)for(var k=S,M=0;M<=m;++M){var F=S+M;if(M==m||E[F]==0){if(k=k?l(E,k,F-k):"",R===void 0)var R=k;else R+="\0",R+=k;k=F+1}}else{for(R=Array(m),M=0;M<m;++M)R[M]=String.fromCharCode(E[S+M]);R=R.join("")}return Vt(y),R},toWireType:function(y,m){m instanceof ArrayBuffer&&(m=new Uint8Array(m));var S,k=typeof m=="string";if(k||m instanceof Uint8Array||m instanceof Uint8ClampedArray||m instanceof Int8Array||P("Cannot pass non-string to std::string"),Q&&k){var M=0;for(S=0;S<m.length;++S){var F=m.charCodeAt(S);127>=F?M++:2047>=F?M+=2:55296<=F&&57343>=F?(M+=4,++S):M+=3}S=M}else S=m.length;if(M=_n(4+S+1),F=M+4,D[M>>2]=S,Q&&k){if(k=F,F=S+1,S=E,0<F){F=k+F-1;for(var R=0;R<m.length;++R){var G=m.charCodeAt(R);if(55296<=G&&57343>=G){var U=m.charCodeAt(++R);G=65536+((G&1023)<<10)|U&1023}if(127>=G){if(k>=F)break;S[k++]=G}else{if(2047>=G){if(k+1>=F)break;S[k++]=192|G>>6}else{if(65535>=G){if(k+2>=F)break;S[k++]=224|G>>12}else{if(k+3>=F)break;S[k++]=240|G>>18,S[k++]=128|G>>12&63}S[k++]=128|G>>6&63}S[k++]=128|G&63}}S[k]=0}}else if(k)for(k=0;k<S;++k)R=m.charCodeAt(k),255<R&&(Vt(F),P("String has UTF-16 code units that do not fit in 8 bits")),E[F+k]=R;else for(k=0;k<S;++k)E[F+k]=m[k];return y!==null&&y.push(Vt,M),M},argPackAdvance:8,readValueFromPointer:gA,V:function(y){Vt(y)}})},i:function(B,f,Q){if(Q=ct(Q),f===2)var y=uh,m=Ih,S=Bh,k=()=>C,M=1;else f===4&&(y=fh,m=Eh,S=Ch,k=()=>D,M=2);Wt(B,{name:Q,fromWireType:function(F){for(var R=D[F>>2],G=k(),U,K=F+4,st=0;st<=R;++st){var V=F+4+st*f;(st==R||G[V>>M]==0)&&(K=y(K,V-K),U===void 0?U=K:(U+="\0",U+=K),K=V+f)}return Vt(F),U},toWireType:function(F,R){typeof R!="string"&&P("Cannot pass non-string to C++ string type "+Q);var G=S(R),U=_n(4+G+f);return D[U>>2]=G>>M,m(R,U+4,G+f),F!==null&&F.push(Vt,U),U},argPackAdvance:8,readValueFromPointer:gA,V:function(F){Vt(F)}})},k:function(B,f,Q,y,m,S){YA[B]={name:ct(f),fa:Ft(Q,y),W:Ft(m,S),ia:[]}},h:function(B,f,Q,y,m,S,k,M,F,R){YA[B].ia.push({oa:ct(f),ta:Q,ra:Ft(y,m),sa:S,za:k,ya:Ft(M,F),Aa:R})},C:function(B,f){f=ct(f),Wt(B,{va:!0,name:f,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(B,f,Q,y,m){B=VA[B],f=oA(f),Q=cr(Q);var S=[];return D[y>>2]=OA(S),B(f,Q,S,m)},t:function(B,f,Q,y){B=VA[B],f=oA(f),Q=cr(Q),B(f,Q,null,y)},g:Mn,m:function(B,f){var Q=ph(B,f),y=Q[0];f=y.name+"_$"+Q.slice(1).map(function(k){return k.name}).join("_")+"$";var m=hr[f];if(m!==void 0)return m;var S=Array(B-1);return m=Qh((k,M,F,R)=>{for(var G=0,U=0;U<B-1;++U)S[U]=Q[U+1].readValueFromPointer(R+G),G+=Q[U+1].argPackAdvance;for(k=k[M].apply(k,S),U=0;U<B-1;++U)Q[U+1].ma&&Q[U+1].ma(S[U]);if(!y.va)return y.toWireType(F,k)}),hr[f]=m},D:function(B){4<B&&(_t[B].ga+=1)},r:function(B){var f=oA(B);mn(f),Mn(B)},c:function(){Z("")},x:function(B,f,Q){E.copyWithin(B,f,f+Q)},w:function(B){var f=E.length;if(B>>>=0,2147483648<B)return!1;for(var Q=1;4>=Q;Q*=2){var y=f*(1+.2/Q);y=Math.min(y,B+100663296);var m=Math;y=Math.max(B,y),m=m.min.call(m,2147483648,y+(65536-y%65536)%65536);t:{try{u.grow(m-h.byteLength+65535>>>16),_();var S=1;break t}catch{}S=void 0}if(S)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(B,f,Q,y){for(var m=0,S=0;S<Q;S++){var k=D[f>>2],M=D[f+4>>2];f+=8;for(var F=0;F<M;F++){var R=E[k+F],G=yh[B];R===0||R===10?((B===1?g:r)(l(G,0)),G.length=0):G.push(R)}m+=M}return D[y>>2]=m,0}};(function(){function B(m){e.asm=m.exports,u=e.asm.E,_(),N=e.asm.J,L.unshift(e.asm.F),et--,e.monitorRunDependencies&&e.monitorRunDependencies(et),et==0&&at&&(m=at,at=null,m())}function f(m){B(m.instance)}function Q(m){return UA().then(function(S){return WebAssembly.instantiate(S,y)}).then(function(S){return S}).then(m,function(S){r("failed to asynchronously prepare wasm: "+S),Z(S)})}var y={a:mh};if(et++,e.monitorRunDependencies&&e.monitorRunDependencies(et),e.instantiateWasm)try{return e.instantiateWasm(y,B)}catch(m){r("Module.instantiateWasm callback failed with error: "+m),n(m)}return function(){return c||typeof WebAssembly.instantiateStreaming!="function"||ft(Et)||typeof fetch!="function"?Q(f):fetch(Et,{credentials:"same-origin"}).then(function(m){return WebAssembly.instantiateStreaming(m,y).then(f,function(S){return r("wasm streaming compile failed: "+S),r("falling back to ArrayBuffer instantiation"),Q(f)})})}().catch(n),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var Ir=e.___getTypeName=function(){return(Ir=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 _n=e._malloc=function(){return(_n=e._malloc=e.asm.I).apply(null,arguments)},Vt=e._free=function(){return(Vt=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var XA;at=function B(){XA||Br(),XA||(at=B)};function Br(){function B(){if(!XA&&(XA=!0,e.calledRun=!0,!o)){if(Ge(L),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var f=e.postRun.shift();O.unshift(f)}Ge(O)}}if(!(0<et)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)j();Ge(J),0<et||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),B()},1)):B())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return Br(),t.ready}})();let q=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),FA=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),Mo=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),ce=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),De=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),T=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),ve=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),oc=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Lt=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),be=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),Dt=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),Se=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),In=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),Ro=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),xe=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),ke=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),Ut=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),Me=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({});const rc={ALIGN_AUTO:q.Auto,ALIGN_FLEX_START:q.FlexStart,ALIGN_CENTER:q.Center,ALIGN_FLEX_END:q.FlexEnd,ALIGN_STRETCH:q.Stretch,ALIGN_BASELINE:q.Baseline,ALIGN_SPACE_BETWEEN:q.SpaceBetween,ALIGN_SPACE_AROUND:q.SpaceAround,ALIGN_SPACE_EVENLY:q.SpaceEvenly,BOX_SIZING_BORDER_BOX:FA.BorderBox,BOX_SIZING_CONTENT_BOX:FA.ContentBox,DIMENSION_WIDTH:Mo.Width,DIMENSION_HEIGHT:Mo.Height,DIRECTION_INHERIT:ce.Inherit,DIRECTION_LTR:ce.LTR,DIRECTION_RTL:ce.RTL,DISPLAY_FLEX:De.Flex,DISPLAY_NONE:De.None,DISPLAY_CONTENTS:De.Contents,EDGE_LEFT:T.Left,EDGE_TOP:T.Top,EDGE_RIGHT:T.Right,EDGE_BOTTOM:T.Bottom,EDGE_START:T.Start,EDGE_END:T.End,EDGE_HORIZONTAL:T.Horizontal,EDGE_VERTICAL:T.Vertical,EDGE_ALL:T.All,ERRATA_NONE:ve.None,ERRATA_STRETCH_FLEX_BASIS:ve.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:ve.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:ve.AbsolutePercentAgainstInnerSize,ERRATA_ALL:ve.All,ERRATA_CLASSIC:ve.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:oc.WebFlexBasis,FLEX_DIRECTION_COLUMN:Lt.Column,FLEX_DIRECTION_COLUMN_REVERSE:Lt.ColumnReverse,FLEX_DIRECTION_ROW:Lt.Row,FLEX_DIRECTION_ROW_REVERSE:Lt.RowReverse,GUTTER_COLUMN:be.Column,GUTTER_ROW:be.Row,GUTTER_ALL:be.All,JUSTIFY_FLEX_START:Dt.FlexStart,JUSTIFY_CENTER:Dt.Center,JUSTIFY_FLEX_END:Dt.FlexEnd,JUSTIFY_SPACE_BETWEEN:Dt.SpaceBetween,JUSTIFY_SPACE_AROUND:Dt.SpaceAround,JUSTIFY_SPACE_EVENLY:Dt.SpaceEvenly,LOG_LEVEL_ERROR:Se.Error,LOG_LEVEL_WARN:Se.Warn,LOG_LEVEL_INFO:Se.Info,LOG_LEVEL_DEBUG:Se.Debug,LOG_LEVEL_VERBOSE:Se.Verbose,LOG_LEVEL_FATAL:Se.Fatal,MEASURE_MODE_UNDEFINED:In.Undefined,MEASURE_MODE_EXACTLY:In.Exactly,MEASURE_MODE_AT_MOST:In.AtMost,NODE_TYPE_DEFAULT:Ro.Default,NODE_TYPE_TEXT:Ro.Text,OVERFLOW_VISIBLE:xe.Visible,OVERFLOW_HIDDEN:xe.Hidden,OVERFLOW_SCROLL:xe.Scroll,POSITION_TYPE_STATIC:ke.Static,POSITION_TYPE_RELATIVE:ke.Relative,POSITION_TYPE_ABSOLUTE:ke.Absolute,UNIT_UNDEFINED:Ut.Undefined,UNIT_POINT:Ut.Point,UNIT_PERCENT:Ut.Percent,UNIT_AUTO:Ut.Auto,WRAP_NO_WRAP:Me.NoWrap,WRAP_WRAP:Me.Wrap,WRAP_WRAP_REVERSE:Me.WrapReverse};function ac(A){function t(n,s,a){const g=n[s];n[s]=function(){for(var r=arguments.length,c=new Array(r),u=0;u<r;u++)c[u]=arguments[u];return a.call(this,g,...c)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Ut.Point]:A.Node.prototype[n],[Ut.Percent]:A.Node.prototype[`${n}Percent`],[Ut.Auto]:A.Node.prototype[`${n}Auto`]};t(A.Node.prototype,n,function(a){for(var g=arguments.length,r=new Array(g>1?g-1:0),c=1;c<g;c++)r[c-1]=arguments[c];const u=r.pop();let o,l;if(u==="auto")o=Ut.Auto,l=void 0;else if(typeof u=="object")o=u.unit,l=u.valueOf();else if(o=typeof u=="string"&&u.endsWith("%")?Ut.Percent:Ut.Point,l=parseFloat(u),u!==void 0&&!Number.isNaN(u)&&Number.isNaN(l))throw new Error(`Invalid value ${u} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${u}'`);return l!==void 0?s[o].call(this,...r,l):s[o].call(this,...r)})}function e(n){return A.MeasureCallback.implement({measure:function(){const{width:s,height:a}=n(...arguments);return{width:s??NaN,height:a??NaN}}})}t(A.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,e(s)):this.unsetMeasureFunc()});function i(n){return A.DirtiedCallback.implement({dirtied:n})}return t(A.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),t(A.Config.prototype,"free",function(){A.Config.destroy(this)}),t(A.Node,"create",(n,s)=>s?A.Node.createWithConfig(s):A.Node.createDefault()),t(A.Node.prototype,"free",function(){A.Node.destroy(this)}),t(A.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),t(A.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:ce.LTR;return n.call(this,s,a,g)}),{Config:A.Config,Node:A.Node,...rc}}async function gc(){return ac(await sc())}let _o;function Fo(){return _o}function lc(A){_o=A}let Go;function cc(A){Go=A}function hc(){return Go}function GA(A,t){return A?typeof A=="number"?A:typeof A=="string"&&A.endsWith("%")?(t??(t=1),t*(parseFloat(A)/100)):Number.isNaN(parseFloat(A))?0:parseFloat(A):0}function he(A){return typeof A=="number"?"number":A.endsWith("%")?"percentage":Number.isNaN(parseInt(A,10))?"keyword":"number"}function NA(A,t,e){return(t[A]-e[A])/2}function No(A,t,e,i,n){const s=t==="percentage"?i[e]-n[e]:1;return GA(A)*s}function Ho(A,t,e){const[i,n]=A,s=he(i),a=he(n),g={x:void 0,y:void 0};switch(i){case"top":g.y=0;break;case"bottom":g.y=t.height-e.height;break;case"center":n==="left"||n==="right"?g.y=NA("height",t,e):g.x=NA("width",t,e);break;case"left":g.x=0;break;case"right":g.x=t.width-e.width;break;default:{const r=n==="top"||n==="bottom"||a!=="keyword"?"width":"height",c=r==="width"?"x":"y";g[c]=No(i,s,r,t,e)}}switch(n){case"top":g.y=0;break;case"bottom":g.y=t.height-e.height;break;case"center":g.y===void 0?g.y=NA("height",t,e):g.x=NA("width",t,e);break;case"left":g.x=0;break;case"right":g.x=t.width-e.width;break;default:{const r=g.y===void 0?"y":"x",c=r==="y"?"height":"width";g[r]=No(n,a,c,t,e)}}return g}function HA(A,t,e,i){const n=A==="right"||A==="bottom",s=e==="percentage"?t*i:t;return n?-s:s}function uc(A,t,e){const[i,n,s,a]=A,g=he(i),r=he(n),c=he(s),u=he(a);if(r==="keyword"||u==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(g!=="keyword"||c!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=Ho([i,s],t,e),l={...o},h=GA(n),I=GA(a);return i==="left"||i==="right"?l.x=o.x+HA(i,h,r,e.width):(i==="top"||i==="bottom")&&(l.y=o.y+HA(i,h,r,e.height)),s==="left"||s==="right"?l.x=o.x+HA(s,I,u,e.width):(s==="top"||s==="bottom")&&(l.y=o.y+HA(s,I,u,e.height)),l}function Ic(A,t,e){const i=A[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(t.width-e.width)/2;break;case"bottom":n.y=t.height-e.height,n.x=(t.width-e.width)/2;break;case"left":n.x=0,n.y=(t.height-e.height)/2;break;case"right":n.x=t.width-e.width,n.y=(t.height-e.height)/2;break;case"center":n.x=(t.width-e.width)/2,n.y=(t.height-e.height)/2;break;default:{const a=he(i)==="percentage"?t.width-e.width:1;n.x=GA(i)*a,n.y=(t.height-e.height)/2}}return n}function Bn(A,t,e){if(!A)return{x:0,y:0};const i=typeof A=="string"?A.split(" "):[A];switch(i.length){case 1:return Ic(i,t,e);case 2:return Ho(i,t,e);case 4:return uc(i,t,e);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const fn={width:0,height:0};function Lo(A){const t=A.target.getLocalBounds(),e=A.target.scale;return fn.width=Math.abs(t.width*e.x),fn.height=Math.abs(t.height*e.y),fn}function Uo(A,t,e=.49){return Math.abs(A-t)<e}function Bc(A,t=0,e={}){let i,n;const s=e.maxWait?e.maxWait:t;let a,g,r,c=0;const u=!!e.leading,o="maxWait"in e,l=e.trailing??!0,h=t!==0&&typeof globalThis.requestAnimationFrame=="function";if(typeof A!="function")throw new TypeError("Expected a function");function I(O){const j=i,et=n;return i=n=void 0,c=O,a=A.apply(et,j),a}function E(O,j){return h?(typeof g=="number"&&globalThis.cancelAnimationFrame(g),globalThis.requestAnimationFrame(O)):setTimeout(O,j)}function d(O){if(h){globalThis.cancelAnimationFrame(O);return}clearTimeout(O)}function C(O){return c=O,g=E(w,t),u?I(O):a}function p(O){const j=O-(r||0),et=O-c,at=t-j;return o?Math.min(at,s-et):at}function D(O){const j=O-(r||0),et=O-c;return r===void 0||j>=t||j<0||o&&et>=s}function w(){const O=Date.now();if(D(O))return b(O);g=E(w,p(O))}function b(O){return g=void 0,l&&i?I(O):(i=n=void 0,a)}function _(){g!==void 0&&d(g),c=0,i=r=n=g=void 0}function N(){return g===void 0?a:b(Date.now())}function J(){return g!==void 0}function L(...O){const j=Date.now(),et=D(j);if(i=O,n=this,r=j,et){if(g===void 0)return C(r);if(o)return g=E(w,t),I(r)}return g===void 0&&(g=E(w,t)),a}return L.cancel=_,L.flush=N,L.pending=J,L}function fc(A,t,e={}){const i=e.leading??!0,n=e.trailing??!0;if(typeof A!="function")throw new TypeError("Expected a function");return Bc(A,t,{leading:i,trailing:n,maxWait:t})}var Ec=Object.defineProperty,Cc=(A,t,e)=>t in A?Ec(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,ue=(A,t,e)=>Cc(A,typeof t!="symbol"?t+"":t,e);class To{constructor(){ue(this,"autoUpdate",!0),ue(this,"_debugEnabled",!1),ue(this,"_debugRenderer",null),ue(this,"_throttledUpdateSize"),ue(this,"_throttle",100),ue(this,"_modificationCount",50)}async init(t){lc(await gc()),cc(Fo().Config.create());const{layout:e}=t??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:a}=e??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=fc(g=>this._updateSize(g),this._throttle,{leading:!0,trailing:!0}),this._modificationCount=a??this._modificationCount}async enableDebug(t=!this._debugEnabled){if(this._debugEnabled=t,!this._debugRenderer){const e=await Promise.resolve().then(()=>Xc);this._debugRenderer=new e.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(t){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),t.addChild(this._debugRenderer.holder)),this._throttle===0?this._updateSize(t):this._throttledUpdateSize(t),this.updateLayout(t)}prerender({container:t}){this.autoUpdate&&this.update(t)}_updateSize(t){if(t.destroyed)return;const e=t._layout;if(e){const i=e.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=Lo(e);if(i.width==="intrinsic"){const s=e.yoga.getWidth().value;Uo(s,n.width)||(e.yoga.setWidth(n.width),e.invalidateRoot())}if(i.height==="intrinsic"){const s=e.yoga.getHeight().value;Uo(s,n.height)||(e.yoga.setHeight(n.height),e.invalidateRoot())}}if(!t.visible){e._onChildRemoved();return}}for(let i=0;i<t.children.length;i++)this._updateSize(t.children[i])}updateLayout(t){var e,i,n,s;const a=t._layout;if(t.visible){if(a){const g=a.yoga,r=a.style,c=(e=t.parent)==null?void 0:e.isOverflowContainer;if(!((i=t.parent)==null?void 0:i._layout)&&!c&&a._isDirty&&(a._isDirty=!1,g.calculateLayout(r.width,r.height,g.getDirection()??ce.LTR)),g.hasNewLayout()||a._forceUpdate){g.markLayoutSeen(),a._forceUpdate=!1,a._computedLayout=g.getComputedLayout();const o=Bn(r.transformOrigin,a._computedLayout,{width:0,height:0});a._computedPixiLayout={...t.computeLayoutData(a._computedLayout),originX:o.x,originY:o.y},t.emit("layout",a),(n=t.onLayout)==null||n.call(t,a),t._onUpdate()}this._debugEnabled&&(a._styles.custom.debug||a._modificationCount>this._modificationCount&&a._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(a))}for(let g=0;g<t.children.length;g++)this.updateLayout(t.children[g])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}ue(To,"extension",{type:[v.ExtensionType.WebGLSystem,v.ExtensionType.WebGPUSystem],name:"layout"});const Oo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,"space-between":q.SpaceBetween,"space-around":q.SpaceAround,"space-evenly":q.SpaceEvenly},Jo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Po={auto:q.Auto,"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Ko={"border-box":FA.BorderBox,"content-box":FA.ContentBox},Yo={ltr:ce.LTR,rtl:ce.RTL},Wo={none:De.None,flex:De.Flex,contents:De.Contents},jo={row:Lt.Row,column:Lt.Column,"row-reverse":Lt.RowReverse,"column-reverse":Lt.ColumnReverse},Vo={wrap:Me.Wrap,nowrap:Me.NoWrap,"wrap-reverse":Me.WrapReverse},qo={"flex-start":Dt.FlexStart,"flex-end":Dt.FlexEnd,center:Dt.Center,"space-between":Dt.SpaceBetween,"space-around":Dt.SpaceAround,"space-evenly":Dt.SpaceEvenly},Xo={visible:xe.Visible,hidden:xe.Hidden,scroll:xe.Scroll},Zo={absolute:ke.Absolute,relative:ke.Relative,static:ke.Static},dc={alignContent:(A,t)=>A.setAlignContent(Qc(t)),alignItems:(A,t)=>A.setAlignItems(pc(t)),alignSelf:(A,t)=>A.setAlignSelf(yc(t)),aspectRatio:(A,t)=>A.setAspectRatio(t),borderBottomWidth:(A,t)=>A.setBorder(T.Bottom,t),borderEndWidth:(A,t)=>A.setBorder(T.End,t),borderLeftWidth:(A,t)=>A.setBorder(T.Left,t),borderRightWidth:(A,t)=>A.setBorder(T.Right,t),borderStartWidth:(A,t)=>A.setBorder(T.Start,t),borderTopWidth:(A,t)=>A.setBorder(T.Top,t),borderWidth:(A,t)=>A.setBorder(T.All,t),borderInlineWidth:(A,t)=>A.setBorder(T.Horizontal,t),borderBlockWidth:(A,t)=>A.setBorder(T.Vertical,t),bottom:(A,t)=>A.setPosition(T.Bottom,t),boxSizing:(A,t)=>A.setBoxSizing(wc(t)),direction:(A,t)=>A.setDirection(mc(t)),display:(A,t)=>A.setDisplay(Dc(t)),end:(A,t)=>A.setPosition(T.End,t),flex:(A,t)=>A.setFlex(t),flexBasis:(A,t)=>A.setFlexBasis(t),flexDirection:(A,t)=>A.setFlexDirection(vc(t)),rowGap:(A,t)=>A.setGap(be.Row,t),gap:(A,t)=>A.setGap(be.All,t),columnGap:(A,t)=>A.setGap(be.Column,t),flexGrow:(A,t)=>A.setFlexGrow(t),flexShrink:(A,t)=>A.setFlexShrink(t),flexWrap:(A,t)=>A.setFlexWrap(bc(t)),height:(A,t)=>A.setHeight(t),justifyContent:(A,t)=>A.setJustifyContent(Sc(t)),left:(A,t)=>A.setPosition(T.Left,t),margin:(A,t)=>A.setMargin(T.All,t),marginBottom:(A,t)=>A.setMargin(T.Bottom,t),marginEnd:(A,t)=>A.setMargin(T.End,t),marginLeft:(A,t)=>A.setMargin(T.Left,t),marginRight:(A,t)=>A.setMargin(T.Right,t),marginStart:(A,t)=>A.setMargin(T.Start,t),marginTop:(A,t)=>A.setMargin(T.Top,t),marginInline:(A,t)=>A.setMargin(T.Horizontal,t),marginBlock:(A,t)=>A.setMargin(T.Vertical,t),maxHeight:(A,t)=>A.setMaxHeight(t),maxWidth:(A,t)=>A.setMaxWidth(t),minHeight:(A,t)=>A.setMinHeight(t),minWidth:(A,t)=>A.setMinWidth(t),overflow:(A,t)=>A.setOverflow(xc(t)),padding:(A,t)=>A.setPadding(T.All,t),paddingBottom:(A,t)=>A.setPadding(T.Bottom,t),paddingEnd:(A,t)=>A.setPadding(T.End,t),paddingLeft:(A,t)=>A.setPadding(T.Left,t),paddingRight:(A,t)=>A.setPadding(T.Right,t),paddingStart:(A,t)=>A.setPadding(T.Start,t),paddingTop:(A,t)=>A.setPadding(T.Top,t),paddingInline:(A,t)=>A.setPadding(T.Horizontal,t),paddingBlock:(A,t)=>A.setPadding(T.Vertical,t),position:(A,t)=>A.setPositionType(kc(t)),right:(A,t)=>A.setPosition(T.Right,t),start:(A,t)=>A.setPosition(T.Start,t),top:(A,t)=>A.setPosition(T.Top,t),insetInline:(A,t)=>A.setPosition(T.Horizontal,t),insetBlock:(A,t)=>A.setPosition(T.Vertical,t),inset:(A,t)=>A.setPosition(T.All,t),width:(A,t)=>A.setWidth(t)};function Qc(A){if(A in Oo)return Oo[A];throw new Error(`"${A}" is not a valid value for alignContent`)}function pc(A){if(A in Jo)return Jo[A];throw new Error(`"${A}" is not a valid value for alignItems`)}function yc(A){if(A in Po)return Po[A];throw new Error(`"${A}" is not a valid value for alignSelf`)}function wc(A){if(A in Ko)return Ko[A];throw new Error(`"${A}" is not a valid value for boxSizing`)}function mc(A){if(A in Yo)return Yo[A];throw new Error(`"${A}" is not a valid value for direction`)}function Dc(A){if(A in Wo)return Wo[A];throw new Error(`"${A}" is not a valid value for display`)}function vc(A){if(A in jo)return jo[A];throw new Error(`"${A}" is not a valid value for flexDirection`)}function bc(A){if(A in Vo)return Vo[A];throw new Error(`"${A}" is not a valid value for flexWrap`)}function Sc(A){if(A in qo)return qo[A];throw new Error(`"${A}" is not a valid value for justifyContent`)}function xc(A){if(A in Xo)return Xo[A];throw new Error(`"${A}" is not a valid value for overflow`)}function kc(A){if(A in Zo)return Zo[A];throw new Error(`"${A}" is not a valid value for position`)}function Mc(A,t={}){for(const[e,i]of Object.entries(t))try{const n=dc[e];n&&n(A,i)}catch{}if(t.width!==void 0){const e=t.left!==void 0&&t.right!==void 0?"auto":t.width;A.setWidth(e)}if(t.height!==void 0){const e=t.top!==void 0&&t.bottom!==void 0?"auto":t.height;A.setHeight(e)}}function Rc(A,t){let i={...A._styles.custom,...t};i={...{...Re.defaultStyle.shared,...A.target instanceof v.ViewContainer||i.isLeaf||Re.defaultStyle.shared.isLeaf?Re.defaultStyle.leaf:Re.defaultStyle.container},...i};const s={...i},a=i.width==="intrinsic",g=i.height==="intrinsic";if(a||g){const{width:r,height:c}=Lo(A);a&&(s.width=r),g&&(s.height=c)}return{custom:i,yoga:s}}function _c(A,t){var e;let i=t.layout,n;if(!i&&t.isOverflowContainer&&(n=t,i=(e=n.parent)==null?void 0:e.layout,t=n.parent),!i)return!1;const s=A.yoga.getParent();s&&s.removeChild(A.yoga);const a=Fc(A,t,n);return a===-1?!1:(a===i.yoga.getChildCount(),i.yoga.insertChild(A.yoga,a),!0)}function Fc(A,t,e){const i=A.target;let n=0;if(e){for(const s of t.children){if(s===e){for(const a of e.children)if(!(!a.layout||!a.visible)){if(a===i)return n;n++}return-1}s.layout&&s.visible&&n++}return-1}for(const s of t.children)if(!(!s.layout||!s.visible)){if(s===i)return n;n++}return-1}function Gc(A){const t=A.yoga.getParent();t&&t.removeChild(A.yoga)}var Nc=Object.defineProperty,Hc=(A,t,e)=>t in A?Nc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,vt=(A,t,e)=>Hc(A,typeof t!="symbol"?t+"":t,e);class Re{constructor({target:t}){vt(this,"yoga"),vt(this,"target"),vt(this,"destroyed",!1),vt(this,"_isDirty",!1),vt(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),vt(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),vt(this,"_styles",{custom:{},yoga:{}}),vt(this,"_modificationCount",0),vt(this,"_forceUpdate",!1),vt(this,"hasParent",!1),vt(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=t,this.yoga=Fo().Node.create(hc()),t.on("added",this._onChildAdded,this),t.on("removed",this._onChildRemoved,this),t.on("destroyed",this.destroy,this)}get style(){return this._styles.custom}get computedLayout(){return this._computedLayout}get computedPixiLayout(){return this._computedPixiLayout}get realX(){return this.target.localTransform.tx}get realY(){return this.target.localTransform.ty}get realScaleX(){return this.target.localTransform.a}get realScaleY(){return this.target.localTransform.d}setStyle(t){const e=Rc(this,t),i=JSON.stringify(this._styles.custom)!==JSON.stringify(e.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(e.yoga),s=i||n,a=this._trackedStyleKeys.some(g=>e.custom[g]!==this._styles.custom[g]);this._styles=e,a&&(this._forceUpdate=!0),s&&(Mc(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(t){const e=this.getRoot(t);e.destroyed||(e._layout._isDirty=!0,e._onUpdate(),this._modificationCount++)}forceUpdate(){this._forceUpdate=!0}getRoot(t){var e,i;let n=t||this.target;for(;(e=n.parent)!=null&&e._layout||(i=n.parent)!=null&&i.isOverflowContainer;)n=n.parent,n.isOverflowContainer&&(n=n.parent);return n}_onChildAdded(t){this.hasParent||_c(this,t)!==!1&&(this.hasParent=!0,this.invalidateRoot())}_onChildRemoved(t){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(t),Gc(this))}destroy(){this.destroyed||(this.destroyed=!0,this.invalidateRoot(),this.yoga.free(),this.target.off("added",this._onChildAdded,this),this.target.off("removed",this._onChildRemoved,this),this._styles=null,this._computedPixiLayout=null,this._computedLayout=null,this.target=null,this.hasParent=!1)}}vt(Re,"defaultStyle",{leaf:{width:"intrinsic",height:"intrinsic"},container:{width:"auto",height:"auto"},shared:{transformOrigin:"50%",objectPosition:"center",flexShrink:1,flexDirection:"row",alignContent:"stretch",flexWrap:"nowrap",overflow:"visible"}});function zo(A,t,e){let i=1,n=1;switch(A){case"fill":i=t.width/e.width,n=t.height/e.height;break;case"contain":{const s=Math.min(t.width/e.width,t.height/e.height);i=s,n=s;break}case"cover":{const s=Math.max(t.width/e.width,t.height/e.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,t.width/e.width,t.height/e.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function $o(A,t,e,i){const n=A.getLocalBounds(),s=A.layout.style.objectFit||e;let{offsetScaleX:a,offsetScaleY:g}=zo(s,t,n);const r={width:n.width*a,height:n.height*g};let{x:c,y:u}=Bn(A.layout.style.objectPosition,t,r);i?(c+=n.width*a*i._x,u+=n.height*g*i._y):(c-=n.minX*a,u-=n.minY*g);const o=A.layout.style.applySizeDirectly;return(o===!0||o==null&&(A instanceof v.TilingSprite||A instanceof v.NineSliceSprite))&&(A.width=n.width*a,A.height=n.height*g,a=1,g=1),{x:t.left,y:t.top,offsetX:c,offsetY:u,scaleX:a,scaleY:g}}const En=Object.getOwnPropertyDescriptor(v.Container.prototype,"visible"),Lc={_layout:null,get layout(){return this._layout??null},set layout(A){if(A=A===!0?{}:A,!A){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=v.Container.prototype.updateLocalTransform,Object.defineProperty(v.Container.prototype,"visible",En));return}if(!this._layout){this._layout=new Re({target:this}),Object.defineProperty(v.Container.prototype,"visible",{...En,set(t){En.set.call(this,t),this.layout&&(t&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}});for(const t of this.children)t.layout&&t.visible&&(t.layout._onChildRemoved(),t.layout._onChildAdded(this));this.parent&&this.visible&&this._layout._onChildAdded(this.parent)}this._layout.setStyle(A),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const A=this._didContainerChangeTick;if(this._didLocalTransformChangeId===A)return;this._didLocalTransformChangeId=A;const t=this._layout,{x:e,y:i,offsetX:n,offsetY:s,scaleX:a,scaleY:g,originX:r,originY:c}=t._computedPixiLayout,u=this.localTransform,{rotation:o,skew:l,scale:h,position:I}=this,E=o+l._y,d=o-l._x,C=Math.cos(E)*h._x,p=Math.sin(E)*h._x,D=-Math.sin(d)*h._y,w=Math.cos(d)*h._y,b=I._x+e-r*C-c*D,_=I._y+i-r*p-c*w;u.a=C*a,u.b=p*a,u.c=D*g,u.d=w*g,u.tx=b+(n*C+s*D)+r,u.ty=_+(n*p+s*w)+c},computeLayoutData(A){const t=this._layout,{isLeaf:e}=t._styles.custom;return e?$o(this,A,"fill"):{x:A.left,y:A.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};v.extensions.mixin(v.Container,Lc);const tr=new v.Point(0,0),Uc={computeLayoutData(A){const t=this._style;tr.copyFrom(this.scale),this.scale=1,t.wordWrap&&(t.wordWrapWidth=A.width);let e=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=zo(i,A,e);t.wordWrap&&(t.wordWrapWidth=A.width/Math.min(1,Math.max(n,s))),e=this.getLocalBounds();const a={width:e.width*n,height:e.height*s};let{x:g,y:r}=Bn(this.layout.style.objectPosition,A,a);return g+=e.width*n*this.anchor._x,r+=e.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=e.width*n,this.height=e.height*s),this.scale.copyFrom(tr),{x:A.left,y:A.top,offsetX:g,offsetY:r,scaleX:n,scaleY:s}}};v.extensions.mixin(v.AbstractText,Uc);const Cn=Object.getOwnPropertyDescriptor(v.AbstractText.prototype,"text");Object.defineProperty(v.AbstractText.prototype,"text",{...Cn,set(A){var t;const e=Cn.get.call(this);Cn.set.call(this,A),e!==A&&((t=this.layout)==null||t.forceUpdate())}});const Tc={computeLayoutData(A){return $o(this,A,"fill",this._anchor)}};v.extensions.mixin(v.ViewContainer,Tc);var Tt=(A=>(A.Margin="margin",A.Padding="padding",A.Border="border",A.Flex="flex",A.Content="content",A))(Tt||{});function dn(A,t){const e=`getComputed${t.charAt(0).toUpperCase()+t.slice(1)}`;return{top:A.yoga[e](T.Top),right:A.yoga[e](T.Right),bottom:A.yoga[e](T.Bottom),left:A.yoga[e](T.Left)}}function Oc(A,t){const{width:e,height:i}=A.computedLayout,n=dn(A,"margin"),s=dn(A,"border"),a=dn(A,"padding"),g=t.get("margin");g.outer.x=-n.left,g.outer.y=-n.top,g.outer.width=e+n.left+n.right,g.outer.height=i+n.top+n.bottom,g.inner.x=0,g.inner.y=0,g.inner.width=e,g.inner.height=i;const r=t.get("border");r.outer.x=0,r.outer.y=0,r.outer.width=e,r.outer.height=i,r.inner.x=s.left,r.inner.y=s.top,r.inner.width=e-s.left-s.right,r.inner.height=i-s.top-s.bottom;const c=t.get("padding");c.outer.copyFrom(r.inner),c.inner.x=a.left+s.left,c.inner.y=a.top+s.top,c.inner.width=e-a.left-a.right-s.left-s.right,c.inner.height=i-a.top-a.bottom-s.top-s.bottom,Jc(A,t)}function Jc(A,t){var e;const i=t.get("flex"),n=t.get("padding");i.outer.copyFrom(n.inner);const s=new v.Bounds,a=A.yoga.getChildCount();for(let r=0;r<a;r++){const u=A.yoga.getChild(r).getComputedLayout();s.addRect(new v.Rectangle(u.left,u.top,u.width,u.height))}const g=A.yoga.getFlexDirection();g===Lt.Column||g===Lt.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(e=i.inner)==null||e.copyFrom(s.rectangle),t.get("content").outer.copyFrom(s.rectangle)}var Pc=Object.defineProperty,Kc=(A,t,e)=>t in A?Pc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,er=(A,t,e)=>Kc(A,typeof t!="symbol"?t+"":t,e);function Yc(A,t,e){const i=Math.round(A[0]+(t[0]-A[0])*e),n=Math.round(A[1]+(t[1]-A[1])*e),s=Math.round(A[2]+(t[2]-A[2])*e);return`rgb(${i},${n},${s})`}class Wc extends v.Container{constructor(){super(),er(this,"graphics"),er(this,"heatGraphics"),this.graphics=new Map,Object.values(Tt).forEach(t=>{const e=new v.Graphics;this.graphics.set(t,e),this.addChild(e)}),this.heatGraphics=new v.Graphics,this.addChild(this.heatGraphics)}init(t){const{target:e,alpha:i,heat:n}=t;t.heatOnly||Object.entries(t).forEach(([g,r])=>{if(g==="target"||g==="alpha"||g==="heat"||g==="heatOnly")return;r=r;const c=this.graphics.get(g);if(!(!c||!r.draw))if(r.inner)this.drawCutBox(c,r.outer,r.inner,r.color,i);else{const{x:u,y:o,width:l,height:h}=r.outer;c.rect(u,o,l,Math.max(h,1)),c.fill({color:r.color,alpha:i})}});const{invalidationCount:s,draw:a}=n;if(s>0&&a){const r=Math.min(s/20,1),c=t[Tt.Margin],l=Yc([255,255,0],[255,0,0],r);this.heatGraphics.rect(c.outer.x,c.outer.y,c.outer.width,c.outer.height),this.heatGraphics.fill({color:l,alpha:Math.min(.3,r)}),this.heatGraphics.stroke({color:l,alpha:Math.max(.3,r),pixelLine:!0})}this.position.set(e.x,e.y)}reset(){this.graphics.forEach(t=>t.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(t,e,i,n,s){const{x:a,y:g,width:r,height:c}=e,{x:u,y:o,width:l,height:h}=i;t.rect(a,g,r,c),t.fill({color:n,alpha:s}),t.rect(u,o,l,h),t.cut()}}var jc=Object.defineProperty,Vc=(A,t,e)=>t in A?jc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,LA=(A,t,e)=>Vc(A,typeof t!="symbol"?t+"":t,e);class qc{constructor(){LA(this,"holder",new v.Container),LA(this,"regions",new Map),LA(this,"colors",{[Tt.Margin]:"#B68655",[Tt.Padding]:"#BAC57F",[Tt.Border]:"#E7C583",[Tt.Content]:"#89B1BE",[Tt.Flex]:"#6E28D9"}),LA(this,"alpha",.75),Object.values(Tt).forEach(t=>{this.regions.set(t,{outer:new v.Rectangle,inner:new v.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let t=this.holder.children.length-1;t>=0;t--){const e=this.holder.children[t];v.BigPool.return(e)}}render(t){Oc(t,this.regions);const e=Object.values(Tt).reduce((g,r)=>{const c=this.regions.get(r);if(!c)return g;const u=`debugDraw${r.charAt(0).toUpperCase()}${r.slice(1)}`;return g[r]={...c,color:this.colors[r],draw:t._styles.custom[u]??!0},g},{}),{left:i,top:n}=t.computedLayout,s=t.target.getGlobalPosition(),a=v.BigPool.get(Wc,{...e,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:t._modificationCount,draw:t._styles.custom.debugHeat!==!1},heatOnly:!t._styles.custom.debug});this.holder.addChildAt(a,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const Xc=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:qc},Symbol.toStringTag,{value:"Module"}));v.extensions.add(To);const Zc=async(A,t,e)=>{const{components:i,autoRegister:n,...s}=e??{};i?(n!==!1&&_i(),Object.entries(i).forEach(([c,u])=>{gt(c,u)})):_i();const a=new v.Application;await a.init({resizeTo:A,autoStart:!1,antialias:!0,...s});const g=await ut(t);if(g.tag!="Canvas")throw new Error("Canvas is required");g.render(A,a);const{backgroundColor:r}=yt(g.props,{backgroundColor:"black"});return a.renderer.background.color=r(),{canvasElement:g,app:a}};function zc(A){return Bt.getCurrentIndexSignal(A)}function $c(A){return Bt.getFocusedElementSignal(A)}function th(A,t){const e=Bt.getCurrentIndexSignal(A),i=Bt.getFocusedElementSignal(A);if(!e||!i)return console.warn(`FocusContainer with id "${A}" not found`),()=>{};const n=rt(()=>{const s=e(),a=i();t(s,a)});return()=>{n&&typeof n.unsubscribe=="function"&&n.unsubscribe()}}const eh={linear:rg,easeIn:vi,easeInOut:Vs,easeOut:ag,circIn:qs,circInOut:gg,circOut:Xs,backIn:bi,backInOut:cg,backOut:lg,anticipate:hg,bounceIn:fg,bounceInOut:Eg,bounceOut:DA};class Ah{constructor(t,e,i,n,s,a,g=0){this.x0=t,this.y0=e,this.x1=i,this.y1=n,this.x2=s,this.y2=a,this.focalPoint=g,this.gradient=null,this.texture=null,this.size=600,this.size=t;const r=this.size*.5;this.canvas=v.DOMAdapter.get().createCanvas(),this.canvas.width=this.size,this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx&&(this.gradient=this.ctx.createRadialGradient(r*(1-g),r,0,r,r,r-.5))}addColorStop(t,e){this.gradient&&this.gradient.addColorStop(t,e)}render({translate:t}={}){const{x0:e,y0:i,x1:n,y1:s,x2:a,y2:g,focalPoint:r}=this,c=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,c,c),this.texture=new v.Texture({source:new v.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const u=new v.Matrix,o=Math.sqrt((n-e)*(n-e)+(s-i)*(s-i)),l=Math.sqrt((a-e)*(a-e)+(g-i)*(g-i)),h=Math.atan2(s-i,n-e),I=o/c,E=l/c;u.rotate(-h),u.scale(I,E),t&&u.translate(t.x,t.y),this.transform=u}return{texture:this.texture,matrix:this.transform}}}return x.ArraySubject=Ye,x.Button=tc,x.ButtonState=ko,x.Canvas=Kg,x.Circle=Ui,x.Container=eA,x.ControlsBase=dA,x.ControlsDirective=no,x.DOMContainer=$l,x.DOMElement=xo,x.DisplayObject=wt,x.Drag=lo,x.Drop=go,x.EVENTS=Io,x.Easing=eh,x.Ellipse=fo,x.Flash=uo,x.FocusContainer=nc,x.FocusManager=_A,x.GamepadControls=ds,x.Graphics=ge,x.Howl=Ug,x.Howler=ae.Howler,x.Input=us,x.Joystick=ec,x.JoystickControls=Qs,x.KeyboardControls=fs,x.Mesh=qg,x.NineSliceSprite=Xl,x.ObjectSubject=We,x.ParticlesEmitter=gl,x.RadialGradient=Ah,x.Rect=Bo,x.Scene=Zg,x.Scheduler=so,x.Shake=ho,x.Sound=ao,x.Sprite=un,x.Svg=jg,x.Text=Do,x.TilingSprite=ul,x.Transition=co,x.Triangle=Wg,x.Utils=fa,x.Video=ll,x.Viewport=Vl,x.ViewportFollow=oo,x.animatedSequence=Gg,x.animatedSignal=ki,x.bootstrapCanvas=Zc,x.computed=Qt,x.cond=Hg,x.createComponent=It,x.effect=rt,x.focusManager=Bt,x.h=ut,x.isAnimatedSignal=we,x.isArraySubject=ba,x.isComputed=ye,x.isElement=pt,x.isElementFrozen=kt,x.isObjectSubject=Sa,x.isObservable=zr,x.isPrimitive=Ri,x.isSignal=H,x.isTrigger=tA,x.linkedSignal=ys,x.loop=Ng,x.mount=Ti,x.on=SA,x.registerAllComponents=_i,x.registerComponent=gt,x.signal=Y,x.tick=Xg,x.trigger=Jg,x.untracked=Ii,x.useDefineProps=Gi,x.useFocusChange=th,x.useFocusIndex=zc,x.useFocusedElement=$c,x.useProps=yt,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}),x}({},PIXI);
29
29
  //# sourceMappingURL=index.global.js.map