diff --git a/dist/game.4181100b360f863b5856.js b/dist/game.4181100b360f863b5856.js deleted file mode 100644 index 094d3a98..00000000 --- a/dist/game.4181100b360f863b5856.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";var e,t={9082:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AudioPlayer=void 0;t.AudioPlayer=class{static playingAudios=[];static audioChangeListeners=[];static musicQueue=[];static autoPlay=!0;static play(e){if(this.playingAudios.length>0){let e;e=setInterval((()=>{let t=this.playingAudios[0].audio.volume;if(t-=.01,t<0)return t=0,clearInterval(e),this.playingAudios[0].audio.pause(),void this.playingAudios.splice(0,1);t>1&&(t=1),this.playingAudios[0].audio.volume=t}),10)}let t=URL.createObjectURL(e);return this.playingAudios.push({audio:new Audio(t),startTime:0}),new Promise((e=>{this.playingAudios[this.playingAudios.length-1].audio.play().then((()=>{e(),this.audioChangeListeners.forEach((e=>{e(this.playingAudios[this.playingAudios.length-1])})),this.playingAudios[this.playingAudios.length-1].startTime=Date.now()}))}))}static addToQueue(e){let t=URL.createObjectURL(e);this.musicQueue.push({audio:new Audio(t),startTime:0,beatmapID:0})}static playFromQueue(){}static setAutoPlay(e){this.autoPlay=e}static isAutoPlayOn(){return this.autoPlay}static onAudioChange(e){this.audioChangeListeners.push(e)}static removeOnAudioChange(e){this.audioChangeListeners=this.audioChangeListeners.filter((t=>t!==e))}static playSoundEffect(e){let t=URL.createObjectURL(e),i=new Audio(t);i.play(),i.onended=()=>{URL.revokeObjectURL(t)}}}},49323:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LoadAnim=void 0;const r=a(i(58687)),o=i(23360);class l extends r.Container{bg;arc;arcContainer;animInterval;container;bgContainer;bgRotation=0;constructor(e,t){super(),this.pivot.set(.5,.5),this.container=new r.Container,this.container.alpha=0,this.rotation=2.5*Math.PI,this.bgContainer=new r.Container,this.bg=new r.Graphics,this.bg.roundRect(-50,-50,100,100,25),this.bg.fill(e),this.arcContainer=new r.Container,this.arc=new r.Graphics,this.arc.arc(0,0,27,Math.PI+.26,2.92*Math.PI),this.arc.stroke({width:8,color:t,cap:"round"}),this.arc.scale.set(-1,1),this.container.scale.set(.5,.5),this.bgContainer.addChild(this.bg),this.arcContainer.addChild(this.arc),this.bgContainer.addChild(this.arcContainer),this.container.addChild(this.bgContainer),this.addChild(this.container),o.ease.add(this.container,{alpha:1,scale:1},{duration:400,ease:"easeInOutQuad"}),this.doAnims(),this.animInterval=setInterval((()=>{this.doAnims()}),800)}doAnims(){this.bgRotation+=90,o.ease.add(this.bgContainer,{angle:this.bgRotation},{duration:600,ease:"easeInOutQuad"})}getWidth(){return 100*this.scale.x}getHeight(){return 100*this.scale.y}draw(e){this.arcContainer.angle+=3*e.deltaTime}destroy(e){o.ease.add(this.container,{alpha:0,scale:.5},{duration:400,ease:"easeInOutQuad"}),setTimeout((()=>{clearInterval(this.animInterval),super.destroy(e)}),400)}}t.LoadAnim=l},16982:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Menu=void 0;const r=a(i(58687)),o=i(23360);class l extends r.Container{menuBG=new r.Graphics;isOpened=!1;openAnim;constructor(){super(),this.menuBG.rect(0,-62.5,1,125),this.menuBG.fill({color:"rgb(50,50,50)"}),this.menuBG.scale.set(1,0),this.menuBG.alpha=0,this.addChild(this.menuBG)}Open(){this.isOpened=!0,this.openAnim=o.ease.add(this.menuBG,{scaleY:1,alpha:1},{duration:400,ease:"easeOutQuint"})}Close(){this.isOpened=!1,this.openAnim&&this.openAnim.remove(),o.ease.add(this.menuBG,{scaleY:0,alpha:0},{duration:300,ease:"easeInSine"})}isOpen(){return this.isOpened}onResize(){this.position.set(-window.innerWidth,0),this.menuBG.width=2*window.innerWidth}}t.Menu=l},54349:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OsuCircle=void 0;const r=a(i(58687)),o=i(44961),l=i(23360),h=i(20825),d=i(12235),u=i(16982),c=i(9082);class g extends r.Container{outline;triangles=new o.Triangles;beatContainer=new r.Container;hoverContainer=new r.Container;moveContainer=new r.Container;parallaxContainer=new r.Container;menu=new u.Menu;isBeingHovered=!1;constructor(){super(),this.outline=r.Sprite.from("mainMenu.logoOutline"),this.outline.anchor.set(.5,.5);let e=.6,t=r.Sprite.from("mainMenu.logoMask");t.anchor.set(.5,.5),t.scale=e;let i=r.Sprite.from("mainMenu.logoMask");i.anchor.set(.5,.5),i.scale=e,i.blendMode="add",i.alpha=0,this.outline.scale.set(e),this.triangles.scale.set(e),this.triangles.position.set(-this.outline.width/2,-this.outline.height/2),this.triangles.mask=t,this.parallaxContainer.addChild(this.menu),this.beatContainer.addChild(this.triangles),this.beatContainer.addChild(t),this.beatContainer.addChild(i),this.beatContainer.addChild(this.outline),this.hoverContainer.addChild(this.beatContainer),this.moveContainer.addChild(this.hoverContainer),this.parallaxContainer.addChild(this.moveContainer),this.addChild(this.parallaxContainer),this.hoverContainer.eventMode="dynamic",this.hoverContainer.hitArea=new r.Circle(0,0,300);let n=d.Loader.Get("mainMenu.osuLogo.select"),s=d.Loader.Get("mainMenu.osuLogo.backToLogo");const a=()=>{this.isBeingHovered=!0,l.ease.add(this.hoverContainer,{scale:1.1},{duration:500,ease:"easeOutElastic"})};let o;this.hoverContainer.hitArea.contains(h.Main.mousePos.x,h.Main.mousePos.y)&&a(),this.hoverContainer.addEventListener("mouseenter",(()=>{a()})),this.hoverContainer.addEventListener("mouseleave",(()=>{this.isBeingHovered=!1,l.ease.add(this.hoverContainer,{scale:1},{duration:500,ease:"easeOutElastic"})})),this.hoverContainer.addEventListener("mousedown",(()=>{o=l.ease.add(this.hoverContainer,{scale:.9},{duration:1e3,ease:"easeOutSine"})}));const u=()=>{o&&o.remove(),l.ease.add(this.hoverContainer,{scale:this.isBeingHovered?1.1:1},{duration:500,ease:"easeOutElastic"})};let g,p,f,m;this.hoverContainer.addEventListener("mouseup",(()=>{u()})),this.hoverContainer.addEventListener("click",(()=>{this.menu.isOpen()||(this.isBeingHovered=!1),u(),this.menu.isOpen()||(f&&f.remove(),m&&m.remove()),i.alpha=.4,l.ease.add(i,{alpha:0},{duration:1500,ease:"easeOutExpo"}),this.menu.isOpen()||(c.AudioPlayer.playSoundEffect(n),g=l.ease.add(this.moveContainer,{position:{x:-250,y:0}},{duration:200,ease:"easeInSine"}).once("complete",(()=>{this.menu.Open()})),p=l.ease.add(this.moveContainer,{scale:.5},{duration:200,ease:"easeInSine"}))})),window.addEventListener("keyup",(e=>{"Escape"==e.key&&this.menu.isOpen()&&(g.remove(),p.remove(),c.AudioPlayer.playSoundEffect(s),this.menu.Close(),f=l.ease.add(this.moveContainer,{position:{x:0,y:0}},{duration:800,ease:"easeOutExpo"}),m=l.ease.add(this.moveContainer,{scale:1},{duration:800,ease:"easeOutExpo"}))}))}onResize(){this.menu.onResize()}draw(e){this.triangles.draw(e),this.menu.isOpen()?this.parallaxContainer.position.set(h.Main.mousePos.x/120,h.Main.mousePos.y/120):this.parallaxContainer.position.set(0,0)}}t.OsuCircle=g},44961:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.EaseOutSine=t.Triangles=void 0;const r=a(i(58687)),o=i(9082);class l extends r.Container{bgGradient;triangles=[];triangleGenInterval;graphics=new r.Graphics;pulseAnimation;pulseAnimationFlash;flash;constructor(){super();let e=[16737963,13390473];function t(e,t){return Math.random()*(t-e)+e}function i(){let e=1-t(0,1),i=1-t(0,1),n=Math.sqrt(-2*Math.log(e))*Math.sin(2*Math.PI*i);return Math.max(.5+.16*n,.1)}this.bgGradient=new r.FillGradient(0,0,0,1024),e.forEach(((t,i)=>{const n=i/e.length;this.bgGradient.addColorStop(n,t)}));for(let e=0;e<15;e++)this.triangles.push({x:t(0,1024),y:t(0,1024),velocity:i()});this.triangleGenInterval=setInterval((()=>{document.hasFocus()&&this.triangles.push({x:t(0,1024),y:974,velocity:i()})}),800),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.addChild(this.graphics),this.flash=r.Sprite.from("mainMenu.logoMask"),this.flash.alpha=0,this.flash.blendMode="add",this.addChild(this.flash),this.pulseAnimation=new h(375,!0,o.AudioPlayer.playingAudios[o.AudioPlayer.playingAudios.length-1].startTime),this.pulseAnimationFlash=new h(375,!0,o.AudioPlayer.playingAudios[o.AudioPlayer.playingAudios.length-1].startTime)}destroy(e){super.destroy(e)}draw(e){this.pulseAnimation.update(),this.pulseAnimationFlash.update(),this.destroyed||(this.flash.alpha=this.pulseAnimationFlash.getValue()/7,document.hasFocus()&&(this.graphics.clear(),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.triangles.forEach(((t,i)=>{t.y-=e.deltaTime*t.velocity*4,this.graphics.moveTo(t.x,t.y),this.graphics.lineTo(t.x-250,t.y+400),this.graphics.lineTo(t.x+250,t.y+400),this.graphics.lineTo(t.x,t.y);let n=1;t.y+50<300&&(n=(t.y+50)/300),n=Math.min(Math.max(n,0),1),this.graphics.stroke({color:new r.Color("rgba(182, 52, 111, "+n.toFixed(6)+")"),width:4}),t.y+400<0&&this.triangles.splice(i,1)}))))}}t.Triangles=l;class h{startTime;duration;elapsedMS=0;reverse=!1;doReverse;constructor(e,t,i){this.startTime=i||Date.now(),this.doReverse=t,this.duration=this.doReverse?e/2:e}update(){this.elapsedMS=Date.now()-this.startTime,this.elapsedMS>this.duration&&(this.reset(),this.update())}getValue(){return this.reverse?this.func(1-this.elapsedMS/this.duration):this.func(this.elapsedMS/this.duration)}reset(){this.startTime=Date.now(),this.elapsedMS=0,this.doReverse&&(this.reverse=!this.reverse)}func(e){return Math.sin(e*Math.PI/2)}}t.EaseOutSine=h},36721:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomBackground=void 0;const r=a(i(58687)),o=i(12235),l=i(84283),h=i(23360),d=i(20825);class u extends l.Screen{bgContainer=new r.Container;parallaxMultiplier=60;start(){let e=o.Loader.seasonalBackgroundsNum>0,t=(i=1,n=e?o.Loader.seasonalBackgroundsNum:o.Loader.defaultBackgroundsNum,Math.round(Math.random()*(n-i)+i));var i,n;this.bgContainer.pivot.set(.5,.5),this.bgContainer.position.set((d.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(d.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier),this.addChild(this.bgContainer),this.setBG(r.Sprite.from((e?"seasonal_bg":"default_bg")+t))}setBG(e){if(0==this.bgContainer.children?.length)this.bgContainer.addChild(e);else{let t=this.bgContainer.children[0];e.zIndex=-1,this.bgContainer.addChild(e),h.ease.add(t,{alpha:0},{duration:800,ease:"linear"}).once("complete",(()=>{e.zIndex=0,t.destroy()}))}e.anchor.set(.5,.5),this.onResize()}newRandomBG(){let e=(t=1,i=o.Loader.defaultBackgroundsNum,Math.round(Math.random()*(i-t)+t));var t,i;this.setBG(r.Sprite.from("default_bg"+e))}draw(e){this.bgContainer.position.set((d.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(d.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier)}onClose(){return Promise.resolve(this)}onResize(){this.bgContainer.children.forEach((e=>{if(e instanceof r.Sprite){let t,i=e.texture.width,n=e.texture.height;t=window.innerWidth>window.innerHeight?window.innerWidth/i:window.innerHeight/n,n*t{i.id==e&&(t=i.data)})),!t)throw new Error("Asset not found!");return t}static GetString(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataString)})),!t)throw new Error("Asset not found or is not a string!");return t}static addBackgrounds(){return new Promise((e=>{for(let e=1;ee.json())).then((t=>{t.backgrounds.forEach(((e,t)=>{this.loadList.push({id:"seasonal_bg"+(t+1),url:"https://corsproxy.io/?"+encodeURIComponent(e.url),pixiBundleName:"textures",loadParser:"loadTextures"}),this.seasonalBackgroundsNum=t+1})),e()})).catch((t=>{console.warn("Could not fetch seasonal backgrounds.",t),e()}))}))}static Load(){return this.addToLoadList(),new Promise((e=>{this.addBackgrounds().then((()=>{let t=[],i=[],n=[],s=0,a=0;this.loadList.forEach((e=>{e.pixiBundleName?i.push(e):t.push(e)})),i.forEach((e=>{let t=!1;n.forEach((i=>{i.length>0&&i[0].pixiBundleName==e.pixiBundleName&&(i.push(e),t=!0)})),t||n.push([e])}));const o=t=>{t?a++:s++,a+s>=this.loadList.length&&e()};t.forEach((e=>{fetch(e.url).then((e=>e.blob())).then((t=>{e.isText?t.text().then((i=>{o(),this.loadedList.push({id:e.id,data:t,dataString:i})})):(o(),this.loadedList.push({id:e.id,data:t}))})).catch((t=>{o(!0),console.warn("Asset '"+e.id+"' failed to load: "+t)}))})),n.forEach((e=>{if(e.length>0){if(!e[0].pixiBundleName)throw new Error("wtf????");let t=[];e.forEach((e=>{e.loadParser?t.push({alias:e.id,src:e.url,loadParser:e.loadParser}):t.push({alias:e.id,src:e.url})})),r.Assets.addBundle(e[0].pixiBundleName,t),r.Assets.loadBundle(e[0].pixiBundleName).then((()=>{e.forEach((()=>{o()}))}))}}))}))}))}}},25373:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.InteractScreen=void 0;const r=i(84283),o=a(i(58687)),l=i(20825),h=i(94433),d=i(23360),u=i(9082);class c extends r.Screen{text;introTrack;clickSound;clickArea=new o.Graphics;constructor(e,t){super(),this.introTrack=e,this.clickSound=t,this.text=new o.Text({text:"Click anywhere to play!",style:{fontFamily:"TorusRegular",fontSize:36,fill:"white"}})}start(){this.text.anchor.set(.5,.5),this.text.scale.set(.5,.5),this.text.alpha=0,this.text.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.text),this.clickArea.rect(0,0,1,1),this.clickArea.fill("rgba(0,0,0,0)"),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.addChild(this.clickArea),this.clickArea.eventMode="static",this.clickArea.cursor="pointer";const e=()=>{this.clickArea.eventMode="none",u.AudioPlayer.playSoundEffect(this.clickSound),l.Main.switchScreen(new h.IntroScreen(this.introTrack))};this.clickArea.onclick=()=>{e()},this.clickArea.ontap=()=>{e()},d.ease.add(this.text,{alpha:1,scale:1},{duration:400,ease:"easeOutQuad"})}onClose(){return new Promise((e=>{d.ease.add(this.text,{alpha:0,scale:.5},{duration:200,ease:"easeInOutQuad"}),setTimeout((()=>{e(this)}),200)}))}draw(e){}onResize(){this.text.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0)}}t.InteractScreen=c},88662:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.GlitchingTriangles=void 0;const r=a(i(58687)),o=i(23360);class l extends r.Container{constructor(e){super();let t=new r.Graphics,i=n(.2,1.2);function n(e,t){return Math.random()*(t-e)+e}t.moveTo(0,0),t.lineTo(-50*i,100*i),t.lineTo(50*i,100*i),t.lineTo(0,0),Math.random()<.5?t.fill("white"):t.stroke({color:"white",width:1});let s=n(e.x1,e.x2),a=n(e.y1,e.y2);t.position.set(s,a),o.ease.add(t,{alpha:0},{duration:200,ease:"linear"}),setTimeout((()=>{this.destroy()}),200),this.addChild(t)}}t.GlitchingTriangles=l},94433:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.IntroScreen=void 0;const r=i(84283),o=i(53931),l=i(20825),h=a(i(58687)),d=i(88662),u=i(23360),c=i(58940),g=i(9082),p=i(55402);class f extends r.Screen{introTrackUrl;doTextSpacingAnim=!1;triangles=new h.Container;ruleSetContainer=new h.Container;flash=new h.Graphics;logoContainerContainer=new h.Container;logoContainer=new h.Container;lazerLogo=new p.LazerLogo;flashed=!1;mainMenu;welcomeText=new h.Text({text:"",style:{fontFamily:"TorusThin",fontSize:42,fill:"white",letterSpacing:5}});constructor(e){super(),this.introTrackUrl=URL.createObjectURL(e)}start(){this.logoContainer.addChild(this.lazerLogo),this.logoContainer.scale.set(1.2),this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.logoContainerContainer.pivot.set(.5,.5),this.logoContainerContainer.addChild(this.logoContainer),this.flash.rect(0,0,1,1),this.flash.fill("white"),this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight(),this.flash.blendMode="add",this.welcomeText.anchor.set(.5,.5),this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),setTimeout((async()=>{const{entries:e}=await(0,o.unzip)(this.introTrackUrl);for(const[t,i]of Object.entries(e))"audio.mp3"==t&&i.blob().then((e=>{g.AudioPlayer.play(e).then((()=>{this.afterAudioPlay(),this.mainMenu=new c.MainMenu}))})),t.endsWith(".osu")}),500)}afterAudioPlay(){let e;this.addChild(this.welcomeText),setTimeout((()=>{this.welcomeText.text="wel",this.onResize()}),200),setTimeout((()=>{this.welcomeText.text="welcome",this.onResize()}),400),setTimeout((()=>{this.welcomeText.text="welcome to",this.onResize()}),700),this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.triangles),setTimeout((()=>{this.welcomeText.text="welcome to kosu!",this.doTextSpacingAnim=!0,e=setInterval((()=>{let e=new d.GlitchingTriangles({x1:-this.welcomeText.width/2-100,x2:this.welcomeText.width/2+100,y1:-this.welcomeText.height/2-150,y2:this.welcomeText.height/2+100});this.triangles.addChild(e)}),30),this.onResize()}),900);let t=h.Sprite.from("icon_ruleset_std"),i=h.Sprite.from("icon_ruleset_taiko"),n=h.Sprite.from("icon_ruleset_ctb"),s=h.Sprite.from("icon_ruleset_mania");t.anchor.set(.5,.5),t.scale.set(.4),this.ruleSetContainer.addChild(t),i.anchor.set(.5,.5),i.scale.set(.4),this.ruleSetContainer.addChild(i),n.anchor.set(.5,.5),n.scale.set(.4),this.ruleSetContainer.addChild(n),s.anchor.set(.5,.5),s.scale.set(.4),this.ruleSetContainer.addChild(s),setTimeout((()=>{this.doTextSpacingAnim=!1,this.onResize(),clearInterval(e),this.welcomeText.destroy(),this.triangles.destroy(),this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.ruleSetContainer);t.position.set(-375,0),i.position.set(-125,0),n.position.set(125,0),s.position.set(375,0),u.ease.add(this.ruleSetContainer,{scale:.8},{duration:1e3,ease:"linear"})}),1450),setTimeout((()=>{t.position.set(-240,0),i.position.set(-75,0),n.position.set(75,0),s.position.set(240,0),t.scale.set(1),i.scale.set(1),n.scale.set(1),s.scale.set(1)}),1650),setTimeout((()=>{t.position.set(-350,0),i.position.set(-120,0),n.position.set(120,0),s.position.set(350,0),t.scale.set(2),i.scale.set(2),n.scale.set(2),s.scale.set(2),u.ease.add(this.ruleSetContainer,{scale:1.3},{duration:1e3,ease:"linear"})}),1850),setTimeout((()=>{this.ruleSetContainer.visible=!1,this.lazerLogo.start(),this.addChild(this.logoContainerContainer),this.logoContainerContainer.scale.set(1.2),u.ease.add(this.logoContainerContainer,{scale:1},{duration:920,ease:"easeInQuad"}),setTimeout((()=>{u.ease.add(this.logoContainer,{scale:1.2-.8},{duration:276,ease:"easeInQuint"})}),644)}),2080),setTimeout((()=>{this.addChild(this.flash),this.flashed=!0,this.logoContainerContainer.visible=!1,u.ease.add(this.flash,{alpha:0},{duration:1e3,ease:"easeOutQuad"}),null==this.mainMenu&&(this.mainMenu=new c.MainMenu),l.Main.switchScreen(this.mainMenu)}),3e3)}draw(e){this.doTextSpacingAnim&&(this.welcomeText.style.letterSpacing+=.15*e.deltaTime,this.onResize())}onClose(){return new Promise((e=>{setTimeout((()=>{e(this)}),1e3)}))}onResize(){this.welcomeText.destroyed||this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.destroyed||this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.ruleSetContainer.destroyed||this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),!this.flash.destroyed&&this.flashed&&(this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight()),this.logoContainerContainer.destroyed||this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2)}}t.IntroScreen=f},55402:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LazerLogo=void 0;const r=a(i(58687)),o=i(12235),l=i(23360);class h extends r.Container{shaderHighlight;shaderBackground;textureHighlight=r.Texture.from("intro_triangles_osuLogo_anim_highlight");textureBackground=r.Texture.from("intro_triangles_osuLogo_anim_background");constructor(){super();const e=o.Loader.GetString("webgl:shaders/logoAnimation.frag"),t=o.Loader.GetString("webgl:shaders/logoAnimation.vert");this.shaderHighlight=r.Shader.from({gl:{vertex:t,fragment:e},resources:{uTexture:this.textureHighlight.source,uProgress:{progress:{value:0,type:"f32"}}}}),this.shaderBackground=r.Shader.from({gl:{vertex:t,fragment:e},resources:{uTexture:this.textureBackground.source,uProgress:{progress:{value:0,type:"f32"}}}})}start(){const e=new r.Geometry({attributes:{aPosition:[-this.textureHighlight.width/2,-this.textureHighlight.height/2,this.textureHighlight.width/2,-this.textureHighlight.height/2,this.textureHighlight.width/2,this.textureHighlight.width/2,-this.textureHighlight.width/2,this.textureHighlight.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},indexBuffer:[0,1,2,0,2,3]}),t=new r.Mesh({geometry:e,shader:this.shaderHighlight});this.addChild(t);const i=new r.Geometry({attributes:{aPosition:[-this.textureBackground.width/2,-this.textureBackground.height/2,this.textureBackground.width/2,-this.textureBackground.height/2,this.textureBackground.width/2,this.textureBackground.width/2,-this.textureBackground.width/2,this.textureBackground.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[.5,.5,.5,1,.5,.5,.5,1,.5,.5,.5,1,.5,.5,.5,1]},indexBuffer:[0,1,2,0,2,3]}),n=new r.Mesh({geometry:i,shader:this.shaderBackground});this.addChild(n);let s=new r.Container;s.scale.set(0,0),l.ease.add(s,{scale:1},{duration:920,ease:"linear"}).on("each",(()=>{this.shaderHighlight.resources.uProgress.uniforms.progress=s.scale.x,this.shaderBackground.resources.uProgress.uniforms.progress=s.scale.x}))}}t.LazerLogo=h},76969:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.LoadScreen=void 0;const n=i(84283),s=i(49323),a=i(58293);class r extends n.Screen{loadAnim;start(){this.loadAnim=new s.LoadAnim("rgba(255,255,255,0.7)","black");let e=a.Settings.getRangeSetting("UI scaling").getValue();this.loadAnim.scale.set(.8*e,.8*e),this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-15,this.getScreenHeight()-this.loadAnim.getHeight()-15),this.addChild(this.loadAnim)}draw(e){this.loadAnim?.draw(e)}onClose(){return new Promise((e=>{null!=this.loadAnim&&this.loadAnim.destroy(),setTimeout((()=>{e(this)}),400)}))}onResize(){null!=this.loadAnim?.position&&this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-20,this.getScreenHeight()-this.loadAnim.getHeight()-20)}}t.LoadScreen=r},58940:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.MainMenu=void 0;const n=i(84283),s=i(36721),a=i(54349);class r extends n.Screen{bg=new s.RandomBackground;osuCircle=new a.OsuCircle;start(){this.bg.start(),this.addChild(this.bg),this.addChild(this.osuCircle)}draw(e){this.bg.draw(e),this.osuCircle.draw(e)}onClose(){return new Promise((e=>{this.bg.onClose().then((()=>{e(this)}))}))}onResize(){this.osuCircle.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.bg.onResize(),this.osuCircle.onResize()}}t.MainMenu=r},84283:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Screen=void 0;const r=a(i(58687));class o extends r.Container{constructor(){super()}getScreenWidth(){return window.innerWidth}getScreenHeight(){return window.innerHeight}}t.Screen=o},75341:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsCategory=t.Setting=void 0;const n=i(58293);var s;t.Setting=class{constructor(e){n.Settings.register({setting:this,data:e})}},function(e){e.General="General",e.Skin="Skin",e.Input="Input",e.UserInterface="User Interface",e.Gameplay="Gameplay",e.Rulesets="Rulesets",e.Audio="Audio",e.Graphics="Graphics",e.Online="Online",e.Maintenance="Maintenance",e.Debug="Debug"}(s||(t.SettingsCategory=s={}))},74975:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownSetting=void 0;const n=i(75341);class s extends n.Setting{value;getValue(){if(!this.value)throw new Error("Value is undefined!");return this.value}setValue(e){this.value=e}}t.DropdownSetting=s},78642:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.RangeSetting=void 0;const n=i(75341);class s extends n.Setting{value=0;getValue(){return this.value}setValue(e){this.value=e}}t.RangeSetting=s},58293:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=void 0;const n=i(64681),s=i(78642),a=i(44256),r=i(74975);t.Settings=class{static settingsList=[];constructor(){new a.Renderer,new n.UIScale}static register(e){this.settingsList.push(e)}static getRangeSetting(e){let t=!1;if(this.settingsList.forEach((i=>{if(i.data.name==e&&i.setting instanceof s.RangeSetting)return t=!0,i.setting})),!t)throw new Error("Invalid Setting Name!");return new n.UIScale}static getDropDownSetting(e){let t=!1;if(this.settingsList.forEach((i=>{if(i.data.name==e&&i.setting instanceof r.DropdownSetting)return t=!0,i.setting})),!t)throw new Error("Invalid Setting Name!");return new a.Renderer}static getList(){return this.settingsList}}},44256:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Renderer=void 0;const n=i(75341),s=i(74975);class a extends s.DropdownSetting{list=[];webglOption={displayName:"WebGL",value:"webgl"};defaultValue=this.webglOption;constructor(){super({name:"Renderer",category:n.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.Renderer=a},64681:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UIScale=void 0;const n=i(78642),s=i(75341);class a extends n.RangeSetting{maxValue=.8;minValue=1.6;increment=.1;defaultValue=1;constructor(){super({name:"UI scaling",category:s.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.UIScale=a},29820:function(e,t,i){i(11307);const n=i(58687),s=i(20825),a=i(58293),r=window.innerWidth,o=window.innerHeight,l=new n.Application;window.onload=async()=>{new a.Settings;let e=a.Settings.getDropDownSetting("Renderer").getValue().value;l.init({backgroundColor:"black",width:r,height:o,antialias:!0,preference:e,resolution:window.devicePixelRatio,autoDensity:!0}).then((()=>{new s.Main(l)}))}},20825:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Main=void 0;const r=i(76969),o=a(i(58687)),l=i(25373),h=i(12235);class d{static app;static currentScreen;static allScreens=[];static clickArea=new o.Graphics;static mousePos={x:0,y:0};static pointerLockExitTime;static doPointerLock=!1;constructor(e){d.app=e,document.body.appendChild(d.app.canvas),this.doResize(),window.addEventListener("resize",this.doResize),d.app.stage.eventMode="static",d.app.stage.addEventListener("mousemove",(e=>{d.mousePos.x=e.clientX,d.mousePos.y=e.clientY})),document.addEventListener("pointerlockchange",this.pointerLockChanged,!1),d.switchScreen(new r.LoadScreen),navigator.mediaSession.setActionHandler("play",(function(){})),navigator.mediaSession.setActionHandler("pause",(function(){})),navigator.mediaSession.setActionHandler("stop",(function(){})),navigator.mediaSession.setActionHandler("seekbackward",(function(){})),navigator.mediaSession.setActionHandler("seekforward",(function(){})),navigator.mediaSession.setActionHandler("previoustrack",(function(){})),navigator.mediaSession.setActionHandler("nexttrack",(function(){})),h.Loader.Load().then((()=>{let e=h.Loader.Get("sample_dialog_ok"),t=h.Loader.Get("introTrianglesTrack");d.switchScreen(new l.InteractScreen(t,e))}))}doResize(){d.app.renderer.resize(window.innerWidth,window.innerHeight),d.app.stage.scale.x=1,d.app.stage.scale.y=1,d.clickArea.destroyed||(d.clickArea.width=window.innerWidth,d.clickArea.height=window.innerHeight,d.clickArea.position.set(0,0)),d.allScreens.forEach((e=>{e.onResize()}))}pointerLockChanged(){!document.pointerLockElement&&d.doPointerLock&&(d.pointerLockExitTime=Date.now(),d.clickArea=new o.Graphics,d.clickArea.rect(0,0,1,1),d.clickArea.fill("rgba(0,0,0,0.1)"),d.clickArea.width=window.innerWidth,d.clickArea.height=window.innerHeight,d.clickArea.position.set(0,0),d.app.stage.addChild(d.clickArea),d.clickArea.eventMode="static",d.clickArea.cursor="pointer",d.clickArea.zIndex=9999999,d.clickArea.onclick=()=>{Date.now()-d.pointerLockExitTime<1500||(d.clickArea.removeFromParent(),d.clickArea.destroy(),d.pointerLock())})}static pointerLock(){this.doPointerLock=!0,d.app.canvas.requestPointerLock({unadjustedMovement:!0})}static exitPointerLock(){this.doPointerLock=!1,d.app.canvas.exitPointerLock()}static switchScreen(e){null!=this.currentScreen&&(this.currentScreen.zIndex=1,this.currentScreen.onClose().then((e=>{for(let t=0;t=a)&&Object.keys(n.O).every((function(e){return n.O[e](i[l])}))?i.splice(l--,1):(o=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[i,s,a]},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var s,a,r=i[0],o=i[1],l=i[2],h=0;if(r.some((function(t){return 0!==e[t]}))){for(s in o)n.o(o,s)&&(n.m[s]=o[s]);if(l)var d=l(n)}for(t&&t(i);h0:"number"==typeof e},i=function(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=Math.pow(10,t)),Math.round(r*e)/r+0},s=function(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=1),e>r?r:e>t?e:t},o=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},a=function(e){return{r:s(e.r,0,255),g:s(e.g,0,255),b:s(e.b,0,255),a:s(e.a)}},u=function(e){return{r:i(e.r),g:i(e.g),b:i(e.b),a:i(e.a,3)}},l=/^#([0-9a-f]{3,8})$/i,c=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},h=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,s=Math.max(t,r,n),o=s-Math.min(t,r,n),a=o?s===t?(r-n)/o:s===r?2+(n-t)/o:4+(t-r)/o:0;return{h:60*(a<0?a+6:a),s:s?o/s*100:0,v:s/255*100,a:i}},d=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var s=Math.floor(t),o=n*(1-r),a=n*(1-(t-s)*r),u=n*(1-(1-t+s)*r),l=s%6;return{r:255*[n,a,o,o,u,n][l],g:255*[u,n,n,a,o,o][l],b:255*[o,o,u,n,n,a][l],a:i}},p=function(e){return{h:o(e.h),s:s(e.s,0,100),l:s(e.l,0,100),a:s(e.a)}},f=function(e){return{h:i(e.h),s:i(e.s),l:i(e.l),a:i(e.a,3)}},m=function(e){return d((r=(t=e).s,{h:t.h,s:(r*=((n=t.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:t.a}));var t,r,n},g=function(e){return{h:(t=h(e)).h,s:(i=(200-(r=t.s))*(n=t.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,r,n,i},_=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,x=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,b=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v={string:[[function(e){var t=l.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?i(parseInt(e[3]+e[3],16)/255,2):1}:6===e.length||8===e.length?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:8===e.length?i(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=b.exec(e)||y.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=_.exec(e)||x.exec(e);if(!t)return null;var n,i,s=p({h:(n=t[1],i=t[2],void 0===i&&(i="deg"),Number(n)*(r[i]||1)),s:Number(t[3]),l:Number(t[4]),a:void 0===t[5]?1:Number(t[5])/(t[6]?100:1)});return m(s)},"hsl"]],object:[[function(e){var t=e.r,r=e.g,i=e.b,s=e.a,o=void 0===s?1:s;return n(t)&&n(r)&&n(i)?a({r:Number(t),g:Number(r),b:Number(i),a:Number(o)}):null},"rgb"],[function(e){var t=e.h,r=e.s,i=e.l,s=e.a,o=void 0===s?1:s;if(!n(t)||!n(r)||!n(i))return null;var a=p({h:Number(t),s:Number(r),l:Number(i),a:Number(o)});return m(a)},"hsl"],[function(e){var t=e.h,r=e.s,i=e.v,a=e.a,u=void 0===a?1:a;if(!n(t)||!n(r)||!n(i))return null;var l=function(e){return{h:o(e.h),s:s(e.s,0,100),v:s(e.v,0,100),a:s(e.a)}}({h:Number(t),s:Number(r),v:Number(i),a:Number(u)});return d(l)},"hsv"]]},T=function(e,t){for(var r=0;r=.5},e.prototype.toHex=function(){return t=(e=u(this.rgba)).r,r=e.g,n=e.b,o=(s=e.a)<1?c(i(255*s)):"","#"+c(t)+c(r)+c(n)+o;var e,t,r,n,s,o},e.prototype.toRgb=function(){return u(this.rgba)},e.prototype.toRgbString=function(){return t=(e=u(this.rgba)).r,r=e.g,n=e.b,(i=e.a)<1?"rgba("+t+", "+r+", "+n+", "+i+")":"rgb("+t+", "+r+", "+n+")";var e,t,r,n,i},e.prototype.toHsl=function(){return f(g(this.rgba))},e.prototype.toHslString=function(){return t=(e=f(g(this.rgba))).h,r=e.s,n=e.l,(i=e.a)<1?"hsla("+t+", "+r+"%, "+n+"%, "+i+")":"hsl("+t+", "+r+"%, "+n+"%)";var e,t,r,n,i},e.prototype.toHsv=function(){return e=h(this.rgba),{h:i(e.h),s:i(e.s),v:i(e.v),a:i(e.a,3)};var e},e.prototype.invert=function(){return R({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return void 0===e&&(e=.1),R(E(this.rgba,e))},e.prototype.desaturate=function(e){return void 0===e&&(e=.1),R(E(this.rgba,-e))},e.prototype.grayscale=function(){return R(E(this.rgba,-1))},e.prototype.lighten=function(e){return void 0===e&&(e=.1),R(M(this.rgba,e))},e.prototype.darken=function(e){return void 0===e&&(e=.1),R(M(this.rgba,-e))},e.prototype.rotate=function(e){return void 0===e&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return"number"==typeof e?R({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):i(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=g(this.rgba);return"number"==typeof e?R({h:e,s:t.s,l:t.l,a:t.a}):i(t.h)},e.prototype.isEqual=function(e){return this.toHex()===R(e).toHex()},e}(),R=function(e){return e instanceof P?e:new P(e)},w=[];t.Colord=P,t.colord=R,t.extend=function(e){e.forEach((function(e){w.indexOf(e)<0&&(e(P,v),w.push(e))}))},t.getFormat=function(e){return S(e)[1]},t.random=function(){return new P({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})}},13185:function(e){e.exports=function(e,t){var r={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},n={};for(var i in r)n[r[i]]=i;var s={};e.prototype.toName=function(t){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var i,o,a=n[this.toHex()];if(a)return a;if(null==t?void 0:t.closest){var u=this.toRgb(),l=1/0,c="black";if(!s.length)for(var h in r)s[h]=new e(r[h]).toRgb();for(var d in r){var p=(i=u,o=s[d],Math.pow(i.r-o.r,2)+Math.pow(i.g-o.g,2)+Math.pow(i.b-o.b,2));p=t+r||t?new java.lang.String(e,t,r)+"":e}function _(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}d.prototype.parseFromString=function(e,t){var r=this.options,n=new c,i=r.domBuilder||new p,o=r.errorHandler,a=r.locator,l=r.xmlns||{},d=/\/x?html?$/.test(t),f=d?s.HTML_ENTITIES:s.XML_ENTITIES;a&&i.setDocumentLocator(a),n.errorHandler=function(e,t,r){if(!e){if(t instanceof p)return t;e=t}var n={},i=e instanceof Function;function s(t){var s=e[t];!s&&i&&(s=2==e.length?function(r){e(t,r)}:e),n[t]=s&&function(e){s("[xmldom "+t+"]\t"+e+m(r))}||function(){}}return r=r||{},s("warning"),s("error"),s("fatalError"),n}(o,i,a),n.domBuilder=r.domBuilder||i,d&&(l[""]=u.HTML),l.xml=l.xml||u.XML;var g=r.normalizeLineEndings||h;return e&&"string"==typeof e?n.parse(g(e),l,f):n.errorHandler.error("invalid doc source"),i.doc},p.prototype={startDocument:function(){this.doc=(new a).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,r,n){var i=this.doc,s=i.createElementNS(e,r||t),o=n.length;_(this,s),this.currentElement=s,this.locator&&f(this.locator,s);for(var a=0;a=0))throw new w(P,new Error(e.tagName+"@"+r));for(var i=t.length-1;n"==e&&">")||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";"}function N(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(N(e,t))return!0}while(e=e.nextSibling)}function H(){this.ownerDocument=this}function X(e,t,r,n){e&&e._inc++,r.namespaceURI===s.XMLNS&&delete t._nsMap[r.prefix?r.localName:""]}function V(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,s=0;i;)n[s++]=i,i=i.nextSibling;n.length=s,delete n[n.length]}}}function z(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,V(e.ownerDocument,e),t}function W(e){return e&&e.nodeType===L.DOCUMENT_TYPE_NODE}function Y(e){return e&&e.nodeType===L.ELEMENT_NODE}function $(e){return e&&e.nodeType===L.TEXT_NODE}function j(e,t){var r=e.childNodes||[];if(i(r,Y)||W(t))return!1;var n=i(r,W);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function q(e,t){var r=e.childNodes||[];if(i(r,(function(e){return Y(e)&&e!==t})))return!1;var n=i(r,W);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function K(e,t,r){if(!function(e){return e&&(e.nodeType===L.DOCUMENT_NODE||e.nodeType===L.DOCUMENT_FRAGMENT_NODE||e.nodeType===L.ELEMENT_NODE)}(e))throw new w(M,"Unexpected parent node type "+e.nodeType);if(r&&r.parentNode!==e)throw new w(P,"child not in parent");if(!function(e){return e&&(Y(e)||$(e)||W(e)||e.nodeType===L.DOCUMENT_FRAGMENT_NODE||e.nodeType===L.COMMENT_NODE||e.nodeType===L.PROCESSING_INSTRUCTION_NODE)}(t)||W(t)&&e.nodeType!==L.DOCUMENT_NODE)throw new w(M,"Unexpected node type "+t.nodeType+" for parent node type "+e.nodeType)}function Z(e,t,r){var n=e.childNodes||[],s=t.childNodes||[];if(t.nodeType===L.DOCUMENT_FRAGMENT_NODE){var o=s.filter(Y);if(o.length>1||i(s,$))throw new w(M,"More than one element or text in fragment");if(1===o.length&&!j(e,r))throw new w(M,"Element in fragment can not be inserted before doctype")}if(Y(t)&&!j(e,r))throw new w(M,"Only one element can be added and only after doctype");if(W(t)){if(i(n,W))throw new w(M,"Only one doctype is allowed");var a=i(n,Y);if(r&&n.indexOf(a)1||i(s,$))throw new w(M,"More than one element or text in fragment");if(1===o.length&&!q(e,r))throw new w(M,"Element in fragment can not be inserted before doctype")}if(Y(t)&&!q(e,r))throw new w(M,"Only one element can be added and only after doctype");if(W(t)){if(i(n,(function(e){return W(e)&&e!==r})))throw new w(M,"Only one doctype is allowed");var a=i(n,Y);if(r&&n.indexOf(a)=0;S--){if(""===(E=i[S]).prefix&&E.namespace===e.namespaceURI){h=E.namespace;break}}if(h!==e.namespaceURI)for(S=i.length-1;S>=0;S--){var E;if((E=i[S]).namespace===e.namespaceURI){E.prefix&&(c=E.prefix+":"+l);break}}}t.push("<",c);for(var A=0;A"),r&&/^script$/i.test(l))for(;u;)u.data?t.push(u.data):ge(u,t,r,n,i.slice()),u=u.nextSibling;else for(;u;)ge(u,t,r,n,i.slice()),u=u.nextSibling;t.push("")}else t.push("/>");return;case y:case T:for(u=e.firstChild;u;)ge(u,t,r,n,i.slice()),u=u.nextSibling;return;case p:return me(t,e.name,e.value);case f:return t.push(e.data.replace(/[<&>]/g,k));case m:return t.push("");case b:return t.push("\x3c!--",e.data,"--\x3e");case v:var w=e.publicId,B=e.systemId;if(t.push("");else if(B&&"."!=B)t.push(" SYSTEM ",B,">");else{var G=e.internalSubset;G&&t.push(" [",G,"]"),t.push(">")}return;case x:return t.push("");case g:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function _e(e,t,r){var n;switch(t.nodeType){case d:(n=t.cloneNode(!1)).ownerDocument=e;case T:break;case p:r=!0}if(n||(n=t.cloneNode(!1)),n.ownerDocument=e,n.parentNode=null,r)for(var i=t.firstChild;i;)n.appendChild(_e(e,i,r)),i=i.nextSibling;return n}function xe(e,t,r){var n=new t.constructor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];"object"!=typeof s&&s!=n[i]&&(n[i]=s)}switch(t.childNodes&&(n.childNodes=new B),n.ownerDocument=e,n.nodeType){case d:var o=t.attributes,a=n.attributes=new F,u=o.length;a._ownerElement=n;for(var l=0;l=0&&e0},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r)for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},l(h,L),l(h,L.prototype),H.prototype={nodeName:"#document",nodeType:y,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==T){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n}return e}return J(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===d&&(this.documentElement=e),e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),z(this,e)},replaceChild:function(e,t){J(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),Y(e)&&(this.documentElement=e)},importNode:function(e,t){return _e(this,e,t)},getElementById:function(e){var t=null;return N(this.documentElement,(function(r){if(r.nodeType==d&&r.getAttribute("id")==e)return t=r,!0})),t},getElementsByClassName:function(e){var t=u(e);return new G(this,(function(r){var n=[];return t.length>0&&N(r.documentElement,(function(i){if(i!==r&&i.nodeType===d){var s=i.getAttribute("class");if(s){var o=e===s;if(!o){var a=u(s);o=t.every((l=a,function(e){return l&&-1!==l.indexOf(e)}))}o&&n.push(i)}}var l})),n}))},createElement:function(e){var t=new ee;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new B,(t.attributes=new F)._ownerElement=t,t},createDocumentFragment:function(){var e=new ce;return e.ownerDocument=this,e.childNodes=new B,e},createTextNode:function(e){var t=new ne;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new ie;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new se;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var r=new he;return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r},createAttribute:function(e){var t=new te;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new le;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var r=new ee,n=t.split(":"),i=r.attributes=new F;return r.childNodes=new B,r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r},createAttributeNS:function(e,t){var r=new te,n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r}},c(H,L),ee.prototype={nodeType:d,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===T?this.insertBefore(e,null):function(e,t){return t.parentNode&&t.parentNode.removeChild(t),t.parentNode=e,t.previousSibling=e.lastChild,t.nextSibling=null,t.previousSibling?t.previousSibling.nextSibling=t:e.firstChild=t,e.lastChild=t,V(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||""},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new G(this,(function(t){var r=[];return N(t,(function(n){n===t||n.nodeType!=d||"*"!==e&&n.tagName!=e||r.push(n)})),r}))},getElementsByTagNameNS:function(e,t){return new G(this,(function(r){var n=[];return N(r,(function(i){i===r||i.nodeType!==d||"*"!==e&&i.namespaceURI!==e||"*"!==t&&i.localName!=t||n.push(i)})),n}))}},H.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,H.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,c(ee,L),te.prototype.nodeType=p,c(te,L),re.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(A[M])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length}},c(re,L),ne.prototype={nodeName:"#text",nodeType:f,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n}},c(ne,re),ie.prototype={nodeName:"#comment",nodeType:b},c(ie,re),se.prototype={nodeName:"#cdata-section",nodeType:m},c(se,re),oe.prototype.nodeType=v,c(oe,L),ae.prototype.nodeType=S,c(ae,L),ue.prototype.nodeType=_,c(ue,L),le.prototype.nodeType=g,c(le,L),ce.prototype.nodeName="#document-fragment",ce.prototype.nodeType=T,c(ce,L),he.prototype.nodeType=x,c(he,L),de.prototype.serializeToString=function(e,t,r){return pe.call(e,t,r)},L.prototype.toString=pe;try{if(Object.defineProperty){function ye(e){switch(e.nodeType){case d:case T:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(ye(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(G.prototype,"length",{get:function(){return C(this),this.$$length}}),Object.defineProperty(L.prototype,"textContent",{get:function(){return ye(this)},set:function(e){switch(this.nodeType){case d:case T:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),be=function(e,t,r){e["$$"+t]=r}}}catch(ve){}t.DocumentType=oe,t.DOMException=w,t.DOMImplementation=U,t.Element=ee,t.Node=L,t.NodeList=B,t.XMLSerializer=de},31045:function(e,t,r){"use strict";var n=r(72167).freeze;t.XML_ENTITIES=n({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),t.HTML_ENTITIES=n({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),t.entityMap=t.HTML_ENTITIES},3969:function(e,t,r){var n=r(41146);t.DOMImplementation=n.DOMImplementation,t.XMLSerializer=n.XMLSerializer,t.DOMParser=r(86129).DOMParser},76925:function(e,t,r){var n=r(72167).NAMESPACE,i=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,s=new RegExp("[\\-\\.0-9"+i.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),o=new RegExp("^"+i.source+s.source+"*(?::"+i.source+s.source+"*)?$"),a=0,u=1,l=2,c=3,h=4,d=5,p=6,f=7;function m(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,m)}function g(){}function _(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function x(e,t,r,i,s,o){function m(e,t,n){r.attributeNames.hasOwnProperty(e)&&o.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),n)}for(var g,_=++t,x=a;;){var b=e.charAt(_);switch(b){case"=":if(x===u)g=e.slice(t,_),x=c;else{if(x!==l)throw new Error("attribute equal must after attrName");x=c}break;case"'":case'"':if(x===c||x===u){if(x===u&&(o.warning('attribute value must after "="'),g=e.slice(t,_)),t=_+1,!((_=e.indexOf(b,t))>0))throw new Error("attribute value no end '"+b+"' match");m(g,y=e.slice(t,_),t-1),x=d}else{if(x!=h)throw new Error('attribute value must after "="');m(g,y=e.slice(t,_),t),o.warning('attribute "'+g+'" missed start quot('+b+")!!"),t=_+1,x=d}break;case"/":switch(x){case a:r.setTagName(e.slice(t,_));case d:case p:case f:x=f,r.closed=!0;case h:case u:break;case l:r.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return o.error("unexpected end of input"),x==a&&r.setTagName(e.slice(t,_)),_;case">":switch(x){case a:r.setTagName(e.slice(t,_));case d:case p:case f:break;case h:case u:"/"===(y=e.slice(t,_)).slice(-1)&&(r.closed=!0,y=y.slice(0,-1));case l:x===l&&(y=g),x==h?(o.warning('attribute "'+y+'" missed quot(")!'),m(g,y,t)):(n.isHTML(i[""])&&y.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute "'+y+'" missed value!! "'+y+'" instead!!'),m(y,y,t));break;case c:throw new Error("attribute value missed!!")}return _;case"€":b=" ";default:if(b<=" ")switch(x){case a:r.setTagName(e.slice(t,_)),x=p;break;case u:g=e.slice(t,_),x=l;break;case h:var y=e.slice(t,_);o.warning('attribute "'+y+'" missed quot(")!!'),m(g,y,t);case d:x=p}else switch(x){case l:r.tagName;n.isHTML(i[""])&&g.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute "'+g+'" missed value!! "'+g+'" instead2!!'),m(g,g,t),t=_,x=u;break;case d:o.warning('attribute space is required"'+g+'"!!');case p:x=u,t=_;break;case c:x=h,t=_;break;case f:throw new Error("elements closed character '/' and '>' must be connected to")}}_++}}function b(e,t,r){for(var i=e.tagName,s=null,o=e.length;o--;){var a=e[o],u=a.qName,l=a.value;if((p=u.indexOf(":"))>0)var c=a.prefix=u.slice(0,p),h=u.slice(p+1),d="xmlns"===c&&h;else h=u,c=null,d="xmlns"===u&&"";a.localName=h,!1!==d&&(null==s&&(s={},T(r,r={})),r[d]=s[d]=l,a.uri=n.XMLNS,t.startPrefixMapping(d,l))}for(o=e.length;o--;){(c=(a=e[o]).prefix)&&("xml"===c&&(a.uri=n.XML),"xmlns"!==c&&(a.uri=r[c||""]))}var p;(p=i.indexOf(":"))>0?(c=e.prefix=i.slice(0,p),h=e.localName=i.slice(p+1)):(c=null,h=e.localName=i);var f=e.uri=r[c||""];if(t.startElement(f,h,i,e),!e.closed)return e.currentNSMap=r,e.localNSMap=s,!0;if(t.endElement(f,h,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&t.endPrefixMapping(c)}function y(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var s=e.indexOf("",t),o=e.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(r)?(i.characters(o,0,o.length),s):(o=o.replace(/&#?\w+;/g,n),i.characters(o,0,o.length),s)}return t+1}function v(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))t?(r.comment(e,t+4,i-t-4),i+3):(n.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3}var s=function(e,t){var r,n=[],i=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;i.lastIndex=t,i.exec(e);for(;r=i.exec(e);)if(n.push(r),r[1])return n}(e,t),o=s.length;if(o>1&&/!doctype/i.test(s[0][0])){var a=s[1][0],u=!1,l=!1;o>3&&(/^public$/i.test(s[2][0])?(u=s[3][0],l=o>4&&s[4][0]):/^system$/i.test(s[2][0])&&(l=s[3][0]));var c=s[o-1];return r.startDTD(a,u,l),r.endDTD(),c.index+c[0].length}return-1}function E(e,t,r){var n=e.indexOf("?>",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i){i[0].length;return r.processingInstruction(i[1],i[2]),n+2}return-1}return-1}function A(){this.attributeNames={}}m.prototype=new Error,m.prototype.name=m.name,g.prototype={parse:function(e,t,r){var i=this.domBuilder;i.startDocument(),T(t,t={}),function(e,t,r,i,s){function o(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}function a(e){var t=e.slice(1,-1);return Object.hasOwnProperty.call(r,t)?r[t]:"#"===t.charAt(0)?o(parseInt(t.substr(1).replace("x","0x"))):(s.error("entity not found:"+e),e)}function u(t){if(t>T){var r=e.substring(T,t).replace(/&#?\w+;/g,a);p&&l(T),i.characters(r,0,t-T),T=t}}function l(t,r){for(;t>=h&&(r=d.exec(e));)c=r.index,h=c+r[0].length,p.lineNumber++;p.columnNumber=t-c+1}var c=0,h=0,d=/.*(?:\r\n?|\n)|.*$/g,p=i.locator,f=[{currentNSMap:t}],g={},T=0;for(;;){try{var M=e.indexOf("<",T);if(M<0){if(!e.substr(T).match(/^\s*$/)){var P=i.doc,R=P.createTextNode(e.substr(T));P.appendChild(R),i.currentElement=R}return}switch(M>T&&u(M),e.charAt(M+1)){case"/":var w=e.indexOf(">",M+3),B=e.substring(M+2,w).replace(/[ \t\n\r]+$/g,""),G=f.pop();w<0?(B=e.substring(M+2).replace(/[\s<].*/,""),s.error("end tag name: "+B+" is not complete:"+G.tagName),w=M+1+B.length):B.match(/\sT?T=w:u(Math.max(M,T)+1)}}(e,t,r,i,this.errorHandler),i.endDocument()}},A.prototype={setTagName:function(e){if(!o.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,r){if(!o.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},t.XMLReader=g,t.ParseError=m},9187:function(e){"use strict";function t(e,t,n){n=n||2;var s,o,a,u,h,d,f,m=t&&t.length,g=m?t[0]*n:e.length,_=r(e,0,g,n,!0),x=[];if(!_||_.next===_.prev)return x;if(m&&(_=function(e,t,n,i){var s,o,a,u=[];for(s=0,o=t.length;s80*n){s=a=e[0],o=u=e[1];for(var b=n;ba&&(a=h),d>u&&(u=d);f=0!==(f=Math.max(a-s,u-o))?32767/f:0}return i(_,x,n,s,o,f,0),x}function r(e,t,r,n,i){var s,o;if(i===M(e,t,r,n)>0)for(s=t;s=t;s-=n)o=S(s,e[s],e[s+1],o);return o&&_(o,o.next)&&(E(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!_(n,n.next)&&0!==g(n.prev,n,n.next))n=n.next;else{if(E(n),(n=t=n.prev)===n.next)break;r=!0}}while(r||n!==t);return t}function i(e,t,r,l,c,h,p){if(e){!p&&h&&function(e,t,r,n){var i=e;do{0===i.z&&(i.z=d(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,r,n,i,s,o,a,u,l=1;do{for(r=e,e=null,s=null,o=0;r;){for(o++,n=r,a=0,t=0;t0||u>0&&n;)0!==a&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,u--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;r=n}s.nextZ=null,l*=2}while(o>1)}(i)}(e,l,c,h);for(var f,m,g=e;e.prev!==e.next;)if(f=e.prev,m=e.next,h?o(e,l,c,h):s(e))t.push(f.i/r|0),t.push(e.i/r|0),t.push(m.i/r|0),E(e),e=m.next,g=m.next;else if((e=m)===g){p?1===p?i(e=a(n(e),t,r),t,r,l,c,h,2):2===p&&u(e,t,r,l,c,h):i(n(e),t,r,l,c,h,1);break}}}function s(e){var t=e.prev,r=e,n=e.next;if(g(t,r,n)>=0)return!1;for(var i=t.x,s=r.x,o=n.x,a=t.y,u=r.y,l=n.y,c=is?i>o?i:o:s>o?s:o,p=a>u?a>l?a:l:u>l?u:l,m=n.next;m!==t;){if(m.x>=c&&m.x<=d&&m.y>=h&&m.y<=p&&f(i,a,s,u,o,l,m.x,m.y)&&g(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function o(e,t,r,n){var i=e.prev,s=e,o=e.next;if(g(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,l=o.x,c=i.y,h=s.y,p=o.y,m=au?a>l?a:l:u>l?u:l,b=c>h?c>p?c:p:h>p?h:p,y=d(m,_,t,r,n),v=d(x,b,t,r,n),T=e.prevZ,S=e.nextZ;T&&T.z>=y&&S&&S.z<=v;){if(T.x>=m&&T.x<=x&&T.y>=_&&T.y<=b&&T!==i&&T!==o&&f(a,c,u,h,l,p,T.x,T.y)&&g(T.prev,T,T.next)>=0)return!1;if(T=T.prevZ,S.x>=m&&S.x<=x&&S.y>=_&&S.y<=b&&S!==i&&S!==o&&f(a,c,u,h,l,p,S.x,S.y)&&g(S.prev,S,S.next)>=0)return!1;S=S.nextZ}for(;T&&T.z>=y;){if(T.x>=m&&T.x<=x&&T.y>=_&&T.y<=b&&T!==i&&T!==o&&f(a,c,u,h,l,p,T.x,T.y)&&g(T.prev,T,T.next)>=0)return!1;T=T.prevZ}for(;S&&S.z<=v;){if(S.x>=m&&S.x<=x&&S.y>=_&&S.y<=b&&S!==i&&S!==o&&f(a,c,u,h,l,p,S.x,S.y)&&g(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function a(e,t,r){var i=e;do{var s=i.prev,o=i.next.next;!_(s,o)&&x(s,i,i.next,o)&&v(s,o)&&v(o,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(o.i/r|0),E(i),E(i.next),i=e=o),i=i.next}while(i!==e);return n(i)}function u(e,t,r,s,o,a){var u=e;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&m(u,l)){var c=T(u,l);return u=n(u,u.next),c=n(c,c.next),i(u,t,r,s,o,a,0),void i(c,t,r,s,o,a,0)}l=l.next}u=u.next}while(u!==e)}function l(e,t){return e.x-t.x}function c(e,t){var r=function(e,t){var r,n=t,i=e.x,s=e.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>o&&(o=a,r=n.x=n.x&&n.x>=c&&i!==n.x&&f(sr.x||n.x===r.x&&h(r,n)))&&(r=n,p=u)),n=n.next}while(n!==l);return r}(e,t);if(!r)return t;var i=T(r,e);return n(i,i.next),n(r,r.next)}function h(e,t){return g(e.prev,e,t.prev)<0&&g(t.next,e,e.next)<0}function d(e,t,r,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function p(e){var t=e,r=e;do{(t.x=(e-o)*(s-a)&&(e-o)*(n-a)>=(r-o)*(t-a)&&(r-o)*(s-a)>=(i-o)*(n-a)}function m(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&x(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&(v(e,t)&&v(t,e)&&function(e,t){var r=e,n=!1,i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)&&(g(e.prev,e,t.prev)||g(e,t.prev,t))||_(e,t)&&g(e.prev,e,e.next)>0&&g(t.prev,t,t.next)>0)}function g(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function _(e,t){return e.x===t.x&&e.y===t.y}function x(e,t,r,n){var i=y(g(e,t,r)),s=y(g(e,t,n)),o=y(g(r,n,e)),a=y(g(r,n,t));return i!==s&&o!==a||(!(0!==i||!b(e,r,t))||(!(0!==s||!b(e,n,t))||(!(0!==o||!b(r,e,n))||!(0!==a||!b(r,t,n)))))}function b(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function y(e){return e>0?1:e<0?-1:0}function v(e,t){return g(e.prev,e,e.next)<0?g(e,t,e.next)>=0&&g(e,e.prev,t)>=0:g(e,t,e.prev)<0||g(e,e.next,t)<0}function T(e,t){var r=new A(e.i,e.x,e.y),n=new A(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function S(e,t,r,n){var i=new A(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function E(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function A(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(e,t,r,n){for(var i=0,s=t,o=r-n;s0&&(n+=e[i-1].length,r.holes.push(n))}return r}},90891:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var n=/iPhone/i,i=/iPod/i,s=/iPad/i,o=/\biOS-universal(?:.+)Mac\b/i,a=/\bAndroid(?:.+)Mobile\b/i,u=/Android/i,l=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,c=/Silk/i,h=/Windows Phone/i,d=/\bWindows(?:.+)ARM\b/i,p=/BlackBerry/i,f=/BB10/i,m=/Opera Mini/i,g=/\b(CriOS|Chrome)(?:.+)Mobile/i,_=/Mobile(?:.+)Firefox\b/i,x=function(e){return void 0!==e&&"MacIntel"===e.platform&&"number"==typeof e.maxTouchPoints&&e.maxTouchPoints>1&&"undefined"==typeof MSStream};function b(e){var t={userAgent:"",platform:"",maxTouchPoints:0};e||"undefined"==typeof navigator?"string"==typeof e?t.userAgent=e:e&&e.userAgent&&(t={userAgent:e.userAgent,platform:e.platform,maxTouchPoints:e.maxTouchPoints||0}):t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0};var r=t.userAgent,b=r.split("[FBAN");void 0!==b[1]&&(r=b[0]),void 0!==(b=r.split("Twitter"))[1]&&(r=b[0]);var y=function(e){return function(t){return t.test(e)}}(r),v={apple:{phone:y(n)&&!y(h),ipod:y(i),tablet:!y(n)&&(y(s)||x(t))&&!y(h),universal:y(o),device:(y(n)||y(i)||y(s)||y(o)||x(t))&&!y(h)},amazon:{phone:y(l),tablet:!y(l)&&y(c),device:y(l)||y(c)},android:{phone:!y(h)&&y(l)||!y(h)&&y(a),tablet:!y(h)&&!y(l)&&!y(a)&&(y(c)||y(u)),device:!y(h)&&(y(l)||y(c)||y(a)||y(u))||y(/\bokhttp\b/i)},windows:{phone:y(h),tablet:y(d),device:y(h)||y(d)},other:{blackberry:y(p),blackberry10:y(f),opera:y(m),firefox:y(_),chrome:y(g),device:y(p)||y(f)||y(m)||y(_)||y(g)},any:!1,phone:!1,tablet:!1};return v.any=v.apple.device||v.android.device||v.windows.device||v.other.device,v.phone=v.apple.phone||v.android.phone||v.windows.phone,v.tablet=v.apple.tablet||v.android.tablet||v.windows.tablet,v}},94462:function(e){e.exports=function(e){var i=[];return e.replace(r,(function(e,r,s){var o=r.toLowerCase();for(s=function(e){var t=e.match(n);return t?t.map(Number):[]}(s),"m"==o&&s.length>2&&(i.push([r].concat(s.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(s.length==t[o])return s.unshift(r),i.push(s);if(s.lengththis.updateCoord(e,u,"x");break;case"scaleY":case"skewY":u=t.substr(0,t.length-1),n=e[u].y,i=r,s=r-n,o=e=>this.updateCoord(e,u,"y");break;case"tint":case"blend":const l=Array.isArray(r)?r:[e.tint,r];n=0,i=l.length,s=i,o="tint"===t?e=>this.updateTint(e,l):e=>this.updateBlend(e,l);break;case"shake":n={x:e.x,y:e.y},i=r,o=e=>this.updateShake(e);break;case"position":n={x:e.x,y:e.y},i={x:r.x,y:r.y},s={x:i.x-n.x,y:i.y-n.y},o=e=>this.updatePosition(e);break;case"skew":case"scale":n=e[t].x,i=r,s=r-n,o=e=>this.updatePoint(e,t);break;case"face":n=e.rotation,i=a.shortestAngle(n,Math.atan2(r.y-e.y,r.x-e.x)),s=i-n,o=e=>this.updateOne(e,"rotation");break;default:n=e[t],i=r,s=r-n,o=e=>this.updateOne(e,t)}this.eases.push({element:e,entry:t,update:o,start:n,to:i,delta:s})}static shortestAngle(e,t){const r=2*Math.PI;let n=Math.abs(e-t)%r;n=n>Math.PI?r-n:n;var i;return n*(((t-e+Math.PI)%(i=r)+i)%i-Math.PI>0?1:-1)}remove(e,t){if(0===arguments.length)this.eases=[];else{"string"==typeof t&&(t=[t]);for(let r=0;r>16)+s*(a>>16),c=u*(o>>8&255)+s*(a>>8&255),h=u*(255&o)+s*(255&a);e.element.tint=l<<16|c<<8|h}updateShake(e){function t(e){return Math.floor(Math.random()*e)-Math.floor(e/2)}e.element.x=e.start.x+t(e.to),e.element.y=e.start.y+t(e.to)}complete(e){"shake"===e.entry&&(e.element.x=e.start.x,e.element.y=e.start.y)}reverse(e){if("position"===e.entry){const t=e.to.x,r=e.to.y;e.to.x=e.start.x,e.to.y=e.start.y,e.start.x=t,e.start.y=r,e.delta.x=-e.delta.x,e.delta.y=-e.delta.y}else{const t=e.to;e.to=e.start,e.start=t,e.delta=-e.delta}}repeat(e){switch(e.entry){case"skewX":e.element.skew.x=e.start;break;case"skewY":e.element.skew.y=e.start;break;case"skew":e.element.skew.x=e.start,e.element.skew.y=e.start;break;case"scaleX":e.element.scale.x=e.start;break;case"scaleY":e.element.scale.y=e.start;break;case"scale":e.element.scale.x=e.start,e.element.scale.y=e.start;break;case"position":e.element.x=e.start.x,e.element.y=e.start.y;break;default:e.element[e.entry]=e.start}}update(e){if(0===this.eases.length)return!0;if(this.options.wait){if(this.options.wait-=e,this.options.wait>0)return void this.emit("wait",this);e=-this.options.wait,this.options.wait=0,this.emit("wait-end",this)}this.time+=e;let t=0;this.time>=this.options.duration&&(t=this.time-this.options.duration,this.time=this.options.duration);for(let e=0;e=this.options.duration)if(this.options.reverse)this.eases.forEach((e=>this.reverse(e))),this.time=t,t&&this.eases.forEach((e=>e.update(e))),this.emit("reverse",this),this.options.repeat?!0!==this.options.repeat&&this.options.repeat--:this.options.reverse=!1;else{if(!this.options.repeat)return this.eases.forEach((e=>this.complete(e))),this.emit("complete",this),!0;this.eases.forEach((e=>this.repeat(e))),this.time=t,t&&this.eases.forEach((e=>e.update(e))),!0!==this.options.repeat&&this.options.repeat--,this.emit("repeat",this)}}get count(){return this.eases.length}}const u={duration:1e3,ease:s.easeInOutSine,maxFrame:1e3/60,ticker:null,useRAF:!0};class l extends o{constructor(e){super(),this.options=Object.assign({},u,e),this.easings=[],this.empty=!0,this.options.ticker&&this.options.ticker.add(this.update,this)}destroy(){this.removeAll(),this.options.useTicker?this.ticker.remove(this.update,this):this.options.useRAF&&(cancelAnimationFrame(this.handleRAF),this.handleRAF=null)}add(e,t,r){(r=r||{}).duration=void 0!==r.duration?r.duration:this.options.duration,r.ease=r.ease||this.options.ease,"string"==typeof r.ease&&(r.ease=s[r.ease]);const n=new a(e,t,r);return this.easings.push(n),this.empty&&this.options.useRAF&&(this.handleRAF=requestAnimationFrame((()=>this.update())),this.lastTime=Date.now()),this.empty=!1,n}target(e,t,r,n){const i=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))/r;return(n=n||{}).duration=i,this.add(e,{x:t.x,y:t.y},n)}face(e,t,r,n){const i=a.shortestAngle(e.rotation,Math.atan2(t.y-e.y,t.x-e.x)),s=Math.abs(i-e.rotation)/r;return(n=n||{}).duration=s,this.add(e,{rotation:i},n)}removeEase(e,t){for(let r=0;rthis.update())):this.handleRAF=null}get count(){return this.easings.length}countRunning(){let e=0;for(let t of this.easings)e+=t.count;return e}set duration(e){this.options.duration=e}get duration(){return this.options.duration}set ease(e){this.options.ease=e}get ease(){return this.options.ease}}l.id=0;let c=new l;l.ease=c;class h{constructor(){console.warn("Ease.List was deprecated. Use new Ease() instead.")}}},16803:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n function createLevelBuffers(basisTexture, basisTranscoderFormat) {\n const images = basisTexture.getNumImages();\n const levels = basisTexture.getNumLevels(0);\n const success = basisTexture.startTranscoding();\n if (!success) {\n throw new Error("startTranscoding failed");\n }\n const levelBuffers = [];\n for (let levelIndex = 0; levelIndex < levels; ++levelIndex) {\n for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex) {\n const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);\n const levelBuffer = new Uint8Array(transcodeSize);\n const success2 = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);\n if (!success2) {\n throw new Error("transcodeImage failed");\n }\n levelBuffers.push(levelBuffer);\n }\n }\n return levelBuffers;\n }\n\n const gpuFormatToBasisTranscoderFormatMap = {\n "bc3-rgba-unorm": 3,\n // cTFBC3_RGBA\n "bc7-rgba-unorm": 6,\n // cTFBC7_RGBA,\n "etc2-rgba8unorm": 1,\n // cTFETC2_RGBA,\n "astc-4x4-unorm": 10,\n // cTFASTC_4x4_RGBA,\n // Uncompressed\n rgba8unorm: 13,\n // cTFRGBA32,\n rgba4unorm: 16\n // cTFRGBA4444,\n };\n function gpuFormatToBasisTranscoderFormat(transcoderFormat) {\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n }\n\n const settings = {\n jsUrl: "basis/basis_transcoder.js",\n wasmUrl: "basis/basis_transcoder.wasm"\n };\n let basisTranscoderFormat;\n let basisTranscodedTextureFormat;\n let basisPromise;\n async function getBasis() {\n if (!basisPromise) {\n const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;\n const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;\n importScripts(absoluteJsUrl);\n basisPromise = new Promise((resolve) => {\n BASIS({\n locateFile: (_file) => absoluteWasmUrl\n }).then((module) => {\n module.initializeBasis();\n resolve(module.BasisFile);\n });\n });\n }\n return basisPromise;\n }\n async function fetchBasisTexture(url, BasisTexture) {\n const basisResponse = await fetch(url);\n if (basisResponse.ok) {\n const basisArrayBuffer = await basisResponse.arrayBuffer();\n return new BasisTexture(new Uint8Array(basisArrayBuffer));\n }\n throw new Error(`Failed to load Basis texture: ${url}`);\n }\n const preferredTranscodedFormat = [\n "bc7-rgba-unorm",\n "astc-4x4-unorm",\n "etc2-rgba8unorm",\n "bc3-rgba-unorm",\n "rgba8unorm"\n ];\n async function load(url) {\n const BasisTexture = await getBasis();\n const basisTexture = await fetchBasisTexture(url, BasisTexture);\n const levelBuffers = createLevelBuffers(basisTexture, basisTranscoderFormat);\n return {\n width: basisTexture.getImageWidth(0, 0),\n height: basisTexture.getImageHeight(0, 0),\n format: basisTranscodedTextureFormat,\n resource: levelBuffers,\n alphaMode: "no-premultiply-alpha"\n };\n }\n async function init(jsUrl, wasmUrl, supportedTextures) {\n if (jsUrl)\n settings.jsUrl = jsUrl;\n if (wasmUrl)\n settings.wasmUrl = wasmUrl;\n basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];\n basisTranscoderFormat = gpuFormatToBasisTranscoderFormat(basisTranscodedTextureFormat);\n await getBasis();\n }\n const messageHandlers = {\n init: async (data) => {\n const { jsUrl, wasmUrl, supportedTextures } = data;\n await init(jsUrl, wasmUrl, supportedTextures);\n },\n load: async (data) => {\n try {\n const textureOptions = await load(data.url);\n return {\n type: "load",\n url: data.url,\n success: true,\n textureOptions,\n transferables: textureOptions.resource?.map((arr) => arr.buffer)\n };\n } catch (e) {\n throw e;\n }\n }\n };\n self.onmessage = async (messageEvent) => {\n const message = messageEvent.data;\n const response = await messageHandlers[message.type](message);\n if (response) {\n self.postMessage(response, response.transferables);\n }\n };\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},9083:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=";\n async function checkImageBitmap() {\n try {\n if (typeof createImageBitmap !== "function")\n return false;\n const response = await fetch(WHITE_PNG);\n const imageBlob = await response.blob();\n const imageBitmap = await createImageBitmap(imageBlob);\n return imageBitmap.width === 1 && imageBitmap.height === 1;\n } catch (e) {\n return false;\n }\n }\n void checkImageBitmap().then((result) => {\n self.postMessage(result);\n });\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},86312:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n const converters = {\n rgb8unorm: {\n convertedFormat: "rgba8unorm",\n convertFunction: convertRGBtoRGBA\n },\n "rgb8unorm-srgb": {\n convertedFormat: "rgba8unorm-srgb",\n convertFunction: convertRGBtoRGBA\n }\n };\n function convertFormatIfRequired(textureOptions) {\n const format = textureOptions.format;\n if (converters[format]) {\n const convertFunction = converters[format].convertFunction;\n const levelBuffers = textureOptions.resource;\n for (let i = 0; i < levelBuffers.length; i++) {\n levelBuffers[i] = convertFunction(levelBuffers[i]);\n }\n textureOptions.format = converters[format].convertedFormat;\n }\n }\n function convertRGBtoRGBA(levelBuffer) {\n const pixelCount = levelBuffer.byteLength / 3;\n const levelBufferWithAlpha = new Uint32Array(pixelCount);\n for (let i = 0; i < pixelCount; ++i) {\n levelBufferWithAlpha[i] = levelBuffer[i * 3] + (levelBuffer[i * 3 + 1] << 8) + (levelBuffer[i * 3 + 2] << 16) + 4278190080;\n }\n return new Uint8Array(levelBufferWithAlpha.buffer);\n }\n\n function createLevelBuffersFromKTX(ktxTexture) {\n const levelBuffers = [];\n for (let i = 0; i < ktxTexture.numLevels; i++) {\n const imageData = ktxTexture.getImageData(i, 0, 0);\n const levelBuffer = new Uint8Array(imageData.byteLength);\n levelBuffer.set(imageData);\n levelBuffers.push(levelBuffer);\n }\n return levelBuffers;\n }\n\n const glFormatToGPUFormatMap = {\n 6408: "rgba8unorm",\n 32856: "bgra8unorm",\n //\n 32857: "rgb10a2unorm",\n 33189: "depth16unorm",\n 33190: "depth24plus",\n 33321: "r8unorm",\n 33323: "rg8unorm",\n 33325: "r16float",\n 33326: "r32float",\n 33327: "rg16float",\n 33328: "rg32float",\n 33329: "r8sint",\n 33330: "r8uint",\n 33331: "r16sint",\n 33332: "r16uint",\n 33333: "r32sint",\n 33334: "r32uint",\n 33335: "rg8sint",\n 33336: "rg8uint",\n 33337: "rg16sint",\n 33338: "rg16uint",\n 33339: "rg32sint",\n 33340: "rg32uint",\n 33778: "bc2-rgba-unorm",\n 33779: "bc3-rgba-unorm",\n 34836: "rgba32float",\n 34842: "rgba16float",\n 35056: "depth24plus-stencil8",\n 35898: "rg11b10ufloat",\n 35901: "rgb9e5ufloat",\n 35907: "rgba8unorm-srgb",\n // bgra8unorm-srgb\n 36012: "depth32float",\n 36013: "depth32float-stencil8",\n 36168: "stencil8",\n 36208: "rgba32uint",\n 36214: "rgba16uint",\n 36220: "rgba8uint",\n 36226: "rgba32sint",\n 36232: "rgba16sint",\n 36238: "rgba8sint",\n 36492: "bc7-rgba-unorm",\n 36756: "r8snorm",\n 36757: "rg8snorm",\n 36759: "rgba8snorm",\n 37496: "etc2-rgba8unorm",\n 37808: "astc-4x4-unorm"\n };\n function glFormatToGPUFormat(glInternalFormat) {\n const format = glFormatToGPUFormatMap[glInternalFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported glInternalFormat: ${glInternalFormat}`);\n }\n\n const vkFormatToGPUFormatMap = {\n 23: "rgb8unorm",\n // VK_FORMAT_R8G8B8_UNORM\n 37: "rgba8unorm",\n // VK_FORMAT_R8G8B8A8_UNORM\n 43: "rgba8unorm-srgb"\n // VK_FORMAT_R8G8B8A8_SRGB\n // TODO add more!\n };\n function vkFormatToGPUFormat(vkFormat) {\n const format = vkFormatToGPUFormatMap[vkFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported VkFormat: ${vkFormat}`);\n }\n\n function getTextureFormatFromKTXTexture(ktxTexture) {\n if (ktxTexture.classId === 2) {\n return vkFormatToGPUFormat(ktxTexture.vkFormat);\n }\n return glFormatToGPUFormat(ktxTexture.glInternalformat);\n }\n\n const gpuFormatToBasisTranscoderFormatMap = {\n "bc3-rgba-unorm": "BC3_RGBA",\n "bc7-rgba-unorm": "BC7_M5_RGBA",\n "etc2-rgba8unorm": "ETC2_RGBA",\n "astc-4x4-unorm": "ASTC_4x4_RGBA",\n // Uncompressed\n rgba8unorm: "RGBA32",\n rg11b10ufloat: "R11F_G11F_B10F"\n };\n function gpuFormatToKTXBasisTranscoderFormat(transcoderFormat) {\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n }\n\n const settings = {\n jsUrl: "",\n wasmUrl: ""\n };\n let basisTranscoderFormat;\n let basisTranscodedTextureFormat;\n let ktxPromise;\n async function getKTX() {\n if (!ktxPromise) {\n const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;\n const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;\n importScripts(absoluteJsUrl);\n ktxPromise = new Promise((resolve) => {\n LIBKTX({\n locateFile: (_file) => absoluteWasmUrl\n }).then((libktx) => {\n resolve(libktx);\n });\n });\n }\n return ktxPromise;\n }\n async function fetchKTXTexture(url, ktx) {\n const ktx2Response = await fetch(url);\n if (ktx2Response.ok) {\n const ktx2ArrayBuffer = await ktx2Response.arrayBuffer();\n return new ktx.ktxTexture(new Uint8Array(ktx2ArrayBuffer));\n }\n throw new Error(`Failed to load KTX(2) texture: ${url}`);\n }\n const preferredTranscodedFormat = [\n "bc7-rgba-unorm",\n "astc-4x4-unorm",\n "etc2-rgba8unorm",\n "bc3-rgba-unorm",\n "rgba8unorm"\n ];\n async function load(url) {\n const ktx = await getKTX();\n const ktxTexture = await fetchKTXTexture(url, ktx);\n let format;\n if (ktxTexture.needsTranscoding) {\n format = basisTranscodedTextureFormat;\n const transcodeFormat = ktx.TranscodeTarget[basisTranscoderFormat];\n const result = ktxTexture.transcodeBasis(transcodeFormat, 0);\n if (result !== ktx.ErrorCode.SUCCESS) {\n throw new Error("Unable to transcode basis texture.");\n }\n } else {\n format = getTextureFormatFromKTXTexture(ktxTexture);\n }\n const levelBuffers = createLevelBuffersFromKTX(ktxTexture);\n const textureOptions = {\n width: ktxTexture.baseWidth,\n height: ktxTexture.baseHeight,\n format,\n mipLevelCount: ktxTexture.numLevels,\n resource: levelBuffers,\n alphaMode: "no-premultiply-alpha"\n };\n convertFormatIfRequired(textureOptions);\n return textureOptions;\n }\n async function init(jsUrl, wasmUrl, supportedTextures) {\n if (jsUrl)\n settings.jsUrl = jsUrl;\n if (wasmUrl)\n settings.wasmUrl = wasmUrl;\n basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];\n basisTranscoderFormat = gpuFormatToKTXBasisTranscoderFormat(basisTranscodedTextureFormat);\n await getKTX();\n }\n const messageHandlers = {\n init: async (data) => {\n const { jsUrl, wasmUrl, supportedTextures } = data;\n await init(jsUrl, wasmUrl, supportedTextures);\n },\n load: async (data) => {\n try {\n const textureOptions = await load(data.url);\n return {\n type: "load",\n url: data.url,\n success: true,\n textureOptions,\n transferables: textureOptions.resource?.map((arr) => arr.buffer)\n };\n } catch (e) {\n throw e;\n }\n }\n };\n self.onmessage = async (messageEvent) => {\n const message = messageEvent.data;\n const response = await messageHandlers[message.type]?.(message);\n if (response) {\n self.postMessage(response, response.transferables);\n }\n };\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},61567:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(["(function () {\n 'use strict';\n\n async function loadImageBitmap(url) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`[WorkerManager.loadImageBitmap] Failed to fetch ${url}: ${response.status} ${response.statusText}`);\n }\n const imageBlob = await response.blob();\n const imageBitmap = await createImageBitmap(imageBlob);\n return imageBitmap;\n }\n self.onmessage = async (event) => {\n try {\n const imageBitmap = await loadImageBitmap(event.data.data[0]);\n self.postMessage({\n data: imageBitmap,\n uuid: event.data.uuid,\n id: event.data.id\n }, [imageBitmap]);\n } catch (e) {\n self.postMessage({\n error: e,\n uuid: event.data.uuid,\n id: event.data.id\n });\n }\n };\n\n})();\n"],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},96480:function(e,t,r){"use strict";var n=r(49410),i=r(17073),s=r(2636),o=r(39654);class a{constructor(e,t=s.isMobile){this._mobileInfo=t,this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook();const r=document.createElement("div");r.style.width="100px",r.style.height="100px",r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style.zIndex=2..toString(),this._div=r,this._renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){const e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex=2..toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",(()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()})),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.add(this),this._renderer.view.canvas.parentNode?.appendChild(this._div))}_deactivate(){this._isActive&&!this._isMobileAccessibility&&(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this),this._div.parentNode?.removeChild(this._div))}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);const t=e.children;if(t)for(let e=0;e title : ${e.title}
tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);const{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let t=this._pool.pop();t||(t=document.createElement("button"),t.style.width="100px",t.style.height="100px",t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=2..toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&null!==e.accessibleTitle?t.title=e.accessibleTitle:e.accessibleHint&&null!==e.accessibleHint||(t.title=`container ${e.tabIndex}`),e.accessibleHint&&null!==e.accessibleHint&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){const{container:r}=e.target,i=this._renderer.events.rootBoundary,s=Object.assign(new n.FederatedEvent(i),{target:r});i.rootTarget=this._renderer.lastObjectRendered,t.forEach((e=>i.dispatchEvent(s,e)))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){9===e.keyCode&&this._activate()}_onMouseMove(e){0===e.movementX&&0===e.movementY||this._deactivate()}destroy(){this._destroyTouchHook(),this._div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this._pool=null,this._children=null,this._renderer=null}}a.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem],name:"accessibility"},t.AccessibilitySystem=a},49507:function(e,t){"use strict";t.accessibilityTarget={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,_renderId:-1}},46807:function(e,t,r){"use strict";var n=r(96480),i=r(49507);t.AccessibilitySystem=n.AccessibilitySystem,t.accessibilityTarget=i.accessibilityTarget},29377:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(96480),o=r(49507);n.extensions.add(s.AccessibilitySystem),i.Container.mixin(o.accessibilityTarget)},43931:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendColor(vec3 base, vec3 blend, float opacity)\n {\n return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendColor(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendColorOpacity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendColorOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"color",type:n.ExtensionType.BlendMode},t.ColorBlend=a},20607:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorBurn(float base, float blend)\n {\n return max((1.0 - ((1.0 - base) / blend)), 0.0);\n }\n\n vec3 blendColorBurn(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n colorBurn(base.r, blend.r),\n colorBurn(base.g, blend.g),\n colorBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendColorBurn(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorBurn(base:f32, blend:f32) -> f32\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n fn blendColorBurn(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n colorBurn(base.r, blend.r),\n colorBurn(base.g, blend.g),\n colorBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendColorBurn(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"color-burn",type:n.ExtensionType.BlendMode},t.ColorBurnBlend=s},96755:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorDodge(float base, float blend)\n {\n return base / (1.0 - blend);\n }\n\n vec3 blendColorDodge(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n colorDodge(base.r, blend.r),\n colorDodge(base.g, blend.g),\n colorDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendColorDodge(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorDodge(base: f32, blend: f32) -> f32\n {\n return base / (1.0 - blend);\n }\n\n fn blendColorDodge(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n colorDodge(base.r, blend.r),\n colorDodge(base.g, blend.g),\n colorDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendColorDodge(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"color-dodge",type:n.ExtensionType.BlendMode},t.ColorDodgeBlend=s},12488:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendDarken(vec3 base, vec3 blend, float opacity)\n {\n return (min(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDarken(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendDarken(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (min(blend,base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDarken(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"darken",type:n.ExtensionType.BlendMode},t.DarkenBlend=s},56442:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendDifference(vec3 base, vec3 blend, float opacity)\n {\n return (abs(blend - base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDifference(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendDifference(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (abs(blend - base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDifference(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"difference",type:n.ExtensionType.BlendMode},t.DifferenceBlend=s},97914:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float divide(float base, float blend)\n {\n return (blend > 0.0) ? clamp(base / blend, 0.0, 1.0) : 1.0;\n }\n\n vec3 blendDivide(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n divide(base.r, blend.r),\n divide(base.g, blend.g),\n divide(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDivide(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn divide(base: f32, blend: f32) -> f32\n {\n return select(1.0, clamp(base / blend, 0.0, 1.0), blend > 0.0);\n }\n\n fn blendDivide(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n divide(base.r, blend.r),\n divide(base.g, blend.g),\n divide(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDivide(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"divide",type:n.ExtensionType.BlendMode},t.DivideBlend=s},64909:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 exclusion(vec3 base, vec3 blend)\n {\n return base + blend - 2.0 * base * blend;\n }\n\n vec3 blendExclusion(vec3 base, vec3 blend, float opacity)\n {\n return (exclusion(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendExclusion(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn exclusion(base: vec3, blend: vec3) -> vec3\n {\n return base+blend-2.0*base*blend;\n }\n\n fn blendExclusion(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n return (exclusion(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendExclusion(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"exclusion",type:n.ExtensionType.BlendMode},t.ExclusionBlend=s},26004:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float hardLight(float base, float blend)\n {\n return (blend < 0.5) ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);\n }\n\n vec3 blendHardLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n hardLight(base.r, blend.r),\n hardLight(base.g, blend.g),\n hardLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendHardLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn hardLight(base: f32, blend: f32) -> f32\n {\n return select(1.0 - 2.0 * (1.0 - base) * (1.0 - blend), 2.0 * base * blend, blend < 0.5);\n }\n\n fn blendHardLight(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n hardLight(base.r, blend.r),\n hardLight(base.g, blend.g),\n hardLight(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendHardLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"hard-light",type:n.ExtensionType.BlendMode},t.HardLightBlend=s},92219:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float hardMix(float base, float blend)\n {\n return (base + blend >= 1.0) ? 1.0 : 0.0;\n }\n\n vec3 blendHardMix(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n hardMix(base.r, blend.r),\n hardMix(base.g, blend.g),\n hardMix(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendHardMix(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn hardMix(base: f32, blend: f32) -> f32\n {\n return select(0.0, 1.0, base + blend >= 1.0);\n }\n\n fn blendHardMix(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended: vec3 = vec3(\n hardMix(base.r, blend.r),\n hardMix(base.g, blend.g),\n hardMix(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendHardMix(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"hard-mix",type:n.ExtensionType.BlendMode},t.HardMixBlend=s},31660:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendLighten(vec3 base, vec3 blend, float opacity)\n {\n return (max(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLighten(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendLighten(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (max(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLighten(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"lighten",type:n.ExtensionType.BlendMode},t.LightenBlend=s},34412:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearBurn(float base, float blend)\n {\n return max(0.0, base + blend - 1.0);\n }\n\n vec3 blendLinearBurn(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n linearBurn(base.r, blend.r),\n linearBurn(base.g, blend.g),\n linearBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearBurn(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearBurn(base: f32, blend: f32) -> f32\n {\n return max(0.0, base + blend - 1.0);\n }\n\n fn blendLinearBurn(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearBurn(base.r, blend.r),\n linearBurn(base.g, blend.g),\n linearBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearBurn(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-burn",type:n.ExtensionType.BlendMode},t.LinearBurnBlend=s},24258:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearDodge(float base, float blend) {\n return min(1.0, base + blend);\n }\n\n vec3 blendLinearDodge(vec3 base, vec3 blend, float opacity) {\n vec3 blended = vec3(\n linearDodge(base.r, blend.r),\n linearDodge(base.g, blend.g),\n linearDodge(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearDodge(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearDodge(base: f32, blend: f32) -> f32\n {\n return min(1, base + blend);\n }\n\n fn blendLinearDodge(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearDodge(base.r, blend.r),\n linearDodge(base.g, blend.g),\n linearDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearDodge(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-dodge",type:n.ExtensionType.BlendMode},t.LinearDodgeBlend=s},93040:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearBurn(float base, float blend) {\n return max(0.0, base + blend - 1.0);\n }\n\n float linearDodge(float base, float blend) {\n return min(1.0, base + blend);\n }\n\n float linearLight(float base, float blend) {\n return (blend <= 0.5) ? linearBurn(base,2.0*blend) : linearBurn(base,2.0*(blend-0.5));\n }\n\n vec3 blendLinearLight(vec3 base, vec3 blend, float opacity) {\n vec3 blended = vec3(\n linearLight(base.r, blend.r),\n linearLight(base.g, blend.g),\n linearLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearBurn(base: f32, blend: f32) -> f32\n {\n return max(0.0, base + blend - 1.0);\n }\n\n fn linearDodge(base: f32, blend: f32) -> f32\n {\n return min(1.0, base + blend);\n }\n\n fn linearLight(base: f32, blend: f32) -> f32\n {\n return select(linearBurn(base,2.0*(blend-0.5)), linearBurn(base,2.0*blend), blend <= 0.5);\n }\n\n fn blendLinearLightOpacity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearLight(base.r, blend.r),\n linearLight(base.g, blend.g),\n linearLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearLightOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-light",type:n.ExtensionType.BlendMode},t.LinearLightBlend=s},63846:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendLuminosity(vec3 base, vec3 blend, float opacity)\n {\n vec3 blendLuminosity = setLuminosity(base, getLuminosity(blend));\n return (blendLuminosity * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendLuminosity(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendLuminosity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blendLuminosity: vec3 = setLuminosity(base, getLuminosity(blend));\n return (blendLuminosity * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendLuminosity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"luminosity",type:n.ExtensionType.BlendMode},t.LuminosityBlend=a},61843:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 negation(vec3 base, vec3 blend)\n {\n return 1.0-abs(1.0-base-blend);\n }\n\n vec3 blendNegation(vec3 base, vec3 blend, float opacity)\n {\n return (negation(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendNegation(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendNegation(base: vec3, blend: vec3) -> vec3\n {\n return 1.0-abs(1.0-base-blend);\n }\n\n fn blendNegationOpacity(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n return (blendNegation(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendNegationOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"negation",type:n.ExtensionType.BlendMode},t.NegationBlend=s},98815:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float overlay(float base, float blend)\n {\n return (base < 0.5) ? (2.0*base*blend) : (1.0-2.0*(1.0-base)*(1.0-blend));\n }\n\n vec3 blendOverlay(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n overlay(base.r, blend.r),\n overlay(base.g, blend.g),\n overlay(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendOverlay(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn overlay(base: f32, blend: f32) -> f32\n {\n return select((1.0-2.0*(1.0-base)*(1.0-blend)), (2.0*base*blend), base < 0.5);\n }\n\n fn blendOverlay(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n overlay(base.r, blend.r),\n overlay(base.g, blend.g),\n overlay(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendOverlay(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"overlay",type:n.ExtensionType.BlendMode},t.OverlayBlend=s},37976:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float pinLight(float base, float blend)\n {\n return (blend <= 0.5) ? min(base, 2.0 * blend) : max(base, 2.0 * (blend - 0.5));\n }\n\n vec3 blendPinLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n pinLight(base.r, blend.r),\n pinLight(base.g, blend.g),\n pinLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendPinLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn pinLight(base: f32, blend: f32) -> f32\n {\n return select(max(base,2.0*(blend-0.5)), min(base,2.0*blend), blend <= 0.5);\n }\n\n fn blendPinLight(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n pinLight(base.r, blend.r),\n pinLight(base.g, blend.g),\n pinLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendPinLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"pin-light",type:n.ExtensionType.BlendMode},t.PinLightBlend=s},47864:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendSaturation(vec3 base, vec3 blend, float opacity)\n {\n vec3 blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));\n return (blendSaturation * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendSaturation(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendSaturation(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));\n return (blendSaturation * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendSaturation(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"saturation",type:n.ExtensionType.BlendMode},t.SaturationBlend=a},70922:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float softLight(float base, float blend)\n {\n return (blend < 0.5) ? (2.0 * base * blend + base * base * (1.0 - 2.0 * blend)) : (sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend));\n }\n\n vec3 blendSoftLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n softLight(base.r, blend.r),\n softLight(base.g, blend.g),\n softLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendSoftLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn softLight(base: f32, blend: f32) -> f32\n {\n return select(2.0 * base * blend + base * base * (1.0 - 2.0 * blend), sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend), blend < 0.5);\n }\n\n fn blendSoftLight(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended: vec3 = vec3(\n softLight(base.r, blend.r),\n softLight(base.g, blend.g),\n softLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendSoftLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"soft-light",type:n.ExtensionType.BlendMode},t.SoftLightBlend=s},56697:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float subtract(float base, float blend)\n {\n return max(0.0, base - blend);\n }\n\n vec3 blendSubtract(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n subtract(base.r, blend.r),\n subtract(base.g, blend.g),\n subtract(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendSubtract(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn subtract(base: f32, blend: f32) -> f32\n {\n return max(0, base - blend);\n }\n\n fn blendSubtract(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n subtract(base.r, blend.r),\n subtract(base.g, blend.g),\n subtract(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendSubtract(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"subtract",type:n.ExtensionType.BlendMode},t.SubtractBlend=s},89660:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorBurn(float base, float blend)\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n float colorDodge(float base, float blend)\n {\n return min(1.0, base / (1.0-blend));\n }\n\n float vividLight(float base, float blend)\n {\n return (blend < 0.5) ? colorBurn(base,(2.0*blend)) : colorDodge(base,(2.0*(blend-0.5)));\n }\n\n vec3 blendVividLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n vividLight(base.r, blend.r),\n vividLight(base.g, blend.g),\n vividLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendVividLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorBurn(base:f32, blend:f32) -> f32\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n fn colorDodge(base: f32, blend: f32) -> f32\n {\n return min(1.0, base / (1.0-blend));\n }\n\n fn vividLight(base: f32, blend: f32) -> f32\n {\n return select(colorDodge(base,(2.0*(blend-0.5))), colorBurn(base,(2.0*blend)), blend<0.5);\n }\n\n fn blendVividLight(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended: vec3 = vec3(\n vividLight(base.r, blend.r),\n vividLight(base.g, blend.g),\n vividLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendVividLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"vivid-light",type:n.ExtensionType.BlendMode},t.VividLightBlend=s},24217:function(e,t,r){"use strict";var n=r(43931),i=r(20607),s=r(96755),o=r(12488),a=r(56442),u=r(97914),l=r(64909),c=r(26004),h=r(92219),d=r(31660),p=r(34412),f=r(24258),m=r(93040),g=r(63846),_=r(61843),x=r(98815),b=r(37976),y=r(47864),v=r(70922),T=r(56697),S=r(89660);t.ColorBlend=n.ColorBlend,t.ColorBurnBlend=i.ColorBurnBlend,t.ColorDodgeBlend=s.ColorDodgeBlend,t.DarkenBlend=o.DarkenBlend,t.DifferenceBlend=a.DifferenceBlend,t.DivideBlend=u.DivideBlend,t.ExclusionBlend=l.ExclusionBlend,t.HardLightBlend=c.HardLightBlend,t.HardMixBlend=h.HardMixBlend,t.LightenBlend=d.LightenBlend,t.LinearBurnBlend=p.LinearBurnBlend,t.LinearDodgeBlend=f.LinearDodgeBlend,t.LinearLightBlend=m.LinearLightBlend,t.LuminosityBlend=g.LuminosityBlend,t.NegationBlend=_.NegationBlend,t.OverlayBlend=x.OverlayBlend,t.PinLightBlend=b.PinLightBlend,t.SaturationBlend=y.SaturationBlend,t.SoftLightBlend=v.SoftLightBlend,t.SubtractBlend=T.SubtractBlend,t.VividLightBlend=S.VividLightBlend},38531:function(e,t,r){"use strict";var n=r(17073),i=r(4722),s=r(74599),o=r(77078),a=r(60094);const u=class e{constructor(...e){this.stage=new s.Container,void 0!==e[0]&&a.deprecation(a.v8_0_0,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.renderer=await i.autoDetectRenderer(t),e._plugins.forEach((e=>{e.init.call(this,t)}))}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return a.deprecation(a.v8_0_0,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}destroy(t=!1,r=!1){const n=e._plugins.slice(0);n.reverse(),n.forEach((e=>{e.destroy.call(this)})),this.stage.destroy(r),this.stage=null,this.renderer.destroy(t),this.renderer=null}};u._plugins=[];let l=u;n.extensions.handleByList(n.ExtensionType.Application,l._plugins),n.extensions.add(o.ApplicationInitHook),t.Application=l},45747:function(e,t,r){"use strict";var n=r(17073);class i{static init(e){Object.defineProperty(this,"resizeTo",{set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame((()=>this.resize())))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;let e,t;if(this._cancelResize(),this._resizeTo===globalThis.window)e=globalThis.innerWidth,t=globalThis.innerHeight;else{const{clientWidth:r,clientHeight:n}=this._resizeTo;e=r,t=n}this.renderer.resize(e,t),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}}i.extension=n.ExtensionType.Application,t.ResizePlugin=i},81729:function(e,t,r){"use strict";var n=r(17073),i=r(35292),s=r(63983);class o{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,i.UPDATE_PRIORITY.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?s.Ticker.shared:new s.Ticker,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}o.extension=n.ExtensionType.Application,t.TickerPlugin=o},58305:function(e,t,r){"use strict";var n=r(38531),i=r(45747),s=r(81729);t.Application=n.Application,t.ResizePlugin=i.ResizePlugin,t.TickerPlugin=s.TickerPlugin},9266:function(e,t,r){"use strict";var n=r(17073),i=r(45747),s=r(81729);n.extensions.add(i.ResizePlugin),n.extensions.add(s.TickerPlugin)},3033:function(){},18800:function(e,t,r){"use strict";var n=r(17073),i=r(45847),s=r(95190),o=r(45724),a=r(56509),u=r(62392),l=r(58433),c=r(28881),h=r(55673),d=r(62972),p=r(36214),f=r(17178),m=r(32181),g=r(20246),_=r(20763),x=r(76529),b=r(80428),y=r(27273),v=r(13189),T=r(6195),S=r(34361),E=r(95997),A=r(5866),M=r(82493);class P{constructor(){this._detections=[],this._initialized=!1,this.resolver=new E.Resolver,this.loader=new m.Loader,this.cache=a.Cache,this._backgroundLoader=new o.BackgroundLoader(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){if(this._initialized)return void s.warn("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let t=e.manifest;"string"==typeof t&&(t=await this.load(t)),this.resolver.addManifest(t)}const t=e.texturePreference?.resolution??1,r="number"==typeof t?[t]:t,n=await this._detectFormats({preferredFormats:e.texturePreference?.format,skipDetections:e.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:n,resolution:r}}),e.preferences&&this.setPreferences(e.preferences)}add(e){this.resolver.add(e)}async load(e,t){this._initialized||await this.init();const r=M.isSingleItem(e),n=A.convertToList(e).map((e=>{if("string"!=typeof e){const t=this.resolver.getAlias(e);return t.some((e=>!this.resolver.hasKey(e)))&&this.add(e),Array.isArray(t)?t[0]:t}return this.resolver.hasKey(e)||this.add({alias:e,src:e}),e})),i=this.resolver.resolve(n),s=await this._mapLoadToResolve(i,t);return r?s[n[0]]:s}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let r=!1;"string"==typeof e&&(r=!0,e=[e]);const n=this.resolver.resolveBundle(e),i={},s=Object.keys(n);let o=0,a=0;const u=()=>{t?.(++o/a)},l=s.map((e=>{const t=n[e];return a+=Object.keys(t).length,this._mapLoadToResolve(t,u).then((t=>{i[e]=t}))}));return await Promise.all(l),r?i[e[0]]:i}async backgroundLoad(e){this._initialized||await this.init(),"string"==typeof e&&(e=[e]);const t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),"string"==typeof e&&(e=[e]);const t=this.resolver.resolveBundle(e);Object.values(t).forEach((e=>{this._backgroundLoader.add(Object.values(e))}))}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if("string"==typeof e)return a.Cache.get(e);const t={};for(let r=0;r{const t=n[e.src],r=[e.src];e.alias&&r.push(...e.alias),r.forEach((e=>{i[e]=t})),a.Cache.set(r,t)})),i}async unload(e){this._initialized||await this.init();const t=A.convertToList(e).map((e=>"string"!=typeof e?e.src:e)),r=this.resolver.resolve(t);await this._unloadFromResolved(r)}async unloadBundle(e){this._initialized||await this.init(),e=A.convertToList(e);const t=this.resolver.resolveBundle(e),r=Object.keys(t).map((e=>this._unloadFromResolved(t[e])));await Promise.all(r)}async _unloadFromResolved(e){const t=Object.values(e);t.forEach((e=>{a.Cache.remove(e.src)})),await this.loader.unload(t)}async _detectFormats(e){let t=[];e.preferredFormats&&(t=Array.isArray(e.preferredFormats)?e.preferredFormats:[e.preferredFormats]);for(const r of e.detections)e.skipDetections||await r.test()?t=await r.add(t):e.skipDetections||(t=await r.remove(t));return t=t.filter(((e,r)=>t.indexOf(e)===r)),t}get detections(){return this._detections}setPreferences(e){this.loader.parsers.forEach((t=>{t.config&&Object.keys(t.config).filter((t=>t in e)).forEach((r=>{t.config[r]=e[r]}))}))}}const R=new P;n.extensions.handleByList(n.ExtensionType.LoadParser,R.loader.parsers).handleByList(n.ExtensionType.ResolveParser,R.resolver.parsers).handleByList(n.ExtensionType.CacheParser,R.cache.parsers).handleByList(n.ExtensionType.DetectionParser,R.detections),n.extensions.add(u.cacheTextureArray,c.detectDefaults,l.detectAvif,f.detectWebp,h.detectMp4,d.detectOgv,p.detectWebm,g.loadJson,_.loadTxt,x.loadWebFont,b.loadSvg,y.loadTextures,v.loadVideoTextures,i.loadBitmapFont,i.bitmapFontCachePlugin,S.resolveTextureUrl,T.resolveJsonUrl);const w={loader:n.ExtensionType.LoadParser,resolver:n.ExtensionType.ResolveParser,cache:n.ExtensionType.CacheParser,detection:n.ExtensionType.DetectionParser};n.extensions.handle(n.ExtensionType.Asset,(e=>{const t=e.ref;Object.entries(w).filter((([e])=>!!t[e])).forEach((([e,r])=>n.extensions.add(Object.assign(t[e],{extension:t[e].extension??r}))))}),(e=>{const t=e.ref;Object.keys(w).filter((e=>!!t[e])).forEach((e=>n.extensions.remove(t[e])))})),t.Assets=R,t.AssetsClass=P},45724:function(e,t){"use strict";t.BackgroundLoader=class{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach((e=>{this._assetList.push(e)})),this.verbose&&console.log("[BackgroundLoader] assets: ",this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;const e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let r=0;r{o.set(e,t)}));const a=[...o.keys()],u={cacheKeys:a,keys:r};r.forEach((e=>{this._cacheMap.set(e,u)})),a.forEach((e=>{const r=s?s[e]:t;this._cache.has(e)&&this._cache.get(e)!==r&&n.warn("[Cache] already has key:",e),this._cache.set(e,o.get(e))}))}remove(e){if(!this._cacheMap.has(e))return void n.warn(`[Assets] Asset id ${e} was not found in the Cache`);const t=this._cacheMap.get(e);t.cacheKeys.forEach((e=>{this._cache.delete(e)})),t.keys.forEach((e=>{this._cacheMap.delete(e)}))}get parsers(){return this._parsers}};t.Cache=s},74858:function(){},62392:function(e,t,r){"use strict";var n=r(17073),i=r(84463);const s={extension:{type:n.ExtensionType.CacheParser,name:"cacheTextureArray"},test:e=>Array.isArray(e)&&e.every((e=>e instanceof i.Texture)),getCacheableAssets:(e,t)=>{const r={};return e.forEach((e=>{t.forEach(((t,n)=>{r[e+(0===n?"":n+1)]=t}))})),r}};t.cacheTextureArray=s},58433:function(e,t,r){"use strict";var n=r(17073),i=r(11560);const s={extension:{type:n.ExtensionType.DetectionParser,priority:1},test:async()=>i.testImageFormat("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),add:async e=>[...e,"avif"],remove:async e=>e.filter((e=>"avif"!==e))};t.detectAvif=s},28881:function(e,t,r){"use strict";var n=r(17073);const i=["png","jpg","jpeg"],s={extension:{type:n.ExtensionType.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async e=>[...e,...i],remove:async e=>e.filter((e=>!i.includes(e)))};t.detectDefaults=s},55673:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/mp4"),add:async e=>[...e,"mp4","m4v"],remove:async e=>e.filter((e=>"mp4"!==e&&"m4v"!==e))};t.detectMp4=s},62972:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/ogg"),add:async e=>[...e,"ogv"],remove:async e=>e.filter((e=>"ogv"!==e))};t.detectOgv=s},36214:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/webm"),add:async e=>[...e,"webm"],remove:async e=>e.filter((e=>"webm"!==e))};t.detectWebm=s},17178:function(e,t,r){"use strict";var n=r(17073),i=r(11560);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testImageFormat("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA="),add:async e=>[...e,"webp"],remove:async e=>e.filter((e=>"webp"!==e))};t.detectWebp=s},77645:function(){},11560:function(e,t){"use strict";t.testImageFormat=async function(e){if("Image"in globalThis)return new Promise((t=>{const r=new Image;r.onload=()=>{t(!0)},r.onerror=()=>{t(!1)},r.src=e}));if("createImageBitmap"in globalThis&&"fetch"in globalThis){try{const t=await(await fetch(e)).blob();await createImageBitmap(t)}catch(e){return!1}return!0}return!1}},44994:function(e,t){"use strict";const r="WorkerGlobalScope"in globalThis&&globalThis instanceof globalThis.WorkerGlobalScope;t.testVideoFormat=function(e){return!r&&""!==document.createElement("video").canPlayType(e)}},98430:function(e,t,r){"use strict";r(3033);var n=r(18800),i=r(45724),s=r(56509);r(74858);var o=r(62392),a=r(58433),u=r(28881),l=r(55673),c=r(62972),h=r(36214),d=r(17178);r(77645);var p=r(11560),f=r(44994),m=r(32181),g=r(8774),_=r(20246),x=r(20763),b=r(76529),y=r(80428),v=r(27273),T=r(13189),S=r(64822);r(48024);var E=r(76836),A=r(6195),M=r(34361),P=r(95997);r(33717),r(44971);var R=r(73036),w=r(90206),B=r(5866),G=r(90973),C=r(42196),F=r(82493);t.Assets=n.Assets,t.AssetsClass=n.AssetsClass,t.BackgroundLoader=i.BackgroundLoader,t.Cache=s.Cache,t.cacheTextureArray=o.cacheTextureArray,t.detectAvif=a.detectAvif,t.detectDefaults=u.detectDefaults,t.detectMp4=l.detectMp4,t.detectOgv=c.detectOgv,t.detectWebm=h.detectWebm,t.detectWebp=d.detectWebp,t.testImageFormat=p.testImageFormat,t.testVideoFormat=f.testVideoFormat,t.Loader=m.Loader,t.LoaderParserPriority=g.LoaderParserPriority,t.loadJson=_.loadJson,t.loadTxt=x.loadTxt,t.getFontFamilyName=b.getFontFamilyName,t.loadWebFont=b.loadWebFont,t.loadSvg=y.loadSvg,t.loadImageBitmap=v.loadImageBitmap,t.loadTextures=v.loadTextures,t.crossOrigin=T.crossOrigin,t.determineCrossOrigin=T.determineCrossOrigin,t.loadVideoTextures=T.loadVideoTextures,t.preloadVideo=T.preloadVideo,t.createTexture=S.createTexture,t.WorkerManager=E.WorkerManager,t.resolveJsonUrl=A.resolveJsonUrl,t.resolveTextureUrl=M.resolveTextureUrl,t.Resolver=P.Resolver,t.getUrlExtension=P.getUrlExtension,t.checkDataUrl=R.checkDataUrl,t.checkExtension=w.checkExtension,t.convertToList=B.convertToList,t.copySearchParams=G.copySearchParams,t.createStringVariations=C.createStringVariations,t.isSingleItem=F.isSingleItem},32181:function(e,t,r){"use strict";var n=r(95190),i=r(36491),s=r(5866),o=r(82493);t.Loader=class{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,r)=>(this._parsersValidated=!1,e[t]=r,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){const r={promise:null,parser:null};return r.promise=(async()=>{let i=null,s=null;if(t.loadParser&&(s=this._parserHash[t.loadParser],s||n.warn(`[Assets] specified load parser "${t.loadParser}" not found while loading ${e}`)),!s){for(let r=0;r({alias:[e],src:e}))),l=u.length,c=u.map((async e=>{const s=i.path.toAbsolute(e.src);if(!n[e.src])try{this.promiseCache[s]||(this.promiseCache[s]=this._getLoadPromiseAndParser(s,e)),n[e.src]=await this.promiseCache[s].promise,t&&t(++r/l)}catch(t){throw delete this.promiseCache[s],delete n[e.src],new Error(`[Loader.load] Failed to load ${s}.\n${t}`)}}));return await Promise.all(c),a?n[u[0].src]:n}async unload(e){const t=s.convertToList(e,(e=>({alias:[e],src:e}))).map((async e=>{const t=i.path.toAbsolute(e.src),r=this.promiseCache[t];if(r){const n=await r.promise;delete this.promiseCache[t],await(r.parser?.unload?.(n,e,this))}}));await Promise.all(t)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter((e=>e.name)).reduce(((e,t)=>(t.name?e[t.name]&&n.warn(`[Assets] loadParser name conflict "${t.name}"`):n.warn("[Assets] loadParser should have a name"),{...e,[t.name]:t})),{})}}},8774:function(e,t){"use strict";var r=(e=>(e[e.Low=0]="Low",e[e.Normal=1]="Normal",e[e.High=2]="High",e))(r||{});t.LoaderParserPriority=r},20246:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(73036),o=r(90206),a=r(8774);const u={extension:{type:i.ExtensionType.LoadParser,priority:a.LoaderParserPriority.Low},name:"loadJson",test(e){return s.checkDataUrl(e,"application/json")||o.checkExtension(e,".json")},async load(e){const t=await n.DOMAdapter.get().fetch(e);return await t.json()}};t.loadJson=u},20763:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(73036),o=r(90206),a=r(8774);const u={name:"loadTxt",extension:{type:i.ExtensionType.LoadParser,priority:a.LoaderParserPriority.Low,name:"loadTxt"},test(e){return s.checkDataUrl(e,"text/plain")||o.checkExtension(e,".txt")},async load(e){const t=await n.DOMAdapter.get().fetch(e);return await t.text()}};t.loadTxt=u},76529:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(95190),o=r(36491),a=r(56509),u=r(73036),l=r(90206),c=r(8774);const h=["normal","bold","100","200","300","400","500","600","700","800","900"],d=[".ttf",".otf",".woff",".woff2"],p=["font/ttf","font/otf","font/woff","font/woff2"],f=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function m(e){const t=o.path.extname(e),r=o.path.basename(e,t).replace(/(-|_)/g," ").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1)));let n=r.length>0;for(const e of r)if(!e.match(f)){n=!1;break}let i=r.join(" ");return n||(i=`"${i.replace(/[\\"]/g,"\\$&")}"`),i}const g=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;const _={extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.Low},name:"loadWebFont",test(e){return u.checkDataUrl(e,p)||l.checkExtension(e,d)},async load(e,t){const r=n.DOMAdapter.get().getFontFaceSet();if(r){const n=[],s=t.data?.family??m(e),o=t.data?.weights?.filter((e=>h.includes(e)))??["normal"],u=t.data??{};for(let t=0;t{a.Cache.remove(e.family),n.DOMAdapter.get().getFontFaceSet().delete(e)}))}};t.getFontFamilyName=m,t.loadWebFont=_},80428:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(75813),o=r(90537),a=r(87876),u=r(73036),l=r(90206),c=r(8774),h=r(64822);const d={extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.Low,name:"loadSVG"},name:"loadSVG",config:{crossOrigin:"anonymous",parseAsGraphicsContext:!1},test(e){return u.checkDataUrl(e,"image/svg+xml")||l.checkExtension(e,".svg")},async load(e,t,r){return t.data.parseAsGraphicsContext??this.config.parseAsGraphicsContext?async function(e){const t=await n.DOMAdapter.get().fetch(e),r=await t.text(),i=new o.GraphicsContext;return i.svg(r),i}(e):async function(e,t,r,i){const o=await n.DOMAdapter.get().fetch(e),u=await o.blob(),l=URL.createObjectURL(u),c=new Image;c.src=l,c.crossOrigin=i,await c.decode(),URL.revokeObjectURL(l);const d=document.createElement("canvas"),p=d.getContext("2d"),f=t.data?.resolution||a.getResolutionOfUrl(e),m=t.data?.width??c.width,g=t.data?.height??c.height;d.width=m*f,d.height=g*f,p.drawImage(c,0,0,m*f,g*f);const{parseAsGraphicsContext:_,...x}=t.data,b=new s.ImageSource({resource:d,alphaMode:"premultiply-alpha-on-upload",resolution:f,...x});return h.createTexture(b,r,e)}(e,t,r,this.config.crossOrigin)},unload(e){e.destroy(!0)}};t.loadSvg=d},27273:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(75813),o=r(87876),a=r(73036),u=r(90206),l=r(76836),c=r(8774),h=r(64822);const d=[".jpeg",".jpg",".png",".webp",".avif"],p=["image/jpeg","image/png","image/webp","image/avif"];async function f(e){const t=await n.DOMAdapter.get().fetch(e);if(!t.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${e}: ${t.status} ${t.statusText}`);const r=await t.blob();return await createImageBitmap(r)}const m={name:"loadTextures",extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.High,name:"loadTextures"},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(e){return a.checkDataUrl(e,p)||u.checkExtension(e,d)},async load(e,t,r){let n=null;n=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await l.WorkerManager.isImageBitmapSupported()?await l.WorkerManager.loadImageBitmap(e):await f(e):await new Promise((t=>{n=new Image,n.crossOrigin=this.config.crossOrigin,n.src=e,n.complete?t(n):n.onload=()=>{t(n)}}));const i=new s.ImageSource({resource:n,alphaMode:"premultiply-alpha-on-upload",resolution:t.data?.resolution||o.getResolutionOfUrl(e),...t.data});return h.createTexture(i,r,e)},unload(e){e.destroy(!0)}};t.loadImageBitmap=f,t.loadTextures=m},13189:function(e,t,r){"use strict";var n=r(17073),i=r(62480),s=r(86105),o=r(87876),a=r(73036),u=r(90206),l=r(64822);const c=[".mp4",".m4v",".webm",".ogg",".ogv",".h264",".avi",".mov"],h=c.map((e=>`video/${e.substring(1)}`));function d(e,t,r){void 0!==r||t.startsWith("data:")?!1!==r&&(e.crossOrigin="string"==typeof r?r:"anonymous"):e.crossOrigin=f(t)}function p(e){return new Promise(((t,r)=>{function n(){s(),t()}function i(e){s(),r(e)}function s(){e.removeEventListener("canplaythrough",n),e.removeEventListener("error",i)}e.addEventListener("canplaythrough",n),e.addEventListener("error",i),e.load()}))}function f(e,t=globalThis.location){if(e.startsWith("data:"))return"";t=t||globalThis.location;const r=new URL(e,document.baseURI);return r.hostname!==t.hostname||r.port!==t.port||r.protocol!==t.protocol?"anonymous":""}const m={name:"loadVideo",extension:{type:n.ExtensionType.LoadParser,name:"loadVideo"},test(e){const t=a.checkDataUrl(e,h),r=u.checkExtension(e,c);return t||r},async load(e,t,r){const n={...i.VideoSource.defaultOptions,resolution:t.data?.resolution||o.getResolutionOfUrl(e),alphaMode:t.data?.alphaMode||await s.detectVideoAlphaMode(),...t.data},a=document.createElement("video"),u={preload:!1!==n.autoLoad?"auto":void 0,"webkit-playsinline":!1!==n.playsinline?"":void 0,playsinline:!1!==n.playsinline?"":void 0,muted:!0===n.muted?"":void 0,loop:!0===n.loop?"":void 0,autoplay:!1!==n.autoPlay?"":void 0};Object.keys(u).forEach((e=>{const t=u[e];void 0!==t&&a.setAttribute(e,t)})),!0===n.muted&&(a.muted=!0),d(a,e,n.crossorigin);const c=document.createElement("source");let h;if(e.startsWith("data:"))h=e.slice(5,e.indexOf(";"));else if(!e.startsWith("blob:")){const t=e.split("?")[0].slice(e.lastIndexOf(".")+1).toLowerCase();h=i.VideoSource.MIME_TYPES[t]||`video/${t}`}return c.src=e,h&&(c.type=h),new Promise((s=>{const o=async()=>{const u=new i.VideoSource({...n,resource:a});a.removeEventListener("canplay",o),t.data.preload&&await p(a),s(l.createTexture(u,r,e))};a.addEventListener("canplay",o),a.appendChild(c)}))},unload(e){e.destroy(!0)}};t.crossOrigin=d,t.determineCrossOrigin=f,t.loadVideoTextures=m,t.preloadVideo=p},64822:function(e,t,r){"use strict";var n=r(84463),i=r(95190),s=r(56509);t.createTexture=function(e,t,r){e.label=r,e._sourceOrigin=r;const o=new n.Texture({source:e,label:r}),a=()=>{delete t.promiseCache[r],s.Cache.has(r)&&s.Cache.remove(r)};return o.source.once("destroy",(()=>{t.promiseCache[r]&&(i.warn("[Assets] A TextureSource managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the TextureSource."),a())})),o.once("destroy",(()=>{e.destroyed||(i.warn("[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture."),a())})),o}},48024:function(){},76836:function(e,t,r){"use strict";var n=r(9083),i=r(61567);let s,o=0;const a=new class{constructor(){this._initialized=!1,this._createdWorkers=0,this._workerPool=[],this._queue=[],this._resolveHash={}}isImageBitmapSupported(){return void 0!==this._isImageBitmapSupported||(this._isImageBitmapSupported=new Promise((e=>{const{worker:t}=new n.default;t.addEventListener("message",(r=>{t.terminate(),n.default.revokeObjectURL(),e(r.data)}))}))),this._isImageBitmapSupported}loadImageBitmap(e){return this._run("loadImageBitmap",[e])}async _initWorkers(){this._initialized||(this._initialized=!0)}_getWorker(){void 0===s&&(s=navigator.hardwareConcurrency||4);let e=this._workerPool.pop();return!e&&this._createdWorkers{this._complete(e.data),this._returnWorker(e.target),this._next()}))),e}_returnWorker(e){this._workerPool.push(e)}_complete(e){void 0!==e.error?this._resolveHash[e.uuid].reject(e.error):this._resolveHash[e.uuid].resolve(e.data),this._resolveHash[e.uuid]=null}async _run(e,t){await this._initWorkers();const r=new Promise(((r,n)=>{this._queue.push({id:e,arguments:t,resolve:r,reject:n})}));return this._next(),r}_next(){if(!this._queue.length)return;const e=this._getWorker();if(!e)return;const t=this._queue.pop(),r=t.id;this._resolveHash[o]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:o++,id:r})}};t.WorkerManager=a},95997:function(e,t,r){"use strict";var n=r(95190),i=r(36491),s=r(5866),o=r(42196),a=r(82493);class u{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,"bar"!==this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar")))throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach((e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params))})),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if("string"==typeof e)this._defaultSearchParams=e;else{const t=e;this._defaultSearchParams=Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}}getAlias(e){const{alias:t,src:r}=e;return s.convertToList(t||r,(e=>"string"==typeof e?e:Array.isArray(e)?e.map((e=>e?.src??e)):e?.src?e.src:e),!0)}addManifest(e){this._manifest&&n.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach((e=>{this.addBundle(e.name,e.assets)}))}addBundle(e,t){const r=[];let n=t;Array.isArray(t)||(n=Object.entries(t).map((([e,t])=>"string"==typeof t||Array.isArray(t)?{alias:e,src:t}:{alias:e,...t}))),n.forEach((t=>{const n=t.src,i=t.alias;let s;if("string"==typeof i){const t=this._createBundleAssetId(e,i);r.push(t),s=[i,t]}else{const t=i.map((t=>this._createBundleAssetId(e,t)));r.push(...t),s=[...i,...t]}this.add({...t,alias:s,src:n})})),this._bundles[e]=r}add(e){const t=[];let r;Array.isArray(e)?t.push(...e):t.push(e),r=e=>{this.hasKey(e)&&n.warn(`[Resolver] already has key: ${e} overwriting`)};s.convertToList(t).forEach((e=>{const{src:t}=e;let{data:n,format:i,loadParser:a}=e;const u=s.convertToList(t).map((e=>"string"==typeof e?o.createStringVariations(e):Array.isArray(e)?e:[e])),l=this.getAlias(e);Array.isArray(l)?l.forEach(r):r(l);const c=[];u.forEach((e=>{e.forEach((e=>{let t={};if("object"!=typeof e){t.src=e;for(let r=0;r{this._assetMap[e]=c}))}))}resolveBundle(e){const t=a.isSingleItem(e);e=s.convertToList(e);const r={};return e.forEach((e=>{const t=this._bundles[e];if(t){const n=this.resolve(t),i={};for(const t in n){const r=n[t];i[this._extractAssetIdFromBundle(e,t)]=r}r[e]=i}})),t?r[e[0]]:r}resolveUrl(e){const t=this.resolve(e);if("string"!=typeof e){const e={};for(const r in t)e[r]=t[r].src;return e}return t.src}resolve(e){const t=a.isSingleItem(e);e=s.convertToList(e);const r={};return e.forEach((e=>{if(!this._resolverHash[e])if(this._assetMap[e]){let t=this._assetMap[e];const r=this._getPreferredOrder(t);r?.priority.forEach((e=>{r.params[e].forEach((r=>{const n=t.filter((t=>!!t[e]&&t[e]===r));n.length&&(t=n)}))})),this._resolverHash[e]=t[0]}else this._resolverHash[e]=this._buildResolvedAsset({alias:[e],src:e},{});r[e]=this._resolverHash[e]})),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;te.params.format.includes(t.format)));if(r)return r}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;return`${e}${/\?/.test(e)?"&":"?"}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){const{aliases:r,data:n,loadParser:s,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=i.path.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...n||{},...e.data},e.loadParser=s??e.loadParser,e.format=o??e.format??l(e.src),e}}function l(e){return e.split(".").pop().split("?").shift().split("#").shift()}u.RETINA_PREFIX=/@([0-9\.]+)x/,t.Resolver=u,t.getUrlExtension=l},6195:function(e,t,r){"use strict";var n=r(17073),i=r(95997),s=r(34361);const o={extension:{type:n.ExtensionType.ResolveParser,priority:-2,name:"resolveJson"},test:e=>i.Resolver.RETINA_PREFIX.test(e)&&e.endsWith(".json"),parse:s.resolveTextureUrl.parse};t.resolveJsonUrl=o},34361:function(e,t,r){"use strict";var n=r(17073),i=r(27273),s=r(95997);const o={extension:{type:n.ExtensionType.ResolveParser,name:"resolveTexture"},test:i.loadTextures.test,parse:e=>({resolution:parseFloat(s.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:e.split(".").pop(),src:e})};t.resolveTextureUrl=o},33717:function(){},44971:function(){},73036:function(e,t){"use strict";t.checkDataUrl=function(e,t){if(Array.isArray(t)){for(const r of t)if(e.startsWith(`data:${r}`))return!0;return!1}return e.startsWith(`data:${t}`)}},90206:function(e,t,r){"use strict";var n=r(36491);t.checkExtension=function(e,t){const r=e.split("?")[0],i=n.path.extname(r).toLowerCase();return Array.isArray(t)?t.includes(i):i===t}},5866:function(e,t){"use strict";t.convertToList=(e,t,r=!1)=>(Array.isArray(e)||(e=[e]),t?e.map((e=>"string"==typeof e||r?t(e):e)):e)},90973:function(e,t){"use strict";t.copySearchParams=(e,t)=>{const r=t.split("?")[1];return r&&(e+=`?${r}`),e}},42196:function(e,t){"use strict";function r(e,t,n,i,s){const o=t[n];for(let a=0;a{const t=e.substring(1,e.length-1).split(",");i.push(t)})),r(e,i,0,t,n)}else n.push(e);return n}},82493:function(e,t){"use strict";t.isSingleItem=e=>!Array.isArray(e)},58778:function(e,t,r){"use strict";var n=r(5538),i=r(13185);n.extend([i]);const s=class e{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(t){if(t instanceof e)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(null===t)throw new Error("Cannot set Color#value to null");null!==this._value&&this._isSourceEqual(this._value,t)||(this._normalize(t),this._value=this._cloneSource(t))}}get value(){return this._value}_cloneSource(e){return"string"==typeof e||"number"==typeof e||e instanceof Number||null===e?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):"object"==typeof e&&null!==e?{...e}:e}_isSourceEqual(e,t){const r=typeof e;if(r!==typeof t)return!1;if("number"===r||"string"===r||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length===t.length&&e.every(((e,r)=>e===t[r]));if(null!==e&&null!==t){const r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every((r=>e[r]===t[r]))}return e===t}toRgba(){const[e,t,r,n]=this._components;return{r:e,g:t,b:r,a:n}}toRgb(){const[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){const[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){const[t,r,n]=this._components;return this._arrayRgb||(this._arrayRgb=[]),(e=e||this._arrayRgb)[0]=Math.round(255*t),e[1]=Math.round(255*r),e[2]=Math.round(255*n),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e=e||this._arrayRgba;const[t,r,n,i]=this._components;return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e=e||this._arrayRgb;const[t,r,n]=this._components;return e[0]=t,e[1]=r,e[2]=n,e}toNumber(){return this._int}toBgrNumber(){const[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){const e=this._int;return(e>>16)+(65280&e)+((255&e)<<16)}multiply(t){const[r,n,i,s]=e._temp.setValue(t)._components;return this._components[0]*=r,this._components[1]*=n,this._components[2]*=i,this._components[3]*=s,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(1===e)return(255<<24)+this._int;if(0===e)return t?0:this._int;let r=this._int>>16&255,n=this._int>>8&255,i=255&this._int;return t&&(r=r*e+.5|0,n=n*e+.5|0,i=i*e+.5|0),(255*e<<24)+(r<<16)+(n<<8)+i}toHex(){const e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){const e=Math.round(255*this._components[3]).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(t){let r,i,s,o;if(("number"==typeof t||t instanceof Number)&&t>=0&&t<=16777215){r=(t>>16&255)/255,i=(t>>8&255)/255,s=(255&t)/255,o=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[r,i,s,o=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[r,i,s,o=255]=t,r/=255,i/=255,s/=255,o/=255;else if("string"==typeof t||"object"==typeof t){if("string"==typeof t){const r=e.HEX_PATTERN.exec(t);r&&(t=`#${r[2]}`)}const a=n.colord(t);a.isValid()&&(({r:r,g:i,b:s,a:o}=a.rgba),r/=255,i/=255,s/=255)}if(void 0===r)throw new Error(`Unable to convert color ${t}`);this._components[0]=r,this._components[1]=i,this._components[2]=s,this._components[3]=o,this._refreshInt()}_refreshInt(){this._clamp(this._components);const[e,t,r]=this._components;this._int=(255*e<<16)+(255*t<<8)+(255*r|0)}_clamp(e,t=0,r=1){return"number"==typeof e?Math.min(Math.max(e,t),r):(e.forEach(((n,i)=>{e[i]=Math.min(Math.max(n,t),r)})),e)}static isColorLike(t){return"number"==typeof t||"string"==typeof t||t instanceof Number||t instanceof e||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||void 0!==t.r&&void 0!==t.g&&void 0!==t.b||void 0!==t.r&&void 0!==t.g&&void 0!==t.b&&void 0!==t.a||void 0!==t.h&&void 0!==t.s&&void 0!==t.l||void 0!==t.h&&void 0!==t.s&&void 0!==t.l&&void 0!==t.a||void 0!==t.h&&void 0!==t.s&&void 0!==t.v||void 0!==t.h&&void 0!==t.s&&void 0!==t.v&&void 0!==t.a}};s.shared=new s,s._temp=new s,s.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;let o=s;t.Color=o},77235:function(e,t,r){"use strict";var n=r(58778);t.Color=n.Color},25917:function(e,t,r){"use strict";var n=r(17073),i=r(58050),s=r(73533);const o={extension:{type:n.ExtensionType.DetectionParser,priority:3},test:async()=>!!await s.isWebGPUSupported()||!!i.isWebGLSupported(),add:async e=>[...e,"basis"],remove:async e=>e.filter((e=>"basis"!==e))};t.detectBasis=o},49728:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(94086);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High,name:"loadBasis"},name:"loadBasis",test(e){return s.checkExtension(e,[".basis"])},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await l.loadBasisOnWorker(e,n),o=new a.CompressedSource(s);return i.createTexture(o,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadBasis=c},82923:function(){},31166:function(e,t){"use strict";t.createLevelBuffers=function(e,t){const r=e.getNumImages(),n=e.getNumLevels(0);if(!e.startTranscoding())throw new Error("startTranscoding failed");const i=[];for(let s=0;s{const{success:t,url:r,textureOptions:n}=e.data;t||console.warn("Failed to load Basis texture",r),o[r](n)},s.postMessage({type:"init",jsUrl:i.basisTranscoderUrls.jsUrl,wasmUrl:i.basisTranscoderUrls.wasmUrl,supportedTextures:e})),s}(t);return new Promise((t=>{o[e]=t,r.postMessage({type:"load",url:e})}))}},95966:function(e,t){"use strict";var r=(e=>(e[e.DXGI_FORMAT_UNKNOWN=0]="DXGI_FORMAT_UNKNOWN",e[e.DXGI_FORMAT_R32G32B32A32_TYPELESS=1]="DXGI_FORMAT_R32G32B32A32_TYPELESS",e[e.DXGI_FORMAT_R32G32B32A32_FLOAT=2]="DXGI_FORMAT_R32G32B32A32_FLOAT",e[e.DXGI_FORMAT_R32G32B32A32_UINT=3]="DXGI_FORMAT_R32G32B32A32_UINT",e[e.DXGI_FORMAT_R32G32B32A32_SINT=4]="DXGI_FORMAT_R32G32B32A32_SINT",e[e.DXGI_FORMAT_R32G32B32_TYPELESS=5]="DXGI_FORMAT_R32G32B32_TYPELESS",e[e.DXGI_FORMAT_R32G32B32_FLOAT=6]="DXGI_FORMAT_R32G32B32_FLOAT",e[e.DXGI_FORMAT_R32G32B32_UINT=7]="DXGI_FORMAT_R32G32B32_UINT",e[e.DXGI_FORMAT_R32G32B32_SINT=8]="DXGI_FORMAT_R32G32B32_SINT",e[e.DXGI_FORMAT_R16G16B16A16_TYPELESS=9]="DXGI_FORMAT_R16G16B16A16_TYPELESS",e[e.DXGI_FORMAT_R16G16B16A16_FLOAT=10]="DXGI_FORMAT_R16G16B16A16_FLOAT",e[e.DXGI_FORMAT_R16G16B16A16_UNORM=11]="DXGI_FORMAT_R16G16B16A16_UNORM",e[e.DXGI_FORMAT_R16G16B16A16_UINT=12]="DXGI_FORMAT_R16G16B16A16_UINT",e[e.DXGI_FORMAT_R16G16B16A16_SNORM=13]="DXGI_FORMAT_R16G16B16A16_SNORM",e[e.DXGI_FORMAT_R16G16B16A16_SINT=14]="DXGI_FORMAT_R16G16B16A16_SINT",e[e.DXGI_FORMAT_R32G32_TYPELESS=15]="DXGI_FORMAT_R32G32_TYPELESS",e[e.DXGI_FORMAT_R32G32_FLOAT=16]="DXGI_FORMAT_R32G32_FLOAT",e[e.DXGI_FORMAT_R32G32_UINT=17]="DXGI_FORMAT_R32G32_UINT",e[e.DXGI_FORMAT_R32G32_SINT=18]="DXGI_FORMAT_R32G32_SINT",e[e.DXGI_FORMAT_R32G8X24_TYPELESS=19]="DXGI_FORMAT_R32G8X24_TYPELESS",e[e.DXGI_FORMAT_D32_FLOAT_S8X24_UINT=20]="DXGI_FORMAT_D32_FLOAT_S8X24_UINT",e[e.DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS=21]="DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS",e[e.DXGI_FORMAT_X32_TYPELESS_G8X24_UINT=22]="DXGI_FORMAT_X32_TYPELESS_G8X24_UINT",e[e.DXGI_FORMAT_R10G10B10A2_TYPELESS=23]="DXGI_FORMAT_R10G10B10A2_TYPELESS",e[e.DXGI_FORMAT_R10G10B10A2_UNORM=24]="DXGI_FORMAT_R10G10B10A2_UNORM",e[e.DXGI_FORMAT_R10G10B10A2_UINT=25]="DXGI_FORMAT_R10G10B10A2_UINT",e[e.DXGI_FORMAT_R11G11B10_FLOAT=26]="DXGI_FORMAT_R11G11B10_FLOAT",e[e.DXGI_FORMAT_R8G8B8A8_TYPELESS=27]="DXGI_FORMAT_R8G8B8A8_TYPELESS",e[e.DXGI_FORMAT_R8G8B8A8_UNORM=28]="DXGI_FORMAT_R8G8B8A8_UNORM",e[e.DXGI_FORMAT_R8G8B8A8_UNORM_SRGB=29]="DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",e[e.DXGI_FORMAT_R8G8B8A8_UINT=30]="DXGI_FORMAT_R8G8B8A8_UINT",e[e.DXGI_FORMAT_R8G8B8A8_SNORM=31]="DXGI_FORMAT_R8G8B8A8_SNORM",e[e.DXGI_FORMAT_R8G8B8A8_SINT=32]="DXGI_FORMAT_R8G8B8A8_SINT",e[e.DXGI_FORMAT_R16G16_TYPELESS=33]="DXGI_FORMAT_R16G16_TYPELESS",e[e.DXGI_FORMAT_R16G16_FLOAT=34]="DXGI_FORMAT_R16G16_FLOAT",e[e.DXGI_FORMAT_R16G16_UNORM=35]="DXGI_FORMAT_R16G16_UNORM",e[e.DXGI_FORMAT_R16G16_UINT=36]="DXGI_FORMAT_R16G16_UINT",e[e.DXGI_FORMAT_R16G16_SNORM=37]="DXGI_FORMAT_R16G16_SNORM",e[e.DXGI_FORMAT_R16G16_SINT=38]="DXGI_FORMAT_R16G16_SINT",e[e.DXGI_FORMAT_R32_TYPELESS=39]="DXGI_FORMAT_R32_TYPELESS",e[e.DXGI_FORMAT_D32_FLOAT=40]="DXGI_FORMAT_D32_FLOAT",e[e.DXGI_FORMAT_R32_FLOAT=41]="DXGI_FORMAT_R32_FLOAT",e[e.DXGI_FORMAT_R32_UINT=42]="DXGI_FORMAT_R32_UINT",e[e.DXGI_FORMAT_R32_SINT=43]="DXGI_FORMAT_R32_SINT",e[e.DXGI_FORMAT_R24G8_TYPELESS=44]="DXGI_FORMAT_R24G8_TYPELESS",e[e.DXGI_FORMAT_D24_UNORM_S8_UINT=45]="DXGI_FORMAT_D24_UNORM_S8_UINT",e[e.DXGI_FORMAT_R24_UNORM_X8_TYPELESS=46]="DXGI_FORMAT_R24_UNORM_X8_TYPELESS",e[e.DXGI_FORMAT_X24_TYPELESS_G8_UINT=47]="DXGI_FORMAT_X24_TYPELESS_G8_UINT",e[e.DXGI_FORMAT_R8G8_TYPELESS=48]="DXGI_FORMAT_R8G8_TYPELESS",e[e.DXGI_FORMAT_R8G8_UNORM=49]="DXGI_FORMAT_R8G8_UNORM",e[e.DXGI_FORMAT_R8G8_UINT=50]="DXGI_FORMAT_R8G8_UINT",e[e.DXGI_FORMAT_R8G8_SNORM=51]="DXGI_FORMAT_R8G8_SNORM",e[e.DXGI_FORMAT_R8G8_SINT=52]="DXGI_FORMAT_R8G8_SINT",e[e.DXGI_FORMAT_R16_TYPELESS=53]="DXGI_FORMAT_R16_TYPELESS",e[e.DXGI_FORMAT_R16_FLOAT=54]="DXGI_FORMAT_R16_FLOAT",e[e.DXGI_FORMAT_D16_UNORM=55]="DXGI_FORMAT_D16_UNORM",e[e.DXGI_FORMAT_R16_UNORM=56]="DXGI_FORMAT_R16_UNORM",e[e.DXGI_FORMAT_R16_UINT=57]="DXGI_FORMAT_R16_UINT",e[e.DXGI_FORMAT_R16_SNORM=58]="DXGI_FORMAT_R16_SNORM",e[e.DXGI_FORMAT_R16_SINT=59]="DXGI_FORMAT_R16_SINT",e[e.DXGI_FORMAT_R8_TYPELESS=60]="DXGI_FORMAT_R8_TYPELESS",e[e.DXGI_FORMAT_R8_UNORM=61]="DXGI_FORMAT_R8_UNORM",e[e.DXGI_FORMAT_R8_UINT=62]="DXGI_FORMAT_R8_UINT",e[e.DXGI_FORMAT_R8_SNORM=63]="DXGI_FORMAT_R8_SNORM",e[e.DXGI_FORMAT_R8_SINT=64]="DXGI_FORMAT_R8_SINT",e[e.DXGI_FORMAT_A8_UNORM=65]="DXGI_FORMAT_A8_UNORM",e[e.DXGI_FORMAT_R1_UNORM=66]="DXGI_FORMAT_R1_UNORM",e[e.DXGI_FORMAT_R9G9B9E5_SHAREDEXP=67]="DXGI_FORMAT_R9G9B9E5_SHAREDEXP",e[e.DXGI_FORMAT_R8G8_B8G8_UNORM=68]="DXGI_FORMAT_R8G8_B8G8_UNORM",e[e.DXGI_FORMAT_G8R8_G8B8_UNORM=69]="DXGI_FORMAT_G8R8_G8B8_UNORM",e[e.DXGI_FORMAT_BC1_TYPELESS=70]="DXGI_FORMAT_BC1_TYPELESS",e[e.DXGI_FORMAT_BC1_UNORM=71]="DXGI_FORMAT_BC1_UNORM",e[e.DXGI_FORMAT_BC1_UNORM_SRGB=72]="DXGI_FORMAT_BC1_UNORM_SRGB",e[e.DXGI_FORMAT_BC2_TYPELESS=73]="DXGI_FORMAT_BC2_TYPELESS",e[e.DXGI_FORMAT_BC2_UNORM=74]="DXGI_FORMAT_BC2_UNORM",e[e.DXGI_FORMAT_BC2_UNORM_SRGB=75]="DXGI_FORMAT_BC2_UNORM_SRGB",e[e.DXGI_FORMAT_BC3_TYPELESS=76]="DXGI_FORMAT_BC3_TYPELESS",e[e.DXGI_FORMAT_BC3_UNORM=77]="DXGI_FORMAT_BC3_UNORM",e[e.DXGI_FORMAT_BC3_UNORM_SRGB=78]="DXGI_FORMAT_BC3_UNORM_SRGB",e[e.DXGI_FORMAT_BC4_TYPELESS=79]="DXGI_FORMAT_BC4_TYPELESS",e[e.DXGI_FORMAT_BC4_UNORM=80]="DXGI_FORMAT_BC4_UNORM",e[e.DXGI_FORMAT_BC4_SNORM=81]="DXGI_FORMAT_BC4_SNORM",e[e.DXGI_FORMAT_BC5_TYPELESS=82]="DXGI_FORMAT_BC5_TYPELESS",e[e.DXGI_FORMAT_BC5_UNORM=83]="DXGI_FORMAT_BC5_UNORM",e[e.DXGI_FORMAT_BC5_SNORM=84]="DXGI_FORMAT_BC5_SNORM",e[e.DXGI_FORMAT_B5G6R5_UNORM=85]="DXGI_FORMAT_B5G6R5_UNORM",e[e.DXGI_FORMAT_B5G5R5A1_UNORM=86]="DXGI_FORMAT_B5G5R5A1_UNORM",e[e.DXGI_FORMAT_B8G8R8A8_UNORM=87]="DXGI_FORMAT_B8G8R8A8_UNORM",e[e.DXGI_FORMAT_B8G8R8X8_UNORM=88]="DXGI_FORMAT_B8G8R8X8_UNORM",e[e.DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM=89]="DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM",e[e.DXGI_FORMAT_B8G8R8A8_TYPELESS=90]="DXGI_FORMAT_B8G8R8A8_TYPELESS",e[e.DXGI_FORMAT_B8G8R8A8_UNORM_SRGB=91]="DXGI_FORMAT_B8G8R8A8_UNORM_SRGB",e[e.DXGI_FORMAT_B8G8R8X8_TYPELESS=92]="DXGI_FORMAT_B8G8R8X8_TYPELESS",e[e.DXGI_FORMAT_B8G8R8X8_UNORM_SRGB=93]="DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",e[e.DXGI_FORMAT_BC6H_TYPELESS=94]="DXGI_FORMAT_BC6H_TYPELESS",e[e.DXGI_FORMAT_BC6H_UF16=95]="DXGI_FORMAT_BC6H_UF16",e[e.DXGI_FORMAT_BC6H_SF16=96]="DXGI_FORMAT_BC6H_SF16",e[e.DXGI_FORMAT_BC7_TYPELESS=97]="DXGI_FORMAT_BC7_TYPELESS",e[e.DXGI_FORMAT_BC7_UNORM=98]="DXGI_FORMAT_BC7_UNORM",e[e.DXGI_FORMAT_BC7_UNORM_SRGB=99]="DXGI_FORMAT_BC7_UNORM_SRGB",e[e.DXGI_FORMAT_AYUV=100]="DXGI_FORMAT_AYUV",e[e.DXGI_FORMAT_Y410=101]="DXGI_FORMAT_Y410",e[e.DXGI_FORMAT_Y416=102]="DXGI_FORMAT_Y416",e[e.DXGI_FORMAT_NV12=103]="DXGI_FORMAT_NV12",e[e.DXGI_FORMAT_P010=104]="DXGI_FORMAT_P010",e[e.DXGI_FORMAT_P016=105]="DXGI_FORMAT_P016",e[e.DXGI_FORMAT_420_OPAQUE=106]="DXGI_FORMAT_420_OPAQUE",e[e.DXGI_FORMAT_YUY2=107]="DXGI_FORMAT_YUY2",e[e.DXGI_FORMAT_Y210=108]="DXGI_FORMAT_Y210",e[e.DXGI_FORMAT_Y216=109]="DXGI_FORMAT_Y216",e[e.DXGI_FORMAT_NV11=110]="DXGI_FORMAT_NV11",e[e.DXGI_FORMAT_AI44=111]="DXGI_FORMAT_AI44",e[e.DXGI_FORMAT_IA44=112]="DXGI_FORMAT_IA44",e[e.DXGI_FORMAT_P8=113]="DXGI_FORMAT_P8",e[e.DXGI_FORMAT_A8P8=114]="DXGI_FORMAT_A8P8",e[e.DXGI_FORMAT_B4G4R4A4_UNORM=115]="DXGI_FORMAT_B4G4R4A4_UNORM",e[e.DXGI_FORMAT_P208=116]="DXGI_FORMAT_P208",e[e.DXGI_FORMAT_V208=117]="DXGI_FORMAT_V208",e[e.DXGI_FORMAT_V408=118]="DXGI_FORMAT_V408",e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE=119]="DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE",e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE=120]="DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE",e[e.DXGI_FORMAT_FORCE_UINT=121]="DXGI_FORMAT_FORCE_UINT",e))(r||{}),n=(e=>(e[e.DDS_DIMENSION_TEXTURE1D=2]="DDS_DIMENSION_TEXTURE1D",e[e.DDS_DIMENSION_TEXTURE2D=3]="DDS_DIMENSION_TEXTURE2D",e[e.DDS_DIMENSION_TEXTURE3D=6]="DDS_DIMENSION_TEXTURE3D",e))(n||{});function i(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var s,o=((s=o||{})[s.UNKNOWN=0]="UNKNOWN",s[s.R8G8B8=20]="R8G8B8",s[s.A8R8G8B8=21]="A8R8G8B8",s[s.X8R8G8B8=22]="X8R8G8B8",s[s.R5G6B5=23]="R5G6B5",s[s.X1R5G5B5=24]="X1R5G5B5",s[s.A1R5G5B5=25]="A1R5G5B5",s[s.A4R4G4B4=26]="A4R4G4B4",s[s.R3G3B2=27]="R3G3B2",s[s.A8=28]="A8",s[s.A8R3G3B2=29]="A8R3G3B2",s[s.X4R4G4B4=30]="X4R4G4B4",s[s.A2B10G10R10=31]="A2B10G10R10",s[s.A8B8G8R8=32]="A8B8G8R8",s[s.X8B8G8R8=33]="X8B8G8R8",s[s.G16R16=34]="G16R16",s[s.A2R10G10B10=35]="A2R10G10B10",s[s.A16B16G16R16=36]="A16B16G16R16",s[s.A8P8=40]="A8P8",s[s.P8=41]="P8",s[s.L8=50]="L8",s[s.A8L8=51]="A8L8",s[s.A4L4=52]="A4L4",s[s.V8U8=60]="V8U8",s[s.L6V5U5=61]="L6V5U5",s[s.X8L8V8U8=62]="X8L8V8U8",s[s.Q8W8V8U8=63]="Q8W8V8U8",s[s.V16U16=64]="V16U16",s[s.A2W10V10U10=67]="A2W10V10U10",s[s.Q16W16V16U16=110]="Q16W16V16U16",s[s.R16F=111]="R16F",s[s.G16R16F=112]="G16R16F",s[s.A16B16G16R16F=113]="A16B16G16R16F",s[s.R32F=114]="R32F",s[s.G32R32F=115]="G32R32F",s[s.A32B32G32R32F=116]="A32B32G32R32F",s[s.UYVY=i("UYVY")]="UYVY",s[s.R8G8_B8G8=i("RGBG")]="R8G8_B8G8",s[s.YUY2=i("YUY2")]="YUY2",s[s.D3DFMT_G8R8_G8B8=i("GRGB")]="D3DFMT_G8R8_G8B8",s[s.DXT1=i("DXT1")]="DXT1",s[s.DXT2=i("DXT2")]="DXT2",s[s.DXT3=i("DXT3")]="DXT3",s[s.DXT4=i("DXT4")]="DXT4",s[s.DXT5=i("DXT5")]="DXT5",s[s.ATI1=i("ATI1")]="ATI1",s[s.AT1N=i("AT1N")]="AT1N",s[s.ATI2=i("ATI2")]="ATI2",s[s.AT2N=i("AT2N")]="AT2N",s[s.BC4U=i("BC4U")]="BC4U",s[s.BC4S=i("BC4S")]="BC4S",s[s.BC5U=i("BC5U")]="BC5U",s[s.BC5S=i("BC5S")]="BC5S",s[s.DX10=i("DX10")]="DX10",s);const a={[o.DXT1]:"bc1-rgba-unorm",[o.DXT2]:"bc2-rgba-unorm",[o.DXT3]:"bc2-rgba-unorm",[o.DXT4]:"bc3-rgba-unorm",[o.DXT5]:"bc3-rgba-unorm",[o.ATI1]:"bc4-r-unorm",[o.BC4U]:"bc4-r-unorm",[o.BC4S]:"bc4-r-snorm",[o.ATI2]:"bc5-rg-unorm",[o.BC5U]:"bc5-rg-unorm",[o.BC5S]:"bc5-rg-snorm",36:"rgba16uint",110:"rgba16sint",111:"r16float",112:"rg16float",113:"rgba16float",114:"r32float",115:"rg32float",116:"rgba32float"},u={70:"bc1-rgba-unorm",71:"bc1-rgba-unorm",72:"bc1-rgba-unorm-srgb",73:"bc2-rgba-unorm",74:"bc2-rgba-unorm",75:"bc2-rgba-unorm-srgb",76:"bc3-rgba-unorm",77:"bc3-rgba-unorm",78:"bc3-rgba-unorm-srgb",79:"bc4-r-unorm",80:"bc4-r-unorm",81:"bc4-r-snorm",82:"bc5-rg-unorm",83:"bc5-rg-unorm",84:"bc5-rg-snorm",94:"bc6h-rgb-ufloat",95:"bc6h-rgb-ufloat",96:"bc6h-rgb-float",97:"bc7-rgba-unorm",98:"bc7-rgba-unorm",99:"bc7-rgba-unorm-srgb",28:"rgba8unorm",29:"rgba8unorm-srgb",87:"bgra8unorm",91:"bgra8unorm-srgb",41:"r32float",49:"rg8unorm",56:"r16uint",61:"r8unorm",24:"rgb10a2unorm",11:"rgba16uint",13:"rgba16sint",10:"rgba16float",54:"r16float",34:"rg16float",16:"rg32float",2:"rgba32float"},l={MAGIC_VALUE:542327876,MAGIC_SIZE:4,HEADER_SIZE:124,HEADER_DX10_SIZE:20,PIXEL_FORMAT_FLAGS:{ALPHAPIXELS:1,ALPHA:2,FOURCC:4,RGB:64,RGBA:65,YUV:512,LUMINANCE:131072,LUMINANCEA:131073},RESOURCE_MISC_TEXTURECUBE:4,HEADER_FIELDS:{MAGIC:0,SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19,PF_FLAGS:20,FOURCC:21,RGB_BITCOUNT:22,R_BIT_MASK:23,G_BIT_MASK:24,B_BIT_MASK:25,A_BIT_MASK:26},HEADER_DX10_FIELDS:{DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4},DXGI_FORMAT:r,D3D10_RESOURCE_DIMENSION:n,D3DFMT:o};t.D3D10_RESOURCE_DIMENSION=n,t.D3DFMT=o,t.DDS=l,t.DXGI_FORMAT=r,t.DXGI_TO_TEXTURE_FORMAT=u,t.FOURCC_TO_TEXTURE_FORMAT=a,t.TEXTURE_FORMAT_BLOCK_SIZE={"bc1-rgba-unorm":8,"bc1-rgba-unorm-srgb":8,"bc2-rgba-unorm":16,"bc2-rgba-unorm-srgb":16,"bc3-rgba-unorm":16,"bc3-rgba-unorm-srgb":16,"bc4-r-unorm":8,"bc4-r-snorm":8,"bc5-rg-unorm":16,"bc5-rg-snorm":16,"bc6h-rgb-ufloat":16,"bc6h-rgb-float":16,"bc7-rgba-unorm":16,"bc7-rgba-unorm-srgb":16}},69040:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(55418);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High,name:"loadDDS"},name:"loadDDS",test(e){return s.checkExtension(e,[".dds"])},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await fetch(e),o=await s.arrayBuffer(),c=l.parseDDS(o,n),h=new a.CompressedSource(c);return i.createTexture(h,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadDDS=c},55418:function(e,t,r){"use strict";var n=r(95966);t.parseDDS=function(e,t){const{format:r,fourCC:i,width:s,height:o,dataOffset:a,mipmapCount:u}=function(e){const t=new Uint32Array(e,0,n.DDS.HEADER_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(t[n.DDS.HEADER_FIELDS.MAGIC]!==n.DDS.MAGIC_VALUE)throw new Error("Invalid magic number in DDS header");const r=t[n.DDS.HEADER_FIELDS.HEIGHT],i=t[n.DDS.HEADER_FIELDS.WIDTH],s=Math.max(1,t[n.DDS.HEADER_FIELDS.MIPMAP_COUNT]),o=t[n.DDS.HEADER_FIELDS.PF_FLAGS],a=t[n.DDS.HEADER_FIELDS.FOURCC],u=function(e,t,r,i){if(t&n.DDS.PIXEL_FORMAT_FLAGS.FOURCC){if(r===n.DDS.D3DFMT.DX10){const e=new Uint32Array(i,n.DDS.MAGIC_SIZE+n.DDS.HEADER_SIZE,n.DDS.HEADER_DX10_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(e[n.DDS.HEADER_DX10_FIELDS.MISC_FLAG]===n.DDS.RESOURCE_MISC_TEXTURECUBE)throw new Error("DDSParser does not support cubemap textures");if(e[n.DDS.HEADER_DX10_FIELDS.RESOURCE_DIMENSION]===n.DDS.D3D10_RESOURCE_DIMENSION.DDS_DIMENSION_TEXTURE3D)throw new Error("DDSParser does not supported 3D texture data");const t=e[n.DDS.HEADER_DX10_FIELDS.DXGI_FORMAT];if(t in n.DXGI_TO_TEXTURE_FORMAT)return n.DXGI_TO_TEXTURE_FORMAT[t];throw new Error(`DDSParser cannot parse texture data with DXGI format ${t}`)}if(r in n.FOURCC_TO_TEXTURE_FORMAT)return n.FOURCC_TO_TEXTURE_FORMAT[r];throw new Error(`DDSParser cannot parse texture data with fourCC format ${r}`)}if(t&n.DDS.PIXEL_FORMAT_FLAGS.RGB||t&n.DDS.PIXEL_FORMAT_FLAGS.RGBA)return function(e){const t=e[n.DDS.HEADER_FIELDS.RGB_BITCOUNT],r=e[n.DDS.HEADER_FIELDS.R_BIT_MASK],i=e[n.DDS.HEADER_FIELDS.G_BIT_MASK],s=e[n.DDS.HEADER_FIELDS.B_BIT_MASK],o=e[n.DDS.HEADER_FIELDS.A_BIT_MASK];switch(t){case 32:if(255===r&&65280===i&&16711680===s&&4278190080===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8B8A8_UNORM];if(16711680===r&&65280===i&&255===s&&4278190080===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM];if(1072693248===r&&1047552===i&&1023===s&&3221225472===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R10G10B10A2_UNORM];if(65535===r&&4294901760===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R16G16_UNORM];if(4294967295===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R32_FLOAT];break;case 24:break;case 16:if(31744===r&&992===i&&31===s&&32768===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G5R5A1_UNORM];if(63488===r&&2016===i&&31===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G6R5_UNORM];if(3840===r&&240===i&&15===s&&61440===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B4G4R4A4_UNORM];if(255===r&&0===i&&0===s&&65280===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8_UNORM];if(65535===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R16_UNORM];break;case 8:if(255===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8_UNORM]}throw new Error(`DDSParser does not support uncompressed texture with configuration:\n bitCount = ${t}, rBitMask = ${r}, gBitMask = ${i}, aBitMask = ${o}`)}(e);if(t&n.DDS.PIXEL_FORMAT_FLAGS.YUV)throw new Error("DDSParser does not supported YUV uncompressed texture data.");if(t&n.DDS.PIXEL_FORMAT_FLAGS.LUMINANCE||t&n.DDS.PIXEL_FORMAT_FLAGS.LUMINANCEA)throw new Error("DDSParser does not support single-channel (lumninance) texture data!");if(t&n.DDS.PIXEL_FORMAT_FLAGS.ALPHA||t&n.DDS.PIXEL_FORMAT_FLAGS.ALPHAPIXELS)throw new Error("DDSParser does not support single-channel (alpha) texture data!");throw new Error("DDSParser failed to load a texture file due to an unknown reason!")}(t,o,a,e),l=n.DDS.MAGIC_SIZE+n.DDS.HEADER_SIZE+(a===n.DDS.D3DFMT.DX10?n.DDS.HEADER_DX10_SIZE:0);return{format:u,fourCC:a,width:i,height:r,dataOffset:l,mipmapCount:s}}(e);if(!t.includes(r))throw new Error(`Unsupported texture format: ${i} ${r}, supported: ${t}`);if(u<=1)return{format:r,width:s,height:o,resource:[new Uint8Array(e,a)],alphaMode:"no-premultiply-alpha"};const l=function(e,t,r,i,s,o){const a=[],u=n.TEXTURE_FORMAT_BLOCK_SIZE[e];let l=t,c=r,h=i;for(let e=0;e>1,1),c=Math.max(c>>1,1)}return a}(r,s,o,a,u,e);return{format:r,width:s,height:o,resource:l,alphaMode:"no-premultiply-alpha"}}},80385:function(e,t,r){"use strict";var n=r(25917),i=r(49728);r(82923);var s=r(31166),o=r(2383),a=r(45031),u=r(94086),l=r(95966),c=r(69040),h=r(55418),d=r(5566),p=r(7451),f=r(79531),m=r(97051);r(61155);var g=r(87976),_=r(41177),x=r(67172),b=r(54143),y=r(48834),v=r(12055),T=r(8198),S=r(17125),E=r(56899),A=r(13320);t.detectBasis=n.detectBasis,t.loadBasis=i.loadBasis,t.createLevelBuffers=s.createLevelBuffers,t.gpuFormatToBasisTranscoderFormat=o.gpuFormatToBasisTranscoderFormat,t.basisTranscoderUrls=a.basisTranscoderUrls,t.setBasisTranscoderPath=a.setBasisTranscoderPath,t.loadBasisOnWorker=u.loadBasisOnWorker,t.D3D10_RESOURCE_DIMENSION=l.D3D10_RESOURCE_DIMENSION,t.D3DFMT=l.D3DFMT,t.DDS=l.DDS,t.DXGI_FORMAT=l.DXGI_FORMAT,t.DXGI_TO_TEXTURE_FORMAT=l.DXGI_TO_TEXTURE_FORMAT,t.FOURCC_TO_TEXTURE_FORMAT=l.FOURCC_TO_TEXTURE_FORMAT,t.TEXTURE_FORMAT_BLOCK_SIZE=l.TEXTURE_FORMAT_BLOCK_SIZE,t.loadDDS=c.loadDDS,t.parseDDS=h.parseDDS,t.loadKTX=d.loadKTX,t.parseKTX=p.parseKTX,t.GL_INTERNAL_FORMAT=f.GL_INTERNAL_FORMAT,t.KTX=f.KTX,t.loadKTX2=m.loadKTX2,t.convertFormatIfRequired=g.convertFormatIfRequired,t.createLevelBuffersFromKTX=_.createLevelBuffersFromKTX,t.getTextureFormatFromKTXTexture=x.getTextureFormatFromKTXTexture,t.glFormatToGPUFormat=b.glFormatToGPUFormat,t.gpuFormatToKTXBasisTranscoderFormat=y.gpuFormatToKTXBasisTranscoderFormat,t.ktxTranscoderUrls=v.ktxTranscoderUrls,t.setKTXTranscoderPath=v.setKTXTranscoderPath,t.vkFormatToGPUFormat=T.vkFormatToGPUFormat,t.loadKTX2onWorker=S.loadKTX2onWorker,t.detectCompressed=E.detectCompressed,t.resolveCompressedTextureUrl=A.resolveCompressedTextureUrl,t.validFormats=A.validFormats},5566:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(7451);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High,name:"loadKTX"},name:"loadKTX",test(e){return s.checkExtension(e,".ktx")},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await fetch(e),o=await s.arrayBuffer(),c=l.parseKTX(o,n),h=new a.CompressedSource(c);return i.createTexture(h,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadKTX=c},7451:function(e,t,r){"use strict";var n=r(79531);t.parseKTX=function(e,t){const r=new DataView(e);if(!function(e){for(let t=0;t>1||1,p=p>>1||1,f=d+4-1&-4,m=p+4-1&-4,h=f*m*r}return _}(r,s,p,u,l,h,c,i);return{format:d,width:u,height:l,resource:f,alphaMode:"no-premultiply-alpha"}}},79531:function(e,t){"use strict";var r=(e=>(e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGBA=6408]="RGBA",e[e.RGBA8UI=36220]="RGBA8UI",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.RGBA8I=36238]="RGBA8I",e[e.RGBA8=32856]="RGBA8",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e))(r||{});const n={FILE_HEADER_SIZE:64,FILE_IDENTIFIER:[171,75,84,88,32,49,49,187,13,10,26,10],FORMATS_TO_COMPONENTS:{6408:4,6407:3,33319:2,6403:1,6409:1,6410:2,6406:1},INTERNAL_FORMAT_TO_BYTES_PER_PIXEL:{33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,36283:.5,36284:.5,36285:1,36286:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,37808:1,37840:1,37809:.8,37841:.8,37810:.64,37842:.64,37811:.53375,37843:.53375,37812:.445,37844:.445,37813:.4,37845:.4,37814:.33375,37846:.33375,37815:.25,37847:.25,37816:.32,37848:.32,37817:.26625,37849:.26625,37818:.2,37850:.2,37819:.16,37851:.16,37820:.13375,37852:.13375,37821:.11125,37853:.11125,36492:1,36493:1,36494:1,36495:1},INTERNAL_FORMAT_TO_TEXTURE_FORMATS:{33776:"bc1-rgba-unorm",33777:"bc1-rgba-unorm",33778:"bc2-rgba-unorm",33779:"bc3-rgba-unorm",35916:"bc1-rgba-unorm-srgb",35917:"bc1-rgba-unorm-srgb",35918:"bc2-rgba-unorm-srgb",35919:"bc3-rgba-unorm-srgb",36283:"bc4-r-unorm",36284:"bc4-r-snorm",36285:"bc5-rg-unorm",36286:"bc5-rg-snorm",37488:"eac-r11unorm",37490:"eac-rg11snorm",37492:"etc2-rgb8unorm",37496:"etc2-rgba8unorm",37493:"etc2-rgb8unorm-srgb",37497:"etc2-rgba8unorm-srgb",37494:"etc2-rgb8a1unorm",37495:"etc2-rgb8a1unorm-srgb",37808:"astc-4x4-unorm",37840:"astc-4x4-unorm-srgb",37809:"astc-5x4-unorm",37841:"astc-5x4-unorm-srgb",37810:"astc-5x5-unorm",37842:"astc-5x5-unorm-srgb",37811:"astc-6x5-unorm",37843:"astc-6x5-unorm-srgb",37812:"astc-6x6-unorm",37844:"astc-6x6-unorm-srgb",37813:"astc-8x5-unorm",37845:"astc-8x5-unorm-srgb",37814:"astc-8x6-unorm",37846:"astc-8x6-unorm-srgb",37815:"astc-8x8-unorm",37847:"astc-8x8-unorm-srgb",37816:"astc-10x5-unorm",37848:"astc-10x5-unorm-srgb",37817:"astc-10x6-unorm",37849:"astc-10x6-unorm-srgb",37818:"astc-10x8-unorm",37850:"astc-10x8-unorm-srgb",37819:"astc-10x10-unorm",37851:"astc-10x10-unorm-srgb",37820:"astc-12x10-unorm",37852:"astc-12x10-unorm-srgb",37821:"astc-12x12-unorm",37853:"astc-12x12-unorm-srgb",36492:"bc7-rgba-unorm",36493:"bc7-rgba-unorm-srgb",36494:"bc6h-rgb-float",36495:"bc6h-rgb-ufloat",35907:"rgba8unorm-srgb",36759:"rgba8snorm",36220:"rgba8uint",36238:"rgba8sint",6408:"rgba8unorm"},FIELDS:{FILE_IDENTIFIER:0,ENDIANNESS:12,GL_TYPE:16,GL_TYPE_SIZE:20,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,GL_BASE_INTERNAL_FORMAT:32,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},TYPES_TO_BYTES_PER_COMPONENT:{5121:1,5123:2,5124:4,5125:4,5126:4,36193:8},TYPES_TO_BYTES_PER_PIXEL:{32819:2,32820:2,33635:2},ENDIANNESS:67305985};t.GL_INTERNAL_FORMAT=r,t.KTX=n},97051:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(17125);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High,name:"loadKTX2"},name:"loadKTX2",test(e){return s.checkExtension(e,".ktx2")},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await l.loadKTX2onWorker(e,n),o=new a.CompressedSource(s);return i.createTexture(o,r,e)},async unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadKTX2=c},61155:function(){},87976:function(e,t){"use strict";const r={rgb8unorm:{convertedFormat:"rgba8unorm",convertFunction:n},"rgb8unorm-srgb":{convertedFormat:"rgba8unorm-srgb",convertFunction:n}};function n(e){const t=e.byteLength/3,r=new Uint32Array(t);for(let n=0;n{const{success:t,url:r,textureOptions:n}=e.data;t||console.warn("Failed to load KTX texture",r),o[r](n)},s.postMessage({type:"init",jsUrl:i.ktxTranscoderUrls.jsUrl,wasmUrl:i.ktxTranscoderUrls.wasmUrl,supportedTextures:e})),s}(t);return new Promise((t=>{o[e]=t,r.postMessage({type:"load",url:e})}))}},56899:function(e,t,r){"use strict";var n=r(17073),i=r(34155),s=r(58050),o=r(73533),a=r(13320);let u;const l={extension:{type:n.ExtensionType.DetectionParser,priority:2},test:async()=>!!await o.isWebGPUSupported()||!!s.isWebGLSupported(),add:async e=>{const t=await i.getSupportedCompressedTextureFormats();return u=function(e){const t=["basis"],r={};return e.forEach((e=>{const n=e.split("-")[0];n&&!r[n]&&(r[n]=!0,t.push(n))})),t.sort(((e,t)=>{const r=a.validFormats.indexOf(e),n=a.validFormats.indexOf(t);return-1===r?1:-1===n?-1:r-n})),t}(t),[...u,...e]},remove:async e=>u?e.filter((e=>!(e in u))):e};t.detectCompressed=l},13320:function(e,t,r){"use strict";var n=r(95997),i=r(90206),s=r(17073);const o=["basis","bc7","bc6h","astc","etc2","bc5","bc4","bc3","bc2","bc1","eac"],a={extension:s.ExtensionType.ResolveParser,test:e=>i.checkExtension(e,[".ktx",".ktx2",".dds"]),parse:e=>{let t;const r=e.split(".");if(r.length>2){const e=r[r.length-2];o.includes(e)&&(t=e)}else t=r[r.length-1];return{resolution:parseFloat(n.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:t,src:e}}};t.resolveCompressedTextureUrl=a,t.validFormats=o},1394:function(e,t,r){"use strict";var n=r(14786),i=r(9565);const s=new n.Bounds,o=class{cull(e,t,r=!0){this._cullRecursive(e,t,r)}_cullRecursive(e,t,r=!0){if(e.cullable&&e.measurable&&e.includeInBuild){const n=e.cullArea??i.getGlobalBounds(e,r,s);e.culled=!(n.x>=t.x+t.width||n.y>=t.y+t.height||n.x+n.width<=t.x||n.y+n.height<=t.y)}if(e.cullableChildren&&!e.culled&&e.renderable&&e.measurable&&e.includeInBuild)for(let n=0;n{i.Culler.shared.cull(this.stage,this.renderer.screen),this.renderer.render({container:this.stage})}}static destroy(){this.render=this._renderRef}}s.extension={priority:10,type:n.ExtensionType.Application,name:"culler"},t.CullerPlugin=s},10051:function(e,t){"use strict";t.cullingMixin={cullArea:null,cullable:!1,cullableChildren:!0}},76143:function(e,t,r){"use strict";var n=r(1394),i=r(165),s=r(10051);t.Culler=n.Culler,t.CullerPlugin=i.CullerPlugin,t.cullingMixin=s.cullingMixin},36484:function(e,t){"use strict";const r={createCanvas:(e,t)=>{const r=document.createElement("canvas");return r.width=e,r.height=t,r},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(e,t)=>fetch(e,t),parseXML:e=>(new DOMParser).parseFromString(e,"text/xml")};t.BrowserAdapter=r},30149:function(e,t,r){"use strict";r(29377),r(9266),r(79322),r(55102),r(55063),r(83016),r(60862),r(34266),r(4862),r(38717),r(51654),r(58537),r(72400)},59759:function(e,t,r){"use strict";const n={extension:{type:r(17073).ExtensionType.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then((function(){return r(30149)}))}};t.browserExt=n},38496:function(e,t,r){"use strict";var n=r(36484),i=r(59759);t.BrowserAdapter=n.BrowserAdapter,t.browserExt=i.browserExt},24306:function(e,t,r){"use strict";var n=r(3969);const i={createCanvas:(e,t)=>new OffscreenCanvas(e??0,t??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(e,t)=>fetch(e,t),parseXML:e=>(new n.DOMParser).parseFromString(e,"text/xml")};t.WebWorkerAdapter=i},59868:function(e,t,r){"use strict";var n=r(24306),i=r(147);t.WebWorkerAdapter=n.WebWorkerAdapter,t.webworkerExt=i.webworkerExt},23874:function(e,t,r){"use strict";r(9266),r(55102),r(55063),r(83016),r(60862),r(34266),r(4862),r(38717),r(51654),r(58537),r(72400)},147:function(e,t,r){"use strict";const n={extension:{type:r(17073).ExtensionType.Environment,name:"webworker",priority:0},test:()=>"undefined"!=typeof self&&void 0!==self.WorkerGlobalScope,load:async()=>{await Promise.resolve().then((function(){return r(23874)}))}};t.webworkerExt=n},42932:function(e,t,r){"use strict";let n=r(36484).BrowserAdapter;const i={get(){return n},set(e){n=e}};t.DOMAdapter=i},98182:function(e,t,r){"use strict";var n=r(17073);const i=[];async function s(e){if(!e)for(let e=0;ee.priority-t.priority))}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;const t=this.mappingTable[e.type];if(t)for(let r=0,n=t.length;r=0;n--)if(e.currentTarget=r[n],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(0===r.length)return;e.eventPhase=e.BUBBLING_PHASE;const n=Array.isArray(t)?t:[t];for(let t=r.length-1;t>=0;t--)n.forEach((n=>{e.currentTarget=r[t],this.notifyTarget(e,n)}))}propagationPath(e){const t=[e];for(let r=0;r<2048&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,n,i,s=!1){let a=!1;if(this._interactivePrune(e))return null;if("dynamic"!==e.eventMode&&"dynamic"!==t||(o.EventsTicker.pauseUpdate=!1),e.interactiveChildren&&e.children){const o=e.children;for(let u=o.length-1;u>=0;u--){const l=o[u],c=this.hitTestMoveRecursive(l,this._isInteractive(t)?t:l.eventMode,r,n,i,s||i(e,r));if(c){if(c.length>0&&!c[c.length-1].parent)continue;const t=e.isInteractive();(c.length>0||t)&&(t&&this._allInteractiveElements.push(e),c.push(e)),0===this._hitElements.length&&(this._hitElements=c),a=!0}}}const u=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),s||this._hitElements.length>0?null:a?this._hitElements:u&&!i(e,r)&&n(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,n,i){if(this._interactivePrune(e)||i(e,r))return null;if("dynamic"!==e.eventMode&&"dynamic"!==t||(o.EventsTicker.pauseUpdate=!1),e.interactiveChildren&&e.children){const s=e.children,o=r;for(let r=s.length-1;r>=0;r--){const a=s[r],u=this.hitTestRecursive(a,this._isInteractive(t)?t:a.eventMode,o,n,i);if(u){if(u.length>0&&!u[u.length-1].parent)continue;const t=e.isInteractive();return(u.length>0||t)&&u.push(e),u}}}const s=this._isInteractive(t),a=e.isInteractive();return s&&n(e,r)?a?[e]:[]:null}_isInteractive(e){return"static"===e||"dynamic"===e}_interactivePrune(e){return!(e&&e.visible&&e.renderable&&e.includeInBuild&&e.measurable)||("none"===e.eventMode||"passive"===e.eventMode&&!e.interactiveChildren)}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,h),!e.hitArea.contains(h.x,h.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r0&&i!==t.target){const n="mousemove"===e.type?"mouseout":"pointerout",s=this.createPointerEvent(e,n,i);if(this.dispatchEvent(s,"pointerout"),r&&this.dispatchEvent(s,"mouseout"),!t.composedPath().includes(i)){const n=this.createPointerEvent(e,"pointerleave",i);for(n.eventPhase=n.AT_TARGET;n.target&&!t.composedPath().includes(n.target);)n.currentTarget=n.target,this.notifyTarget(n),r&&this.notifyTarget(n,"mouseleave"),n.target=n.target.parent;this.freeEvent(n)}this.freeEvent(s)}if(i!==t.target){const n="mousemove"===e.type?"mouseover":"pointerover",s=this.clonePointerEvent(t,n);this.dispatchEvent(s,"pointerover"),r&&this.dispatchEvent(s,"mouseover");let o=i?.parent;for(;o&&o!==this.rootTarget.parent&&o!==t.target;)o=o.parent;if(!o||o===this.rootTarget.parent){const e=this.clonePointerEvent(t,"pointerenter");for(e.eventPhase=e.AT_TARGET;e.target&&e.target!==i&&e.target!==this.rootTarget.parent;)e.currentTarget=e.target,this.notifyTarget(e),r&&this.notifyTarget(e,"mouseenter"),e.target=e.target.parent;this.freeEvent(e)}this.freeEvent(s)}const o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),"touch"===t.pointerType&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,n.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),n="mouse"===r.pointerType||"pen"===r.pointerType;this.dispatchEvent(r,"pointerover"),n&&this.dispatchEvent(r,"mouseover"),"mouse"===r.pointerType&&(this.cursor=r.target?.cursor);const i=this.clonePointerEvent(r,"pointerenter");for(i.eventPhase=i.AT_TARGET;i.target&&i.target!==this.rootTarget.parent;)i.currentTarget=i.target,this.notifyTarget(i),n&&this.notifyTarget(i,"mouseenter"),i.target=i.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(i)}mapPointerOut(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId);if(t.overTargets){const r="mouse"===e.pointerType||"pen"===e.pointerType,n=this.findMountedTarget(t.overTargets),i=this.createPointerEvent(e,"pointerout",n);this.dispatchEvent(i),r&&this.dispatchEvent(i,"mouseout");const s=this.createPointerEvent(e,"pointerleave",n);for(s.eventPhase=s.AT_TARGET;s.target&&s.target!==this.rootTarget.parent;)s.currentTarget=s.target,this.notifyTarget(s),r&&this.notifyTarget(s,"mouseleave"),s.target=s.target.parent;t.overTargets=null,this.freeEvent(i),this.freeEvent(s)}this.cursor=null}mapPointerUp(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,"pointerup"),"touch"===r.pointerType)this.dispatchEvent(r,"touchend");else if("mouse"===r.pointerType||"pen"===r.pointerType){const e=2===r.button;this.dispatchEvent(r,e?"rightup":"mouseup")}const n=this.trackingData(e.pointerId),i=this.findMountedTarget(n.pressTargetsByButton[e.button]);let o=i;if(i&&!r.composedPath().includes(i)){let t=i;for(;t&&!r.composedPath().includes(t);){if(r.currentTarget=t,this.notifyTarget(r,"pointerupoutside"),"touch"===r.pointerType)this.notifyTarget(r,"touchendoutside");else if("mouse"===r.pointerType||"pen"===r.pointerType){const e=2===r.button;this.notifyTarget(r,e?"rightupoutside":"mouseupoutside")}t=t.parent}delete n.pressTargetsByButton[e.button],o=t}if(o){const i=this.clonePointerEvent(r,"click");i.target=o,i.path=null,n.clicksByButton[e.button]||(n.clicksByButton[e.button]={clickCount:0,target:i.target,timeStamp:t});const s=n.clicksByButton[e.button];if(s.target===i.target&&t-s.timeStamp<200?++s.clickCount:s.clickCount=1,s.target=i.target,s.timeStamp=t,i.detail=s.clickCount,"mouse"===i.pointerType){const e=2===i.button;this.dispatchEvent(i,e?"rightclick":"click")}else"touch"===i.pointerType&&this.dispatchEvent(i,"tap");this.dispatchEvent(i,"pointertap"),this.freeEvent(i)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),n=this.createPointerEvent(e);if(r){let i=r;for(;i;)n.currentTarget=i,this.notifyTarget(n,"pointerupoutside"),"touch"===n.pointerType?this.notifyTarget(n,"touchendoutside"):"mouse"!==n.pointerType&&"pen"!==n.pointerType||this.notifyTarget(n,2===n.button?"rightupoutside":"mouseupoutside"),i=i.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(n)}mapWheel(e){if(!(e instanceof l.FederatedWheelEvent))return void s.warn("EventBoundary cannot map a non-wheel event as a wheel event");const t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r("globalMove"===t&&(this.rootBoundary.enableGlobalMoveEvents=r),e[t]=r,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(t){const{canvas:r,resolution:n}=this.renderer;this.setTargetElement(r),this.resolution=n,e._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e=e||"default";let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;const r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r)}else t&&"string"==typeof e&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;const t=this._normalizeToPointerData(e);if(this.autoPreventDefault&&t[0].isNormalized){(e.cancelable||!("cancelable"in e))&&e.preventDefault()}for(let e=0,r=t.length;e0&&(t=e.composedPath()[0]);const r=t!==this.domElement?"outside":"",n=this._normalizeToPointerData(e);for(let e=0,t=n.length;e{u.off(e,a,o)})),s?u.once(e,a,o):u.on(e,a,o)},removeEventListener(e,t,r){const n="function"==typeof t?void 0:t;e="boolean"==typeof r&&r||"object"==typeof r&&r.capture?`${e}capture`:e,t="function"==typeof t?t:t.handleEvent,this.off(e,t,n)},dispatchEvent(e){if(!(e instanceof i.FederatedEvent))throw new Error("Container cannot propagate events outside of the Federated Events API");return e.defaultPrevented=!1,e.path=null,e.target=this,e.manager.dispatchEvent(e),!e.defaultPrevented}};t.FederatedContainer=s},19250:function(e,t,r){"use strict";var n=r(26553),i=r(49410);class s extends i.FederatedEvent{constructor(){super(...arguments),this.client=new n.Point,this.movement=new n.Point,this.offset=new n.Point,this.global=new n.Point,this.screen=new n.Point}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,n,i,s,o,a,u,l,c,h,d,p,f){throw new Error("Method not implemented.")}}t.FederatedMouseEvent=s},45345:function(e,t,r){"use strict";var n=r(19250);class i extends n.FederatedMouseEvent{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return"pointermove"===this.type||"mousemove"===this.type||"touchmove"===this.type?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}t.FederatedPointerEvent=i},81483:function(e,t,r){"use strict";var n=r(19250);class i extends n.FederatedMouseEvent{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}}i.DOM_DELTA_PIXEL=0,i.DOM_DELTA_LINE=1,i.DOM_DELTA_PAGE=2,t.FederatedWheelEvent=i},30672:function(){},14073:function(e,t,r){"use strict";r(30672);var n=r(41863);r(14406);var i=r(8599),s=r(5443),o=r(49410);r(43094);var a=r(14235),u=r(19250),l=r(45345),c=r(81483);t.EventBoundary=n.EventBoundary,t.EventSystem=i.EventSystem,t.EventsTicker=s.EventsTicker,t.FederatedEvent=o.FederatedEvent,t.FederatedContainer=a.FederatedContainer,t.FederatedMouseEvent=u.FederatedMouseEvent,t.FederatedPointerEvent=l.FederatedPointerEvent,t.FederatedWheelEvent=c.FederatedWheelEvent},79322:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(8599),o=r(14235);n.extensions.add(s.EventSystem),i.Container.mixin(o.FederatedContainer)},17073:function(e,t){"use strict";var r=(e=>(e.Application="application",e.WebGLPipes="webgl-pipes",e.WebGLPipesAdaptor="webgl-pipes-adaptor",e.WebGLSystem="webgl-system",e.WebGPUPipes="webgpu-pipes",e.WebGPUPipesAdaptor="webgpu-pipes-adaptor",e.WebGPUSystem="webgpu-system",e.CanvasSystem="canvas-system",e.CanvasPipesAdaptor="canvas-pipes-adaptor",e.CanvasPipes="canvas-pipes",e.Asset="asset",e.LoadParser="load-parser",e.ResolveParser="resolve-parser",e.CacheParser="cache-parser",e.DetectionParser="detection-parser",e.MaskEffect="mask-effect",e.BlendMode="blend-mode",e.TextureSource="texture-source",e.Environment="environment",e.ShapeBuilder="shape-builder",e))(r||{});const n=e=>{if("function"==typeof e||"object"==typeof e&&e.extension){if(!e.extension)throw new Error("Extension class must have an extension object");e={..."object"!=typeof e.extension?{type:e.extension}:e.extension,ref:e}}if("object"!=typeof e)throw new Error("Invalid extension type");return"string"==typeof(e={...e}).type&&(e.type=[e.type]),e},i=(e,t)=>n(e).priority??t,s={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...e){return e.map(n).forEach((e=>{e.type.forEach((t=>this._removeHandlers[t]?.(e)))})),this},add(...e){return e.map(n).forEach((e=>{e.type.forEach((t=>{const r=this._addHandlers,n=this._queue;r[t]?r[t]?.(e):(n[t]=n[t]||[],n[t]?.push(e))}))})),this},handle(e,t,r){const n=this._addHandlers,i=this._removeHandlers;if(n[e]||i[e])throw new Error(`Extension type ${e} already has a handler`);n[e]=t,i[e]=r;const s=this._queue;return s[e]&&(s[e]?.forEach((e=>t(e))),delete s[e]),this},handleByMap(e,t){return this.handle(e,(e=>{e.name&&(t[e.name]=e.ref)}),(e=>{e.name&&delete t[e.name]}))},handleByNamedList(e,t,r=-1){return this.handle(e,(e=>{t.findIndex((t=>t.name===e.name))>=0||(t.push({name:e.name,value:e.ref}),t.sort(((e,t)=>i(t.value,r)-i(e.value,r))))}),(e=>{const r=t.findIndex((t=>t.name===e.name));-1!==r&&t.splice(r,1)}))},handleByList(e,t,r=-1){return this.handle(e,(e=>{t.includes(e.ref)||(t.push(e.ref),t.sort(((e,t)=>i(t,r)-i(e,r))))}),(e=>{const r=t.indexOf(e.ref);-1!==r&&t.splice(r,1)}))}};t.ExtensionType=r,t.extensions=s,t.normalizeExtensionPriority=i},46569:function(e,t,r){"use strict";var n=r(17073);t.ExtensionType=n.ExtensionType,t.extensions=n.extensions,t.normalizeExtensionPriority=n.normalizeExtensionPriority},44023:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(97505),o=r(55141);const a=class e extends s.Shader{constructor(t){super(t={...e.defaultOptions,...t}),this.enabled=!0,this._state=o.State.for2d(),this.padding=t.padding,"boolean"==typeof t.antialias?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.addResource("uTexture",0,1)}apply(e,t,r,n){e.applyFilter(this,t,r,n)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(t){const{gpu:r,gl:s,...o}=t;let a,u;return r&&(a=i.GpuProgram.from(r)),s&&(u=n.GlProgram.from(s)),new e({gpuProgram:a,glProgram:u,...o})}};a.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1};let u=a;t.Filter=u},71210:function(e,t){"use strict";t.FilterEffect=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e"},uInputPixel:{value:new Float32Array(4),type:"vec4"},uInputClamp:{value:new Float32Array(4),type:"vec4"},uOutputFrame:{value:new Float32Array(4),type:"vec4"},uGlobalFrame:{value:new Float32Array(4),type:"vec4"},uOutputTexture:{value:new Float32Array(4),type:"vec4"}}),this._globalFilterBindGroup=new o.BindGroup({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){const t=this.renderer,r=e.filterEffect.filters;this._filterStack[this._filterStackIndex]||(this._filterStack[this._filterStackIndex]=this._getFilterData());const n=this._filterStack[this._filterStackIndex];if(this._filterStackIndex++,0===r.length)return void(n.skip=!0);const i=n.bounds;e.renderables?f.getGlobalRenderableBounds(e.renderables,i):e.filterEffect.filterArea?(i.clear(),i.addRect(e.filterEffect.filterArea),i.applyMatrix(e.container.worldTransform)):p.getFastGlobalBounds(e.container,i);const s=t.renderTarget.rootRenderTarget.colorTexture.source;let o=s._resolution,a=0,u=s.antialias,l=!1,h=!1;for(let e=0;e0?this._filterStack[this._filterStackIndex-1].bounds:null,s=e.renderTarget.getRenderTarget(t.previousRenderSurface);i=this.getBackTexture(s,n,r)}t.backTexture=i;const s=t.filterEffect.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(i.source,3),e.globalUniforms.pop(),1===s.length)s[0].apply(this,r,t.previousRenderSurface,!1),c.TexturePool.returnTexture(r);else{let e=t.inputTexture,r=c.TexturePool.getOptimalTexture(n.width,n.height,e.source._resolution,!1),i=0;for(i=0;i0&&this._filterStack[p].skip;)--p;p>0&&(d=this._filterStack[p].inputTexture.source._resolution);const f=this._filterGlobalUniforms,m=f.uniforms,_=m.uOutputFrame,x=m.uInputSize,b=m.uInputPixel,y=m.uInputClamp,v=m.uGlobalFrame,T=m.uOutputTexture;if(c){let e=this._filterStackIndex;for(;e>0;){e--;const t=this._filterStack[this._filterStackIndex-1];if(!t.skip){u.x=t.bounds.minX,u.y=t.bounds.minY;break}}_[0]=a.minX-u.x,_[1]=a.minY-u.y}else _[0]=0,_[1]=0;_[2]=t.frame.width,_[3]=t.frame.height,x[0]=t.source.width,x[1]=t.source.height,x[2]=1/x[0],x[3]=1/x[1],b[0]=t.source.pixelWidth,b[1]=t.source.pixelHeight,b[2]=1/b[0],b[3]=1/b[1],y[0]=.5*b[2],y[1]=.5*b[3],y[2]=t.frame.width*x[2]-.5*b[2],y[3]=t.frame.height*x[3]-.5*b[3];const S=this.renderer.renderTarget.rootRenderTarget.colorTexture;v[0]=u.x*d,v[1]=u.y*d,v[2]=S.source.width*d,v[3]=S.source.height*d;const E=this.renderer.renderTarget.getRenderTarget(r);if(i.renderTarget.bind(r,!!n),r instanceof l.Texture?(T[0]=r.frame.width,T[1]=r.frame.height):(T[0]=E.width,T[1]=E.height),T[2]=E.isRoot?-1:1,f.update(),i.renderPipes.uniformBatch){const e=i.renderPipes.uniformBatch.getUboResource(f);this._globalFilterBindGroup.setResource(e,0)}else this._globalFilterBindGroup.setResource(f,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,i.encoder.draw({geometry:g,shader:e,state:e._state,topology:"triangle-list"}),i.type===h.RendererType.WEBGL&&i.renderTarget.finishRenderPass()}_getFilterData(){return{skip:!1,inputTexture:null,bounds:new d.Bounds,container:null,filterEffect:null,blendRequired:!1,previousRenderSurface:null}}calculateSpriteMatrix(e,t){const r=this._activeFilterData,n=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),s=t.worldTransform.copyTo(i.Matrix.shared);return s.invert(),n.prepend(s),n.scale(1/t.texture.frame.width,1/t.texture.frame.height),n.translate(t.anchor.x,t.anchor.y),n}}_.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"filter"},t.FilterSystem=_},81210:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(84463),a=r(44023),u=r(70475),l=r(40265),c=r(53784);class h extends a.Filter{constructor(e){const t=e.gpu,r=d({source:c.default,...t}),a=i.GpuProgram.from({vertex:{source:r,entryPoint:"mainVertex"},fragment:{source:r,entryPoint:"mainFragment"}}),h=e.gl,p=d({source:u.default,...h});super({gpuProgram:a,glProgram:n.GlProgram.from({vertex:l.default,fragment:p}),blendRequired:!0,resources:{blendUniforms:new s.UniformGroup({uBlend:{value:1,type:"f32"}}),uBackTexture:o.Texture.EMPTY}})}}function d(e){const{source:t,functions:r,main:n}=e;return t.replace("{FUNCTIONS}",r).replace("{MAIN}",n)}t.BlendModeFilter=h},70475:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec4 vColor;\n\nout vec4 finalColor;\n\nuniform float uBlend;\n\nuniform sampler2D uTexture;\nuniform sampler2D uBackTexture;\n\n{FUNCTIONS}\n\nvoid main()\n{ \n vec4 back = texture(uBackTexture, vTextureCoord);\n vec4 front = texture(uTexture, vTextureCoord);\n\n {MAIN}\n}\n"},40265:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\nout vec2 vTextureCoord;\nout vec2 backgroundUv;\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n"},53784:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct BlendUniforms {\n uBlend:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n@group(0) @binding(3) var uBackTexture: texture_2d;\n\n@group(1) @binding(0) var blendUniforms : BlendUniforms;\n\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\n{FUNCTIONS}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2\n) -> @location(0) vec4 {\n\n\n var back = textureSample(uBackTexture, uSampler, uv);\n var front = textureSample(uTexture, uSampler, uv);\n \n var out = vec4(0.0,0.0,0.0,0.0);\n\n {MAIN}\n\n return out;\n}"},57422:function(e,t){"use strict";t.hslgl="\n\tfloat getLuminosity(vec3 c) {\n\t\treturn 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;\n\t}\n\n\tvec3 setLuminosity(vec3 c, float lum) {\n\t\tfloat modLum = lum - getLuminosity(c);\n\t\tvec3 color = c.rgb + vec3(modLum);\n\n\t\t// clip back into legal range\n\t\tmodLum = getLuminosity(color);\n\t\tvec3 modLumVec = vec3(modLum);\n\n\t\tfloat cMin = min(color.r, min(color.g, color.b));\n\t\tfloat cMax = max(color.r, max(color.g, color.b));\n\n\t\tif(cMin < 0.0) {\n\t\t\tcolor = mix(modLumVec, color, modLum / (modLum - cMin));\n\t\t}\n\n\t\tif(cMax > 1.0) {\n\t\t\tcolor = mix(modLumVec, color, (1.0 - modLum) / (cMax - modLum));\n\t\t}\n\n\t\treturn color;\n\t}\n\n\tfloat getSaturation(vec3 c) {\n\t\treturn max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n\t}\n\n\tvec3 setSaturationMinMidMax(vec3 cSorted, float s) {\n\t\tvec3 colorSorted = cSorted;\n\n\t\tif(colorSorted.z > colorSorted.x) {\n\t\t\tcolorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));\n\t\t\tcolorSorted.z = s;\n\t\t}\n\t\telse {\n\t\t\tcolorSorted.y = 0.0;\n\t\t\tcolorSorted.z = 0.0;\n\t\t}\n\n\t\tcolorSorted.x = 0.0;\n\n\t\treturn colorSorted;\n\t}\n\n\tvec3 setSaturation(vec3 c, float s) {\n\t\tvec3 color = c;\n\n\t\tif(color.r <= color.g && color.r <= color.b) {\n\t\t\tif(color.g <= color.b) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.rgb, s).rgb;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.rbg, s).rbg;\n\t\t\t}\n\t\t}\n\t\telse if(color.g <= color.r && color.g <= color.b) {\n\t\t\tif(color.r <= color.b) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.grb, s).grb;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.gbr, s).gbr;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Using bgr for both fixes part of hue\n\t\t\tif(color.r <= color.g) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.brg, s).brg;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.bgr, s).bgr;\n\t\t\t}\n\t\t}\n\n\t\treturn color;\n\t}\n "},79474:function(e,t){"use strict";t.hslgpu="\n\tfn getLuminosity(c: vec3) -> f32\n\t{\n\t\treturn 0.3*c.r + 0.59*c.g + 0.11*c.b;\n\t}\n\n\tfn setLuminosity(c: vec3, lum: f32) -> vec3\n\t{\n\t\tvar modLum: f32 = lum - getLuminosity(c);\n\t\tvar color: vec3 = c.rgb + modLum;\n\n\t\t// clip back into legal range\n\t\tmodLum = getLuminosity(color);\n\t\tlet modLumVec = vec3(modLum);\n\n\t\tlet cMin: f32 = min(color.r, min(color.g, color.b));\n\t\tlet cMax: f32 = max(color.r, max(color.g, color.b));\n\n\t\tif(cMin < 0.0)\n\t\t{\n\t\t\tcolor = mix(modLumVec, color, modLum / (modLum - cMin));\n\t\t}\n\n\t\tif(cMax > 1.0)\n\t\t{\n\t\t\tcolor = mix(modLumVec, color, (1 - modLum) / (cMax - modLum));\n\t\t}\n\n\t\treturn color;\n\t}\n\n\tfn getSaturation(c: vec3) -> f32\n\t{\n\t\treturn max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n\t}\n\n\tfn setSaturationMinMidMax(cSorted: vec3, s: f32) -> vec3\n\t{\n\t\tvar colorSorted = cSorted;\n\n\t\tif(colorSorted.z > colorSorted.x)\n\t\t{\n\t\t\tcolorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));\n\t\t\tcolorSorted.z = s;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcolorSorted.y = 0;\n\t\t\tcolorSorted.z = 0;\n\t\t}\n\n\t\tcolorSorted.x = 0;\n\n\t\treturn colorSorted;\n\t}\n\n\tfn setSaturation(c: vec3, s: f32) -> vec3\n\t{\n\t\tvar color = c;\n\n\t\tif (color.r <= color.g && color.r <= color.b)\n\t\t{\n\t\t\tif (color.g <= color.b)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.rgb, s)).rgb;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.rbg, s)).rbg;\n\t\t\t}\n\t\t}\n\t\telse if (color.g <= color.r && color.g <= color.b)\n\t\t{\n\t\t\tif (color.r <= color.b)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.grb, s)).grb;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.gbr, s)).gbr;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Using bgr for both fixes part of hue\n\t\t\tif (color.r <= color.g)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.brg, s)).brg;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.bgr, s)).bgr;\n\t\t\t}\n\t\t}\n\n\t\treturn color;\n\t}\n\t"},26508:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="fn getLuminosity(c: vec3) -> f32 {\n return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;\n}\n\nfn setLuminosity(c: vec3, lum: f32) -> vec3 {\n let d: f32 = lum - getLuminosity(c);\n let newColor: vec3 = c.rgb + vec3(d, d, d);\n\n // clip back into legal range\n let newLum: f32 = getLuminosity(newColor);\n let cMin: f32 = min(newColor.r, min(newColor.g, newColor.b));\n let cMax: f32 = max(newColor.r, max(newColor.g, newColor.b));\n\n let t1: f32 = newLum / (newLum - cMin);\n let t2: f32 = (1.0 - newLum) / (cMax - newLum);\n\n let finalColor = mix(vec3(newLum, newLum, newLum), newColor, select(select(1.0, t2, cMax > 1.0), t1, cMin < 0.0));\n\n return finalColor;\n}\n\nfn getSaturation(c: vec3) -> f32 {\n return max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n}\n\n// Set saturation if color components are sorted in ascending order.\nfn setSaturationMinMidMax(cSorted: vec3, s: f32) -> vec3 {\n var result: vec3;\n if (cSorted.z > cSorted.x) {\n let newY = (((cSorted.y - cSorted.x) * s) / (cSorted.z - cSorted.x));\n result = vec3(0.0, newY, s);\n } else {\n result = vec3(0.0, 0.0, 0.0);\n }\n return vec3(result.x, result.y, result.z);\n}\n\nfn setSaturation(c: vec3, s: f32) -> vec3 {\n var result: vec3 = c;\n\n if (c.r <= c.g && c.r <= c.b) {\n if (c.g <= c.b) {\n result = setSaturationMinMidMax(result, s);\n } else {\n var temp: vec3 = vec3(result.r, result.b, result.g);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.r, temp.b, temp.g);\n }\n } else if (c.g <= c.r && c.g <= c.b) {\n if (c.r <= c.b) {\n var temp: vec3 = vec3(result.g, result.r, result.b);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.g, temp.r, temp.b);\n } else {\n var temp: vec3 = vec3(result.g, result.b, result.r);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.g, temp.b, temp.r);\n }\n } else {\n if (c.r <= c.g) {\n var temp: vec3 = vec3(result.b, result.r, result.g);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.b, temp.r, temp.g);\n } else {\n var temp: vec3 = vec3(result.b, result.g, result.r);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.b, temp.g, temp.r);\n }\n }\n\n return result;\n}"},77047:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(44023),a=r(41792),u=r(85860),l=r(90588);const c=class e extends o.Filter{constructor(t){t={...e.defaultOptions,...t};const r=i.GpuProgram.from({vertex:{source:l.default,entryPoint:"mainVertex"},fragment:{source:l.default,entryPoint:"mainFragment"}}),o=n.GlProgram.from({vertex:a.default,fragment:u.default,name:"alpha-filter"}),{alpha:c,...h}=t;super({...h,gpuProgram:r,glProgram:o,resources:{alphaUniforms:new s.UniformGroup({uAlpha:{value:c,type:"f32"}})}})}get alpha(){return this.resources.alphaUniforms.uniforms.uAlpha}set alpha(e){this.resources.alphaUniforms.uniforms.uAlpha=e}};c.defaultOptions={alpha:1};let h=c;t.AlphaFilter=h},85860:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\n\nout vec4 finalColor;\n\nuniform float uAlpha;\nuniform sampler2D uTexture;\n\nvoid main()\n{\n finalColor = texture(uTexture, vTextureCoord) * uAlpha;\n}\n"},90588:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="struct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct AlphaUniforms {\n uAlpha:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var alphaUniforms : AlphaUniforms;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getSize() -> vec2\n{\n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n \n var sample = textureSample(uTexture, uSampler, uv);\n \n return sample * alphaUniforms.uAlpha;\n}"},82510:function(e,t,r){"use strict";var n=r(38759),i=r(2559),s=r(60094),o=r(44023),a=r(27657);class u extends o.Filter{constructor(...e){let t=e[0]??{};"number"==typeof t&&(s.deprecation(s.v8_0_0,"BlurFilter constructor params are now options object. See params: { strength, quality, resolution, kernelSize }"),t={strength:t},e[1]&&(t.quality=e[1]),e[2]&&(t.resolution=e[2]),e[3]&&(t.kernelSize=e[3])),t={...a.BlurFilterPass.defaultOptions,...t};const{strength:r,quality:n,...o}=t;super({...o,compatibleRenderers:i.RendererType.BOTH,resources:{}}),this._repeatEdgePixels=!1,this.blurXFilter=new a.BlurFilterPass({horizontal:!1,...t}),this.blurYFilter=new a.BlurFilterPass({horizontal:!0,...t}),this.quality=n,this.blur=r,this.repeatEdgePixels=!1}apply(e,t,r,i){const s=Math.abs(this.blurXFilter.strength),o=Math.abs(this.blurYFilter.strength);if(s&&o){const s=n.TexturePool.getSameSizeTexture(t);this.blurXFilter.apply(e,t,s,!0),this.blurYFilter.apply(e,s,r,i),n.TexturePool.returnTexture(s)}else o?this.blurYFilter.apply(e,t,r,i):this.blurXFilter.apply(e,t,r,i)}updatePadding(){this._repeatEdgePixels?this.padding=0:this.padding=2*Math.max(Math.abs(this.blurXFilter.blur),Math.abs(this.blurYFilter.blur))}get blur(){return this.blurXFilter.blur}set blur(e){this.blurXFilter.blur=this.blurYFilter.blur=e,this.updatePadding()}get quality(){return this.blurXFilter.quality}set quality(e){this.blurXFilter.quality=this.blurYFilter.quality=e}get blurX(){return this.blurXFilter.blur}set blurX(e){this.blurXFilter.blur=e,this.updatePadding()}get blurY(){return this.blurYFilter.blur}set blurY(e){this.blurYFilter.blur=e,this.updatePadding()}get blendMode(){return this.blurYFilter.blendMode}set blendMode(e){this.blurYFilter.blendMode=e}get repeatEdgePixels(){return this._repeatEdgePixels}set repeatEdgePixels(e){this._repeatEdgePixels=e,this.updatePadding()}}u.defaultOptions={strength:8,quality:4,kernelSize:5},t.BlurFilter=u},27657:function(e,t,r){"use strict";var n=r(38759),i=r(2559),s=r(44023),o=r(713),a=r(3824);const u=class e extends s.Filter{constructor(t){t={...e.defaultOptions,...t};super({glProgram:o.generateBlurGlProgram(t.horizontal,t.kernelSize),gpuProgram:a.generateBlurProgram(t.horizontal,t.kernelSize),resources:{blurUniforms:{uStrength:{value:0,type:"f32"}}},...t}),this.horizontal=t.horizontal,this._quality=0,this.quality=t.quality,this.blur=t.strength,this._uniforms=this.resources.blurUniforms.uniforms}apply(e,t,r,s){if(this._uniforms.uStrength=this.strength/this.passes,1===this.passes)e.applyFilter(this,t,r,s);else{const o=n.TexturePool.getSameSizeTexture(t);let a=t,u=o;this._state.blend=!1;for(let t=0;t=r&&(s=e-n-1),i=i.replace("%value%",t[s].toString()),a+=i,a+="\n"}return o=o.replace("%blur%",a),o=o.replace("%size%",e.toString()),o}},713:function(e,t,r){"use strict";var n=r(62991),i=r(29028),s=r(40806);t.generateBlurGlProgram=function(e,t){const r=s.generateBlurVertSource(t,e),o=i.generateBlurFragSource(t);return n.GlProgram.from({vertex:r,fragment:o,name:`blur-${e?"horizontal":"vertical"}-pass-filter`})}},40806:function(e,t){"use strict";t.generateBlurVertSource=function(e,t){const r=Math.ceil(e/2);let n,i="\n in vec2 aPosition;\n\n uniform float uStrength;\n\n out vec2 vBlurTexCoords[%size%];\n\n uniform vec4 uInputSize;\n uniform vec4 uOutputFrame;\n uniform vec4 uOutputTexture;\n\n vec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\n vec2 filterTextureCoord( void )\n {\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n }\n\n void main(void)\n {\n gl_Position = filterVertexPosition();\n\n float pixelStrength = uInputSize.%dimension% * uStrength;\n\n vec2 textureCoord = filterTextureCoord();\n %blur%\n }",s="";n=t?"vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * pixelStrength, 0.0);":"vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * pixelStrength);";for(let t=0;t,`,u[n]=e?`filteredCord + vec2(${n-o+1} * strength, 0.0),`:`filteredCord + vec2(0.0, ${n-o+1} * strength),`;const i=r[n"},uScale:{value:m,type:"vec2"},uRotation:{value:new Float32Array([0,0,0,0]),type:"mat2x2"}}),_=s.GlProgram.from({vertex:d.default,fragment:h.default,name:"displacement-filter"}),x=o.GpuProgram.from({vertex:{source:p.default,entryPoint:"mainVertex"},fragment:{source:p.default,entryPoint:"mainFragment"}}),b=r.texture.source;super({...f,gpuProgram:x,glProgram:_,resources:{filterUniforms:g,uMapTexture:b,uMapSampler:b.style}}),this._sprite=t.sprite,this._sprite.renderable=!1}apply(e,t,r,n){const i=this.resources.filterUniforms.uniforms;e.calculateSpriteMatrix(i.uFilterMatrix,this._sprite);const s=this._sprite.worldTransform,o=Math.sqrt(s.a*s.a+s.b*s.b),a=Math.sqrt(s.c*s.c+s.d*s.d);0!==o&&0!==a&&(i.uRotation[0]=s.a/o,i.uRotation[1]=s.b/o,i.uRotation[2]=s.c/a,i.uRotation[3]=s.d/a),this.resources.uMapTexture=this._sprite.texture.source,e.applyFilter(this,t,r,n)}get scale(){return this.resources.filterUniforms.uniforms.uScale}}t.DisplacementFilter=f},85001:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec2 vFilterUv;\n\nout vec4 finalColor;\n\nuniform sampler2D uTexture;\nuniform sampler2D uMapTexture;\n\nuniform vec4 uInputClamp;\nuniform highp vec4 uInputSize;\nuniform mat2 uRotation;\nuniform vec2 uScale;\n\nvoid main()\n{\n vec4 map = texture(uMapTexture, vFilterUv);\n \n vec2 offset = uInputSize.zw * (uRotation * (map.xy - 0.5)) * uScale; \n\n finalColor = texture(uTexture, clamp(vTextureCoord + offset, uInputClamp.xy, uInputClamp.zw));\n}\n"},33610:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\nout vec2 vTextureCoord;\nout vec2 vFilterUv;\n\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\n\nuniform mat3 uFilterMatrix;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvec2 getFilterCoord( void )\n{\n return ( uFilterMatrix * vec3( filterTextureCoord(), 1.0) ).xy;\n}\n\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n vFilterUv = getFilterCoord();\n}\n"},25044:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct DisplacementUniforms {\n uFilterMatrix:mat3x3,\n uScale:vec2,\n uRotation:mat2x2\n};\n\n\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var filterUniforms : DisplacementUniforms;\n@group(1) @binding(1) var uMapTexture: texture_2d;\n@group(1) @binding(2) var uMapSampler : sampler;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2,\n @location(1) filterUv : vec2,\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getFilterCoord(aPosition:vec2 ) -> vec2\n{\n return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n}\n\nfn getSize() -> vec2\n{\n\n \n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition),\n getFilterCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @location(1) filterUv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var map = textureSample(uMapTexture, uMapSampler, filterUv);\n\n var offset = gfu.uInputSize.zw * (filterUniforms.uRotation * (map.xy - 0.5)) * filterUniforms.uScale; \n \n return textureSample(uTexture, uSampler, clamp(uv + offset, gfu.uInputClamp.xy, gfu.uInputClamp.zw));\n}"},95547:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(44023),a=r(41792),u=r(25999),l=r(24310);const c=class e extends o.Filter{constructor(t={}){t={...e.defaultOptions,...t};const r=i.GpuProgram.from({vertex:{source:l.default,entryPoint:"mainVertex"},fragment:{source:l.default,entryPoint:"mainFragment"}}),o=n.GlProgram.from({vertex:a.default,fragment:u.default,name:"noise-filter"}),{noise:c,seed:h,...d}=t;super({...d,gpuProgram:r,glProgram:o,resources:{noiseUniforms:new s.UniformGroup({uNoise:{value:1,type:"f32"},uSeed:{value:1,type:"f32"}})}}),this.noise=c,this.seed=h??Math.random()}get noise(){return this.resources.noiseUniforms.uniforms.uNoise}set noise(e){this.resources.noiseUniforms.uniforms.uNoise=e}get seed(){return this.resources.noiseUniforms.uniforms.uSeed}set seed(e){this.resources.noiseUniforms.uniforms.uSeed=e}};c.defaultOptions={noise:.5};let h=c;t.NoiseFilter=h},25999:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec4 vColor;\n\nout vec4 finalColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uTexture;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture(uTexture, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * uSeed);\n float diff = (randomValue - 0.5) * uNoise;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n finalColor = color;\n}\n"},24310:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\n\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct NoiseUniforms {\n uNoise:f32,\n uSeed:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var noiseUniforms : NoiseUniforms;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getSize() -> vec2\n{\n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\nfn rand(co:vec2) -> f32\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\n\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var pixelPosition = globalTextureCoord(position.xy);// / (getSize());//- gfu.uOutputFrame.xy);\n \n \n var sample = textureSample(uTexture, uSampler, uv);\n var randomValue = rand(pixelPosition.xy * noiseUniforms.uSeed);\n var diff = (randomValue - 0.5) * noiseUniforms.uNoise;\n \n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (sample.a > 0.0) {\n sample.r /= sample.a;\n sample.g /= sample.a;\n sample.b /= sample.a;\n }\n\n sample.r += diff;\n sample.g += diff;\n sample.b += diff;\n\n // Premultiply alpha again.\n sample.r *= sample.a;\n sample.g *= sample.a;\n sample.b *= sample.a;\n \n return sample;\n}"},33430:function(e,t,r){"use strict";var n=r(81210),i=r(57422),s=r(79474),o=r(77047),a=r(82510),u=r(27657),l=r(58758),c=r(29028),h=r(713),d=r(40806),p=r(3824),f=r(41012),m=r(43795),g=r(95547),_=r(44023),x=r(71210),b=r(85644),y=r(24516),v=r(24745),T=r(70475),S=r(40265),E=r(53784),A=r(26508),M=r(85860),P=r(90588),R=r(6857),w=r(15255),B=r(62494),G=r(41792),C=r(85001),F=r(33610),D=r(25044),I=r(25999),O=r(24310),U=r(20018),L=r(98955),k=r(40059);t.BlendModeFilter=n.BlendModeFilter,t.hslgl=i.hslgl,t.hslgpu=s.hslgpu,t.AlphaFilter=o.AlphaFilter,t.BlurFilter=a.BlurFilter,t.BlurFilterPass=u.BlurFilterPass,t.GAUSSIAN_VALUES=l.GAUSSIAN_VALUES,t.generateBlurFragSource=c.generateBlurFragSource,t.generateBlurGlProgram=h.generateBlurGlProgram,t.generateBlurVertSource=d.generateBlurVertSource,t.generateBlurProgram=p.generateBlurProgram,t.ColorMatrixFilter=f.ColorMatrixFilter,t.DisplacementFilter=m.DisplacementFilter,t.NoiseFilter=g.NoiseFilter,t.Filter=_.Filter,t.FilterEffect=x.FilterEffect,t.FilterPipe=b.FilterPipe,t.FilterSystem=y.FilterSystem,t.MaskFilter=v.MaskFilter,t.blendTemplateFrag=T.default,t.blendTemplateVert=S.default,t.blendTemplateWgsl=E.default,t.hslWgsl=A.default,t.alphaFrag=M.default,t.alphaWgsl=P.default,t.blurTemplateWgsl=R.default,t.colorMatrixFilterFrag=w.default,t.colorMatrixFilterWgsl=B.default,t.defaultFilterVert=G.default,t.displacementFrag=C.default,t.displacementVert=F.default,t.displacementWgsl=D.default,t.noiseFrag=I.default,t.noiseWgsl=O.default,t.maskFrag=U.default,t.maskVert=L.default,t.maskWgsl=k.default},72400:function(e,t,r){"use strict";var n=r(17073),i=r(85644),s=r(24516);n.extensions.add(s.FilterSystem),n.extensions.add(i.FilterPipe)},24745:function(e,t,r){"use strict";var n=r(15685),i=r(62991),s=r(50543),o=r(65518),a=r(94058),u=r(44023),l=r(20018),c=r(98955),h=r(40059);class d extends u.Filter{constructor(e){const{sprite:t,...r}=e,u=new a.TextureMatrix(t.texture),d=new o.UniformGroup({uFilterMatrix:{value:new n.Matrix,type:"mat3x3"},uMaskClamp:{value:u.uClampFrame,type:"vec4"},uAlpha:{value:1,type:"f32"}});super({...r,gpuProgram:s.GpuProgram.from({vertex:{source:h.default,entryPoint:"mainVertex"},fragment:{source:h.default,entryPoint:"mainFragment"}}),glProgram:i.GlProgram.from({vertex:c.default,fragment:l.default,name:"mask-filter"}),resources:{filterUniforms:d,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=u}apply(e,t,r,n){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,r,n)}}t.MaskFilter=d},20018:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 vMaskCoord;\nin vec2 vTextureCoord;\n\nuniform sampler2D uTexture;\nuniform sampler2D uMaskTexture;\n\nuniform float uAlpha;\nuniform vec4 uMaskClamp;\n\nout vec4 finalColor;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(uMaskClamp.x, vMaskCoord.x) +\n step(uMaskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, uMaskClamp.z) +\n step(vMaskCoord.y, uMaskClamp.w));\n\n // TODO look into why this is needed\n float npmAlpha = uAlpha; \n vec4 original = texture(uTexture, vTextureCoord);\n vec4 masky = texture(uMaskTexture, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * uAlpha * clip);\n\n finalColor = original;\n}\n"},98955:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\n\nout vec2 vTextureCoord;\nout vec2 vMaskCoord;\n\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\nuniform mat3 uFilterMatrix;\n\nvec4 filterVertexPosition( vec2 aPosition )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( vec2 aPosition )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvec2 getFilterCoord( vec2 aPosition )\n{\n return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n} \n\nvoid main(void)\n{\n gl_Position = filterVertexPosition(aPosition);\n vTextureCoord = filterTextureCoord(aPosition);\n vMaskCoord = getFilterCoord(aPosition);\n}\n"},40059:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="struct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4, \n};\n\nstruct MaskUniforms {\n uFilterMatrix:mat3x3,\n uMaskClamp:vec4,\n uAlpha:f32,\n};\n\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var filterUniforms : MaskUniforms;\n@group(1) @binding(1) var uMaskTexture: texture_2d;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2,\n @location(1) filterUv : vec2,\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getFilterCoord(aPosition:vec2 ) -> vec2\n{\n return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n}\n\nfn getSize() -> vec2\n{\n\n \n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition),\n getFilterCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @location(1) filterUv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var maskClamp = filterUniforms.uMaskClamp;\n\n var clip = step(3.5,\n step(maskClamp.x, filterUv.x) +\n step(maskClamp.y, filterUv.y) +\n step(filterUv.x, maskClamp.z) +\n step(filterUv.y, maskClamp.w));\n\n var mask = textureSample(uMaskTexture, uSampler, filterUv);\n var source = textureSample(uTexture, uSampler, uv);\n \n var npmAlpha = 0.0;\n\n var alphaMul = 1.0 - npmAlpha * (1.0 - mask.a);\n\n var a = (alphaMul * mask.r) * clip;\n\n return vec4(source.rgb, source.a) * a;\n}"},58687:function(e,t,r){"use strict";var n=r(59759),i=r(147),s=r(17073);r(55063),r(55102),r(46807),r(24217),r(58305),r(98430),r(77235),r(80385),r(76143),r(9653),r(38496),r(59868),r(14073),r(46569),r(33430),r(45517),r(79878),r(12878),r(6514),r(95991),r(42508),r(34005);var o=r(96480),a=r(49507),u=r(43931),l=r(20607),c=r(96755),h=r(12488),d=r(56442),p=r(97914),f=r(64909),m=r(26004),g=r(92219),_=r(31660),x=r(34412),b=r(24258),y=r(93040),v=r(63846),T=r(61843),S=r(98815),E=r(37976),A=r(47864),M=r(70922),P=r(56697),R=r(89660),w=r(38531),B=r(45747),G=r(81729),C=r(18800),F=r(45724),D=r(56509),I=r(62392),O=r(58433),U=r(28881),L=r(55673),k=r(62972),N=r(36214),H=r(17178),X=r(11560),V=r(44994),z=r(32181),W=r(8774),Y=r(20246),$=r(20763),j=r(76529),q=r(80428),K=r(27273),Z=r(13189),Q=r(64822),J=r(76836),ee=r(6195),te=r(34361),re=r(95997),ne=r(73036),ie=r(90206),se=r(5866),oe=r(90973),ae=r(42196),ue=r(82493),le=r(58778),ce=r(25917),he=r(49728),de=r(31166),pe=r(2383),fe=r(45031),me=r(94086),ge=r(95966),_e=r(69040),xe=r(55418),be=r(5566),ye=r(7451),ve=r(79531),Te=r(97051),Se=r(87976),Ee=r(41177),Ae=r(67172),Me=r(54143),Pe=r(48834),Re=r(12055),we=r(8198),Be=r(17125),Ge=r(56899),Ce=r(13320),Fe=r(1394),De=r(165),Ie=r(10051),Oe=r(42932),Ue=r(98182),Le=r(36484),ke=r(24306),Ne=r(41863),He=r(8599),Xe=r(5443),Ve=r(49410),ze=r(14235),We=r(19250),Ye=r(45345),$e=r(81483),je=r(70475),qe=r(40265),Ke=r(53784),Ze=r(26508),Qe=r(85860),Je=r(90588),et=r(6857),tt=r(15255),rt=r(62494),nt=r(41792),it=r(85001),st=r(33610),ot=r(25044),at=r(25999),ut=r(24310),lt=r(20018),ct=r(98955),ht=r(40059),dt=r(81210),pt=r(57422),ft=r(79474),mt=r(77047),gt=r(82510),_t=r(27657),xt=r(58758),bt=r(29028),yt=r(713),vt=r(40806),Tt=r(3824),St=r(41012),Et=r(43795),At=r(95547),Mt=r(44023),Pt=r(71210),Rt=r(85644),wt=r(24516),Bt=r(24745),Gt=r(81955),Ct=r(15685),Ft=r(29705),Dt=r(39018),It=r(28985),Ot=r(62792),Ut=r(26553),Lt=r(27994),kt=r(21778),Nt=r(66736),Ht=r(58173),Xt=r(42181),Vt=r(66321),zt=r(69474),Wt=r(73940),Yt=r(3422),$t=r(72780),jt=r(26116),qt=r(58578),Kt=r(51719),Zt=r(1766),Qt=r(92247),Jt=r(93154),er=r(72459),tr=r(33388),rr=r(9803),nr=r(87866),ir=r(33961),sr=r(74404),or=r(21380),ar=r(42403),ur=r(58674),lr=r(15183),cr=r(95233),hr=r(98319),dr=r(11206),pr=r(60079),fr=r(59615),mr=r(84215),gr=r(19209),_r=r(39320),xr=r(74813),br=r(4116),yr=r(36114),vr=r(48718),Tr=r(14673),Sr=r(50020),Er=r(62579),Ar=r(81480),Mr=r(32258),Pr=r(99022),Rr=r(33648),wr=r(38782),Br=r(17957),Gr=r(4722),Cr=r(85520),Fr=r(3839),Dr=r(7540),Ir=r(32985),Or=r(36351),Ur=r(96307),Lr=r(90493),kr=r(42026),Nr=r(57066),Hr=r(79211),Xr=r(45769),Vr=r(50264),zr=r(4308),Wr=r(9779),Yr=r(54346),$r=r(65706),jr=r(9488),qr=r(62991),Kr=r(94230),Zr=r(2071),Qr=r(53864),Jr=r(49245),en=r(27124),tn=r(32377),rn=r(71820),nn=r(61913),sn=r(3480),on=r(3871),an=r(51525),un=r(51895),ln=r(6887),cn=r(19336),hn=r(86380),dn=r(44135),pn=r(9778),fn=r(4023),mn=r(77944),gn=r(48142),_n=r(3553),xn=r(98121),bn=r(90708),yn=r(40074),vn=r(66171),Tn=r(8279),Sn=r(93199),En=r(40655),An=r(30290),Mn=r(52470),Pn=r(62123),Rn=r(35416),wn=r(82953),Bn=r(75705),Gn=r(53321),Cn=r(88588),Fn=r(84157),Dn=r(5020),In=r(51727),On=r(16310),Un=r(59758),Ln=r(7358),kn=r(61435),Nn=r(98826),Hn=r(71901),Xn=r(40736),Vn=r(30679),zn=r(61265),Wn=r(65586),Yn=r(32920),$n=r(96150),jn=r(4812),qn=r(93812),Kn=r(50967),Zn=r(91428),Qn=r(86136),Jn=r(9143),ei=r(24628),ti=r(83582),ri=r(50543),ni=r(25947),ii=r(41036),si=r(84214),oi=r(29926),ai=r(16126),ui=r(1513),li=r(80863),ci=r(47242),hi=r(79320),di=r(53299),pi=r(81242),fi=r(36826),mi=r(56042),gi=r(97394),_i=r(1956),xi=r(37135),bi=r(2766),yi=r(43213),vi=r(87929),Ti=r(69264),Si=r(6852),Ei=r(69862),Ai=r(21839),Mi=r(1793),Pi=r(18919),Ri=r(70766),wi=r(95041),Bi=r(42310),Gi=r(80163),Ci=r(33829),Fi=r(44307),Di=r(84026),Ii=r(52783),Oi=r(14740),Ui=r(54132),Li=r(31540),ki=r(54572),Ni=r(11987),Hi=r(33764),Xi=r(16952),Vi=r(3695),zi=r(19450),Wi=r(97505),Yi=r(21384),$i=r(6864),ji=r(65518),qi=r(1021),Ki=r(90887),Zi=r(63981),Qi=r(46876),Ji=r(22334),es=r(56445),ts=r(254),rs=r(55141),ns=r(95931),is=r(62856),ss=r(17627),os=r(60932),as=r(6121),us=r(32064),ls=r(4720),cs=r(91525),hs=r(68651),ds=r(75813),ps=r(27666),fs=r(62480),ms=r(84463),gs=r(95224),_s=r(94058),xs=r(38759),bs=r(44174),ys=r(92756),vs=r(95026),Ts=r(40190),Ss=r(34155),Es=r(55484),As=r(39394),Ms=r(6066),Ps=r(60527),Rs=r(80177),ws=r(2559),Bs=r(14786),Gs=r(91858),Cs=r(9565),Fs=r(19025),Ds=r(47306),Is=r(29541),Os=r(5408),Us=r(25136),Ls=r(36695),ks=r(59009),Ns=r(8125),Hs=r(36422),Xs=r(84748),Vs=r(74599),zs=r(2934),Ws=r(76713),Ys=r(49341),$s=r(9176),js=r(13056),qs=r(15486),Ks=r(58216),Zs=r(12057),Qs=r(29409),Js=r(6877),eo=r(41482),to=r(82397),ro=r(55747),no=r(89358),io=r(24417),so=r(48496),oo=r(65766),ao=r(67589),uo=r(81448),lo=r(76818),co=r(77107),ho=r(46141),po=r(76393),fo=r(69169),mo=r(86570),go=r(92572),_o=r(67563),xo=r(76788),bo=r(968),yo=r(57469),vo=r(53976),To=r(64778),So=r(88365),Eo=r(37553),Ao=r(16315),Mo=r(69639),Po=r(90537),Ro=r(2608),wo=r(20832),Bo=r(7639),Go=r(84385),Co=r(26289),Fo=r(92248),Do=r(93940),Io=r(42892),Oo=r(60374),Uo=r(97886),Lo=r(20593),ko=r(47464),No=r(92020),Ho=r(27574),Xo=r(14313),Vo=r(14749),zo=r(11291),Wo=r(65935),Yo=r(45136),$o=r(58507),jo=r(86957),qo=r(37086),Ko=r(46525),Zo=r(25784),Qo=r(2600),Jo=r(76596),ea=r(33449),ta=r(87577),ra=r(63522),na=r(67919),ia=r(74839),sa=r(3857),oa=r(42598),aa=r(20872),ua=r(44260),la=r(50426),ca=r(22972),ha=r(10701),da=r(1894),pa=r(76887),fa=r(82556),ma=r(88061),ga=r(17668),_a=r(45847),xa=r(10476),ba=r(91195),ya=r(80265),va=r(43969),Ta=r(22082),Sa=r(30610),Ea=r(38513),Aa=r(54125),Ma=r(93968),Pa=r(2668),Ra=r(47308),wa=r(73543),Ba=r(62074),Ga=r(46242),Ca=r(27252),Fa=r(20628),Da=r(23026),Ia=r(75761),Oa=r(85669),Ua=r(11296),La=r(19790),ka=r(89523),Na=r(31030),Ha=r(76869),Xa=r(58054),Va=r(61868),za=r(73602),Wa=r(34988),Ya=r(40206),$a=r(71424),ja=r(62434),qa=r(79517),Ka=r(24328),Za=r(64597),Qa=r(30705),Ja=r(89757),eu=r(65540),tu=r(35292),ru=r(63983),nu=r(31137),iu=r(86105),su=r(2636),ou=r(57296),au=r(58050),uu=r(73533),lu=r(4037),cu=r(50034),hu=r(54591),du=r(5323),pu=r(39654),fu=r(78739),mu=r(64293),gu=r(67200),_u=r(77078),xu=r(60094),bu=r(37277),yu=r(50469),vu=r(95190),Tu=r(98449),Su=r(23522),Eu=r(87876),Au=r(36491),Mu=r(82568),Pu=r(86169),Ru=r(37087),wu=r(9187);s.extensions.add(n.browserExt,i.webworkerExt),t.browserExt=n.browserExt,t.webworkerExt=i.webworkerExt,t.ExtensionType=s.ExtensionType,t.extensions=s.extensions,t.normalizeExtensionPriority=s.normalizeExtensionPriority,t.AccessibilitySystem=o.AccessibilitySystem,t.accessibilityTarget=a.accessibilityTarget,t.ColorBlend=u.ColorBlend,t.ColorBurnBlend=l.ColorBurnBlend,t.ColorDodgeBlend=c.ColorDodgeBlend,t.DarkenBlend=h.DarkenBlend,t.DifferenceBlend=d.DifferenceBlend,t.DivideBlend=p.DivideBlend,t.ExclusionBlend=f.ExclusionBlend,t.HardLightBlend=m.HardLightBlend,t.HardMixBlend=g.HardMixBlend,t.LightenBlend=_.LightenBlend,t.LinearBurnBlend=x.LinearBurnBlend,t.LinearDodgeBlend=b.LinearDodgeBlend,t.LinearLightBlend=y.LinearLightBlend,t.LuminosityBlend=v.LuminosityBlend,t.NegationBlend=T.NegationBlend,t.OverlayBlend=S.OverlayBlend,t.PinLightBlend=E.PinLightBlend,t.SaturationBlend=A.SaturationBlend,t.SoftLightBlend=M.SoftLightBlend,t.SubtractBlend=P.SubtractBlend,t.VividLightBlend=R.VividLightBlend,t.Application=w.Application,t.ResizePlugin=B.ResizePlugin,t.TickerPlugin=G.TickerPlugin,t.Assets=C.Assets,t.AssetsClass=C.AssetsClass,t.BackgroundLoader=F.BackgroundLoader,t.Cache=D.Cache,t.cacheTextureArray=I.cacheTextureArray,t.detectAvif=O.detectAvif,t.detectDefaults=U.detectDefaults,t.detectMp4=L.detectMp4,t.detectOgv=k.detectOgv,t.detectWebm=N.detectWebm,t.detectWebp=H.detectWebp,t.testImageFormat=X.testImageFormat,t.testVideoFormat=V.testVideoFormat,t.Loader=z.Loader,t.LoaderParserPriority=W.LoaderParserPriority,t.loadJson=Y.loadJson,t.loadTxt=$.loadTxt,t.getFontFamilyName=j.getFontFamilyName,t.loadWebFont=j.loadWebFont,t.loadSvg=q.loadSvg,t.loadImageBitmap=K.loadImageBitmap,t.loadTextures=K.loadTextures,t.crossOrigin=Z.crossOrigin,t.determineCrossOrigin=Z.determineCrossOrigin,t.loadVideoTextures=Z.loadVideoTextures,t.preloadVideo=Z.preloadVideo,t.createTexture=Q.createTexture,t.WorkerManager=J.WorkerManager,t.resolveJsonUrl=ee.resolveJsonUrl,t.resolveTextureUrl=te.resolveTextureUrl,t.Resolver=re.Resolver,t.getUrlExtension=re.getUrlExtension,t.checkDataUrl=ne.checkDataUrl,t.checkExtension=ie.checkExtension,t.convertToList=se.convertToList,t.copySearchParams=oe.copySearchParams,t.createStringVariations=ae.createStringVariations,t.isSingleItem=ue.isSingleItem,t.Color=le.Color,t.detectBasis=ce.detectBasis,t.loadBasis=he.loadBasis,t.createLevelBuffers=de.createLevelBuffers,t.gpuFormatToBasisTranscoderFormat=pe.gpuFormatToBasisTranscoderFormat,t.basisTranscoderUrls=fe.basisTranscoderUrls,t.setBasisTranscoderPath=fe.setBasisTranscoderPath,t.loadBasisOnWorker=me.loadBasisOnWorker,t.D3D10_RESOURCE_DIMENSION=ge.D3D10_RESOURCE_DIMENSION,t.D3DFMT=ge.D3DFMT,t.DDS=ge.DDS,t.DXGI_FORMAT=ge.DXGI_FORMAT,t.DXGI_TO_TEXTURE_FORMAT=ge.DXGI_TO_TEXTURE_FORMAT,t.FOURCC_TO_TEXTURE_FORMAT=ge.FOURCC_TO_TEXTURE_FORMAT,t.TEXTURE_FORMAT_BLOCK_SIZE=ge.TEXTURE_FORMAT_BLOCK_SIZE,t.loadDDS=_e.loadDDS,t.parseDDS=xe.parseDDS,t.loadKTX=be.loadKTX,t.parseKTX=ye.parseKTX,t.GL_INTERNAL_FORMAT=ve.GL_INTERNAL_FORMAT,t.KTX=ve.KTX,t.loadKTX2=Te.loadKTX2,t.convertFormatIfRequired=Se.convertFormatIfRequired,t.createLevelBuffersFromKTX=Ee.createLevelBuffersFromKTX,t.getTextureFormatFromKTXTexture=Ae.getTextureFormatFromKTXTexture,t.glFormatToGPUFormat=Me.glFormatToGPUFormat,t.gpuFormatToKTXBasisTranscoderFormat=Pe.gpuFormatToKTXBasisTranscoderFormat,t.ktxTranscoderUrls=Re.ktxTranscoderUrls,t.setKTXTranscoderPath=Re.setKTXTranscoderPath,t.vkFormatToGPUFormat=we.vkFormatToGPUFormat,t.loadKTX2onWorker=Be.loadKTX2onWorker,t.detectCompressed=Ge.detectCompressed,t.resolveCompressedTextureUrl=Ce.resolveCompressedTextureUrl,t.validFormats=Ce.validFormats,t.Culler=Fe.Culler,t.CullerPlugin=De.CullerPlugin,t.cullingMixin=Ie.cullingMixin,t.DOMAdapter=Oe.DOMAdapter,t.autoDetectEnvironment=Ue.autoDetectEnvironment,t.loadEnvironmentExtensions=Ue.loadEnvironmentExtensions,t.BrowserAdapter=Le.BrowserAdapter,t.WebWorkerAdapter=ke.WebWorkerAdapter,t.EventBoundary=Ne.EventBoundary,t.EventSystem=He.EventSystem,t.EventsTicker=Xe.EventsTicker,t.FederatedEvent=Ve.FederatedEvent,t.FederatedContainer=ze.FederatedContainer,t.FederatedMouseEvent=We.FederatedMouseEvent,t.FederatedPointerEvent=Ye.FederatedPointerEvent,t.FederatedWheelEvent=$e.FederatedWheelEvent,t.blendTemplateFrag=je.default,t.blendTemplateVert=qe.default,t.blendTemplateWgsl=Ke.default,t.hslWgsl=Ze.default,t.alphaFrag=Qe.default,t.alphaWgsl=Je.default,t.blurTemplateWgsl=et.default,t.colorMatrixFilterFrag=tt.default,t.colorMatrixFilterWgsl=rt.default,t.defaultFilterVert=nt.default,t.displacementFrag=it.default,t.displacementVert=st.default,t.displacementWgsl=ot.default,t.noiseFrag=at.default,t.noiseWgsl=ut.default,t.maskFrag=lt.default,t.maskVert=ct.default,t.maskWgsl=ht.default,t.BlendModeFilter=dt.BlendModeFilter,t.hslgl=pt.hslgl,t.hslgpu=ft.hslgpu,t.AlphaFilter=mt.AlphaFilter,t.BlurFilter=gt.BlurFilter,t.BlurFilterPass=_t.BlurFilterPass,t.GAUSSIAN_VALUES=xt.GAUSSIAN_VALUES,t.generateBlurFragSource=bt.generateBlurFragSource,t.generateBlurGlProgram=yt.generateBlurGlProgram,t.generateBlurVertSource=vt.generateBlurVertSource,t.generateBlurProgram=Tt.generateBlurProgram,t.ColorMatrixFilter=St.ColorMatrixFilter,t.DisplacementFilter=Et.DisplacementFilter,t.NoiseFilter=At.NoiseFilter,t.Filter=Mt.Filter,t.FilterEffect=Pt.FilterEffect,t.FilterPipe=Rt.FilterPipe,t.FilterSystem=wt.FilterSystem,t.MaskFilter=Bt.MaskFilter,t.groupD8=Gt.groupD8,t.Matrix=Ct.Matrix,t.DEG_TO_RAD=Ft.DEG_TO_RAD,t.PI_2=Ft.PI_2,t.RAD_TO_DEG=Ft.RAD_TO_DEG,t.isPow2=Dt.isPow2,t.log2=Dt.log2,t.nextPow2=Dt.nextPow2,t.squaredDistanceToLineSegment=It.squaredDistanceToLineSegment,t.ObservablePoint=Ot.ObservablePoint,t.Point=Ut.Point,t.pointInTriangle=Lt.pointInTriangle,t.Circle=kt.Circle,t.Ellipse=Nt.Ellipse,t.Polygon=Ht.Polygon,t.Rectangle=Xt.Rectangle,t.RoundedRectangle=Vt.RoundedRectangle,t.Triangle=zt.Triangle,t.PrepareBase=Wt.PrepareBase,t.PrepareQueue=Yt.PrepareQueue,t.PrepareSystem=$t.PrepareSystem,t.PrepareUpload=jt.PrepareUpload,t.GlBatchAdaptor=qt.GlBatchAdaptor,t.checkMaxIfStatementsInShader=Kt.checkMaxIfStatementsInShader,t.getMaxTexturesPerBatch=Zt.getMaxTexturesPerBatch,t.BatchGeometry=Qt.BatchGeometry,t.generateGPULayout=Jt.generateGPULayout,t.generateLayout=er.generateLayout,t.getTextureBatchBindGroup=tr.getTextureBatchBindGroup,t.GpuBatchAdaptor=rr.GpuBatchAdaptor,t.Batch=nr.Batch,t.Batcher=nr.Batcher,t.BatcherPipe=ir.BatcherPipe,t.BatchTextureArray=sr.BatchTextureArray,t.compileHighShaderGlProgram=or.compileHighShaderGlProgram,t.compileHighShaderGpuProgram=or.compileHighShaderGpuProgram,t.compileHighShader=ar.compileHighShader,t.compileHighShaderGl=ar.compileHighShaderGl,t.addBits=ur.addBits,t.compileHooks=lr.compileHooks,t.findHooksRx=lr.findHooksRx,t.compileInputs=cr.compileInputs,t.compileOutputs=hr.compileOutputs,t.formatShader=dr.formatShader,t.injectBits=pr.injectBits,t.fragmentGPUTemplate=fr.fragmentGPUTemplate,t.fragmentGlTemplate=fr.fragmentGlTemplate,t.vertexGPUTemplate=fr.vertexGPUTemplate,t.vertexGlTemplate=fr.vertexGlTemplate,t.colorBit=mr.colorBit,t.colorBitGl=mr.colorBitGl,t.generateTextureBatchBit=gr.generateTextureBatchBit,t.generateTextureBatchBitGl=gr.generateTextureBatchBitGl,t.globalUniformsBit=_r.globalUniformsBit,t.globalUniformsBitGl=_r.globalUniformsBitGl,t.globalUniformsUBOBitGl=_r.globalUniformsUBOBitGl,t.localUniformBit=xr.localUniformBit,t.localUniformBitGl=xr.localUniformBitGl,t.localUniformBitGroup2=xr.localUniformBitGroup2,t.roundPixelsBit=br.roundPixelsBit,t.roundPixelsBitGl=br.roundPixelsBitGl,t.textureBit=yr.textureBit,t.textureBitGl=yr.textureBitGl,t.AlphaMask=vr.AlphaMask,t.AlphaMaskPipe=Tr.AlphaMaskPipe,t.ColorMask=Sr.ColorMask,t.ColorMaskPipe=Er.ColorMaskPipe,t.MaskEffectManager=Ar.MaskEffectManager,t.MaskEffectManagerClass=Ar.MaskEffectManagerClass,t.ScissorMask=Mr.ScissorMask,t.StencilMask=Pr.StencilMask,t.StencilMaskPipe=Rr.StencilMaskPipe,t.addMaskBounds=wr.addMaskBounds,t.addMaskLocalBounds=Br.addMaskLocalBounds,t.getMatrixRelativeToParent=Br.getMatrixRelativeToParent,t.autoDetectRenderer=Gr.autoDetectRenderer,t.BUFFER_TYPE=Cr.BUFFER_TYPE,t.GlBuffer=Fr.GlBuffer,t.GlBufferSystem=Dr.GlBufferSystem,t.CLEAR=Ir.CLEAR,t.GlContextSystem=Or.GlContextSystem,t.GlGeometrySystem=Ur.GlGeometrySystem,t.getGlTypeFromFormat=Lr.getGlTypeFromFormat,t.GlBackBufferSystem=kr.GlBackBufferSystem,t.GlColorMaskSystem=Nr.GlColorMaskSystem,t.GlEncoderSystem=Hr.GlEncoderSystem,t.GlRenderTarget=Xr.GlRenderTarget,t.GlStencilSystem=Vr.GlStencilSystem,t.GlUboSystem=zr.GlUboSystem,t.GlRenderTargetAdaptor=Wr.GlRenderTargetAdaptor,t.GlRenderTargetSystem=Yr.GlRenderTargetSystem,t.generateShaderSyncCode=$r.generateShaderSyncCode,t.getBatchSamplersUniformGroup=jr.getBatchSamplersUniformGroup,t.GlProgram=qr.GlProgram,t.GlProgramData=Kr.GlProgramData,t.IGLUniformData=Kr.IGLUniformData,t.GlShaderSystem=Zr.GlShaderSystem,t.GlUniformGroupSystem=Qr.GlUniformGroupSystem,t.migrateFragmentFromV7toV8=Jr.migrateFragmentFromV7toV8,t.compileShader=en.compileShader,t.defaultValue=tn.defaultValue,t.ensureAttributes=rn.ensureAttributes,t.extractAttributesFromGlProgram=nn.extractAttributesFromGlProgram,t.generateProgram=sn.generateProgram,t.getMaxFragmentPrecision=on.getMaxFragmentPrecision,t.getTestContext=an.getTestContext,t.getUboData=un.getUboData,t.getUniformData=ln.getUniformData,t.logProgramError=cn.logProgramError,t.mapSize=hn.mapSize,t.mapGlToVertexFormat=dn.mapGlToVertexFormat,t.mapType=dn.mapType,t.addProgramDefines=pn.addProgramDefines,t.ensurePrecision=fn.ensurePrecision,t.insertVersion=mn.insertVersion,t.setProgramName=gn.setProgramName,t.stripVersion=_n.stripVersion,t.WGSL_TO_STD40_SIZE=xn.WGSL_TO_STD40_SIZE,t.createUboElementsSTD40=xn.createUboElementsSTD40,t.createUboSyncFunctionSTD40=bn.createUboSyncFunctionSTD40,t.generateArraySyncSTD40=yn.generateArraySyncSTD40,t.generateUniformsSync=vn.generateUniformsSync,t.UNIFORM_TO_ARRAY_SETTERS=Tn.UNIFORM_TO_ARRAY_SETTERS,t.UNIFORM_TO_SINGLE_SETTERS=Tn.UNIFORM_TO_SINGLE_SETTERS,t.GlStateSystem=Sn.GlStateSystem,t.mapWebGLBlendModesToPixi=En.mapWebGLBlendModesToPixi,t.GL_FORMATS=An.GL_FORMATS,t.GL_TARGETS=An.GL_TARGETS,t.GL_TYPES=An.GL_TYPES,t.GL_WRAP_MODES=An.GL_WRAP_MODES,t.GlTexture=Mn.GlTexture,t.GlTextureSystem=Pn.GlTextureSystem,t.glUploadBufferImageResource=Rn.glUploadBufferImageResource,t.glUploadCompressedTextureResource=wn.glUploadCompressedTextureResource,t.glUploadImageResource=Bn.glUploadImageResource,t.glUploadVideoResource=Gn.glUploadVideoResource,t.applyStyleParams=Cn.applyStyleParams,t.getSupportedGlCompressedTextureFormats=Fn.getSupportedGlCompressedTextureFormats,t.mapFormatToGlFormat=Dn.mapFormatToGlFormat,t.mapFormatToGlInternalFormat=In.mapFormatToGlInternalFormat,t.mapFormatToGlType=On.mapFormatToGlType,t.compareModeToGlCompare=Un.compareModeToGlCompare,t.mipmapScaleModeToGlFilter=Un.mipmapScaleModeToGlFilter,t.scaleModeToGlFilter=Un.scaleModeToGlFilter,t.wrapModeToGlAddress=Un.wrapModeToGlAddress,t.unpremultiplyAlpha=Ln.unpremultiplyAlpha,t.WebGLRenderer=kn.WebGLRenderer,t.BindGroupSystem=Nn.BindGroupSystem,t.GpuBufferSystem=Hn.GpuBufferSystem,t.GpuReadBuffer=Xn.GpuReadBuffer,t.UboBatch=Vn.UboBatch,t.GpuColorMaskSystem=zn.GpuColorMaskSystem,t.GpuDeviceSystem=Wn.GpuDeviceSystem,t.GpuEncoderSystem=Yn.GpuEncoderSystem,t.GpuStencilSystem=$n.GpuStencilSystem,t.GpuUboSystem=jn.GpuUboSystem,t.GpuUniformBatchPipe=qn.GpuUniformBatchPipe,t.PipelineSystem=Kn.PipelineSystem,t.calculateProjection=Zn.calculateProjection,t.GpuRenderTarget=Qn.GpuRenderTarget,t.GpuRenderTargetAdaptor=Jn.GpuRenderTargetAdaptor,t.GpuRenderTargetSystem=ei.GpuRenderTargetSystem,t.BindGroup=ti.BindGroup,t.GpuProgram=ri.GpuProgram,t.GpuShaderSystem=ni.GpuShaderSystem,t.WGSL_ALIGN_SIZE_DATA=ii.WGSL_ALIGN_SIZE_DATA,t.createUboElementsWGSL=ii.createUboElementsWGSL,t.createUboSyncFunctionWGSL=si.createUboSyncFunctionWGSL,t.extractAttributesFromGpuProgram=oi.extractAttributesFromGpuProgram,t.extractStructAndGroups=ai.extractStructAndGroups,t.generateArraySyncWGSL=ui.generateArraySyncWGSL,t.generateGpuLayoutGroups=li.generateGpuLayoutGroups,t.generateLayoutHash=ci.generateLayoutHash,t.removeStructAndGroupDuplicates=hi.removeStructAndGroupDuplicates,t.GpuBlendModesToPixi=di.GpuBlendModesToPixi,t.GpuStateSystem=pi.GpuStateSystem,t.GpuStencilModesToPixi=fi.GpuStencilModesToPixi,t.GpuTextureSystem=mi.GpuTextureSystem,t.gpuUploadBufferImageResource=gi.gpuUploadBufferImageResource,t.blockDataMap=_i.blockDataMap,t.gpuUploadCompressedTextureResource=_i.gpuUploadCompressedTextureResource,t.gpuUploadImageResource=xi.gpuUploadImageResource,t.gpuUploadVideoResource=bi.gpuUploadVideoResource,t.getSupportedGPUCompressedTextureFormats=yi.getSupportedGPUCompressedTextureFormats,t.GpuMipmapGenerator=vi.GpuMipmapGenerator,t.WebGPURenderer=Ti.WebGPURenderer,t.BackgroundSystem=Si.BackgroundSystem,t.BlendModePipe=Ei.BlendModePipe,t.Buffer=Ai.Buffer,t.BufferResource=Mi.BufferResource,t.BufferUsage=Pi.BufferUsage,t.fastCopy=Ri.fastCopy,t.ExtractSystem=wi.ExtractSystem,t.GenerateTextureSystem=Bi.GenerateTextureSystem,t.DRAW_MODES=Gi.DRAW_MODES,t.Geometry=Ci.Geometry,t.buildSimpleUvs=Fi.buildSimpleUvs,t.buildUvs=Fi.buildUvs,t.ensureIsBuffer=Di.ensureIsBuffer,t.getAttributeInfoFromFormat=Ii.getAttributeInfoFromFormat,t.getGeometryBounds=Oi.getGeometryBounds,t.transformVertices=Ui.transformVertices,t.InstructionSet=Li.InstructionSet,t.GlobalUniformSystem=ki.GlobalUniformSystem,t.isRenderingToScreen=Ni.isRenderingToScreen,t.RenderTarget=Hi.RenderTarget,t.RenderTargetSystem=Xi.RenderTargetSystem,t.viewportFromFrame=Vi.viewportFromFrame,t.ShaderStage=zi.ShaderStage,t.Shader=Wi.Shader,t.UNIFORM_TYPES_MAP=Yi.UNIFORM_TYPES_MAP,t.UNIFORM_TYPES_VALUES=Yi.UNIFORM_TYPES_VALUES,t.UboSystem=$i.UboSystem,t.UniformGroup=ji.UniformGroup,t.createUboSyncFunction=qi.createUboSyncFunction,t.getDefaultUniformValue=Ki.getDefaultUniformValue,t.uboSyncFunctionsSTD40=Zi.uboSyncFunctionsSTD40,t.uboSyncFunctionsWGSL=Zi.uboSyncFunctionsWGSL,t.uniformParsers=Qi.uniformParsers,t.HelloSystem=Ji.HelloSystem,t.BLEND_TO_NPM=es.BLEND_TO_NPM,t.STENCIL_MODES=es.STENCIL_MODES,t.getAdjustedBlendModeBlend=ts.getAdjustedBlendModeBlend,t.State=rs.State,t.AbstractRenderer=ns.AbstractRenderer,t.SharedRenderPipes=is.SharedRenderPipes,t.SharedSystems=is.SharedSystems,t.SystemRunner=ss.SystemRunner,t.CanvasPool=os.CanvasPool,t.CanvasPoolClass=os.CanvasPoolClass,t.DEPRECATED_SCALE_MODES=as.DEPRECATED_SCALE_MODES,t.DEPRECATED_WRAP_MODES=as.DEPRECATED_WRAP_MODES,t.MSAA_QUALITY=as.MSAA_QUALITY,t.SCALE_MODES=as.SCALE_MODES,t.WRAP_MODES=as.WRAP_MODES,t.RenderTexture=us.RenderTexture,t.BufferImageSource=ls.BufferImageSource,t.CanvasSource=cs.CanvasSource,t.CompressedSource=hs.CompressedSource,t.ImageSource=ds.ImageSource,t.TextureSource=ps.TextureSource,t.VideoSource=fs.VideoSource,t.Texture=ms.Texture,t.TextureGCSystem=gs.TextureGCSystem,t.TextureMatrix=_s.TextureMatrix,t.TexturePool=xs.TexturePool,t.TexturePoolClass=xs.TexturePoolClass,t.TextureStyle=bs.TextureStyle,t.TextureUvs=ys.TextureUvs,t.generateUID=vs.generateUID,t.getCanvasTexture=Ts.getCanvasTexture,t.hasCachedCanvasTexture=Ts.hasCachedCanvasTexture,t.getSupportedCompressedTextureFormats=Ss.getSupportedCompressedTextureFormats,t.getSupportedTextureFormats=Es.getSupportedTextureFormats,t.nonCompressedFormats=Es.nonCompressedFormats,t.autoDetectSource=As.autoDetectSource,t.resourceToTexture=As.resourceToTexture,t.textureFrom=As.textureFrom,t.createIdFromString=Ms.createIdFromString,t.parseFunctionBody=Ps.parseFunctionBody,t.ViewSystem=Rs.ViewSystem,t.RendererType=ws.RendererType,t.Bounds=Bs.Bounds,t._getGlobalBoundsRecursive=Gs._getGlobalBoundsRecursive,t.getFastGlobalBounds=Gs.getFastGlobalBounds,t._getGlobalBounds=Cs._getGlobalBounds,t.getGlobalBounds=Cs.getGlobalBounds,t.updateTransformBackwards=Cs.updateTransformBackwards,t.getLocalBounds=Fs.getLocalBounds,t.getParent=Fs.getParent,t.getGlobalRenderableBounds=Ds.getGlobalRenderableBounds,t.boundsPool=Is.boundsPool,t.matrixPool=Is.matrixPool,t.childrenHelperMixin=Os.childrenHelperMixin,t.effectsMixin=Us.effectsMixin,t.findMixin=Ls.findMixin,t.measureMixin=ks.measureMixin,t.onRenderMixin=Ns.onRenderMixin,t.sortMixin=Hs.sortMixin,t.toLocalGlobalMixin=Xs.toLocalGlobalMixin,t.Container=Vs.Container,t.UPDATE_BLEND=Vs.UPDATE_BLEND,t.UPDATE_COLOR=Vs.UPDATE_COLOR,t.UPDATE_TRANSFORM=Vs.UPDATE_TRANSFORM,t.UPDATE_VISIBLE=Vs.UPDATE_VISIBLE,t.CustomRenderPipe=zs.CustomRenderPipe,t.RenderContainer=Ws.RenderContainer,t.RenderGroup=Ys.RenderGroup,t.RenderGroupPipe=$s.RenderGroupPipe,t.RenderGroupSystem=js.RenderGroupSystem,t.assignWithIgnore=qs.assignWithIgnore,t.buildInstructions=Ks.buildInstructions,t.collectAllRenderables=Ks.collectAllRenderables,t.checkChildrenDidChange=Zs.checkChildrenDidChange,t.collectRenderGroups=Qs.collectRenderGroups,t.definedProps=Js.definedProps,t.executeInstructions=eo.executeInstructions,t.mixColors=to.mixColors,t.mixStandardAnd32BitColors=to.mixStandardAnd32BitColors,t.mixHexColors=ro.mixHexColors,t.multiplyHexColors=no.multiplyHexColors,t.updateLocalTransform=io.updateLocalTransform,t.updateRenderGroupTransform=so.updateRenderGroupTransform,t.updateRenderGroupTransforms=so.updateRenderGroupTransforms,t.updateTransformAndChildren=so.updateTransformAndChildren,t.updateWorldTransform=oo.updateWorldTransform,t.validateRenderables=ao.validateRenderables,t.GlGraphicsAdaptor=uo.GlGraphicsAdaptor,t.color32BitToUniform=lo.color32BitToUniform,t.colorToUniform=lo.colorToUniform,t.GpuGraphicsAdaptor=co.GpuGraphicsAdaptor,t.BatchableGraphics=ho.BatchableGraphics,t.buildAdaptiveBezier=po.buildAdaptiveBezier,t.buildAdaptiveQuadratic=fo.buildAdaptiveQuadratic,t.buildArc=mo.buildArc,t.buildArcTo=go.buildArcTo,t.buildArcToSvg=_o.buildArcToSvg,t.buildCircle=xo.buildCircle,t.buildEllipse=xo.buildEllipse,t.buildRoundedRectangle=xo.buildRoundedRectangle,t.buildLine=bo.buildLine,t.buildPolygon=yo.buildPolygon,t.buildRectangle=vo.buildRectangle,t.buildTriangle=To.buildTriangle,t.closePointEps=So.closePointEps,t.curveEps=So.curveEps,t.FillGradient=Eo.FillGradient,t.FillPattern=Ao.FillPattern,t.Graphics=Mo.Graphics,t.GraphicsContext=Po.GraphicsContext,t.GpuGraphicsContext=Ro.GpuGraphicsContext,t.GraphicsContextRenderData=Ro.GraphicsContextRenderData,t.GraphicsContextSystem=Ro.GraphicsContextSystem,t.GraphicsPipe=wo.GraphicsPipe,t.GraphicsPath=Bo.GraphicsPath,t.roundedShapeArc=Go.roundedShapeArc,t.roundedShapeQuadraticCurve=Go.roundedShapeQuadraticCurve,t.ShapePath=Co.ShapePath,t.SVGParser=Fo.SVGParser,t.SVGToGraphicsPath=Do.SVGToGraphicsPath,t.buildContextBatches=Io.buildContextBatches,t.shapeBuilders=Io.shapeBuilders,t.buildGeometryFromPath=Oo.buildGeometryFromPath,t.toFillStyle=Uo.toFillStyle,t.toStrokeStyle=Uo.toStrokeStyle,t.getOrientationOfPoints=Lo.getOrientationOfPoints,t.triangulateWithHoles=ko.triangulateWithHoles,t.MeshPlane=No.MeshPlane,t.PlaneGeometry=Ho.PlaneGeometry,t.MeshRope=Xo.MeshRope,t.MeshSimple=Vo.MeshSimple,t.RopeGeometry=zo.RopeGeometry,t.GlMeshAdaptor=Wo.GlMeshAdaptor,t.GpuMeshAdapter=Yo.GpuMeshAdapter,t.BatchableMesh=$o.BatchableMesh,t.getTextureDefaultMatrix=jo.getTextureDefaultMatrix,t.Mesh=qo.Mesh,t.MeshGeometry=Ko.MeshGeometry,t.MeshPipe=Zo.MeshPipe,t.AnimatedSprite=Qo.AnimatedSprite,t.NineSliceGeometry=Jo.NineSliceGeometry,t.NineSlicePlane=ea.NineSlicePlane,t.NineSliceSprite=ea.NineSliceSprite,t.NineSliceSpritePipe=ta.NineSliceSpritePipe,t.tilingBit=ra.tilingBit,t.tilingBitGl=ra.tilingBitGl,t.TilingSpriteShader=na.TilingSpriteShader,t.TilingSprite=ia.TilingSprite,t.TilingSpritePipe=sa.TilingSpritePipe,t.applyMatrix=oa.applyMatrix,t.QuadGeometry=aa.QuadGeometry,t.setPositions=ua.setPositions,t.setUvs=la.setUvs,t.BatchableSprite=ca.BatchableSprite,t.Sprite=ha.Sprite,t.SpritePipe=da.SpritePipe,t.AbstractBitmapFont=pa.AbstractBitmapFont,t.bitmapFontTextParser=fa.bitmapFontTextParser,t.bitmapFontXMLParser=ma.bitmapFontXMLParser,t.bitmapFontXMLStringParser=ga.bitmapFontXMLStringParser,t.bitmapFontCachePlugin=_a.bitmapFontCachePlugin,t.loadBitmapFont=_a.loadBitmapFont,t.BitmapFont=xa.BitmapFont,t.BitmapFontManager=ba.BitmapFontManager,t.BitmapText=ya.BitmapText,t.BitmapTextPipe=va.BitmapTextPipe,t.DynamicBitmapFont=Ta.DynamicBitmapFont,t.getBitmapTextLayout=Sa.getBitmapTextLayout,t.resolveCharacters=Ea.resolveCharacters,t.HTMLText=Aa.HTMLText,t.HTMLTextPipe=Ma.HTMLTextPipe,t.HTMLTextRenderData=Pa.HTMLTextRenderData,t.nssvg=Pa.nssvg,t.nsxhtml=Pa.nsxhtml,t.HTMLTextStyle=Ra.HTMLTextStyle,t.HTMLTextSystem=wa.HTMLTextSystem,t.extractFontFamilies=Ba.extractFontFamilies,t.FontStylePromiseCache=Ga.FontStylePromiseCache,t.getFontCss=Ga.getFontCss,t.getSVGUrl=Ca.getSVGUrl,t.getTemporaryCanvasFromImage=Fa.getTemporaryCanvasFromImage,t.loadFontAsBase64=Da.loadFontAsBase64,t.loadFontCSS=Ia.loadFontCSS,t.loadSVGImage=Oa.loadSVGImage,t.measureHtmlText=Ua.measureHtmlText,t.textStyleToCSS=La.textStyleToCSS,t.AbstractText=ka.AbstractText,t.ensureOptions=ka.ensureOptions,t.CanvasTextMetrics=Na.CanvasTextMetrics,t.CanvasTextPipe=Ha.CanvasTextPipe,t.CanvasTextSystem=Xa.CanvasTextSystem,t.fontStringFromTextStyle=Va.fontStringFromTextStyle,t.getCanvasFillStyle=za.getCanvasFillStyle,t.SdfShader=Wa.SdfShader,t.localUniformMSDFBit=Ya.localUniformMSDFBit,t.localUniformMSDFBitGl=Ya.localUniformMSDFBitGl,t.mSDFBit=$a.mSDFBit,t.mSDFBitGl=$a.mSDFBitGl,t.Text=ja.Text,t.TextStyle=qa.TextStyle,t.ensureTextStyle=Ka.ensureTextStyle,t.generateTextStyleKey=Za.generateTextStyleKey,t.getPo2TextureFromSource=Qa.getPo2TextureFromSource,t.Spritesheet=Ja.Spritesheet,t.spritesheetAsset=eu.spritesheetAsset,t.UPDATE_PRIORITY=tu.UPDATE_PRIORITY,t.Ticker=ru.Ticker,t.TickerListener=nu.TickerListener,t.detectVideoAlphaMode=iu.detectVideoAlphaMode,t.isMobile=su.isMobile,t.isSafari=ou.isSafari,t.isWebGLSupported=au.isWebGLSupported,t.isWebGPUSupported=uu.isWebGPUSupported,t.unsafeEvalSupported=lu.unsafeEvalSupported,t.getCanvasBoundingBox=cu.getCanvasBoundingBox,t.DATA_URI=hu.DATA_URI,t.EventEmitter=du,t.removeItems=pu.removeItems,t.resetUids=fu.resetUids,t.uid=fu.uid,t.updateQuadBounds=mu.updateQuadBounds,t.ViewableBuffer=gu.ViewableBuffer,t.ApplicationInitHook=_u.ApplicationInitHook,t.RendererInitHook=_u.RendererInitHook,t.deprecation=xu.deprecation,t.v8_0_0=xu.v8_0_0,t.logDebugTexture=bu.logDebugTexture,t.logRenderGroupScene=yu.logRenderGroupScene,t.logScene=yu.logScene,t.warn=vu.warn,t.NOOP=Tu.NOOP,t.Transform=Su.Transform,t.getResolutionOfUrl=Eu.getResolutionOfUrl,t.path=Au.path,t.Pool=Mu.Pool,t.BigPool=Pu.BigPool,t.PoolGroupClass=Pu.PoolGroupClass,t.VERSION=Ru.VERSION,t.sayHello=Ru.sayHello,t.earcut=wu},45517:function(e,t,r){"use strict";var n=r(81955),i=r(15685),s=r(29705),o=r(39018);r(2601);var a=r(28985),u=r(62792),l=r(26553);r(37471);var c=r(27994);r(80643);var h=r(21778),d=r(66736),p=r(58173),f=r(42181),m=r(66321);r(51851);var g=r(69474);t.groupD8=n.groupD8,t.Matrix=i.Matrix,t.DEG_TO_RAD=s.DEG_TO_RAD,t.PI_2=s.PI_2,t.RAD_TO_DEG=s.RAD_TO_DEG,t.isPow2=o.isPow2,t.log2=o.log2,t.nextPow2=o.nextPow2,t.squaredDistanceToLineSegment=a.squaredDistanceToLineSegment,t.ObservablePoint=u.ObservablePoint,t.Point=l.Point,t.pointInTriangle=c.pointInTriangle,t.Circle=h.Circle,t.Ellipse=d.Ellipse,t.Polygon=p.Polygon,t.Rectangle=f.Rectangle,t.RoundedRectangle=m.RoundedRectangle,t.Triangle=g.Triangle},15685:function(e,t,r){"use strict";var n=r(29705),i=r(26553);class s{constructor(e=1,t=0,r=0,n=1,i=0,s=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=n,this.tx=i,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,n,i,s){return this.a=e,this.b=t,this.c=r,this.d=n,this.tx=i,this.ty=s,this}toArray(e,t){this.array||(this.array=new Float32Array(9));const r=t||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,t){t=t||new i.Point;const r=e.x,n=e.y;return t.x=this.a*r+this.c*n+this.tx,t.y=this.b*r+this.d*n+this.ty,t}applyInverse(e,t){t=t||new i.Point;const r=this.a,n=this.b,s=this.c,o=this.d,a=this.tx,u=this.ty,l=1/(r*o+s*-n),c=e.x,h=e.y;return t.x=o*l*c+-s*l*h+(u*s-a*o)*l,t.y=r*l*h+-n*l*c+(-u*r+a*n)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){const t=Math.cos(e),r=Math.sin(e),n=this.a,i=this.c,s=this.tx;return this.a=n*t-this.b*r,this.b=n*r+this.b*t,this.c=i*t-this.d*r,this.d=i*r+this.d*t,this.tx=s*t-this.ty*r,this.ty=s*r+this.ty*t,this}append(e){const t=this.a,r=this.b,n=this.c,i=this.d;return this.a=e.a*t+e.b*n,this.b=e.a*r+e.b*i,this.c=e.c*t+e.d*n,this.d=e.c*r+e.d*i,this.tx=e.tx*t+e.ty*n+this.tx,this.ty=e.tx*r+e.ty*i+this.ty,this}appendFrom(e,t){const r=e.a,n=e.b,i=e.c,s=e.d,o=e.tx,a=e.ty,u=t.a,l=t.b,c=t.c,h=t.d;return this.a=r*u+n*c,this.b=r*l+n*h,this.c=i*u+s*c,this.d=i*l+s*h,this.tx=o*u+a*c+t.tx,this.ty=o*l+a*h+t.ty,this}setTransform(e,t,r,n,i,s,o,a,u){return this.a=Math.cos(o+u)*i,this.b=Math.sin(o+u)*i,this.c=-Math.sin(o-a)*s,this.d=Math.cos(o-a)*s,this.tx=e-(r*this.a+n*this.c),this.ty=t-(r*this.b+n*this.d),this}prepend(e){const t=this.tx;if(1!==e.a||0!==e.b||0!==e.c||1!==e.d){const t=this.a,r=this.c;this.a=t*e.a+this.b*e.c,this.b=t*e.b+this.b*e.d,this.c=r*e.a+this.d*e.c,this.d=r*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){const t=this.a,r=this.b,i=this.c,s=this.d,o=e.pivot,a=-Math.atan2(-i,s),u=Math.atan2(r,t),l=Math.abs(a+u);return l<1e-5||Math.abs(n.PI_2-l)<1e-5?(e.rotation=u,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=u),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(i*i+s*s),e.position.x=this.tx+(o.x*t+o.y*i),e.position.y=this.ty+(o.x*r+o.y*s),e}invert(){const e=this.a,t=this.b,r=this.c,n=this.d,i=this.tx,s=e*n-t*r;return this.a=n/s,this.b=-t/s,this.c=-r/s,this.d=e/s,this.tx=(r*this.ty-n*i)/s,this.ty=-(e*this.ty-t*i)/s,this}isIdentity(){return 1===this.a&&0===this.b&&0===this.c&&1===this.d&&0===this.tx&&0===this.ty}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new s;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return a.identity()}static get shared(){return o.identity()}}const o=new s,a=new s;t.Matrix=s},81955:function(e,t,r){"use strict";var n=r(15685);const i=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],s=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],o=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],a=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],u=[],l=[],c=Math.sign;!function(){for(let e=0;e<16;e++){const t=[];u.push(t);for(let r=0;r<16;r++){const n=c(i[e]*i[r]+o[e]*s[r]),u=c(s[e]*i[r]+a[e]*s[r]),l=c(i[e]*o[r]+o[e]*a[r]),h=c(s[e]*o[r]+a[e]*a[r]);for(let e=0;e<16;e++)if(i[e]===n&&s[e]===u&&o[e]===l&&a[e]===h){t.push(e);break}}}for(let e=0;e<16;e++){const t=new n.Matrix;t.set(i[e],s[e],o[e],a[e],0,0),l.push(t)}}();const h={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:e=>i[e],uY:e=>s[e],vX:e=>o[e],vY:e=>a[e],inv:e=>8&e?15&e:7&-e,add:(e,t)=>u[e][t],sub:(e,t)=>u[e][h.inv(t)],rotate180:e=>4^e,isVertical:e=>2==(3&e),byDirection:(e,t)=>2*Math.abs(e)<=Math.abs(t)?t>=0?h.S:h.N:2*Math.abs(t)<=Math.abs(e)?e>0?h.E:h.W:t>0?e>0?h.SE:h.SW:e>0?h.NE:h.NW,matrixAppendRotationInv:(e,t,r=0,n=0)=>{const i=l[h.inv(t)];i.tx=r,i.ty=n,e.append(i)}};t.groupD8=h},2601:function(){},29705:function(e,t){"use strict";const r=2*Math.PI,n=180/Math.PI,i=Math.PI/180;t.DEG_TO_RAD=i,t.PI_2=r,t.RAD_TO_DEG=n},39018:function(e,t){"use strict";t.isPow2=function(e){return!(e&e-1||!e)},t.log2=function(e){let t=(e>65535?1:0)<<4,r=((e>>>=t)>255?1:0)<<3;return t|=r,r=((e>>>=r)>15?1:0)<<2,t|=r,r=((e>>>=r)>3?1:0)<<1,t|=r,t|(e>>>=r)>>1},t.nextPow2=function(e){return e+=0===e?1:0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,(e|=e>>>16)+1}},28985:function(e,t){"use strict";t.squaredDistanceToLineSegment=function(e,t,r,n,i,s){const o=i-r,a=s-n,u=o*o+a*a;let l,c,h=-1;0!==u&&(h=((e-r)*o+(t-n)*a)/u),h<0?(l=r,c=n):h>1?(l=i,c=s):(l=r+h*o,c=n+h*a);const d=e-l,p=t-c;return d*d+p*p}},62792:function(e,t){"use strict";class r{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return this._x===e&&this._y===t||(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return this._x===e.x&&this._y===e.y||(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=0 y=0 scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}t.ObservablePoint=r},26553:function(e,t){"use strict";class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return n.x=0,n.y=0,n}}const n=new r;t.Point=r},37471:function(){},80643:function(){},27994:function(e,t){"use strict";t.pointInTriangle=function(e,t,r,n,i,s,o,a){const u=o-r,l=a-n,c=i-r,h=s-n,d=e-r,p=t-n,f=u*u+l*l,m=u*c+l*h,g=u*d+l*p,_=c*c+h*h,x=c*d+h*p,b=1/(f*_-m*m),y=(_*g-m*x)*b,v=(f*x-m*g)*b;return y>=0&&v>=0&&y+v<1}},21778:function(e,t,r){"use strict";var n=r(42181);class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;const r=this.radius*this.radius;let n=this.x-e,i=this.y-t;return n*=n,i*=i,n+i<=r}strokeContains(e,t,r){if(0===this.radius)return!1;const n=this.x-e,i=this.y-t,s=this.radius,o=r/2,a=Math.sqrt(n*n+i*i);return as-o}getBounds(e){return(e=e||new n.Rectangle).x=this.x-this.radius,e.y=this.y-this.radius,e.width=2*this.radius,e.height=2*this.radius,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}t.Circle=i},66736:function(e,t,r){"use strict";var n=r(42181);class i{constructor(e=0,t=0,r=0,n=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=n}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,n=(t-this.y)/this.halfHeight;return r*=r,n*=n,r+n<=1}strokeContains(e,t,r){const{halfWidth:n,halfHeight:i}=this;if(n<=0||i<=0)return!1;const s=r/2,o=n-s,a=i-s,u=n+s,l=i+s,c=e-this.x,h=t-this.y;return c*c/(o*o)+h*h/(a*a)>1&&c*c/(u*u)+h*h/(l*l)<=1}getBounds(){return new n.Rectangle(this.x-this.halfWidth,this.y-this.halfHeight,2*this.halfWidth,2*this.halfHeight)}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}t.Ellipse=i},58173:function(e,t,r){"use strict";var n=r(28985),i=r(42181);class s{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if("number"!=typeof t[0]){const e=[];for(let r=0,n=t.length;rt!=u>t&&e<(t-o)/(u-o)*(a-n)+n&&(r=!r)}return r}strokeContains(e,t,r){const i=r/2,s=i*i,{points:o}=this,a=o.length-(this.closePath?0:2);for(let r=0;rn?i:n,s=ao?a:o}return e.x=r,e.width=n-r,e.y=s,e.height=o-s,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce(((e,t)=>`${e}, ${t}`),"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}t.Polygon=s},42181:function(e,t,r){"use strict";var n=r(26553);const i=[new n.Point,new n.Point,new n.Point,new n.Point];class s{constructor(e=0,t=0,r=0,n=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(r),this.height=Number(n)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new s(0,0,0,0)}clone(){return new s(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return!(this.width<=0||this.height<=0)&&(e>=this.x&&e=this.y&&t=s-r/2&&e<=s+n+r/2&&t>=o-r/2&&t<=o+i+r/2&&!(e>s+r/2&&eo+r/2&&te.right?e.right:this.right)<=t)return!1;const r=this.ye.bottom?e.bottom:this.bottom)>r}const r=this.left,n=this.right,s=this.top,o=this.bottom;if(n<=r||o<=s)return!1;const a=i[0].set(e.left,e.top),u=i[1].set(e.left,e.bottom),l=i[2].set(e.right,e.top),c=i[3].set(e.right,e.bottom);if(l.x<=a.x||u.y<=a.y)return!1;const h=Math.sign(t.a*t.d-t.b*t.c);if(0===h)return!1;if(t.apply(a,a),t.apply(u,u),t.apply(l,l),t.apply(c,c),Math.max(a.x,u.x,l.x,c.x)<=r||Math.min(a.x,u.x,l.x,c.x)>=n||Math.max(a.y,u.y,l.y,c.y)<=s||Math.min(a.y,u.y,l.y,c.y)>=o)return!1;const d=h*(u.y-a.y),p=h*(a.x-u.x),f=d*r+p*s,m=d*n+p*s,g=d*r+p*o,_=d*n+p*o;if(Math.max(f,m,g,_)<=d*a.x+p*a.y||Math.min(f,m,g,_)>=d*c.x+p*c.y)return!1;const x=h*(a.y-l.y),b=h*(l.x-a.x),y=x*r+b*s,v=x*n+b*s,T=x*r+b*o,S=x*n+b*o;return!(Math.max(y,v,T,S)<=x*a.x+b*a.y||Math.min(y,v,T,S)>=x*c.x+b*c.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=2*e,this.height+=2*t,this}fit(e){const t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),n=Math.max(this.y,e.y),i=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=n,this.height=Math.max(i-n,0),this}ceil(e=1,t=.001){const r=Math.ceil((this.x+this.width-t)*e)/e,n=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=n-this.y,this}enlarge(e){const t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),n=Math.min(this.y,e.y),i=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=n,this.height=i-n,this}getBounds(e){return(e=e||new s).copyFrom(this),e}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}t.Rectangle=s},66321:function(e,t,r){"use strict";var n=r(42181);const i=(e,t,r,n,i,s)=>{const o=e-r,a=t-n,u=Math.sqrt(o*o+a*a);return u>=i-s&&u<=i+s};class s{constructor(e=0,t=0,r=0,n=0,i=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=n,this.radius=i}getBounds(e){return(e=e||new n.Rectangle).x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new s(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){const r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let n=e-(this.x+r),i=t-(this.y+r);const s=r*r;if(n*n+i*i<=s)return!0;if(n=e-(this.x+this.width-r),n*n+i*i<=s)return!0;if(i=t-(this.y+this.height-r),n*n+i*i<=s)return!0;if(n=e-(this.x+r),n*n+i*i<=s)return!0}return!1}strokeContains(e,t,r){const{x:n,y:s,width:o,height:a,radius:u}=this,l=r/2,c=n+u,h=s+u,d=n+o,p=s+a;return(e>=n-l&&e<=n+l||e>=d-l&&e<=d+l)&&t>=h&&t<=h+(a-2*u)||((t>=s-l&&t<=s+l||t>=p-l&&t<=p+l)&&e>=c&&e<=c+(o-2*u)||(ed-u&&td-u&&t>p-u&&i(e,t,d-u,p-u,u,l)||ep-u&&i(e,t,c,p-u,u,l)))}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}t.RoundedRectangle=s},51851:function(){},69474:function(e,t,r){"use strict";var n=r(28985),i=r(42181);class s{constructor(e=0,t=0,r=0,n=0,i=0,s=0){this.type="triangle",this.x=e,this.y=t,this.x2=r,this.y2=n,this.x3=i,this.y3=s}contains(e,t){const r=(this.x-this.x3)*(t-this.y3)-(this.y-this.y3)*(e-this.x3),n=(this.x2-this.x)*(t-this.y)-(this.y2-this.y)*(e-this.x);if(r<0!=n<0&&0!==r&&0!==n)return!1;const i=(this.x3-this.x2)*(t-this.y2)-(this.y3-this.y2)*(e-this.x2);return 0===i||i<0==r+n<=0}strokeContains(e,t,r){const i=r/2,s=i*i,{x:o,x2:a,x3:u,y:l,y2:c,y3:h}=this;return n.squaredDistanceToLineSegment(e,t,o,l,a,h)<=s||n.squaredDistanceToLineSegment(e,t,a,c,u,h)<=s||n.squaredDistanceToLineSegment(e,t,u,h,o,l)<=s}clone(){return new s(this.x,this.y,this.x2,this.y2,this.x3,this.y3)}copyFrom(e){return this.x=e.x,this.y=e.y,this.x2=e.x2,this.y2=e.y2,this.x3=e.x3,this.y3=e.y3,this}copyTo(e){return e.copyFrom(this),e}getBounds(e){e=e||new i.Rectangle;const t=Math.min(this.x,this.x2,this.x3),r=Math.max(this.x,this.x2,this.x3),n=Math.min(this.y,this.y2,this.y3),s=Math.max(this.y,this.y2,this.y3);return e.x=t,e.y=n,e.width=r-t,e.height=s-n,e}}t.Triangle=s},73940:function(e,t,r){"use strict";var n=r(74599),i=r(35292),s=r(63983);const o=class e{constructor(t){this._tick=()=>{this.timeout=setTimeout(this._processQueue,0)},this._processQueue=()=>{const{queue:t}=this;let r=0;for(;t.length&&r{this.queue.length?(this.resolves.push(e),this.dedupeQueue(),s.Ticker.system.addOnce(this._tick,this,i.UPDATE_PRIORITY.UTILITY)):e()}))}dedupeQueue(){const e=Object.create(null);let t=0;for(let r=0;r{e.source?t.push(e.source):t.push(e.texture.source)}))}resolveGraphicsContextQueueItem(e){this.renderer.graphicsContext.getContextRenderData(e);const{instructions:t}=e;for(const e of t){if("texture"===e.action){const{image:t}=e.data;return t.source}if("fill"===e.action){const{texture:t}=e.data.style;return t.source}}return null}}t.PrepareQueue=f},72780:function(e,t,r){"use strict";var n=r(17073),i=r(26116);class s extends i.PrepareUpload{destroy(){clearTimeout(this.timeout),this.renderer=null,this.queue=null,this.resolves=null}}s.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"prepare"},t.PrepareSystem=s},26116:function(e,t,r){"use strict";var n=r(27666),i=r(90537),s=r(62434),o=r(80265),a=r(54125),u=r(3422);class l extends u.PrepareQueue{uploadQueueItem(e){e instanceof n.TextureSource?this.uploadTextureSource(e):e instanceof s.Text?this.uploadText(e):e instanceof a.HTMLText?this.uploadHTMLText(e):e instanceof o.BitmapText?this.uploadBitmapText(e):e instanceof i.GraphicsContext&&this.uploadGraphicsContext(e)}uploadTextureSource(e){this.renderer.texture.initSource(e)}uploadText(e){this.renderer.renderPipes.text.initGpuText(e)}uploadBitmapText(e){this.renderer.renderPipes.bitmapText.initGpuText(e)}uploadHTMLText(e){this.renderer.renderPipes.htmlText.initGpuText(e)}uploadGraphicsContext(e){this.renderer.graphicsContext.getContextRenderData(e);const{instructions:t}=e;for(const e of t)if("texture"===e.action){const{image:t}=e.data;this.uploadTextureSource(t.source)}else if("fill"===e.action){const{texture:t}=e.data.style;this.uploadTextureSource(t.source)}return null}}t.PrepareUpload=l},79878:function(e,t,r){"use strict";var n=r(73940),i=r(3422),s=r(72780),o=r(26116);t.PrepareBase=n.PrepareBase,t.PrepareQueue=i.PrepareQueue,t.PrepareSystem=s.PrepareSystem,t.PrepareUpload=o.PrepareUpload},58578:function(e,t,r){"use strict";var n=r(17073),i=r(21380),s=r(84215),o=r(19209),a=r(4116),u=r(9488),l=r(97505),c=r(55141),h=r(1766);class d{constructor(){this._didUpload=!1,this._tempState=c.State.for2d()}init(e){const t=h.getMaxTexturesPerBatch(),r=i.compileHighShaderGlProgram({name:"batch",bits:[s.colorBitGl,o.generateTextureBatchBitGl(t),a.roundPixelsBitGl]});this._shader=new l.Shader({glProgram:r,resources:{batchSamplers:u.getBatchSamplersUniformGroup(t)}}),e.renderer.runners.contextChange.add(this)}contextChange(){this._didUpload=!1}start(e,t){const r=e.renderer;r.shader.bind(this._shader,this._didUpload),r.shader.updateUniformGroup(r.globalUniforms.uniformGroup),r.geometry.bind(t,this._shader.glProgram)}execute(e,t){const r=e.renderer;this._didUpload=!0,this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);const n=t.textures.textures;for(let e=0;e0&&(t+="\nelse "),r>>0;return o[r]||function(e,t){const r={};let u=0;a||(a=s.getMaxTexturesPerBatch());for(let t=0;tthis.attributeBuffer.size&&this._resizeAttributeBuffer(4*this.attributeSize),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);const s=this.attributeBuffer.float32View,a=this.attributeBuffer.uint32View,h=this.indexBuffer;let d=this._batchIndexSize,p=this._batchIndexStart,f="startBatch",m=this._batchPool[this._batchPoolIndex++]||new l;const g=this._maxTextures;for(let n=this.elementStart;n=g||y)&&(this._finishBatch(m,p,d-p,r,i,e,f),f="renderBatch",p=d,i=b,r=this._textureBatchPool[this._textureBatchPoolIndex++]||new u.BatchTextureArray,r.clear(),m=this._batchPool[this._batchPoolIndex++]||new l,++c),_.textureId=x._textureBindLocation=r.count,r.ids[x.uid]=r.count,r.textures[r.count++]=x,_.batch=m,d+=_.indexSize,_.packAttributes(s,a,_.location,_.textureId),_.packIndex(h,_.indexStart,_.location/this._vertexSize)):(_.textureId=x._textureBindLocation,d+=_.indexSize,_.packAttributes(s,a,_.location,_.textureId),_.packIndex(h,_.indexStart,_.location/this._vertexSize),_.batch=m)}r.count>0&&(this._finishBatch(m,p,d-p,r,i,e,f),p=d,++c),this.elementStart=this.elementSize,this._batchIndexStart=p,this._batchIndexSize=d}_finishBatch(e,t,r,n,i,s,o){e.gpuBindGroup=null,e.action=o,e.batcher=this,e.textures=n,e.blendMode=i,e.start=t,e.size=r,++c,s.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){4*e<=this.attributeBuffer.size||this._resizeAttributeBuffer(4*e)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){const t=Math.max(e,2*this.attributeBuffer.size),r=new i.ViewableBuffer(t);s.fastCopy(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){const t=this.indexBuffer;let r=Math.max(e,1.5*t.length);r+=r%2;const n=r>65535?new Uint32Array(r):new Uint16Array(r);if(n.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let e=0;e(l.has(e)||l.set(e,c++),l.get(e)))).sort(((e,t)=>e-t)).join("-")+e.vertex+e.fragment}function d(e,t,r){const s=i.compileHooks(e),o=i.compileHooks(t);return r.forEach((e=>{n.addBits(e.vertex,s,e.name),n.addBits(e.fragment,o,e.name)})),{vertex:a.injectBits(e,s),fragment:a.injectBits(t,o)}}t.compileHighShader=function({template:e,bits:t}){const r=h(e,t);if(u[r])return u[r];const{vertex:n,fragment:i}=function(e,t){const r=t.map((e=>e.vertex)).filter((e=>!!e)),n=t.map((e=>e.fragment)).filter((e=>!!e));let i=s.compileInputs(r,e.vertex,!0);i=o.compileOutputs(r,i);const a=s.compileInputs(n,e.fragment,!0);return{vertex:i,fragment:a}}(e,t);return u[r]=d(n,i,t),u[r]},t.compileHighShaderGl=function({template:e,bits:t}){const r=h(e,t);return u[r]||(u[r]=d(e.vertex,e.fragment,t)),u[r]}},75817:function(){},58674:function(e,t,r){"use strict";var n=r(95190);t.addBits=function(e,t,r){if(e)for(const i in e){const s=t[i.toLocaleLowerCase()];if(s){let t=e[i];"header"===i&&(t=t.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),r&&s.push(`//----${r}----//`),s.push(t)}else n.warn(`${i} placement hook does not exist in shader`)}}},15183:function(e,t){"use strict";const r=/\{\{(.*?)\}\}/g;t.compileHooks=function(e){const t={};return(e.match(r)?.map((e=>e.replace(/[{()}]/g,"")))??[]).forEach((e=>{t[e]=[]})),t},t.findHooksRx=r},95233:function(e,t){"use strict";function r(e,t){let r;const n=/@in\s+([^;]+);/g;for(;null!==(r=n.exec(e));)t.push(r[1])}t.compileInputs=function(e,t,n=!1){const i=[];r(t,i),e.forEach((e=>{e.header&&r(e.header,i)}));const s=i;n&&s.sort();const o=s.map(((e,t)=>` @location(${t}) ${e},`)).join("\n");let a=t.replace(/@in\s+[^;]+;\s*/g,"");return a=a.replace("{{in}}",`\n${o}\n`),a}},98319:function(e,t){"use strict";function r(e,t){let r;const n=/@out\s+([^;]+);/g;for(;null!==(r=n.exec(e));)t.push(r[1])}t.compileOutputs=function(e,t){const n=[];r(t,n),e.forEach((e=>{e.header&&r(e.header,n)}));let i=0;const s=n.sort().map((e=>e.indexOf("builtin")>-1?e:`@location(${i++}) ${e}`)).join(",\n"),o=n.sort().map((e=>{return` var ${t=e,t.replace(/@.*?\s+/g,"")};`;var t})).join("\n"),a=`return VSOutput(\n ${n.sort().map((e=>` ${function(e){const t=/\b(\w+)\s*:/g.exec(e);return t?t[1]:""}(e)}`)).join(",\n")});`;let u=t.replace(/@out\s+[^;]+;\s*/g,"");return u=u.replace("{{struct}}",`\n${s}\n`),u=u.replace("{{start}}",`\n${o}\n`),u=u.replace("{{return}}",`\n${a}\n`),u}},11206:function(e,t){"use strict";t.formatShader=function(e){const t=e.split(/([\n{}])/g).map((e=>e.trim())).filter((e=>e.length));let r="";return t.map((e=>{let t=r+e;return"{"===e?r+=" ":"}"===e&&(r=r.substr(0,r.length-4),t=r+e),t})).join("\n")}},60079:function(e,t){"use strict";t.injectBits=function(e,t){let r=e;for(const e in t){const n=t[e];r=n.join("\n").length?r.replace(`{{${e}}}`,`//-----${e} START-----//\n${n.join("\n")}\n//----${e} FINISH----//`):r.replace(`{{${e}}}`,"")}return r}},59615:function(e,t){"use strict";t.fragmentGPUTemplate="\n @in vUV : vec2;\n @in vColor : vec4;\n \n {{header}}\n\n @fragment\n fn main(\n {{in}}\n ) -> @location(0) vec4 {\n \n {{start}}\n\n var outColor:vec4;\n \n {{main}}\n \n return outColor * vColor;\n };\n",t.fragmentGlTemplate="\n \n in vec4 vColor;\n in vec2 vUV;\n\n out vec4 finalColor;\n\n {{header}}\n\n void main(void) {\n \n {{start}}\n\n vec4 outColor;\n \n {{main}}\n \n finalColor = outColor * vColor;\n }\n",t.vertexGPUTemplate="\n @in aPosition: vec2;\n @in aUV: vec2;\n\n @out @builtin(position) vPosition: vec4;\n @out vUV : vec2;\n @out vColor : vec4;\n\n {{header}}\n\n struct VSOutput {\n {{struct}}\n };\n\n @vertex\n fn main( {{in}} ) -> VSOutput {\n\n var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;\n var modelMatrix = mat3x3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n var position = aPosition;\n var uv = aUV;\n\n {{start}}\n \n vColor = vec4(1., 1., 1., 1.);\n\n {{main}}\n\n vUV = uv;\n\n var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n vPosition = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n \n vColor *= globalUniforms.uWorldColorAlpha;\n\n {{end}}\n\n {{return}}\n };\n",t.vertexGlTemplate="\n in vec2 aPosition;\n in vec2 aUV;\n\n out vec4 vColor;\n out vec2 vUV;\n\n {{header}}\n\n void main(void){\n\n mat3 worldTransformMatrix = uWorldTransformMatrix;\n mat3 modelMatrix = mat3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n vec2 position = aPosition;\n vec2 uv = aUV;\n \n {{start}}\n \n vColor = vec4(1.);\n \n {{main}}\n \n vUV = uv;\n \n mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n\n vColor *= uWorldColorAlpha;\n\n {{end}}\n }\n"},84215:function(e,t){"use strict";const r={name:"color-bit",vertex:{header:"\n @in aColor: vec4;\n ",main:"\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n "}},n={name:"color-bit",vertex:{header:"\n in vec4 aColor;\n ",main:"\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n "}};t.colorBit=r,t.colorBitGl=n},19209:function(e,t,r){"use strict";var n=r(1766);const i={};function s(e){const t=[];if(1===e)t.push("@group(1) @binding(0) var textureSource1: texture_2d;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let r=0;for(let n=0;n;`),t.push(`@group(1) @binding(${r++}) var textureSampler${n+1}: sampler;`)}return t.join("\n")}function o(e){const t=[];if(1===e)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let r=0;r0&&t.push("else"),r;\n @out @interpolate(flat) vTextureId : u32;\n ",main:"\n vTextureId = aTextureIdAndRound.y;\n ",end:"\n if(aTextureIdAndRound.x == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "},fragment:{header:`\n @in @interpolate(flat) vTextureId: u32;\n \n ${s(n.getMaxTexturesPerBatch())}\n `,main:`\n var uvDx = dpdx(vUV);\n var uvDy = dpdy(vUV);\n \n ${o(n.getMaxTexturesPerBatch())}\n `}}),i[e]},t.generateTextureBatchBitGl=function(e){return a[e]||(a[e]={name:"texture-batch-bit",vertex:{header:"\n in vec2 aTextureIdAndRound;\n out float vTextureId;\n \n ",main:"\n vTextureId = aTextureIdAndRound.y;\n ",end:"\n if(aTextureIdAndRound.x == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "},fragment:{header:`\n in float vTextureId;\n \n uniform sampler2D uTextures[${e}];\n \n `,main:`\n \n ${u(n.getMaxTexturesPerBatch())}\n `}}),a[e]}},39320:function(e,t){"use strict";const r={name:"global-uniforms-bit",vertex:{header:"\n struct GlobalUniforms {\n uProjectionMatrix:mat3x3,\n uWorldTransformMatrix:mat3x3,\n uWorldColorAlpha: vec4,\n uResolution: vec2,\n }\n\n @group(0) @binding(0) var globalUniforms : GlobalUniforms;\n "}},n={name:"global-uniforms-ubo-bit",vertex:{header:"\n uniform globalUniforms {\n mat3 uProjectionMatrix;\n mat3 uWorldTransformMatrix;\n vec4 uWorldColorAlpha;\n vec2 uResolution;\n };\n "}},i={name:"global-uniforms-bit",vertex:{header:"\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform vec4 uWorldColorAlpha;\n uniform vec2 uResolution;\n "}};t.globalUniformsBit=r,t.globalUniformsBitGl=i,t.globalUniformsUBOBitGl=n},74813:function(e,t){"use strict";const r={name:"local-uniform-bit",vertex:{header:"\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3,\n uColor:vec4,\n uRound:f32,\n }\n\n @group(1) @binding(0) var localUniforms : LocalUniforms;\n ",main:"\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n ",end:"\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "}},n={...r,vertex:{...r.vertex,header:r.vertex.header.replace("group(1)","group(2)")}},i={name:"local-uniform-bit",vertex:{header:"\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n ",main:"\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n ",end:"\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "}};t.localUniformBit=r,t.localUniformBitGl=i,t.localUniformBitGroup2=n},4116:function(e,t){"use strict";const r={name:"round-pixels-bit",vertex:{header:"\n fn roundPixels(position: vec2, targetSize: vec2) -> vec2 \n {\n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n "}},n={name:"round-pixels-bit",vertex:{header:" \n vec2 roundPixels(vec2 position, vec2 targetSize)\n { \n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n "}};t.roundPixelsBit=r,t.roundPixelsBitGl=n},36114:function(e,t){"use strict";const r={name:"texture-bit",vertex:{header:"\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3,\n }\n\n @group(2) @binding(2) var textureUniforms : TextureUniforms;\n ",main:"\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n "},fragment:{header:"\n @group(2) @binding(0) var uTexture: texture_2d;\n @group(2) @binding(1) var uSampler: sampler;\n\n \n ",main:"\n outColor = textureSample(uTexture, uSampler, vUV);\n "}},n={name:"texture-bit",vertex:{header:"\n uniform mat3 uTextureMatrix;\n ",main:"\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n "},fragment:{header:"\n uniform sampler2D uTexture;\n\n \n ",main:"\n outColor = texture(uTexture, vUV);\n "}};t.textureBit=r,t.textureBitGl=n},12878:function(e,t,r){"use strict";var n=r(58578),i=r(51719),s=r(1766),o=r(92247),a=r(93154),u=r(72459),l=r(33388),c=r(9803),h=r(87866),d=r(33961),p=r(74404),f=r(21380),m=r(42403);r(75817);var g=r(58674),_=r(15183),x=r(95233),b=r(98319),y=r(11206),v=r(60079),T=r(59615),S=r(84215),E=r(19209),A=r(39320),M=r(74813),P=r(4116),R=r(36114),w=r(48718),B=r(14673),G=r(50020),C=r(62579),F=r(81480),D=r(32258),I=r(99022),O=r(33648),U=r(38782),L=r(17957),k=r(4722),N=r(85520),H=r(3839),X=r(7540),V=r(32985),z=r(36351);r(39711),r(39996);var W=r(96307),Y=r(90493),$=r(42026),j=r(57066),q=r(79211),K=r(45769),Z=r(50264),Q=r(4308),J=r(9779),ee=r(54346);r(26156);var te=r(65706),re=r(9488),ne=r(62991),ie=r(94230),se=r(2071),oe=r(53864),ae=r(49245),ue=r(27124),le=r(32377),ce=r(71820),he=r(61913),de=r(3480),pe=r(3871),fe=r(51525),me=r(51895),ge=r(6887),_e=r(19336),xe=r(86380),be=r(44135),ye=r(9778),ve=r(4023),Te=r(77944),Se=r(48142),Ee=r(3553),Ae=r(98121),Me=r(90708),Pe=r(40074),Re=r(66171),we=r(8279),Be=r(93199),Ge=r(40655),Ce=r(30290),Fe=r(52470),De=r(62123);r(96157);var Ie=r(35416),Oe=r(82953),Ue=r(75705),Le=r(53321),ke=r(88588),Ne=r(84157),He=r(5020),Xe=r(51727),Ve=r(16310),ze=r(59758),We=r(7358),Ye=r(61435),$e=r(98826),je=r(71901),qe=r(40736),Ke=r(30679),Ze=r(61265),Qe=r(65586),Je=r(32920),et=r(96150),tt=r(4812),rt=r(93812),nt=r(50967),it=r(91428),st=r(86136),ot=r(9143),at=r(24628),ut=r(83582);r(1805);var lt=r(50543),ct=r(25947),ht=r(41036),dt=r(84214),pt=r(29926),ft=r(16126),mt=r(1513),gt=r(80863),_t=r(47242),xt=r(79320),bt=r(53299),yt=r(81242),vt=r(36826),Tt=r(56042);r(83040);var St=r(97394),Et=r(1956),At=r(37135),Mt=r(2766),Pt=r(43213),Rt=r(87929),wt=r(69264),Bt=r(6852),Gt=r(69862),Ct=r(21839),Ft=r(1793),Dt=r(18919),It=r(70766),Ot=r(95041),Ut=r(42310),Lt=r(80163),kt=r(33829),Nt=r(44307),Ht=r(84026),Xt=r(52783),Vt=r(14740),zt=r(54132);r(37758);var Wt=r(31540);r(16085),r(42725);var Yt=r(54572),$t=r(11987),jt=r(33764),qt=r(16952),Kt=r(3695),Zt=r(19450),Qt=r(97505),Jt=r(21384),er=r(6864),tr=r(65518),rr=r(1021),nr=r(90887),ir=r(63981),sr=r(46876),or=r(22334),ar=r(56445),ur=r(254),lr=r(55141),cr=r(95931),hr=r(62856);r(79480);var dr=r(17627);r(17885);var pr=r(60932),fr=r(6121);r(76349);var mr=r(32064),gr=r(4720),_r=r(91525),xr=r(68651),br=r(75813),yr=r(27666),vr=r(62480),Tr=r(84463),Sr=r(95224),Er=r(94058),Ar=r(38759),Mr=r(44174),Pr=r(92756),Rr=r(95026),wr=r(40190),Br=r(34155),Gr=r(55484),Cr=r(39394),Fr=r(6066),Dr=r(60527);r(27571);var Ir=r(80177),Or=r(2559);t.GlBatchAdaptor=n.GlBatchAdaptor,t.checkMaxIfStatementsInShader=i.checkMaxIfStatementsInShader,t.getMaxTexturesPerBatch=s.getMaxTexturesPerBatch,t.BatchGeometry=o.BatchGeometry,t.generateGPULayout=a.generateGPULayout,t.generateLayout=u.generateLayout,t.getTextureBatchBindGroup=l.getTextureBatchBindGroup,t.GpuBatchAdaptor=c.GpuBatchAdaptor,t.Batch=h.Batch,t.Batcher=h.Batcher,t.BatcherPipe=d.BatcherPipe,t.BatchTextureArray=p.BatchTextureArray,t.compileHighShaderGlProgram=f.compileHighShaderGlProgram,t.compileHighShaderGpuProgram=f.compileHighShaderGpuProgram,t.compileHighShader=m.compileHighShader,t.compileHighShaderGl=m.compileHighShaderGl,t.addBits=g.addBits,t.compileHooks=_.compileHooks,t.findHooksRx=_.findHooksRx,t.compileInputs=x.compileInputs,t.compileOutputs=b.compileOutputs,t.formatShader=y.formatShader,t.injectBits=v.injectBits,t.fragmentGPUTemplate=T.fragmentGPUTemplate,t.fragmentGlTemplate=T.fragmentGlTemplate,t.vertexGPUTemplate=T.vertexGPUTemplate,t.vertexGlTemplate=T.vertexGlTemplate,t.colorBit=S.colorBit,t.colorBitGl=S.colorBitGl,t.generateTextureBatchBit=E.generateTextureBatchBit,t.generateTextureBatchBitGl=E.generateTextureBatchBitGl,t.globalUniformsBit=A.globalUniformsBit,t.globalUniformsBitGl=A.globalUniformsBitGl,t.globalUniformsUBOBitGl=A.globalUniformsUBOBitGl,t.localUniformBit=M.localUniformBit,t.localUniformBitGl=M.localUniformBitGl,t.localUniformBitGroup2=M.localUniformBitGroup2,t.roundPixelsBit=P.roundPixelsBit,t.roundPixelsBitGl=P.roundPixelsBitGl,t.textureBit=R.textureBit,t.textureBitGl=R.textureBitGl,t.AlphaMask=w.AlphaMask,t.AlphaMaskPipe=B.AlphaMaskPipe,t.ColorMask=G.ColorMask,t.ColorMaskPipe=C.ColorMaskPipe,t.MaskEffectManager=F.MaskEffectManager,t.MaskEffectManagerClass=F.MaskEffectManagerClass,t.ScissorMask=D.ScissorMask,t.StencilMask=I.StencilMask,t.StencilMaskPipe=O.StencilMaskPipe,t.addMaskBounds=U.addMaskBounds,t.addMaskLocalBounds=L.addMaskLocalBounds,t.getMatrixRelativeToParent=L.getMatrixRelativeToParent,t.autoDetectRenderer=k.autoDetectRenderer,t.BUFFER_TYPE=N.BUFFER_TYPE,t.GlBuffer=H.GlBuffer,t.GlBufferSystem=X.GlBufferSystem,t.CLEAR=V.CLEAR,t.GlContextSystem=z.GlContextSystem,t.GlGeometrySystem=W.GlGeometrySystem,t.getGlTypeFromFormat=Y.getGlTypeFromFormat,t.GlBackBufferSystem=$.GlBackBufferSystem,t.GlColorMaskSystem=j.GlColorMaskSystem,t.GlEncoderSystem=q.GlEncoderSystem,t.GlRenderTarget=K.GlRenderTarget,t.GlStencilSystem=Z.GlStencilSystem,t.GlUboSystem=Q.GlUboSystem,t.GlRenderTargetAdaptor=J.GlRenderTargetAdaptor,t.GlRenderTargetSystem=ee.GlRenderTargetSystem,t.generateShaderSyncCode=te.generateShaderSyncCode,t.getBatchSamplersUniformGroup=re.getBatchSamplersUniformGroup,t.GlProgram=ne.GlProgram,t.GlProgramData=ie.GlProgramData,t.IGLUniformData=ie.IGLUniformData,t.GlShaderSystem=se.GlShaderSystem,t.GlUniformGroupSystem=oe.GlUniformGroupSystem,t.migrateFragmentFromV7toV8=ae.migrateFragmentFromV7toV8,t.compileShader=ue.compileShader,t.defaultValue=le.defaultValue,t.ensureAttributes=ce.ensureAttributes,t.extractAttributesFromGlProgram=he.extractAttributesFromGlProgram,t.generateProgram=de.generateProgram,t.getMaxFragmentPrecision=pe.getMaxFragmentPrecision,t.getTestContext=fe.getTestContext,t.getUboData=me.getUboData,t.getUniformData=ge.getUniformData,t.logProgramError=_e.logProgramError,t.mapSize=xe.mapSize,t.mapGlToVertexFormat=be.mapGlToVertexFormat,t.mapType=be.mapType,t.addProgramDefines=ye.addProgramDefines,t.ensurePrecision=ve.ensurePrecision,t.insertVersion=Te.insertVersion,t.setProgramName=Se.setProgramName,t.stripVersion=Ee.stripVersion,t.WGSL_TO_STD40_SIZE=Ae.WGSL_TO_STD40_SIZE,t.createUboElementsSTD40=Ae.createUboElementsSTD40,t.createUboSyncFunctionSTD40=Me.createUboSyncFunctionSTD40,t.generateArraySyncSTD40=Pe.generateArraySyncSTD40,t.generateUniformsSync=Re.generateUniformsSync,t.UNIFORM_TO_ARRAY_SETTERS=we.UNIFORM_TO_ARRAY_SETTERS,t.UNIFORM_TO_SINGLE_SETTERS=we.UNIFORM_TO_SINGLE_SETTERS,t.GlStateSystem=Be.GlStateSystem,t.mapWebGLBlendModesToPixi=Ge.mapWebGLBlendModesToPixi,t.GL_FORMATS=Ce.GL_FORMATS,t.GL_TARGETS=Ce.GL_TARGETS,t.GL_TYPES=Ce.GL_TYPES,t.GL_WRAP_MODES=Ce.GL_WRAP_MODES,t.GlTexture=Fe.GlTexture,t.GlTextureSystem=De.GlTextureSystem,t.glUploadBufferImageResource=Ie.glUploadBufferImageResource,t.glUploadCompressedTextureResource=Oe.glUploadCompressedTextureResource,t.glUploadImageResource=Ue.glUploadImageResource,t.glUploadVideoResource=Le.glUploadVideoResource,t.applyStyleParams=ke.applyStyleParams,t.getSupportedGlCompressedTextureFormats=Ne.getSupportedGlCompressedTextureFormats,t.mapFormatToGlFormat=He.mapFormatToGlFormat,t.mapFormatToGlInternalFormat=Xe.mapFormatToGlInternalFormat,t.mapFormatToGlType=Ve.mapFormatToGlType,t.compareModeToGlCompare=ze.compareModeToGlCompare,t.mipmapScaleModeToGlFilter=ze.mipmapScaleModeToGlFilter,t.scaleModeToGlFilter=ze.scaleModeToGlFilter,t.wrapModeToGlAddress=ze.wrapModeToGlAddress,t.unpremultiplyAlpha=We.unpremultiplyAlpha,t.WebGLRenderer=Ye.WebGLRenderer,t.BindGroupSystem=$e.BindGroupSystem,t.GpuBufferSystem=je.GpuBufferSystem,t.GpuReadBuffer=qe.GpuReadBuffer,t.UboBatch=Ke.UboBatch,t.GpuColorMaskSystem=Ze.GpuColorMaskSystem,t.GpuDeviceSystem=Qe.GpuDeviceSystem,t.GpuEncoderSystem=Je.GpuEncoderSystem,t.GpuStencilSystem=et.GpuStencilSystem,t.GpuUboSystem=tt.GpuUboSystem,t.GpuUniformBatchPipe=rt.GpuUniformBatchPipe,t.PipelineSystem=nt.PipelineSystem,t.calculateProjection=it.calculateProjection,t.GpuRenderTarget=st.GpuRenderTarget,t.GpuRenderTargetAdaptor=ot.GpuRenderTargetAdaptor,t.GpuRenderTargetSystem=at.GpuRenderTargetSystem,t.BindGroup=ut.BindGroup,t.GpuProgram=lt.GpuProgram,t.GpuShaderSystem=ct.GpuShaderSystem,t.WGSL_ALIGN_SIZE_DATA=ht.WGSL_ALIGN_SIZE_DATA,t.createUboElementsWGSL=ht.createUboElementsWGSL,t.createUboSyncFunctionWGSL=dt.createUboSyncFunctionWGSL,t.extractAttributesFromGpuProgram=pt.extractAttributesFromGpuProgram,t.extractStructAndGroups=ft.extractStructAndGroups,t.generateArraySyncWGSL=mt.generateArraySyncWGSL,t.generateGpuLayoutGroups=gt.generateGpuLayoutGroups,t.generateLayoutHash=_t.generateLayoutHash,t.removeStructAndGroupDuplicates=xt.removeStructAndGroupDuplicates,t.GpuBlendModesToPixi=bt.GpuBlendModesToPixi,t.GpuStateSystem=yt.GpuStateSystem,t.GpuStencilModesToPixi=vt.GpuStencilModesToPixi,t.GpuTextureSystem=Tt.GpuTextureSystem,t.gpuUploadBufferImageResource=St.gpuUploadBufferImageResource,t.blockDataMap=Et.blockDataMap,t.gpuUploadCompressedTextureResource=Et.gpuUploadCompressedTextureResource,t.gpuUploadImageResource=At.gpuUploadImageResource,t.gpuUploadVideoResource=Mt.gpuUploadVideoResource,t.getSupportedGPUCompressedTextureFormats=Pt.getSupportedGPUCompressedTextureFormats,t.GpuMipmapGenerator=Rt.GpuMipmapGenerator,t.WebGPURenderer=wt.WebGPURenderer,t.BackgroundSystem=Bt.BackgroundSystem,t.BlendModePipe=Gt.BlendModePipe,t.Buffer=Ct.Buffer,t.BufferResource=Ft.BufferResource,t.BufferUsage=Dt.BufferUsage,t.fastCopy=It.fastCopy,t.ExtractSystem=Ot.ExtractSystem,t.GenerateTextureSystem=Ut.GenerateTextureSystem,t.DRAW_MODES=Lt.DRAW_MODES,t.Geometry=kt.Geometry,t.buildSimpleUvs=Nt.buildSimpleUvs,t.buildUvs=Nt.buildUvs,t.ensureIsBuffer=Ht.ensureIsBuffer,t.getAttributeInfoFromFormat=Xt.getAttributeInfoFromFormat,t.getGeometryBounds=Vt.getGeometryBounds,t.transformVertices=zt.transformVertices,t.InstructionSet=Wt.InstructionSet,t.GlobalUniformSystem=Yt.GlobalUniformSystem,t.isRenderingToScreen=$t.isRenderingToScreen,t.RenderTarget=jt.RenderTarget,t.RenderTargetSystem=qt.RenderTargetSystem,t.viewportFromFrame=Kt.viewportFromFrame,t.ShaderStage=Zt.ShaderStage,t.Shader=Qt.Shader,t.UNIFORM_TYPES_MAP=Jt.UNIFORM_TYPES_MAP,t.UNIFORM_TYPES_VALUES=Jt.UNIFORM_TYPES_VALUES,t.UboSystem=er.UboSystem,t.UniformGroup=tr.UniformGroup,t.createUboSyncFunction=rr.createUboSyncFunction,t.getDefaultUniformValue=nr.getDefaultUniformValue,t.uboSyncFunctionsSTD40=ir.uboSyncFunctionsSTD40,t.uboSyncFunctionsWGSL=ir.uboSyncFunctionsWGSL,t.uniformParsers=sr.uniformParsers,t.HelloSystem=or.HelloSystem,t.BLEND_TO_NPM=ar.BLEND_TO_NPM,t.STENCIL_MODES=ar.STENCIL_MODES,t.getAdjustedBlendModeBlend=ur.getAdjustedBlendModeBlend,t.State=lr.State,t.AbstractRenderer=cr.AbstractRenderer,t.SharedRenderPipes=hr.SharedRenderPipes,t.SharedSystems=hr.SharedSystems,t.SystemRunner=dr.SystemRunner,t.CanvasPool=pr.CanvasPool,t.CanvasPoolClass=pr.CanvasPoolClass,t.DEPRECATED_SCALE_MODES=fr.DEPRECATED_SCALE_MODES,t.DEPRECATED_WRAP_MODES=fr.DEPRECATED_WRAP_MODES,t.MSAA_QUALITY=fr.MSAA_QUALITY,t.SCALE_MODES=fr.SCALE_MODES,t.WRAP_MODES=fr.WRAP_MODES,t.RenderTexture=mr.RenderTexture,t.BufferImageSource=gr.BufferImageSource,t.CanvasSource=_r.CanvasSource,t.CompressedSource=xr.CompressedSource,t.ImageSource=br.ImageSource,t.TextureSource=yr.TextureSource,t.VideoSource=vr.VideoSource,t.Texture=Tr.Texture,t.TextureGCSystem=Sr.TextureGCSystem,t.TextureMatrix=Er.TextureMatrix,t.TexturePool=Ar.TexturePool,t.TexturePoolClass=Ar.TexturePoolClass,t.TextureStyle=Mr.TextureStyle,t.TextureUvs=Pr.TextureUvs,t.generateUID=Rr.generateUID,t.getCanvasTexture=wr.getCanvasTexture,t.hasCachedCanvasTexture=wr.hasCachedCanvasTexture,t.getSupportedCompressedTextureFormats=Br.getSupportedCompressedTextureFormats,t.getSupportedTextureFormats=Gr.getSupportedTextureFormats,t.nonCompressedFormats=Gr.nonCompressedFormats,t.autoDetectSource=Cr.autoDetectSource,t.resourceToTexture=Cr.resourceToTexture,t.textureFrom=Cr.textureFrom,t.createIdFromString=Fr.createIdFromString,t.parseFunctionBody=Dr.parseFunctionBody,t.ViewSystem=Ir.ViewSystem,t.RendererType=Or.RendererType},55063:function(e,t,r){"use strict";var n=r(17073),i=r(48718),s=r(50020),o=r(99022),a=r(4720),u=r(91525),l=r(75813),c=r(62480);r(39394),r(81480),n.extensions.add(i.AlphaMask,s.ColorMask,o.StencilMask,c.VideoSource,l.ImageSource,u.CanvasSource,a.BufferImageSource)},81480:function(e,t,r){"use strict";var n=r(17073),i=r(86169);class s{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach((e=>{this.add({test:e.test,maskClass:e})})))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t{t!==e.preference&&a.push(t)}))):a=o.slice();let u={};for(let o=0;o=e.data.byteLength)t.bufferSubData(r.type,0,n,0,e._updateSize/n.BYTES_PER_ELEMENT);else{const s=e.descriptor.usage&i.BufferUsage.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;r.byteLength=n.byteLength,t.bufferData(r.type,n,s)}return r}destroyAll(){const e=this._gl;for(const t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){const r=this._gpuBuffers[e.uid],n=this._gl;t||n.deleteBuffer(r.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){const{_gl:t}=this;let r=s.BUFFER_TYPE.ARRAY_BUFFER;e.descriptor.usage&i.BufferUsage.INDEX?r=s.BUFFER_TYPE.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&i.BufferUsage.UNIFORM&&(r=s.BUFFER_TYPE.UNIFORM_BUFFER);const n=new o.GlBuffer(t.createBuffer(),r);return this._gpuBuffers[e.uid]=n,e.on("destroy",this.onBufferDestroy,this),n}}a.extension={type:[n.ExtensionType.WebGLSystem],name:"buffer"},t.GlBufferSystem=a},85520:function(e,t){"use strict";var r=(e=>(e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e))(r||{});t.BUFFER_TYPE=r},32985:function(e,t){"use strict";var r=(e=>(e[e.NONE=0]="NONE",e[e.COLOR=16384]="COLOR",e[e.STENCIL=1024]="STENCIL",e[e.DEPTH=256]="DEPTH",e[e.COLOR_DEPTH=16640]="COLOR_DEPTH",e[e.COLOR_STENCIL=17408]="COLOR_STENCIL",e[e.DEPTH_STENCIL=1280]="DEPTH_STENCIL",e[e.ALL=17664]="ALL",e))(r||{});t.CLEAR=r},36351:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(95190);const o=class e{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(t){if((t={...e.defaultOptions,...t}).context)this.initFromContext(t.context);else{const e=this._renderer.background.alpha<1,r=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:e,premultipliedAlpha:r,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof n.DOMAdapter.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);const t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r;const n=this._renderer.view.canvas;if(2===e&&(r=n.getContext("webgl2",t)),!r&&(r=n.getContext("webgl",t),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){const{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(1===this.webGLVersion)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};const r=e.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout((()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()}),0))}handleContextRestored(){this._renderer.runners.contextChange.emit(this.gl)}destroy(){const e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){const t=e.getContextAttributes();t&&!t.stencil&&s.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");const r=this.supports,n=2===this.webGLVersion,i=this.extensions;r.uint32Indices=n||!!i.uint32ElementIndex,r.uniformBufferObject=n,r.vertexArrayObject=n||!!i.vertexArrayObject,r.srgbTextures=n||!!i.srgb,r.nonPowOf2wrapping=n,r.nonPowOf2mipmaps=n,r.msaa=n,r.uint32Indices||s.warn("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};o.extension={type:[i.ExtensionType.WebGLSystem],name:"context"},o.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2};let a=o;t.GlContextSystem=a},39711:function(){},39996:function(){},96307:function(e,t,r){"use strict";var n=r(17073),i=r(52783),s=r(71820),o=r(90493);const a={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class u{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0}contextChange(){const e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");const t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=e=>t.bindVertexArrayOES(e),e.deleteVertexArray=e=>t.deleteVertexArrayOES(e));const r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(e,t,n,i)=>{r.drawArraysInstancedANGLE(e,t,n,i)},e.drawElementsInstanced=(e,t,n,i,s)=>{r.drawElementsInstancedANGLE(e,t,n,i,s)},e.vertexAttribDivisor=(e,t)=>r.vertexAttribDivisorANGLE(e,t)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){const r=this.gl;this._activeGeometry=e;const n=this.getVao(e,t);this._activeVao!==n&&(this._activeVao=n,r.bindVertexArray(n)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){const e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r1?i.drawElementsInstanced(o,t||s.indexBuffer.data.length,a,(r||0)*e,n):i.drawElements(o,t||s.indexBuffer.data.length,a,(r||0)*e)}else n>1?i.drawArraysInstanced(o,r||0,t||s.getSize(),n):i.drawArrays(o,r||0,t||s.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}u.extension={type:[n.ExtensionType.WebGLSystem],name:"geometry"},t.GlGeometrySystem=u},90493:function(e,t,r){"use strict";var n=r(30290);const i={uint8x2:n.GL_TYPES.UNSIGNED_BYTE,uint8x4:n.GL_TYPES.UNSIGNED_BYTE,sint8x2:n.GL_TYPES.BYTE,sint8x4:n.GL_TYPES.BYTE,unorm8x2:n.GL_TYPES.UNSIGNED_BYTE,unorm8x4:n.GL_TYPES.UNSIGNED_BYTE,snorm8x2:n.GL_TYPES.BYTE,snorm8x4:n.GL_TYPES.BYTE,uint16x2:n.GL_TYPES.UNSIGNED_SHORT,uint16x4:n.GL_TYPES.UNSIGNED_SHORT,sint16x2:n.GL_TYPES.SHORT,sint16x4:n.GL_TYPES.SHORT,unorm16x2:n.GL_TYPES.UNSIGNED_SHORT,unorm16x4:n.GL_TYPES.UNSIGNED_SHORT,snorm16x2:n.GL_TYPES.SHORT,snorm16x4:n.GL_TYPES.SHORT,float16x2:n.GL_TYPES.HALF_FLOAT,float16x4:n.GL_TYPES.HALF_FLOAT,float32:n.GL_TYPES.FLOAT,float32x2:n.GL_TYPES.FLOAT,float32x3:n.GL_TYPES.FLOAT,float32x4:n.GL_TYPES.FLOAT,uint32:n.GL_TYPES.UNSIGNED_INT,uint32x2:n.GL_TYPES.UNSIGNED_INT,uint32x3:n.GL_TYPES.UNSIGNED_INT,uint32x4:n.GL_TYPES.UNSIGNED_INT,sint32:n.GL_TYPES.INT,sint32x2:n.GL_TYPES.INT,sint32x3:n.GL_TYPES.INT,sint32x4:n.GL_TYPES.INT};t.getGlTypeFromFormat=function(e){return i[e]??i.float32}},9779:function(e,t,r){"use strict";var n=r(42181),i=r(95190),s=r(32985),o=r(45769);t.GlRenderTargetAdaptor=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new n.Rectangle}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new n.Rectangle}copyToTexture(e,t,r,n,i){const s=this._renderTargetSystem,o=this._renderer,a=s.getGpuRenderTarget(e),u=o.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,a.resolveTargetFramebuffer),o.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,i.x,i.y,r.x,r.y,n.width,n.height),t}startRenderPass(e,t=!0,r,n){const i=this._renderTargetSystem,s=e.colorTexture,o=i.getGpuRenderTarget(e);let a=n.y;e.isRoot&&(a=s.pixelHeight-n.height),e.colorTextures.forEach((e=>{this._renderer.texture.unbind(e)}));const u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,o.framebuffer);const l=this._viewPortCache;l.x===n.x&&l.y===a&&l.width===n.width&&l.height===n.height||(l.x=n.x,l.y=a,l.width=n.width,l.height=n.height,u.viewport(n.x,a,n.width,n.height)),o.depthStencilRenderBuffer||!e.stencil&&!e.depth||this._initStencil(o),this.clear(e,t,r)}finishRenderPass(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);if(!t.msaa)return;const r=this._renderer.gl;r.bindFramebuffer(r.FRAMEBUFFER,t.resolveTargetFramebuffer),r.bindFramebuffer(r.READ_FRAMEBUFFER,t.framebuffer),r.blitFramebuffer(0,0,t.width,t.height,0,0,t.width,t.height,r.COLOR_BUFFER_BIT,r.NEAREST),r.bindFramebuffer(r.FRAMEBUFFER,t.framebuffer)}initGpuRenderTarget(e){const t=this._renderer,r=t.gl,n=new o.GlRenderTarget;return e.colorTexture.resource===t.gl.canvas?(n.framebuffer=null,n):(this._initColor(e,n),r.bindFramebuffer(r.FRAMEBUFFER,null),n)}destroyGpuRenderTarget(e){const t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach((e=>{t.deleteRenderbuffer(e)})),e.msaaRenderBuffer=null}clear(e,t,r){if(!t)return;const n=this._renderTargetSystem;"boolean"==typeof t&&(t=t?s.CLEAR.ALL:s.CLEAR.NONE);const i=this._renderer.gl;if(t&s.CLEAR.COLOR){r??(r=n.defaultClearColor);const e=this._clearColorCache,t=r;e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]||(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],i.clearColor(t[0],t[1],t[2],t[3]))}i.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;const t=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,t),e.stencil&&this._resizeStencil(t)}_initColor(e,t){const r=this._renderer,n=r.gl,s=n.createFramebuffer();if(t.resolveTargetFramebuffer=s,n.bindFramebuffer(n.FRAMEBUFFER,s),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach(((e,s)=>{const o=e.source;o.antialias&&(r.context.supports.msaa?t.msaa=!0:i.warn("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(o,0);const a=r.texture.getGlSource(o).texture;n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+s,3553,a,0)})),t.msaa){const r=n.createFramebuffer();t.framebuffer=r,n.bindFramebuffer(n.FRAMEBUFFER,r),e.colorTextures.forEach(((e,r)=>{const i=n.createRenderbuffer();t.msaaRenderBuffer[r]=i}))}else t.framebuffer=s;this._resizeColor(e,t)}_resizeColor(e,t){const r=e.colorTexture.source;if(t.width=r.pixelWidth,t.height=r.pixelHeight,e.colorTextures.forEach(((e,t)=>{0!==t&&e.source.resize(r.width,r.height,r._resolution)})),t.msaa){const r=this._renderer,n=r.gl,i=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,i),e.colorTextures.forEach(((e,i)=>{const s=e.source;r.texture.bindSource(s,0);const o=r.texture.getGlSource(s).internalFormat,a=t.msaaRenderBuffer[i];n.bindRenderbuffer(n.RENDERBUFFER,a),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,o,s.pixelWidth,s.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+i,n.RENDERBUFFER,a)}))}}_initStencil(e){if(null===e.framebuffer)return;const t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){const t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,2===this._renderer.context.webGLVersion?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}}},54346:function(e,t,r){"use strict";var n=r(17073),i=r(16952),s=r(9779);class o extends i.RenderTargetSystem{constructor(e){super(e),this.adaptor=new s.GlRenderTargetAdaptor,this.adaptor.init(e,this)}}o.extension={type:[n.ExtensionType.WebGLSystem],name:"renderTarget"},t.GlRenderTargetSystem=o},65706:function(e,t,r){"use strict";var n=r(1793),i=r(65518),s=r(27666);t.generateShaderSyncCode=function(e,t){const r=[],o=["\n var g = s.groups;\n var sS = r.shader;\n var p = s.glProgram;\n var ugS = r.uniformGroup;\n var resources;\n "];let a=!1,u=0,l=0;const c=t._getProgramData(e.glProgram);for(const h in e.groups){const d=e.groups[h];r.push(`\n resources = g[${h}].resources;\n `);for(const p in d.resources){const f=d.resources[p];if(f instanceof i.UniformGroup)f.ubo?r.push(`\n sS.bindUniformBlock(\n resources[${p}],\n sS._uniformBindMap[${h}[${p}],\n ${u++}\n );\n `):r.push(`\n ugS.updateUniformGroup(resources[${p}], p, sD);\n `);else if(f instanceof n.BufferResource)r.push(`\n sS.bindUniformBlock(\n resources[${p}],\n sS._uniformBindMap[${h}[${p}],\n ${u++}\n );\n `);else if(f instanceof s.TextureSource){const n=e._uniformBindMap[h][p],i=c.uniformData[n];i&&(a||(a=!0,o.push("\n var tS = r.texture;\n ")),t._gl.uniform1i(i.location,l),r.push(`\n tS.bind(resources[${p}], ${l});\n `),l++)}}}const h=[...o,...r].join("\n");return new Function("r","s","sD",h)}},62991:function(e,t,r){"use strict";var n=r(6066),i=r(3871),s=r(9778),o=r(4023),a=r(77944),u=r(48142);const l={stripVersion:r(3553).stripVersion,ensurePrecision:o.ensurePrecision,addProgramDefines:s.addProgramDefines,setProgramName:u.setProgramName,insertVersion:a.insertVersion},c=Object.create(null),h=class e{constructor(t){const r=-1!==(t={...e.defaultOptions,...t}).fragment.indexOf("#version 300 es"),s={stripVersion:r,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:i.getMaxFragmentPrecision()},setProgramName:{name:t.name},addProgramDefines:r,insertVersion:r};let o=t.fragment,a=t.vertex;Object.keys(l).forEach((e=>{const t=s[e];o=l[e](o,t,!0),a=l[e](a,t,!1)})),this.fragment=o,this.vertex=a,this._key=n.createIdFromString(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(t){const r=`${t.vertex}:${t.fragment}`;return c[r]||(c[r]=new e(t)),c[r]}};h.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};let d=h;t.GlProgram=d},94230:function(e,t){"use strict";t.GlProgramData=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}},t.IGLUniformData=class{}},2071:function(e,t,r){"use strict";var n=r(17073),i=r(65706),s=r(3480);const o={textureCount:0,blockIndex:0};class a{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._nextIndex=0,this._boundUniformsIdsToIndexHash=Object.create(null),this._boundIndexToUniformsHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e}contextChange(e){this._gl=e,this._maxBindings=e.MAX_UNIFORM_BUFFER_BINDINGS?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0,this._programDataHash=Object.create(null),this._boundUniformsIdsToIndexHash=Object.create(null),this._boundIndexToUniformsHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;o.textureCount=0,o.blockIndex=0;let r=this._shaderSyncFunctions[e.glProgram._key];r||(r=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),r(this._renderer,e,o)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,o)}bindUniformBlock(e,t,r=0){const n=this._renderer.buffer,i=this._getProgramData(this._activeProgram),s=e._bufferResource;s&&this._renderer.ubo.updateUniformGroup(e),n.updateBuffer(e.buffer);let o=this._boundUniformsIdsToIndexHash[e.uid];if(void 0===o){const t=this._nextIndex++%this._maxBindings,r=this._boundIndexToUniformsHash[t];r&&(this._boundUniformsIdsToIndexHash[r.uid]=void 0),o=this._boundUniformsIdsToIndexHash[e.uid]=t,this._boundIndexToUniformsHash[t]=e,s?n.bindBufferRange(e.buffer,t,e.offset):n.bindBufferBase(e.buffer,t)}const a=this._gl,u=this._activeProgram._uniformBlockData[t].index;i.uniformBlockBindings[r]!==o&&(i.uniformBlockBindings[r]=o,a.uniformBlockBinding(i.program,u,o))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;const t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){const t=e._key;return this._programDataHash[t]=s.generateProgram(this._gl,e),this._programDataHash[t]}destroy(){for(const e of Object.keys(this._programDataHash)){this._programDataHash[e].destroy(),this._programDataHash[e]=null}this._programDataHash=null,this._boundUniformsIdsToIndexHash=null}_generateShaderSync(e,t){return i.generateShaderSyncCode(e,t)}}a.extension={type:[n.ExtensionType.WebGLSystem],name:"shader"},t.GlShaderSystem=a},53864:function(e,t,r){"use strict";var n=r(17073),i=r(66171);class s{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,r){const n=this._renderer.shader._getProgramData(t);if(!e.isStatic||e._dirtyId!==n.uniformDirtyGroups[e.uid]){n.uniformDirtyGroups[e.uid]=e._dirtyId;this._getUniformSyncFunction(e,t)(n.uniformData,e.uniforms,this._renderer,r)}}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){const r=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),n=this._getSignature(e,t._uniformData,"u");return this._cache[n]||(this._cache[n]=this._generateUniformsSync(e,t._uniformData)),r[t._key]=this._cache[n],r[t._key]}_generateUniformsSync(e,t){return i.generateUniformsSync(e,t)}_getSignature(e,t,r){const n=e.uniforms,i=[`${r}-`];for(const e in n)i.push(e),t[e]&&i.push(t[e].type);return i.join("-")}destroy(){this._renderer=null,this._cache=null}}s.extension={type:[n.ExtensionType.WebGLSystem],name:"uniformGroup"},t.GlUniformGroupSystem=s},26156:function(){},9488:function(e,t,r){"use strict";var n=r(65518);const i={};t.getBatchSamplersUniformGroup=function(e){let t=i[e];if(t)return t;const r=new Int32Array(e);for(let t=0;te>t?1:-1));for(let r=0;r`${t}: ${e}`)),n=e.getShaderInfoLog(t),i=n.split("\n"),s={},o=i.map((e=>parseFloat(e.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1")))).filter((e=>!(!e||s[e])&&(s[e]=!0,!0))),a=[""];o.forEach((e=>{r[e-1]=`%c${r[e-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")}));const u=r.join("\n");a[0]=u,console.error(n),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}t.logProgramError=function(e,t,n,i){e.getProgramParameter(t,e.LINK_STATUS)||(e.getShaderParameter(n,e.COMPILE_STATUS)||r(e,n),e.getShaderParameter(i,e.COMPILE_STATUS)||r(e,i),console.error("PixiJS Error: Could not initialize shader."),""!==e.getProgramInfoLog(t)&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",e.getProgramInfoLog(t)))}},86380:function(e,t){"use strict";const r={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};t.mapSize=function(e){return r[e]}},44135:function(e,t){"use strict";let r=null;const n={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},i={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"};function s(e,t){if(!r){const t=Object.keys(n);r={};for(let i=0;i":8,"vec3":12,"vec4":16,"mat2x2":32,"mat3x3":48,"mat4x4":64};t.WGSL_TO_STD40_SIZE=r,t.createUboElementsSTD40=function(e){const t=e.map((e=>({data:e,offset:0,size:0})));let n=0,i=0,s=0;for(let e=0;e1&&(n=Math.max(n,16)*o.data.size),o.size=n,i%n!=0&&i<16){const e=i%n%16;i+=e,s+=e}i+n>16?(s=16*Math.ceil(s/16),o.offset=s,s+=n,i=n):(o.offset=s,i+=n,s+=n)}return s=16*Math.ceil(s/16),{uboElements:t,size:s}}},90708:function(e,t,r){"use strict";var n=r(1021),i=r(63981),s=r(40074);t.createUboSyncFunctionSTD40=function(e){return n.createUboSyncFunction(e,"uboStd40",s.generateArraySyncSTD40,i.uboSyncFunctionsSTD40)}},40074:function(e,t,r){"use strict";var n=r(98121);t.generateArraySyncSTD40=function(e,t){const r=Math.max(n.WGSL_TO_STD40_SIZE[e.data.type]/16,1),i=e.data.value.length/e.data.size,s=(4-i%4)%4;return`\n v = uv.${e.data.name};\n offset += ${t};\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${e.data.size*r}; i++)\n {\n for(var j = 0; j < ${i}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${0!==s?`arrayOffset += ${s};`:""}\n }\n `}},66171:function(e,t,r){"use strict";var n=r(1793),i=r(65518),s=r(46876),o=r(8279);t.generateUniformsSync=function(e,t){const r=["\n var v = null;\n var cv = null;\n var cu = null;\n var t = 0;\n var gl = renderer.gl;\n var name = null;\n "];for(const a in e.uniforms){if(!t[a]){e.uniforms[a]instanceof i.UniformGroup?e.uniforms[a].ubo?r.push(`\n renderer.shader.bindUniformBlock(uv.${a}, "${a}");\n `):r.push(`\n renderer.shader.updateUniformGroup(uv.${a});\n `):e.uniforms[a]instanceof n.BufferResource&&r.push(`\n renderer.shader.bindBufferResource(uv.${a}, "${a}");\n `);continue}const u=e.uniformStructures[a];let l=!1;for(let e=0;e":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3f(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4f(location, v[0], v[1], v[2], v[3]);\n }",i32:"if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }",u32:"if (cv !== v) {\n cu.value = v;\n gl.uniform1ui(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2ui(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3ui(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4ui(location, v[0], v[1], v[2], v[3]);\n }",bool:"if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }","mat2x2":"gl.uniformMatrix2fv(location, false, v);","mat3x3":"gl.uniformMatrix3fv(location, false, v);","mat4x4":"gl.uniformMatrix4fv(location, false, v);"},n={f32:"gl.uniform1fv(location, v);","vec2":"gl.uniform2fv(location, v);","vec3":"gl.uniform3fv(location, v);","vec4":"gl.uniform4fv(location, v);","mat2x2":"gl.uniformMatrix2fv(location, false, v);","mat3x3":"gl.uniformMatrix3fv(location, false, v);","mat4x4":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);"};t.UNIFORM_TO_ARRAY_SETTERS=n,t.UNIFORM_TO_SINGLE_SETTERS=r},93199:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(40655);const o=class e{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[0]=this.setBlend,this.map[1]=this.setOffset,this.map[2]=this.setCullFace,this.map[3]=this.setDepthTest,this.map[4]=this.setFrontFace,this.map[5]=this.setDepthMask,this.checks=[],this.defaultState=i.State.for2d()}contextChange(e){this.gl=e,this.blendModesMap=s.mapWebGLBlendModesToPixi(e),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)1&t&&this.map[r].call(this,!!(e.data&1<>=1,r++;this.stateId=e.data}for(let t=0;t1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",r.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){const t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){const t=this._gl,r=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,r.texture),this._boundTextures[this._activeTextureLocation]=e,this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);const r=this.getGlSource(e);this._gl.generateMipmap(r.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){const t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,h.applyStyleParams(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){const{pixels:t,width:r,height:i}=this.getPixels(e),s=n.DOMAdapter.get().createCanvas();s.width=r,s.height=i;const o=s.getContext("2d");if(o){const e=o.createImageData(r,i);e.data.set(t),o.putImageData(e,0,0)}return s}getPixels(e){const t=e.source.resolution,r=e.frame,n=Math.max(Math.round(r.width*t),1),i=Math.max(Math.round(r.height*t),1),s=new Uint8Array(4*n*i),o=this._renderer,a=o.renderTarget.getRenderTarget(e),u=o.renderTarget.getGpuRenderTarget(a),l=o.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(r.x*t),Math.round(r.y*t),n,i,l.RGBA,l.UNSIGNED_BYTE,s),{pixels:new Uint8ClampedArray(s.buffer),width:n,height:i}}destroy(){this.managedTextures.slice().forEach((e=>this.onSourceDestroy(e))),this.managedTextures=null,this._renderer=null}}m.extension={type:[i.ExtensionType.WebGLSystem],name:"texture"},t.GlTextureSystem=m},30290:function(e,t){"use strict";var r=(e=>(e[e.RGBA=6408]="RGBA",e[e.RGB=6407]="RGB",e[e.RG=33319]="RG",e[e.RED=6403]="RED",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.ALPHA=6406]="ALPHA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e))(r||{}),n=(e=>(e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e))(n||{}),i=(e=>(e[e.CLAMP=33071]="CLAMP",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e))(i||{}),s=(e=>(e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.BYTE=5120]="BYTE",e[e.SHORT=5122]="SHORT",e[e.INT=5124]="INT",e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.HALF_FLOAT=36193]="HALF_FLOAT",e))(s||{});t.GL_FORMATS=r,t.GL_TARGETS=n,t.GL_TYPES=s,t.GL_WRAP_MODES=i},96157:function(){},35416:function(e,t){"use strict";const r={id:"buffer",upload(e,t,r){t.width===e.width||t.height===e.height?r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,e.width,e.height,0,t.format,t.type,e.resource),t.width=e.width,t.height=e.height}};t.glUploadBufferImageResource=r},82953:function(e,t){"use strict";const r={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},n={id:"compressed",upload(e,t,n){n.pixelStorei(n.UNPACK_ALIGNMENT,4);let i=e.pixelWidth,s=e.pixelHeight;const o=!!r[e.format];for(let r=0;r>1,1),s=Math.max(s>>1,1)}}};t.glUploadCompressedTextureResource=n},75705:function(e,t){"use strict";const r={id:"image",upload(e,t,r,n){const i="premultiply-alpha-on-upload"===e.alphaMode;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i);const s=t.width,o=t.height,a=e.pixelWidth,u=e.pixelHeight,l=e.resourceWidth,c=e.resourceHeight;l1){const r=Math.min(e.maxAnisotropy,t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,i.TEXTURE_MAX_ANISOTROPY_EXT,r)}e.compare&&t[s](l,t.TEXTURE_COMPARE_FUNC,n.compareModeToGlCompare[e.compare])}},84157:function(e,t){"use strict";let r;t.getSupportedGlCompressedTextureFormats=function(){if(r)return r;const e=document.createElement("canvas").getContext("webgl");return e?(r=[...e.getExtension("EXT_texture_compression_bptc")?["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"]:[],...e.getExtension("WEBGL_compressed_texture_s3tc")?["bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"]:[],...e.getExtension("WEBGL_compressed_texture_s3tc_srgb")?["bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"]:[],...e.getExtension("EXT_texture_compression_rgtc")?["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"]:[],...e.getExtension("WEBGL_compressed_texture_etc")?["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","eac-r11unorm","eac-rg11unorm"]:[],...e.getExtension("WEBGL_compressed_texture_astc")?["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]:[]],r):[]}},5020:function(e,t){"use strict";t.mapFormatToGlFormat=function(e){return{r8unorm:e.RED,r8snorm:e.RED,r8uint:e.RED,r8sint:e.RED,r16uint:e.RED,r16sint:e.RED,r16float:e.RED,rg8unorm:e.RG,rg8snorm:e.RG,rg8uint:e.RG,rg8sint:e.RG,r32uint:e.RED,r32sint:e.RED,r32float:e.RED,rg16uint:e.RG,rg16sint:e.RG,rg16float:e.RG,rgba8unorm:e.RGBA,"rgba8unorm-srgb":e.RGBA,rgba8snorm:e.RGBA,rgba8uint:e.RGBA,rgba8sint:e.RGBA,bgra8unorm:e.RGBA,"bgra8unorm-srgb":e.RGBA,rgb9e5ufloat:e.RGB,rgb10a2unorm:e.RGBA,rg11b10ufloat:e.RGB,rg32uint:e.RG,rg32sint:e.RG,rg32float:e.RG,rgba16uint:e.RGBA,rgba16sint:e.RGBA,rgba16float:e.RGBA,rgba32uint:e.RGBA,rgba32sint:e.RGBA,rgba32float:e.RGBA,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT,depth24plus:e.DEPTH_COMPONENT,"depth24plus-stencil8":e.DEPTH_STENCIL,depth32float:e.DEPTH_COMPONENT,"depth32float-stencil8":e.DEPTH_STENCIL}}},51727:function(e,t,r){"use strict";var n=r(42932);t.mapFormatToGlInternalFormat=function(e,t){let r={},i=e.RGBA;return e instanceof n.DOMAdapter.get().getWebGLRenderingContext()?t.srgb&&(r={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(r={"rgba8unorm-srgb":e.SRGB8_ALPHA8,"bgra8unorm-srgb":e.SRGB8_ALPHA8},i=e.RGBA8),{r8unorm:e.R8,r8snorm:e.R8_SNORM,r8uint:e.R8UI,r8sint:e.R8I,r16uint:e.R16UI,r16sint:e.R16I,r16float:e.R16F,rg8unorm:e.RG8,rg8snorm:e.RG8_SNORM,rg8uint:e.RG8UI,rg8sint:e.RG8I,r32uint:e.R32UI,r32sint:e.R32I,r32float:e.R32F,rg16uint:e.RG16UI,rg16sint:e.RG16I,rg16float:e.RG16F,rgba8unorm:e.RGBA,...r,rgba8snorm:e.RGBA8_SNORM,rgba8uint:e.RGBA8UI,rgba8sint:e.RGBA8I,bgra8unorm:i,rgb9e5ufloat:e.RGB9_E5,rgb10a2unorm:e.RGB10_A2,rg11b10ufloat:e.R11F_G11F_B10F,rg32uint:e.RG32UI,rg32sint:e.RG32I,rg32float:e.RG32F,rgba16uint:e.RGBA16UI,rgba16sint:e.RGBA16I,rgba16float:e.RGBA16F,rgba32uint:e.RGBA32UI,rgba32sint:e.RGBA32I,rgba32float:e.RGBA32F,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT16,depth24plus:e.DEPTH_COMPONENT24,"depth24plus-stencil8":e.DEPTH24_STENCIL8,depth32float:e.DEPTH_COMPONENT32F,"depth32float-stencil8":e.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}},16310:function(e,t){"use strict";t.mapFormatToGlType=function(e){return{r8unorm:e.UNSIGNED_BYTE,r8snorm:e.BYTE,r8uint:e.UNSIGNED_BYTE,r8sint:e.BYTE,r16uint:e.UNSIGNED_SHORT,r16sint:e.SHORT,r16float:e.HALF_FLOAT,rg8unorm:e.UNSIGNED_BYTE,rg8snorm:e.BYTE,rg8uint:e.UNSIGNED_BYTE,rg8sint:e.BYTE,r32uint:e.UNSIGNED_INT,r32sint:e.INT,r32float:e.FLOAT,rg16uint:e.UNSIGNED_SHORT,rg16sint:e.SHORT,rg16float:e.HALF_FLOAT,rgba8unorm:e.UNSIGNED_BYTE,"rgba8unorm-srgb":e.UNSIGNED_BYTE,rgba8snorm:e.BYTE,rgba8uint:e.UNSIGNED_BYTE,rgba8sint:e.BYTE,bgra8unorm:e.UNSIGNED_BYTE,"bgra8unorm-srgb":e.UNSIGNED_BYTE,rgb9e5ufloat:e.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:e.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:e.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:e.UNSIGNED_INT,rg32sint:e.INT,rg32float:e.FLOAT,rgba16uint:e.UNSIGNED_SHORT,rgba16sint:e.SHORT,rgba16float:e.HALF_FLOAT,rgba32uint:e.UNSIGNED_INT,rgba32sint:e.INT,rgba32float:e.FLOAT,stencil8:e.UNSIGNED_BYTE,depth16unorm:e.UNSIGNED_SHORT,depth24plus:e.UNSIGNED_INT,"depth24plus-stencil8":e.UNSIGNED_INT_24_8,depth32float:e.FLOAT,"depth32float-stencil8":e.FLOAT_32_UNSIGNED_INT_24_8_REV}}},59758:function(e,t){"use strict";t.compareModeToGlCompare={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519},t.mipmapScaleModeToGlFilter={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},t.scaleModeToGlFilter={linear:9729,nearest:9728},t.wrapModeToGlAddress={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648}},7358:function(e,t){"use strict";t.unpremultiplyAlpha=function(e){e instanceof Uint8ClampedArray&&(e=new Uint8Array(e.buffer));const t=e.length;for(let r=0;r{this.gpu=e,this._renderer.runners.contextChange.emit(this.gpu)}))),this._initPromise}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){const t=await navigator.gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter((e=>t.features.has(e))),n=await t.requestDevice({requiredFeatures:r});return{adapter:t,device:n}}destroy(){this.gpu=null,this._renderer=null}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"device"},i.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1},t.GpuDeviceSystem=i},32920:function(e,t,r){"use strict";var n=r(17073);class i{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise((e=>{this._resolveCommandFinished=e})),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,r,n){const i=this._renderer.pipeline.getPipeline(e,t,r,n);this.setPipeline(i)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;const t=2===e.data.BYTES_PER_ELEMENT?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,r){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);const n=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,n)}setGeometry(e){for(const t in e.attributes){const r=e.attributes[t];this._setVertexBuffer(r.location,r.buffer)}e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(const r in e.groups){const n=e.groups[r];t||this._syncBindGroup(n),this.setBindGroup(r,n,e.gpuProgram)}}_syncBindGroup(e){for(const t in e.resources){const r=e.resources[t];r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){const{geometry:t,shader:r,state:n,topology:i,size:s,start:o,instanceCount:a,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,n,i),this.setGeometry(t),this._setShaderBindGroups(r,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(s||t.indexBuffer.data.length,a||t.instanceCount,o||0):this.renderPassEncoder.draw(s||t.getSize(),a||t.instanceCount,o||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){const e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);const t=this._boundPipeline,r={...this._boundVertexBuffer},n=this._boundIndexBuffer,i={...this._boundBindGroup};this._clearCache();const s=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(s.x,s.y,s.width,s.height,0,1),this.setPipeline(t);for(const e in r)this._setVertexBuffer(e,r[e]);for(const e in i)this.setBindGroup(e,i[e],null);this._setIndexBuffer(n)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"encoder",priority:1},t.GpuEncoderSystem=i},96150:function(e,t,r){"use strict";var n=r(17073),i=r(56445);class s{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:i.STENCIL_MODES.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){const r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;const n=this._renderer;n.pipeline.setStencilMode(e),n.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}}s.extension={type:[n.ExtensionType.WebGPUSystem],name:"stencil"},t.GpuStencilSystem=s},4812:function(e,t,r){"use strict";var n=r(17073),i=r(6864),s=r(41036),o=r(84214);class a extends i.UboSystem{constructor(){super({createUboElements:s.createUboElementsWGSL,generateUboSync:o.createUboSyncFunctionWGSL})}}a.extension={type:[n.ExtensionType.WebGPUSystem],name:"ubo"},t.GpuUboSystem=a},93812:function(e,t,r){"use strict";var n=r(17073),i=r(21839),s=r(1793),o=r(18919),a=r(30679),u=r(83582);const l=128;class c{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new a.UboBatch({minUniformOffsetAlignment:l});for(let e=0;e<2;e++){let t=o.BufferUsage.UNIFORM|o.BufferUsage.COPY_DST;0===e&&(t|=o.BufferUsage.COPY_SRC),this._buffers.push(new i.Buffer({data:this._batchBuffer.data,usage:t}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(const e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);const r=e.buffer.data,n=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,n/4),this._bindGroupHash[e.uid]=this._getBindGroup(n/l),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);const t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/l)}getArrayBindGroup(e){const t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/l)}getArrayBufferResource(e){const t=this._batchBuffer.addGroup(e)/l;return this._getBufferResource(t)}_getBufferResource(e){if(!this._bufferResources[e]){const t=this._buffers[e%2];this._bufferResources[e]=new s.BufferResource({buffer:t,offset:256*(e/2|0),size:l})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){const t=new u.BindGroup({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){const e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);const r=this._renderer.gpu.device.createCommandEncoder();for(let n=1;nthis._destroyBuffer(e))),this._managedBuffers=null,this._gpuBuffers=null}_destroyBuffer(e){this._gpuBuffers[e.uid].destroy(),e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}}s.extension={type:[n.ExtensionType.WebGPUSystem],name:"buffer"},t.GpuBufferSystem=s},40736:function(e,t,r){"use strict";var n=r(21839),i=r(18919);t.GpuReadBuffer=function(e,t){const r=e.descriptor.size,s=t.gpu.device,o=new n.Buffer({data:new Float32Array(24e5),usage:i.BufferUsage.MAP_READ|i.BufferUsage.COPY_DST}),a=t.buffer.createGPUBuffer(o),u=s.createCommandEncoder();u.copyBufferToBuffer(t.buffer.getGPUBuffer(e),0,a,0,r),s.queue.submit([u.finish()]),a.mapAsync(GPUMapMode.READ,0,r).then((()=>{a.getMappedRange(0,r),a.unmap()}))}},30679:function(e,t){"use strict";t.UboBatch=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error("UniformBufferBatch: array is too large: "+4*e);const t=this.byteIndex;let r=t+4*e;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>4*this.data.length)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){const t=this.addEmptyGroup(e.length);for(let r=0;r{const n={arrayStride:0,stepMode:"vertex",attributes:[]},s=n.attributes;for(const t in e.attributes){const o=e.attributes[t];1!==(o.divisor??1)&&i.warn(`Attribute ${t} has an invalid divisor value of '${o.divisor}'. WebGPU only supports a divisor value of 1`),o.buffer===r&&(n.arrayStride=o.stride,n.stepMode=o.instance?"instance":"vertex",s.push({shaderLocation:o.location,offset:o.offset,format:o.format}))}s.length&&t.push(n)})),this._bufferLayoutsCache[e._layoutKey]=t,t}_updatePipeHash(){const e=(t=this._stencilMode,r=this._multisampleCount,n=this._colorMask,i=this._depthStencilAttachment,n<<6|t<<3|i<<1|r);var t,r,n,i;this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}}c.extension={type:[n.ExtensionType.WebGPUSystem],name:"pipeline"},t.PipelineSystem=c},86136:function(e,t){"use strict";t.GpuRenderTarget=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}},9143:function(e,t,r){"use strict";var n=r(32985),i=r(91525),s=r(27666),o=r(86136);t.GpuRenderTargetAdaptor=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,n,i){const s=this._renderer,o=this._getGpuColorTexture(e),a=s.texture.getGpuSource(t.source);return s.encoder.commandEncoder.copyTextureToTexture({texture:o,origin:r},{texture:a,origin:i},n),t}startRenderPass(e,t=!0,r,n){const i=this._renderTargetSystem.getGpuRenderTarget(e),s=this.getDescriptor(e,t,r);i.descriptor=s,this._renderer.pipeline.setRenderTarget(i),this._renderer.encoder.beginRenderPass(i),this._renderer.encoder.setViewport(n)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,r){"boolean"==typeof t&&(t=t?n.CLEAR.ALL:n.CLEAR.NONE);const i=this._renderTargetSystem,s=i.getGpuRenderTarget(e),o=e.colorTextures.map(((e,o)=>{const a=s.contexts[o];let u,l;if(a){u=a.getCurrentTexture().createView()}else u=this._renderer.texture.getGpuSource(e).createView({mipLevelCount:1});s.msaaTextures[o]&&(l=u,u=this._renderer.texture.getTextureView(s.msaaTextures[o]));const c=t&n.CLEAR.COLOR?"clear":"load";return r??(r=i.defaultClearColor),{view:u,resolveTarget:l,clearValue:r,storeOp:"store",loadOp:c}}));let a;if(!e.stencil&&!e.depth||e.depthStencilTexture||(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=s.msaa?4:1),e.depthStencilTexture){const r=t&n.CLEAR.STENCIL?"clear":"load",i=t&n.CLEAR.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:r,depthClearValue:1,depthLoadOp:i,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,r,n){if(!t)return;const{gpu:i,encoder:s}=this._renderer,o=i.device;if(null===s.commandEncoder){const i=o.createCommandEncoder(),s=this.getDescriptor(e,t,r),a=i.beginRenderPass(s);a.setViewport(n.x,n.y,n.width,n.height,0,1),a.end();const u=i.finish();o.queue.submit([u])}else this.startRenderPass(e,t,r,n)}initGpuRenderTarget(e){e.isRoot=!0;const t=new o.GpuRenderTarget;return e.colorTextures.forEach(((e,r)=>{if(i.CanvasSource.test(e.resource)){const n=e.resource.getContext("webgpu"),i=e.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:i})}catch(e){console.error(e)}t.contexts[r]=n}if(t.msaa=e.source.antialias,e.source.antialias){const e=new s.TextureSource({width:0,height:0,sampleCount:4});t.msaaTextures[r]=e}})),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}destroyGpuRenderTarget(e){e.contexts.forEach((e=>{e.unconfigure()})),e.msaaTextures.forEach((e=>{e.destroy()})),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach(((e,r)=>{const n=t.msaaTextures[r];n?.resize(e.source.width,e.source.height,e.source._resolution)}))}}},24628:function(e,t,r){"use strict";var n=r(17073),i=r(16952),s=r(9143);class o extends i.RenderTargetSystem{constructor(e){super(e),this.adaptor=new s.GpuRenderTargetAdaptor,this.adaptor.init(e,this)}}o.extension={type:[n.ExtensionType.WebGPUSystem],name:"renderTarget"},t.GpuRenderTargetSystem=o},91428:function(e,t){"use strict";t.calculateProjection=function(e,t,r,n,i,s){const o=s?1:-1;return e.identity(),e.a=1/n*2,e.d=o*(1/i*2),e.tx=-1-t*e.a,e.ty=-o-r*e.d,e}},83582:function(e,t){"use strict";t.BindGroup=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(const r in e){const n=e[r];this.setResource(n,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;const e=[];let t=0;for(const r in this.resources)e[t++]=this.resources[r]._resourceId;this._key=e.join("|")}setResource(e,t){const r=this.resources[t];e!==r&&(r&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){const t=this.resources;for(const r in t)t[r]._touched=e}destroy(){const e=this.resources;for(const t in e){const r=e[t];r.off?.("change",this.onResourceChange,this)}this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){const t=this.resources;for(const r in t)t[r]===e&&(t[r]=null)}else this._updateKey()}}},1805:function(){},50543:function(e,t,r){"use strict";var n=r(6066),i=r(29926),s=r(16126),o=r(80863),a=r(47242),u=r(79320);const l=Object.create(null);class c{constructor(e){this._layoutKey=0;const{fragment:t,vertex:r,layout:n,gpuLayout:i,name:l}=e;if(this.name=l,this.fragment=t,this.vertex=r,t.source===r.source){const e=s.extractStructAndGroups(t.source);this.structsAndGroups=e}else{const e=s.extractStructAndGroups(r.source),n=s.extractStructAndGroups(t.source);this.structsAndGroups=u.removeStructAndGroupDuplicates(e,n)}this.layout=n??a.generateLayoutHash(this.structsAndGroups),this.gpuLayout=i??o.generateGpuLayoutGroups(this.structsAndGroups),this.autoAssignGlobalUniforms=!(void 0===this.layout[0]?.globalUniforms),this.autoAssignLocalUniforms=!(void 0===this.layout[1]?.localUniforms),this._generateProgramKey()}_generateProgramKey(){const{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=n.createIdFromString(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=i.extractAttributesFromGpuProgram(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){const t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return l[t]||(l[t]=new c(e)),l[t]}}t.GpuProgram=c},25947:function(e,t,r){"use strict";var n=r(17073);class i{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){const t=this._gpu.device,r=e.gpuLayout.map((e=>t.createBindGroupLayout({entries:e}))),n={bindGroupLayouts:r};return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout(n)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"shader"},t.GpuShaderSystem=i},41036:function(e,t){"use strict";const r={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2":{align:8,size:8},"vec2":{align:8,size:8},"vec2":{align:8,size:8},"vec2":{align:4,size:4},"vec3":{align:16,size:12},"vec3":{align:16,size:12},"vec3":{align:16,size:12},"vec3":{align:8,size:6},"vec4":{align:16,size:16},"vec4":{align:16,size:16},"vec4":{align:16,size:16},"vec4":{align:8,size:8},"mat2x2":{align:8,size:16},"mat2x2":{align:4,size:8},"mat3x2":{align:8,size:24},"mat3x2":{align:4,size:12},"mat4x2":{align:8,size:32},"mat4x2":{align:4,size:16},"mat2x3":{align:16,size:32},"mat2x3":{align:8,size:16},"mat3x3":{align:16,size:48},"mat3x3":{align:8,size:24},"mat4x3":{align:16,size:64},"mat4x3":{align:8,size:32},"mat2x4":{align:16,size:32},"mat2x4":{align:8,size:16},"mat3x4":{align:16,size:48},"mat3x4":{align:8,size:24},"mat4x4":{align:16,size:64},"mat4x4":{align:8,size:32}};t.WGSL_ALIGN_SIZE_DATA=r,t.createUboElementsWGSL=function(e){const t=e.map((e=>({data:e,offset:0,size:0})));let n=0;for(let e=0;e1&&(s=Math.max(s,o)*i.data.size),n=Math.ceil(n/o)*o,i.size=s,i.offset=n,n+=s}return n=16*Math.ceil(n/16),{uboElements:t,size:n}}},84214:function(e,t,r){"use strict";var n=r(1021),i=r(63981),s=r(1513);t.createUboSyncFunctionWGSL=function(e){return n.createUboSyncFunction(e,"uboWgsl",s.generateArraySyncWGSL,i.uboSyncFunctionsWGSL)}},29926:function(e,t,r){"use strict";var n=r(52783);const i={f32:"float32","vec2":"float32x2","vec3":"float32x3","vec4":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2":"sint32x2","vec3":"sint32x3","vec4":"sint32x4",u32:"uint32","vec2":"uint32x2","vec3":"uint32x3","vec4":"uint32x4",bool:"uint32","vec2":"uint32x2","vec3":"uint32x3","vec4":"uint32x4"};t.extractAttributesFromGpuProgram=function({source:e,entryPoint:t}){const r={},s=e.indexOf(`fn ${t}`);if(-1!==s){const t=e.indexOf("->",s);if(-1!==t){const o=e.substring(s,t),a=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g;let u;for(;null!==(u=a.exec(o));){const e=i[u[3]]??"float32";r[u[2]]={location:parseInt(u[1],10),format:e,stride:n.getAttributeInfoFromFormat(e).stride,offset:0,instance:!1,start:0}}}}return r}},16126:function(e,t){"use strict";t.extractStructAndGroups=function(e){const t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,n=/var(<[^>]+>)? (\w+)/,i=/:\s*(\w+)/,s=/(\w+)\s*:\s*([\w\<\>]+)/g,o=/struct\s+(\w+)/,a=e.match(/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g)?.map((e=>({group:parseInt(e.match(t)[1],10),binding:parseInt(e.match(r)[1],10),name:e.match(n)[2],isUniform:""===e.match(n)[1],type:e.match(i)[1]})));if(!a)return{groups:[],structs:[]};const u=e.match(/struct\s+(\w+)\s*{([^}]+)}/g)?.map((e=>{const t=e.match(o)[1],r=e.match(s).reduce(((e,t)=>{const[r,n]=t.split(":");return e[r.trim()]=n.trim(),e}),{});return r?{name:t,members:r}:null})).filter((({name:e})=>a.some((t=>t.type===e))))??[];return{groups:a,structs:u}}},1513:function(e,t,r){"use strict";var n=r(41036);t.generateArraySyncWGSL=function(e,t){const{size:r,align:i}=n.WGSL_ALIGN_SIZE_DATA[e.data.type],s=(i-r)/4;return`\n v = uv.${e.data.name};\n ${0!==t?`offset += ${t};`:""}\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${e.data.size*(r/4)}; i++)\n {\n for(var j = 0; j < ${r/4}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${0!==s?`arrayOffset += ${s};`:""}\n }\n `}},80863:function(e,t,r){"use strict";var n=r(19450);t.generateGpuLayoutGroups=function({groups:e}){const t=[];for(let r=0;r!r.has(e.name)&&(r.add(e.name),!0))),groups:[...e.groups,...t.groups].filter((e=>{const t=`${e.name}-${e.binding}`;return!n.has(t)&&(n.add(t),!0)}))}}},53299:function(e,t){"use strict";const r={normal:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},add:{alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},multiply:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},screen:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},overlay:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},none:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},"normal-npm":{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},"add-npm":{alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},"screen-npm":{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},erase:{alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}}};t.GpuBlendModesToPixi=r},81242:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(53299);class o{constructor(){this.defaultState=new i.State,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:s.GpuBlendModesToPixi[e.blendMode]||s.GpuBlendModesToPixi.normal}]}destroy(){this.gpu=null}}o.extension={type:[n.ExtensionType.WebGPUSystem],name:"state"},t.GpuStateSystem=o},36826:function(e,t,r){"use strict";var n=r(56445);const i=[];i[n.STENCIL_MODES.NONE]=void 0,i[n.STENCIL_MODES.DISABLED]={stencilWriteMask:0,stencilReadMask:0},i[n.STENCIL_MODES.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},i[n.STENCIL_MODES.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},i[n.STENCIL_MODES.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}},t.GpuStencilModesToPixi=i},56042:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(60932),o=r(83582),a=r(97394),u=r(1956),l=r(37135),c=r(2766),h=r(87929);class d{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:l.gpuUploadImageResource,buffer:a.gpuUploadBufferImageResource,video:c.gpuUploadVideoResource,compressed:u.gpuUploadCompressedTextureResource},this._renderer=e}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){const t=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(t))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;"compressed"!==e.uploadMethodId&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);const r=u.blockDataMap[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},n=Math.ceil(e.pixelWidth/r.blockWidth)*r.blockWidth,i=Math.ceil(e.pixelHeight/r.blockHeight)*r.blockHeight,s={label:e.label,size:{width:n,height:i},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},o=this._gpu.device.createTexture(s);return this._gpuSources[e.uid]=o,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),o}onSourceUpdate(e){const t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){const t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new h.GpuMipmapGenerator(this._gpu.device));const t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){const t=this._gpuSources[e.uid];t?t.width===e.pixelWidth&&t.height===e.pixelHeight||(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){const t=e.source,r=t.uid;return this._bindGroupHash[r]=new o.BindGroup({0:t,1:t.style}),this._bindGroupHash[r]}getTextureView(e){const t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){const t=this._renderer,r=t.gpu.device.createCommandEncoder(),i=n.DOMAdapter.get().createCanvas();i.width=e.source.pixelWidth,i.height=e.source.pixelHeight;const s=i.getContext("webgpu");return s.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:s.getCurrentTexture()},{width:i.width,height:i.height}),t.gpu.device.queue.submit([r.finish()]),i}getPixels(e){const t=this.generateCanvas(e),r=s.CanvasPool.getOptimalCanvasAndContext(t.width,t.height),n=r.context;n.drawImage(t,0,0);const{width:i,height:o}=t,a=n.getImageData(0,0,i,o),u=new Uint8ClampedArray(a.data.buffer);return s.CanvasPool.returnCanvasAndContext(r),{pixels:u,width:i,height:o}}destroy(){this.managedTextures.slice().forEach((e=>this.onSourceDestroy(e))),this.managedTextures=null;for(const e of Object.keys(this._bindGroupHash)){const t=Number(e),r=this._bindGroupHash[t];r?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}}d.extension={type:[i.ExtensionType.WebGPUSystem],name:"texture"},t.GpuTextureSystem=d},83040:function(){},97394:function(e,t){"use strict";const r={type:"image",upload(e,t,r){const n=e.resource,i=(0|e.pixelWidth)*(0|e.pixelHeight),s=n.byteLength/i;r.device.queue.writeTexture({texture:t},n,{offset:0,rowsPerImage:e.pixelHeight,bytesPerRow:e.pixelHeight*s},{width:e.pixelWidth,height:e.pixelHeight,depthOrArrayLayers:1})}};t.gpuUploadBufferImageResource=r},1956:function(e,t){"use strict";const r={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},n={blockBytes:4,blockWidth:1,blockHeight:1},i={type:"compressed",upload(e,t,i){let s=e.pixelWidth,o=e.pixelHeight;const a=r[e.format]||n;for(let r=0;r>1,1),o=Math.max(o>>1,1)}}};t.blockDataMap=r,t.gpuUploadCompressedTextureResource=i},37135:function(e,t){"use strict";const r={type:"image",upload(e,t,r){const n=e.resource;if(!n)return;const i=Math.min(t.width,e.resourceWidth||e.pixelWidth),s=Math.min(t.height,e.resourceHeight||e.pixelHeight),o="premultiply-alpha-on-upload"===e.alphaMode;r.device.queue.copyExternalImageToTexture({source:n},{texture:t,premultipliedAlpha:o},{width:i,height:s})}};t.gpuUploadImageResource=r},2766:function(e,t,r){"use strict";var n=r(37135);const i={type:"video",upload(e,t,r){n.gpuUploadImageResource.upload(e,t,r)}};t.gpuUploadVideoResource=i},87929:function(e,t){"use strict";t.GpuMipmapGenerator=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:"\n var pos : array, 3> = array, 3>(\n vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));\n\n struct VertexOutput {\n @builtin(position) position : vec4,\n @location(0) texCoord : vec2,\n };\n\n @vertex\n fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n var output : VertexOutput;\n output.texCoord = pos[vertexIndex] * vec2(0.5, -0.5) + vec2(0.5);\n output.position = vec4(pos[vertexIndex], 0.0, 1.0);\n return output;\n }\n\n @group(0) @binding(0) var imgSampler : sampler;\n @group(0) @binding(1) var img : texture_2d;\n\n @fragment\n fn fragmentMain(@location(0) texCoord : vec2) -> @location(0) vec4 {\n return textureSample(img, imgSampler, texCoord);\n }\n "})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){const t=this._getMipmapPipeline(e.format);if("3d"===e.dimension||"1d"===e.dimension)throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=e;const n=e.depthOrArrayLayers||1,i=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!i){const t={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:n},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this.device.createTexture(t)}const s=this.device.createCommandEncoder({}),o=t.getBindGroupLayout(0);for(let a=0;a{if(!e.name)throw new Error("BlendMode extension must have a name property");o[e.name]=e.ref}),(e=>{delete o[e.name]}));class a{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e}setBlendMode(e,t,r){this._activeBlendMode!==t?(this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(r),this._isAdvanced=!!o[t],this._isAdvanced&&(this._beginAdvancedBlendMode(r),this._renderableList.push(e))):this._isAdvanced&&this._renderableList.push(e)}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);const t=this._activeBlendMode;if(!o[t])return void s.warn(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);let r=this._filterHash[t];r||(r=this._filterHash[t]=new i.FilterEffect,r.filters=[new o[t]]);const n={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:r,canBundle:!1};this._renderableList=n.renderables,e.add(n)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(const e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"blendMode"},t.BlendModePipe=a},21839:function(e,t,r){"use strict";var n=r(5323),i=r(78739),s=r(18919);t.Buffer=class extends n{constructor(e){let{data:t,size:r}=e;const{usage:n,label:s,shrinkToFit:o}=e;super(),this.uid=i.uid("buffer"),this._resourceType="buffer",this._resourceId=i.uid("resource"),this._touched=0,this._updateID=1,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r=r??t?.byteLength;const a=!!t;this.descriptor={size:r,usage:n,mappedAtCreation:a,label:s},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get static(){return!!(this.descriptor.usage&s.BufferUsage.STATIC)}set static(e){e?this.descriptor.usage|=s.BufferUsage.STATIC:this.descriptor.usage&=~s.BufferUsage.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e)return void(r&&this.emit("update",this));const n=this._data;this._data=e,n.length===e.length||!this.shrinkToFit&&e.byteLength(e[e.MAP_READ=1]="MAP_READ",e[e.MAP_WRITE=2]="MAP_WRITE",e[e.COPY_SRC=4]="COPY_SRC",e[e.COPY_DST=8]="COPY_DST",e[e.INDEX=16]="INDEX",e[e.VERTEX=32]="VERTEX",e[e.UNIFORM=64]="UNIFORM",e[e.STORAGE=128]="STORAGE",e[e.INDIRECT=256]="INDIRECT",e[e.QUERY_RESOLVE=512]="QUERY_RESOLVE",e[e.STATIC=1024]="STATIC",e))(r||{});t.BufferUsage=r},70766:function(e,t){"use strict";t.fastCopy=function(e,t){const r=e.byteLength/8|0,n=new Float64Array(e,0,r);new Float64Array(t,0,r).set(n);const i=e.byteLength-8*r;if(i>0){const n=new Uint8Array(e,8*r,i);new Uint8Array(t,8*r,i).set(n)}}},95041:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(84463);const o={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},a=class e{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof i.Container||e instanceof s.Texture?{target:e,...t}:{...t,...e}}async image(e){const t=new Image;return t.src=await this.base64(e),t}async base64(t){t=this._normalizeOptions(t,e.defaultImageOptions);const{format:r,quality:n}=t,i=this.canvas(t);if(void 0!==i.toBlob)return new Promise(((e,t)=>{i.toBlob((r=>{if(!r)return void t(new Error("ICanvas.toBlob failed!"));const n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(r)}),o[r],n)}));if(void 0!==i.toDataURL)return i.toDataURL(o[r],n);if(void 0!==i.convertToBlob){const e=await i.convertToBlob({type:o[r],quality:n});return new Promise(((t,r)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=r,n.readAsDataURL(e)}))}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){const t=(e=this._normalizeOptions(e)).target,r=this._renderer;if(t instanceof s.Texture)return r.texture.generateCanvas(t);const n=r.textureGenerator.generateTexture(e),i=r.texture.generateCanvas(n);return n.destroy(),i}pixels(e){const t=(e=this._normalizeOptions(e)).target,r=this._renderer,n=t instanceof s.Texture?t:r.textureGenerator.generateTexture(e),o=r.texture.getPixels(n);return t instanceof i.Container&&n.destroy(),o}texture(e){return(e=this._normalizeOptions(e)).target instanceof s.Texture?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);const t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){const t=e.width??200;e=this._normalizeOptions(e);const r=this.canvas(e),n=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);const i=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${n}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",i)}destroy(){this._renderer=null}};a.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"extract"},a.defaultImageOptions={format:"png",quality:1};let u=a;t.ExtractSystem=u},42310:function(e,t,r){"use strict";var n=r(58778),i=r(17073),s=r(15685),o=r(42181),a=r(14786),u=r(19025),l=r(74599),c=r(32064);const h=new o.Rectangle,d=new a.Bounds,p=[0,0,0,0];class f{constructor(e){this._renderer=e}generateTexture(e){e instanceof l.Container&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});const t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,i=e.target;let o=e.clearColor;if(o){o=Array.isArray(o)&&4===o.length?o:n.Color.shared.setValue(o).toArray()}else o=p;const a=e.frame?.copyTo(h)||u.getLocalBounds(i,d).rectangle;a.width=0|Math.max(a.width,1/t),a.height=0|Math.max(a.height,1/t);const f=c.RenderTexture.create({...e.textureSourceOptions,width:a.width,height:a.height,resolution:t,antialias:r}),m=s.Matrix.shared.translate(-a.x,-a.y);return this._renderer.render({container:i,transform:m,target:f,clearColor:o}),f.source.updateMipmaps(),f}destroy(){this._renderer=null}}f.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem],name:"textureGenerator"},t.GenerateTextureSystem=f},33829:function(e,t,r){"use strict";var n=r(5323),i=r(14786),s=r(78739),o=r(21839),a=r(84026),u=r(14740);function l(e){return(e instanceof o.Buffer||Array.isArray(e)||e.BYTES_PER_ELEMENT)&&(e={buffer:e}),e.buffer=a.ensureIsBuffer(e.buffer,!1),e}t.Geometry=class extends n{constructor(e){const{attributes:t,indexBuffer:r,topology:n}=e;super(),this.uid=s.uid("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new i.Bounds,this._boundsDirty=!0,this.attributes=t,this.buffers=[],this.instanceCount=e.instanceCount||1;for(const e in t){const r=t[e]=l(t[e]);-1===this.buffers.indexOf(r.buffer)&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this))}r&&(this.indexBuffer=a.ensureIsBuffer(r,!0),this.buffers.push(this.indexBuffer)),this.topology=n||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(const e in this.attributes){const t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,u.getGeometryBounds(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach((e=>e.destroy())),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}},80163:function(e,t,r){"use strict";var n=r(60094);const i={POINTS:"point-list",LINES:"line-list",LINE_STRIP:"line-strip",TRIANGLES:"triangle-list",TRIANGLE_STRIP:"triangle-strip"},s=new Proxy(i,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${i[t]}' instead`),e[t]}});t.DRAW_MODES=s},44307:function(e,t){"use strict";t.buildSimpleUvs=function(e,t,r,n){let i=0;for(t*=r;ia&&(a=t),r>u&&(u=r),t"},uWorldTransformMatrix:{value:new i.Matrix,type:"mat3x3"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4"},uResolution:{value:[0,0],type:"vec2"}},{isStatic:!0})}destroy(){this._renderer=null}}c.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"globalUniforms"},t.GlobalUniformSystem=c},33764:function(e,t,r){"use strict";var n=r(78739),i=r(27666),s=r(84463);const o=class e{constructor(t={}){if(this.uid=n.uid("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,t={...e.defaultOptions,...t},this.stencil=t.stencil,this.depth=t.depth,this.isRoot=t.isRoot,"number"==typeof t.colorTextures){this._managedColorTextures=!0;for(let e=0;ee.source))];const e=this.colorTexture.source;this.resize(e.width,e.height,e._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(t.depthStencilTexture||this.stencil)&&(t.depthStencilTexture instanceof s.Texture||t.depthStencilTexture instanceof i.TextureSource?this.depthStencilTexture=t.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){const e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new i.TextureSource({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,r=this.resolution,n=!1){this.dirtyId++,this.colorTextures.forEach(((i,s)=>{n&&0===s||i.source.resize(e,t,r)})),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,r)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach((e=>{e.destroy()})),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};o.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};let a=o;t.RenderTarget=a},16952:function(e,t,r){"use strict";var n=r(15685),i=r(42181),s=r(32985),o=r(91428),a=r(17627),u=r(91525),l=r(27666),c=r(84463),h=r(40190),d=r(11987),p=r(33764);t.RenderTargetSystem=class{constructor(e){this.rootViewPort=new i.Rectangle,this.viewport=new i.Rectangle,this.onRenderTargetChange=new a.SystemRunner("onRenderTargetChange"),this.projectionMatrix=new n.Matrix,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:r,frame:n}){this._renderTargetStack.length=0,this.push(e,t,r,n),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=d.isRenderingToScreen(this.rootRenderTarget)}bind(e,t=!0,r,n){const i=this.getRenderTarget(e),s=this.renderTarget!==i;this.renderTarget=i,this.renderSurface=e;const a=this.getGpuRenderTarget(i);i.pixelWidth===a.width&&i.pixelHeight===a.height||(this.adaptor.resizeGpuRenderTarget(i),a.width=i.pixelWidth,a.height=i.pixelHeight);const u=i.colorTexture,l=this.viewport,h=u.pixelWidth,d=u.pixelHeight;if(!n&&e instanceof c.Texture&&(n=e.frame),n){const e=u._resolution;l.x=n.x*e+.5|0,l.y=n.y*e+.5|0,l.width=n.width*e+.5|0,l.height=n.height*e+.5|0}else l.x=0,l.y=0,l.width=h,l.height=d;return o.calculateProjection(this.projectionMatrix,0,0,l.width/u.resolution,l.height/u.resolution,!i.isRoot),this.adaptor.startRenderPass(i,t,r,l),s&&this.onRenderTargetChange.emit(i),i}clear(e,t=s.CLEAR.ALL,r){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=s.CLEAR.ALL,r,n){const i=this.bind(e,t,r,n);return this._renderTargetStack.push({renderTarget:i,frame:n}),i}pop(){this._renderTargetStack.pop();const e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,n,i){r.x<0&&(n.width+=r.x,i.x-=r.x,r.x=0),r.y<0&&(n.height+=r.y,i.y-=r.y,r.y=0);const{pixelWidth:s,pixelHeight:o}=e;return n.width=Math.min(n.width,s-r.x),n.height=Math.min(n.height,o-r.y),this.adaptor.copyToTexture(e,t,r,n,i)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach(((e,t)=>{e!==t&&e.destroy()})),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return u.CanvasSource.test(e)&&(e=h.getCanvasTexture(e).source),e instanceof p.RenderTarget?t=e:e instanceof l.TextureSource&&(t=new p.RenderTarget({colorTextures:[e]}),u.CanvasSource.test(e.source.resource)&&(t.isRoot=!0),e.once("destroy",(()=>{t.destroy();const e=this._gpuRenderTargetHash[t.uid];e&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(e))}))),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}}},11987:function(e,t){"use strict";t.isRenderingToScreen=function(e){const t=e.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}},3695:function(e,t,r){"use strict";const n=new(r(42181).Rectangle)(0,0,1,1);t.viewportFromFrame=function(e,t,r){r||(r=n);const i=t.pixelWidth,s=t.pixelHeight;return e.x=r.x*i|0,e.y=r.y*s|0,e.width=r.width*i|0,e.height=r.height*s|0,e}},97505:function(e,t,r){"use strict";var n=r(5323),i=r(62991),s=r(83582),o=r(50543),a=r(2559),u=r(65518);class l extends n{constructor(e){super(),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:r,groups:n,resources:i,compatibleRenderers:o,groupMap:l}=e;this.gpuProgram=t,this.glProgram=r,void 0===o&&(o=0,t&&(o|=a.RendererType.WEBGPU),r&&(o|=a.RendererType.WEBGL)),this.compatibleRenderers=o;const c={};if(i||n||(i={}),i&&n)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&n&&!l)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&n&&l)for(const e in l)for(const t in l[e]){const r=l[e][t];c[r]={group:e,binding:t,name:r}}else if(t&&n&&!l){const e=t.structsAndGroups.groups;l={},e.forEach((e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,c[e.name]=e}))}else if(i){if(t){const e=t.structsAndGroups.groups;l={},e.forEach((e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,c[e.name]=e}))}else{l={},n={99:new s.BindGroup},this._ownedBindGroups.push(n[99]);let e=0;for(const t in i)c[t]={group:99,binding:e,name:t},l[99]=l[99]||{},l[99][e]=t,e++}n={};for(const e in i){const t=e;let r=i[e];r.source||r._resourceType||(r=new u.UniformGroup(r));const o=c[t];o&&(n[o.group]||(n[o.group]=new s.BindGroup,this._ownedBindGroups.push(n[o.group])),n[o.group].setResource(r,o.binding))}}this.groups=n,this._uniformBindMap=l,this.resources=this._buildResourceAccessor(n,c)}addResource(e,t,r){var n,i;(n=this._uniformBindMap)[t]||(n[t]={}),(i=this._uniformBindMap[t])[r]||(i[r]=e),this.groups[t]||(this.groups[t]=new s.BindGroup,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){const r={};for(const n in t){const i=t[n];Object.defineProperty(r,i.name,{get(){return e[i.group].getResource(i.binding)},set(t){e[i.group].setResource(t,i.binding)}})}return r}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach((e=>{e.destroy()})),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){const{gpu:t,gl:r,...n}=e;let s,a;return t&&(s=o.GpuProgram.from(t)),r&&(a=i.GlProgram.from(r)),new l({gpuProgram:s,glProgram:a,...n})}}t.Shader=l},6864:function(e,t,r){"use strict";var n=r(4037),i=r(21839),s=r(18919);t.UboSystem=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!n.unsafeEvalSupported())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){const t=this.getUniformGroupData(e);e.buffer||(e.buffer=new i.Buffer({data:new Float32Array(t.layout.size/4),usage:s.BufferUsage.UNIFORM|s.BufferUsage.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){const t=e._signature;let r=this._syncFunctionHash[t];if(!r){const n=Object.keys(e.uniformStructures).map((t=>e.uniformStructures[t])),i=this._adaptor.createUboElements(n),s=this._generateUboSync(i.uboElements);r=this._syncFunctionHash[t]={layout:i,syncFunction:s}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){const n=this.getUniformGroupData(e);return e.buffer||(e.buffer=new i.Buffer({data:new Float32Array(n.layout.size/4),usage:s.BufferUsage.UNIFORM|s.BufferUsage.COPY_DST})),t||(t=e.buffer.data),r||(r=0),n.syncFunction(e.uniforms,t,r),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;const t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}},65518:function(e,t,r){"use strict";var n=r(78739),i=r(6066),s=r(21384),o=r(90887);const a=class e{constructor(t,r){this._touched=0,this.uid=n.uid("uniform"),this._resourceType="uniformGroup",this._resourceId=n.uid("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,r={...e.defaultOptions,...r},this.uniformStructures=t;const a={};for(const e in t){const r=t[e];if(r.name=e,r.size=r.size??1,!s.UNIFORM_TYPES_MAP[r.type])throw new Error(`Uniform type ${r.type} is not supported. Supported uniform types are: ${s.UNIFORM_TYPES_VALUES.join(", ")}`);r.value??(r.value=o.getDefaultUniformValue(r.type,r.size)),a[e]=r.value}this.uniforms=a,this._dirtyId=1,this.ubo=r.ubo,this.isStatic=r.isStatic,this._signature=i.createIdFromString(Object.keys(a).map((e=>`${e}-${t[e].type}`)).join("-"),"uniform-group")}update(){this._dirtyId++}};a.defaultOptions={ubo:!1,isStatic:!1};let u=a;t.UniformGroup=u},19450:function(e,t){"use strict";var r=(e=>(e[e.VERTEX=1]="VERTEX",e[e.FRAGMENT=2]="FRAGMENT",e[e.COMPUTE=4]="COMPUTE",e))(r||{});t.ShaderStage=r},21384:function(e,t){"use strict";const r=["f32","i32","vec2","vec3","vec4","mat2x2","mat3x3","mat4x4","mat3x2","mat4x2","mat2x3","mat4x3","mat2x4","mat3x4"],n=r.reduce(((e,t)=>(e[t]=!0,e)),{});t.UNIFORM_TYPES_MAP=n,t.UNIFORM_TYPES_VALUES=r},1021:function(e,t,r){"use strict";var n=r(46876);t.createUboSyncFunction=function(e,t,r,i){const s=["\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n "];let o=0;for(let a=0;a1)h=u.offset/4,s.push(r(u,h-o));else{const e=i[u.data.type];h=u.offset/4,s.push(`\n v = uv.${l};\n offset += ${h-o};\n ${e};\n `)}o=h}const a=s.join("\n");return new Function("uv","data","offset",a)}},90887:function(e,t){"use strict";t.getDefaultUniformValue=function(e,t){switch(e){case"f32":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"mat2x2":return new Float32Array([1,0,0,1]);case"mat3x3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}},63981:function(e,t){"use strict";function r(e,t){return`\n for (let i = 0; i < ${e*t}; i++) {\n data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];\n }\n `}const n={f32:"\n data[offset] = v;",i32:"\n data[offset] = v;","vec2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];","vec3":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];","vec4":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];","mat2x2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];","mat3x3":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];","mat4x4":"\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }","mat3x2":r(3,2),"mat4x2":r(4,2),"mat2x3":r(2,3),"mat4x3":r(4,3),"mat2x4":r(2,4),"mat3x4":r(3,4)},i={...n,"mat2x2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n "};t.uboSyncFunctionsSTD40=n,t.uboSyncFunctionsWGSL=i},46876:function(e,t){"use strict";const r=[{type:"mat3x3",test:e=>void 0!==e.value.a,ubo:"\n var matrix = uv[name].toArray(true);\n data[offset] = matrix[0];\n data[offset + 1] = matrix[1];\n data[offset + 2] = matrix[2];\n data[offset + 4] = matrix[3];\n data[offset + 5] = matrix[4];\n data[offset + 6] = matrix[5];\n data[offset + 8] = matrix[6];\n data[offset + 9] = matrix[7];\n data[offset + 10] = matrix[8];\n ",uniform:"\n gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));\n "},{type:"vec4",test:e=>"vec4"===e.type&&1===e.size&&void 0!==e.value.width,ubo:"\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n data[offset + 2] = v.width;\n data[offset + 3] = v.height;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);\n }\n "},{type:"vec2",test:e=>"vec2"===e.type&&1===e.size&&void 0!==e.value.x,ubo:"\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y) {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[name].location, v.x, v.y);\n }\n "},{type:"vec4",test:e=>"vec4"===e.type&&1===e.size&&void 0!==e.value.red,ubo:"\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n data[offset + 3] = v.alpha;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);\n }\n "},{type:"vec3",test:e=>"vec3"===e.type&&1===e.size&&void 0!==e.value.red,ubo:"\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n gl.uniform3f(ud[name].location, v.red, v.green, v.blue);\n }\n "}];t.uniformParsers=r},22334:function(e,t,r){"use strict";var n=r(17073),i=r(37087),s=r(2559);class o{constructor(e){this._renderer=e}init(e){if(e.hello){let e=this._renderer.name;this._renderer.type===s.RendererType.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),i.sayHello(e)}}}o.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"hello",priority:-2},o.defaultOptions={hello:!1},t.HelloSystem=o},55141:function(e,t){"use strict";const r={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8},n=class e{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(1&this.data)}set blend(e){!!(1&this.data)!==e&&(this.data^=1)}get offsets(){return!!(2&this.data)}set offsets(e){!!(2&this.data)!==e&&(this.data^=2)}set cullMode(e){"none"!==e?(this.culling=!0,this.clockwiseFrontFace="front"===e):this.culling=!1}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(4&this.data)}set culling(e){!!(4&this.data)!==e&&(this.data^=4)}get depthTest(){return!!(8&this.data)}set depthTest(e){!!(8&this.data)!==e&&(this.data^=8)}get depthMask(){return!!(32&this.data)}set depthMask(e){!!(32&this.data)!==e&&(this.data^=32)}get clockwiseFrontFace(){return!!(16&this.data)}set clockwiseFrontFace(e){!!(16&this.data)!==e&&(this.data^=16)}get blendMode(){return this._blendMode}set blendMode(e){this.blend="none"!==e,this._blendMode=e,this._blendModeId=r[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){const t=new e;return t.depthTest=!1,t.blend=!0,t}};n.default2d=n.for2d();let i=n;t.State=i},56445:function(e,t){"use strict";var r=(e=>(e[e.DISABLED=0]="DISABLED",e[e.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",e[e.MASK_ACTIVE=2]="MASK_ACTIVE",e[e.RENDERING_MASK_REMOVE=3]="RENDERING_MASK_REMOVE",e[e.NONE=4]="NONE",e))(r||{});t.BLEND_TO_NPM={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},t.STENCIL_MODES=r},254:function(e,t,r){"use strict";var n=r(56445);t.getAdjustedBlendModeBlend=function(e,t){return"no-premultiply-alpha"===t.alphaMode&&n.BLEND_TO_NPM[e]||e}},95931:function(e,t,r){"use strict";var n=r(58778),i=r(98182),s=r(74599),o=r(4037),a=r(60094);r(59121);var u=r(32985),l=r(17627),c=r(5323);const h=["init","destroy","contextChange","resolutionChange","reset","renderEnd","renderStart","render","update","postrender","prerender"],d=class e extends c{constructor(e){super(),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;const t=[...h,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(t={}){const r=!0===t.skipExtensionImports||!1===t.manageImports;await i.loadEnvironmentExtensions(r),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(const e in this._systemsHash){t={...this._systemsHash[e].constructor.defaultOptions,...t}}t={...e.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let e=0;e{this.runners[e]=new l.SystemRunner(e)}))}_addSystems(e){let t;for(t in e){const r=e[t];this._addSystem(r.value,r.name)}}_addSystem(e,t){const r=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=r,this._systemsHash[t]=r;for(const e in this.runners)this.runners[e].add(r);return this}_addPipes(e,t){const r=t.reduce(((e,t)=>(e[t.name]=t.value,e)),{});e.forEach((e=>{const t=e.value,n=e.name,i=r[n];this.renderPipes[n]=new t(this,i?new i:null)}))}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach((e=>{e.destroy()})),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!o.unsafeEvalSupported())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}};d.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};let p=d;t.AbstractRenderer=p},62856:function(e,t,r){"use strict";var n=r(2934),i=r(9176),s=r(13056),o=r(1894),a=r(77078),u=r(33961),l=r(14673),c=r(62579),h=r(33648),d=r(6852),p=r(69862),f=r(95041),m=r(42310),g=r(54572),_=r(22334),x=r(95224),b=r(80177);const y=[d.BackgroundSystem,g.GlobalUniformSystem,_.HelloSystem,b.ViewSystem,s.RenderGroupSystem,x.TextureGCSystem,m.GenerateTextureSystem,f.ExtractSystem,a.RendererInitHook],v=[p.BlendModePipe,u.BatcherPipe,o.SpritePipe,i.RenderGroupPipe,l.AlphaMaskPipe,h.StencilMaskPipe,c.ColorMaskPipe,n.CustomRenderPipe];t.SharedRenderPipes=v,t.SharedSystems=y},79480:function(){},17627:function(e,t){"use strict";t.SystemRunner=class{constructor(e){this.items=[],this._name=e}emit(e,t,r,n,i,s,o,a){const{name:u,items:l}=this;for(let c=0,h=l.length;cthis.checkCountMax&&(this.checkCount=0,this.run())))}run(){const e=this._renderer.texture.managedTextures;for(let t=0;t-1&&this.count-r._touched>this.maxIdle&&(r._touched=-1,r.unload())}}destroy(){this._renderer=null}};i.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"textureGC"},i.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:3600,textureGCCheckCountMax:600};let s=i;n.extensions.add(s),t.TextureGCSystem=s},94058:function(e,t,r){"use strict";var n=r(15685);const i=new n.Matrix;t.TextureMatrix=class{constructor(e,t){this.mapCoord=new n.Matrix,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,this.clampMargin=void 0===t?e.width<10?0:.5:t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){void 0===t&&(t=e);const r=this.mapCoord;for(let n=0;n1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){const e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=function(e){const t=o[e];return void 0===t&&(o[e]=i.uid("resource")),t}(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};a.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};let u=a;t.TextureStyle=u},92756:function(e,t,r){"use strict";var n=r(81955);t.TextureUvs=class{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,r){const i=t.width,s=t.height;if(r){const t=e.width/2/i,o=e.height/2/s,a=e.x/i+t,u=e.y/s+o;r=n.groupD8.add(r,n.groupD8.NW),this.x0=a+t*n.groupD8.uX(r),this.y0=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x1=a+t*n.groupD8.uX(r),this.y1=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x2=a+t*n.groupD8.uX(r),this.y2=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x3=a+t*n.groupD8.uX(r),this.y3=u+o*n.groupD8.uY(r)}else this.x0=e.x/i,this.y0=e.y/s,this.x1=(e.x+e.width)/i,this.y1=e.y/s,this.x2=(e.x+e.width)/i,this.y2=(e.y+e.height)/s,this.x3=e.x/i,this.y3=(e.y+e.height)/s;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}toString(){return`[pixi.js/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`}}},6121:function(e,t,r){"use strict";var n=r(60094),i=(e=>(e[e.NONE=0]="NONE",e[e.LOW=2]="LOW",e[e.MEDIUM=4]="MEDIUM",e[e.HIGH=8]="HIGH",e))(i||{}),s=(e=>(e.CLAMP="clamp-to-edge",e.REPEAT="repeat",e.MIRRORED_REPEAT="mirror-repeat",e))(s||{});const o=new Proxy(s,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${s[t]}' instead`),e[t]}});var a=(e=>(e.NEAREST="nearest",e.LINEAR="linear",e))(a||{});const u=new Proxy(a,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${a[t]}' instead`),e[t]}});t.DEPRECATED_SCALE_MODES=a,t.DEPRECATED_WRAP_MODES=s,t.MSAA_QUALITY=i,t.SCALE_MODES=u,t.WRAP_MODES=o},4720:function(e,t,r){"use strict";var n=r(17073),i=r(27666);class s extends i.TextureSource{constructor(e){const t=e.resource||new Float32Array(e.width*e.height*4);let r=e.format;r||(r=t instanceof Float32Array?"rgba32float":t instanceof Int32Array||t instanceof Uint32Array?"rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?"rgba16uint":(Int8Array,"bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}}s.extension=n.ExtensionType.TextureSource,t.BufferImageSource=s},91525:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(27666);class o extends s.TextureSource{constructor(e){e.resource||(e.resource=n.DOMAdapter.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity;const t=e.resource;this.pixelWidth===t.width&&this.pixelWidth===t.height||this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),this.resource.width===this.pixelWidth&&this.resource.height===this.pixelHeight||(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,r=this._resolution){const n=super.resize(e,t,r);return n&&this.resizeCanvas(),n}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}}o.extension=i.ExtensionType.TextureSource,t.CanvasSource=o},68651:function(e,t,r){"use strict";var n=r(27666);class i extends n.TextureSource{constructor(e){super(e),this.uploadMethodId="compressed",this.resource=e.resource,this.mipLevelCount=this.resource.length}}t.CompressedSource=i},75813:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(95190),o=r(27666);class a extends o.TextureSource{constructor(e){if(e.resource&&globalThis.HTMLImageElement&&e.resource instanceof HTMLImageElement){const t=n.DOMAdapter.get().createCanvas(e.resource.width,e.resource.height);t.getContext("2d").drawImage(e.resource,0,0),e.resource=t,s.warn("ImageSource: Image element passed, converting to canvas. Use CanvasSource instead.")}super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap}}a.extension=i.ExtensionType.TextureSource,t.ImageSource=a},27666:function(e,t,r){"use strict";var n=r(5323),i=r(39018),s=r(6877),o=r(78739),a=r(44174);const u=class e extends n{constructor(t={}){super(),this.options=t,this.uid=o.uid("textureSource"),this._resourceType="textureSource",this._resourceId=o.uid("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...e.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=t.format,this.dimension=t.dimensions,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.alphaMode=t.alphaMode,this.style=new a.TextureStyle(s.definedProps(t)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){const e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=o.uid("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){const{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){const{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r=r||this._resolution,e=e||this.width,t=t||this.height;const n=Math.round(e*r),i=Math.round(t*r);return this.width=n/r,this.height=i/r,this._resolution=r,(this.pixelWidth!==n||this.pixelHeight!==i)&&(this._refreshPOT(),this.pixelWidth=n,this.pixelHeight=i,this.emit("resize",this),this._resourceId=o.uid("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=i.isPow2(this.pixelWidth)&&i.isPow2(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};u.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};let l=u;t.TextureSource=l},62480:function(e,t,r){"use strict";var n=r(17073),i=r(63983),s=r(86105),o=r(27666);const a=class e extends o.TextureSource{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...e.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=!1!==t.autoPlay,this.alphaMode=t.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),!1!==t.autoLoad&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){const e=i.Ticker.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;const e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await s.detectVideoAlphaMode(),this._load=new Promise(((r,n)=>{this.isValid?r(this):(this._resolve=r,this._reject=n,void 0!==t.preloadTimeoutMs&&(this._preloadTimeout=setTimeout((()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))}))),e.load())})),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){const e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){const e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();const e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(i.Ticker.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),null===this._videoFrameRequestCallbackHandle&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(null!==this._videoFrameRequestCallbackHandle&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(i.Ticker.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(null!==this._videoFrameRequestCallbackHandle&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(i.Ticker.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||globalThis.VideoFrame&&e instanceof VideoFrame}};a.extension=n.ExtensionType.TextureSource,a.defaultOptions={...o.TextureSource.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1},a.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};let u=a;t.VideoSource=u},95026:function(e,t){"use strict";let r=0;t.generateUID=function(){return r++}},40190:function(e,t,r){"use strict";var n=r(91525),i=r(84463);const s=new Map;t.getCanvasTexture=function(e,t){if(!s.has(e)){const r=new i.Texture({source:new n.CanvasSource({resource:e,...t})}),o=()=>{s.get(e)===r&&s.delete(e)};r.once("destroy",o),r.source.once("destroy",o),s.set(e,r)}return s.get(e)},t.hasCachedCanvasTexture=function(e){return s.has(e)}},34155:function(e,t,r){"use strict";var n=r(58050),i=r(73533),s=r(84157),o=r(43213);let a;t.getSupportedCompressedTextureFormats=async function(){return void 0!==a||(a=await(async()=>{const e=await i.isWebGPUSupported(),t=n.isWebGLSupported();if(e&&t){const e=await o.getSupportedGPUCompressedTextureFormats(),t=s.getSupportedGlCompressedTextureFormats();return e.filter((e=>t.includes(e)))}return e?await o.getSupportedGPUCompressedTextureFormats():t?s.getSupportedGlCompressedTextureFormats():[]})()),a}},55484:function(e,t,r){"use strict";var n=r(34155);const i=["r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32uint","r32sint","r32float","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb9e5ufloat","rgb10a2unorm","rg11b10ufloat","rg32uint","rg32sint","rg32float","rgba16uint","rgba16sint","rgba16float","rgba32uint","rgba32sint","rgba32float","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8"];let s;t.getSupportedTextureFormats=async function(){if(void 0!==s)return s;const e=await n.getSupportedCompressedTextureFormats();return s=[...i,...e],s},t.nonCompressedFormats=i},39394:function(e,t,r){"use strict";var n=r(56509),i=r(17073),s=r(27666),o=r(84463);const a=[];function u(e={}){const t=e&&e.resource,r=t?e.resource:e,n=t?e:{resource:e};for(let e=0;e{n.Cache.has(i)&&n.Cache.remove(i)})),t||n.Cache.set(i,a),a}function c(e,t=!1){return"string"==typeof e?n.Cache.get(e):e instanceof s.TextureSource?new o.Texture({source:e}):l(e,t)}i.extensions.handleByList(i.ExtensionType.TextureSource,a),o.Texture.from=c,s.TextureSource.from=u,t.autoDetectSource=function(e={}){return u(e)},t.resourceToTexture=l,t.textureFrom=c},6066:function(e,t){"use strict";const r=Object.create(null),n=Object.create(null);t.createIdFromString=function(e,t){let i=n[e];return void 0===i&&(void 0===r[t]&&(r[t]=1),n[e]=i=r[t]++),i}},60527:function(e,t){"use strict";t.parseFunctionBody=function(e){const t=e.toString(),r=t.indexOf("{"),n=t.lastIndexOf("}");if(-1===r||-1===n)throw new Error("getFunctionBody: No body found in function definition");return t.slice(r+1,n).trim()}},27571:function(){},80177:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(42181),o=r(60094),a=r(33764),u=r(40190);const l=class e{get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(t){(t={...e.defaultOptions,...t}).view&&(o.deprecation(o.v8_0_0,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new s.Rectangle(0,0,t.width,t.height),this.canvas=t.canvas||n.DOMAdapter.get().createCanvas(),this.antialias=!!t.antialias,this.texture=u.getCanvasTexture(this.canvas,t),this.renderTarget=new a.RenderTarget({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.multiView=!!t.multiView,this.autoDensity&&(this.canvas.style.width=`${this.texture.width}px`,this.canvas.style.height=`${this.texture.height}px`),this.resolution=t.resolution}resize(e,t,r){this.texture.source.resize(e,t,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height,this.autoDensity&&(this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`)}destroy(e=!1){("boolean"==typeof e?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};l.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem,i.ExtensionType.CanvasSystem],name:"view",priority:0},l.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};let c=l;t.ViewSystem=c},2559:function(e,t){"use strict";var r=(e=>(e[e.WEBGL=1]="WEBGL",e[e.WEBGPU=2]="WEBGPU",e[e.BOTH=3]="BOTH",e))(r||{});t.RendererType=r},74599:function(e,t,r){"use strict";var n=r(5323),i=r(58778),s=r(10051),o=r(15685),a=r(29705),u=r(62792),l=r(78739),c=r(60094),h=r(86169),d=r(5408),p=r(25136),f=r(36695),m=r(59009),g=r(8125),_=r(36422),x=r(84748),b=r(49341),y=r(15486);const v=new u.ObservablePoint(null),T=new u.ObservablePoint(null),S=new u.ObservablePoint(null,1,1);class E extends n{constructor(e={}){super(),this.uid=l.uid("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new o.Matrix,this.relativeGroupTransform=new o.Matrix,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new u.ObservablePoint(this,0,0),this._scale=S,this._pivot=T,this._skew=v,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didChangeId=0,this._didLocalTransformChangeId=-1,y.assignWithIgnore(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach((e=>this.addChild(e))),this.effects=[],e.parent?.addChild(this)}static mixin(e){Object.defineProperties(E.prototype,Object.getOwnPropertyDescriptors(e))}addChild(...e){if(this.allowChildren||c.deprecation(c.v8_0_0,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let t=0;t1){for(let t=0;t-1&&(this._didChangeId+=4096,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didChangeId++,this.didChange||(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;const e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=h.BigPool.get(b.RenderGroup,this),this.groupTransform=o.Matrix.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;const e=this.parentRenderGroup;e?.removeChild(this),h.BigPool.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&0===this.effects.length}get worldTransform(){return this._worldTransform||(this._worldTransform=new o.Matrix),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*a.RAD_TO_DEG}set angle(e){this.rotation=e*a.DEG_TO_RAD}get pivot(){return this._pivot===T&&(this._pivot=new u.ObservablePoint(this,0,0)),this._pivot}set pivot(e){this._pivot===T&&(this._pivot=new u.ObservablePoint(this,0,0)),"number"==typeof e?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===v&&(this._skew=new u.ObservablePoint(this,0,0)),this._skew}set skew(e){this._skew===v&&(this._skew=new u.ObservablePoint(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===S&&(this._scale=new u.ObservablePoint(this,1,1)),this._scale}set scale(e){this._scale===S&&(this._scale=new u.ObservablePoint(this,0,0)),"number"==typeof e?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){const t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){const t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});const t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){const r=this.getLocalBounds();let n,i;"object"!=typeof e?(n=e,i=t??e):(n=e.width,i=e.height??e.width),void 0!==n&&this._setWidth(n,r.width),void 0!==i&&this._setHeight(i,r.height)}_updateSkew(){const e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set("number"==typeof e.x?e.x:this.position.x,"number"==typeof e.y?e.y:this.position.y),this.scale.set("number"==typeof e.scaleX?e.scaleX||1:this.scale.x,"number"==typeof e.scaleY?e.scaleY||1:this.scale.y),this.rotation="number"==typeof e.rotation?e.rotation:this.rotation,this.skew.set("number"==typeof e.skewX?e.skewX:this.skew.x,"number"==typeof e.skewY?e.skewY:this.skew.y),this.pivot.set("number"==typeof e.pivotX?e.pivotX:this.pivot.x,"number"==typeof e.pivotY?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){if((15&this._didLocalTransformChangeId)===this._didChangeId)return;this._didLocalTransformChangeId=this._didChangeId;const e=this.localTransform,t=this._scale,r=this._pivot,n=this._position,i=t._x,s=t._y,o=r._x,a=r._y;e.a=this._cx*i,e.b=this._sx*i,e.c=this._cy*s,e.d=this._sy*s,e.tx=n._x-(o*e.a+a*e.c),e.ty=n._y-(o*e.b+a*e.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=1,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){const t=i.Color.shared.setValue(e??16777215).toBgrNumber();t!==this.localColor&&(this.localColor=t,this._updateFlags|=1,this._onUpdate())}get tint(){const e=this.localColor;return((255&e)<<16)+(65280&e)+(e>>16&255)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=2,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(2&this.localDisplayStatus)}set visible(e){const t=e?1:0;(2&this.localDisplayStatus)>>1!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=4,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(4&this.localDisplayStatus)}set culled(e){const t=e?1:0;(4&this.localDisplayStatus)>>2!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=4,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(1&this.localDisplayStatus)}set renderable(e){const t=e?1:0;(1&this.localDisplayStatus)!==t&&(this._updateFlags|=4,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return 7===this.localDisplayStatus&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;const t=this.removeChildren(0,this.children.length);this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners();if("boolean"==typeof e?e:e?.children)for(let r=0;r!1),this.addBounds=e.addBounds??(()=>!1)}render(e){}}t.RenderContainer=s},49341:function(e,t,r){"use strict";var n=r(15685),i=r(31540);t.RenderGroup=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new n.Matrix,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new i.InstructionSet,this._onRenderContainers=[]}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;const t=e.children;for(let e=0;e-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup)return void this.addRenderGroupChild(e.renderGroup);e._onRender&&this.addOnRender(e);const t=e.children;for(let e=0;e0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(){for(let e=0;ethis.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new i.Rectangle);const e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=s,this}set(e,t,r,n){this.minX=e,this.minY=t,this.maxX=r,this.maxY=n}addFrame(e,t,r,n,i){i||(i=this.matrix);const s=i.a,o=i.b,a=i.c,u=i.d,l=i.tx,c=i.ty;let h=this.minX,d=this.minY,p=this.maxX,f=this.maxY,m=s*e+a*t+l,g=o*e+u*t+c;mp&&(p=m),g>f&&(f=g),m=s*r+a*t+l,g=o*r+u*t+c,mp&&(p=m),g>f&&(f=g),m=s*e+a*n+l,g=o*e+u*n+c,mp&&(p=m),g>f&&(f=g),m=s*r+a*n+l,g=o*r+u*n+c,mp&&(p=m),g>f&&(f=g),this.minX=h,this.minY=d,this.maxX=p,this.maxY=f}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxXthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY,h=s*t+a*i+l,d=o*t+u*i+c,this.minX=hthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY,h=s*n+a*i+l,d=o*n+u*i+c,this.minX=hthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minXe.right&&(this.maxX=e.right),this.minYe.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,r,n){return this.minXt&&(this.maxX=t),this.minYn&&(this.maxY=n),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new o(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){const t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){const t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,r,n){let i=this.minX,s=this.minY,o=this.maxX,a=this.maxY;n||(n=this.matrix);const u=n.a,l=n.b,c=n.c,h=n.d,d=n.tx,p=n.ty;for(let n=t;no?f:o,a=m>a?m:a}this.minX=i,this.minY=s,this.maxX=o,this.maxY=a}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}}t.Bounds=o},91858:function(e,t,r){"use strict";var n=r(15685),i=r(29541);const s=new n.Matrix;function o(e,t){if(7!==e.localDisplayStatus||!e.measurable)return;const r=!!e.effects.length;let n=t;if((e.renderGroup||r)&&(n=i.boundsPool.get().clear()),e.boundsArea)t.addRect(e.boundsArea,e.worldTransform);else{if(e.renderPipeId){const t=e.bounds;n.addFrame(t.minX,t.minY,t.maxX,t.maxY,e.groupTransform)}const t=e.children;for(let e=0;e0&&i<=r){for(let t=r-1;t>=e;t--){const e=this.children[t];e&&(s.push(e),e.parent=null)}n.removeItems(this.children,e,r);const t=this.renderGroup||this.parentRenderGroup;t&&t.removeChildren(s);for(let e=0;e=this.children.length)throw new Error(`getChildAt: Index (${e}) does not exist.`);return this.children[e]},setChildIndex(e,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(e),this.addChildAt(e,t)},getChildIndex(e){const t=this.children.indexOf(e);if(-1===t)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(e,t){this.allowChildren||i.deprecation(i.v8_0_0,"addChildAt: Only Containers will be allowed to add children in v8.0.0");const{children:r}=this;if(t<0||t>r.length)throw new Error(`${e}addChildAt: The index ${t} supplied is out of bounds ${r.length}`);if(e.parent){const r=e.parent.children.indexOf(e);if(e.parent===this&&r===t)return e;-1!==r&&e.parent.children.splice(r,1)}t===r.length?r.push(e):r.splice(t,0,e),e.parent=this,e.didChange=!0,e.didViewUpdate=!1,e._updateFlags=15;const n=this.renderGroup||this.parentRenderGroup;return n&&n.addChild(e),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",e,this,t),e.emit("added",this),e},swapChildren(e,t){if(e===t)return;const r=this.getChildIndex(e),n=this.getChildIndex(t);this.children[r]=t,this.children[n]=e;const i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0),this._didChangeId++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...e){return 1===e.length?this.reparentChildAt(e[0],this.children.length):(e.forEach((e=>this.reparentChildAt(e,this.children.length))),e[0])},reparentChildAt(e,t){if(e.parent===this)return this.setChildIndex(e,t),e;const r=e.worldTransform.clone();e.removeFromParent(),this.addChildAt(e,t);const n=this.worldTransform.clone();return n.invert(),r.prepend(n),e.setFromMatrix(r),e}};t.childrenHelperMixin=s},25136:function(e,t,r){"use strict";var n=r(71210),i=r(81480);const s={_maskEffect:null,_filterEffect:null,effects:[],addEffect(e){if(-1!==this.effects.indexOf(e))return;this.effects.push(e),this.effects.sort(((e,t)=>e.priority-t.priority));const t=this.renderGroup||this.parentRenderGroup;t&&(t.structureDidChange=!0),this._updateIsSimple()},removeEffect(e){const t=this.effects.indexOf(e);-1!==t&&(this.effects.splice(t,1),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateIsSimple())},set mask(e){const t=this._maskEffect;t?.mask!==e&&(t&&(this.removeEffect(t),i.MaskEffectManager.returnMaskEffect(t),this._maskEffect=null),null!=e&&(this._maskEffect=i.MaskEffectManager.getMaskEffect(e),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},set filters(e){!Array.isArray(e)&&e&&(e=[e]);const t=this._filterEffect||(this._filterEffect=new n.FilterEffect),r=e?.length>0,i=r!==t.filters?.length>0;e=Array.isArray(e)?e.slice(0):e,t.filters=Object.freeze(e),i&&(r?this.addEffect(t):(this.removeEffect(t),t.filters=e??null))},get filters(){return this._filterEffect?.filters},set filterArea(e){this._filterEffect||(this._filterEffect=new n.FilterEffect),this._filterEffect.filterArea=e},get filterArea(){return this._filterEffect?.filterArea}};t.effectsMixin=s},36695:function(e,t,r){"use strict";var n=r(60094);const i={label:null,get name(){return n.deprecation(n.v8_0_0,"Container.name property has been removed, use Container.label instead"),this.label},set name(e){n.deprecation(n.v8_0_0,"Container.name property has been removed, use Container.label instead"),this.label=e},getChildByName(e,t=!1){return this.getChildByLabel(e,t)},getChildByLabel(e,t=!1){const r=this.children;for(let t=0;t>12&&(e.didChange=!0,e.data[0]=this._didChangeId>>12),a.checkChildrenDidChange(this,e),e.didChange&&o.getLocalBounds(this,e.localBounds,u),e.localBounds},getBounds(e,t){return s.getGlobalBounds(this,e,t||new i.Bounds)}};t.measureMixin=l},8125:function(e,t){"use strict";const r={_onRender:null,set onRender(e){const t=this.renderGroup||this.parentRenderGroup;if(!e)return this._onRender&&t?.removeOnRender(this),void(this._onRender=null);this._onRender||t?.addOnRender(this),this._onRender=e},get onRender(){return this._onRender}};t.onRenderMixin=r},36422:function(e,t){"use strict";const r={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(e){this._zIndex!==e&&(this._zIndex=e,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(n))}};function n(e,t){return e._zIndex-t._zIndex}t.sortMixin=r},84748:function(e,t,r){"use strict";var n=r(15685),i=r(26553),s=r(9565);const o={getGlobalPosition(e=new i.Point,t=!1){return this.parent?this.parent.toGlobal(this._position,e,t):(e.x=this._position.x,e.y=this._position.y),e},toGlobal(e,t,r=!1){if(!r){this.updateLocalTransform();const r=s.updateTransformBackwards(this,new n.Matrix);return r.append(this.localTransform),r.apply(e,t)}return this.worldTransform.apply(e,t)},toLocal(e,t,r,i){if(t&&(e=t.toGlobal(e,r,i)),!i){this.updateLocalTransform();const t=s.updateTransformBackwards(this,new n.Matrix);return t.append(this.localTransform),t.applyInverse(e,r)}return this.worldTransform.applyInverse(e,r)}};t.toLocalGlobalMixin=o},5290:function(){},15486:function(e,t){"use strict";t.assignWithIgnore=function(e,t,r={}){for(const n in t)r[n]||void 0===t[n]||(e[n]=t[n])}},58216:function(e,t){"use strict";function r(e,t,i){e.globalDisplayStatus<7||!e.includeInBuild||(e.sortableChildren&&e.sortChildren(),e.isSimple?function(e,t,n){if(e.renderPipeId){n.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1;n[e.renderPipeId].addRenderable(e,t)}if(!e.renderGroup){const i=e.children,s=i.length;for(let e=0;e=0;r--){const i=e.effects[r];n[i.pipe].pop(i,e,t)}}}t.buildInstructions=function(e,t){const r=e.root,i=e.instructionSet;i.reset(),t.batch.buildStart(i),t.blendMode.buildStart(),t.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),n(r,i,t,!0),t.batch.buildEnd(i),t.blendMode.buildEnd(i)},t.collectAllRenderables=r},12057:function(e,t){"use strict";t.checkChildrenDidChange=function e(t,r){const n=t.children;for(let t=0;t>24&255)/255)*255,o=((255&e)<<16)+(65280&e)+(e>>16&255),a=16777215&r;let u;return u=o===i||a===i?o+a-i:n.mixHexColors(o,a,.5),u+(s<<24)}},55747:function(e,t){"use strict";t.mixHexColors=function(e,t,r){const n=e>>16&255,i=e>>8&255,s=255&e;return(n+((t>>16&255)-n)*r<<16)+(i+((t>>8&255)-i)*r<<8)+(s+((255&t)-s)*r)}},89358:function(e,t){"use strict";t.multiplyHexColors=function(e,t){return 16777215!==e&&t?16777215!==t&&e?((e>>16&255)*(t>>16&255)/255<<16)+((e>>8&255)*(t>>8&255)/255<<8)+(255&e)*(255&t)/255:e:t}},24417:function(e,t){"use strict";t.updateLocalTransform=function(e,t){const r=t._scale,n=t._pivot,i=t._position,s=r._x,o=r._y,a=n._x,u=n._y;e.a=t._cx*s,e.b=t._sx*s,e.c=t._cy*o,e.d=t._sy*o,e.tx=i._x-(a*e.a+u*e.c),e.ty=i._y-(a*e.b+u*e.d)}},48496:function(e,t,r){"use strict";var n=r(74599),i=r(82397);const s=new n.Container;function o(e){const t=e.root;let r;if(e.renderGroupParent){const n=e.renderGroupParent;e.worldTransform.appendFrom(t.relativeGroupTransform,n.worldTransform),e.worldColor=i.mixColors(t.groupColor,n.worldColor),r=t.groupAlpha*n.worldAlpha}else e.worldTransform.copyFrom(t.localTransform),e.worldColor=t.localColor,r=t.localAlpha;r=r<0?0:r>1?1:r,e.worldAlpha=r,e.worldColorAlpha=e.worldColor+((255*r|0)<<24)}function a(e,t,r){if(t===e.updateTick)return;e.updateTick=t,e.didChange=!1;const n=e.localTransform;e.updateLocalTransform();const i=e.parent;if(i&&!i.renderGroup?(r|=e._updateFlags,e.relativeGroupTransform.appendFrom(n,i.relativeGroupTransform),r&&u(e,i,r)):(r=e._updateFlags,e.relativeGroupTransform.copyFrom(n),r&&u(e,s,r)),!e.renderGroup){const n=e.children,i=n.length;for(let e=0;e1?1:r,e.groupAlpha=r,e.groupColorAlpha=e.groupColor+((255*r|0)<<24)}r&n.UPDATE_BLEND&&(e.groupBlendMode="inherit"===e.localBlendMode?t.groupBlendMode:e.localBlendMode),r&n.UPDATE_VISIBLE&&(e.globalDisplayStatus=e.localDisplayStatus&t.globalDisplayStatus),e._updateFlags=0}t.updateRenderGroupTransform=o,t.updateRenderGroupTransforms=function e(t,r=!1){o(t);const n=t.childrenToUpdate,i=t.updateTick++;for(const e in n){const r=Number(e),s=n[e],o=s.list,u=s.index;for(let e=0;e"},uTransformMatrix:{value:new i.Matrix,type:"mat3x3"},uRound:{value:0,type:"f32"}}),t=s.getMaxTexturesPerBatch(),r=o.compileHighShaderGlProgram({name:"graphics",bits:[a.colorBitGl,u.generateTextureBatchBitGl(t),l.localUniformBitGl,c.roundPixelsBitGl]});this.shader=new d.Shader({glProgram:r,resources:{localUniforms:e,batchSamplers:h.getBatchSamplersUniformGroup(t)}})}execute(e,t){const r=t.context,n=r.customShader||this.shader,i=e.renderer,s=i.graphicsContext,{geometry:o,instructions:a}=s.getContextRenderData(r);n.groups[0]=i.globalUniforms.bindGroup,i.state.set(e.state),i.shader.bind(n),i.geometry.bind(o,n.glProgram);const u=a.instructions;for(let e=0;e"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),t=a.compileHighShaderGpuProgram({name:"graphics",bits:[u.colorBit,l.generateTextureBatchBit(s.getMaxTexturesPerBatch()),c.localUniformBitGroup2,h.roundPixelsBit]});this.shader=new d.Shader({gpuProgram:t,resources:{localUniforms:e}})}execute(e,t){const r=t.context,n=r.customShader||this.shader,i=e.renderer,s=i.graphicsContext,{geometry:a,instructions:u}=s.getContextRenderData(r),l=i.encoder;l.setPipelineFromGeometryProgramAndState(a,n.gpuProgram,e.state),l.setGeometry(a);const c=i.globalUniforms.bindGroup;l.setBindGroup(0,c,n.gpuProgram);const h=i.renderPipes.uniformBatch.getUniformBindGroup(n.resources.localUniforms,!0);l.setBindGroup(2,h,n.gpuProgram);const d=u.instructions;for(let e=0;e>24&255)/255;t[r++]=(255&e)/255*n,t[r++]=(e>>8&255)/255*n,t[r++]=(e>>16&255)/255*n,t[r++]=n},t.colorToUniform=function(e,t,r,n){r[n++]=(e>>16&255)/255,r[n++]=(e>>8&255)/255,r[n++]=(255&e)/255,r[n++]=t}},83016:function(e,t,r){"use strict";var n=r(17073),i=r(2608),s=r(20832);n.extensions.add(s.GraphicsPipe),n.extensions.add(i.GraphicsContextSystem)},46141:function(e,t,r){"use strict";var n=r(89358);t.BatchableGraphics=class{constructor(){this.batcher=null,this.batch=null,this.applyTransform=!0,this.roundPixels=0}get blendMode(){return this.applyTransform?this.renderable.groupBlendMode:"normal"}packIndex(e,t,r){const n=this.geometryData.indices;for(let i=0;i>16|65280&h|(255&h)<<16;if(this.applyTransform){const s=n.multiplyHexColors(d,o.groupColor)+(this.alpha*o.groupAlpha*255<<24),h=o.groupTransform,p=i<<16|65535&this.roundPixels,f=h.a,m=h.b,g=h.c,_=h.d,x=h.tx,b=h.ty;for(let n=l;n{u.BigPool.return(e)}))}destroy(){for(const e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};d.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"graphicsContext"},d.defaultOptions={bezierSmoothness:.5};let p=d;t.GpuGraphicsContext=c,t.GraphicsContextRenderData=h,t.GraphicsContextSystem=p},20832:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(86169),o=r(76818),a=r(46141);class u{constructor(e,t){this.state=i.State.for2d(),this._graphicsBatchesHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){const t=e.context,r=!!this._graphicsBatchesHash[e.uid],n=this.renderer.graphicsContext.updateGpuContext(t);return!(!n.isBatchable&&r===n.isBatchable)}addRenderable(e,t){const r=this.renderer.graphicsContext.updateGpuContext(e.context);e._didGraphicsUpdate&&(e._didGraphicsUpdate=!1,this._rebuild(e)),r.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){const t=this._graphicsBatchesHash[e.uid];if(t)for(let e=0;e{const r=s.BigPool.get(a.BatchableGraphics);return t.copyTo(r),r.renderable=e,r.roundPixels=n,r}));return void 0===this._graphicsBatchesHash[e.uid]&&e.on("destroyed",(()=>{this.destroyRenderable(e)})),this._graphicsBatchesHash[e.uid]=i,i}_removeBatchForRenderable(e){this._graphicsBatchesHash[e].forEach((e=>{s.BigPool.return(e)})),this._graphicsBatchesHash[e]=null}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null;for(const e in this._graphicsBatchesHash)this._removeBatchForRenderable(e);this._graphicsBatchesHash=null}}u.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"graphics"},t.GraphicsPipe=u},50071:function(){},76393:function(e,t,r){"use strict";var n=r(2608);const i=8,s=1.1920929e-7,o=.01,a=0,u=0;function l(e,t,r,n,c,h,d,p,f,m,g){if(g>i)return;const _=Math.PI,x=(e+r)/2,b=(t+n)/2,y=(r+c)/2,v=(n+h)/2,T=(c+d)/2,S=(h+p)/2,E=(x+y)/2,A=(b+v)/2,M=(y+T)/2,P=(v+S)/2,R=(E+M)/2,w=(A+P)/2;if(g>0){let i=d-e,l=p-t;const g=Math.abs((r-d)*l-(n-p)*i),x=Math.abs((c-d)*l-(h-p)*i);let b,y;if(g>s&&x>s){if((g+x)*(g+x)<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),y>=_&&(y=2*_-y),b+yu)return void f.push(r,n);if(y>u)return void f.push(c,h)}}}else if(g>s){if(g*g<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),bu)return void f.push(r,n)}}else if(x>s){if(x*x<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),bu)return void f.push(c,h)}}else if(i=R-(e+d)/2,l=w-(t+p)/2,i*i+l*l<=m)return void f.push(R,w)}l(e,t,x,b,E,A,R,w,f,m,g+1),l(R,w,M,P,T,S,d,p,f,m,g+1)}t.buildAdaptiveBezier=function(e,t,r,i,s,o,a,u,c,h){let d=(1-Math.min(.99,Math.max(0,h??n.GraphicsContextSystem.defaultOptions.bezierSmoothness)))/1;return d*=d,function(e,t,r,n,i,s,o,a,u,c){l(e,t,r,n,i,s,o,a,u,c,0),u.push(o,a)}(t,r,i,s,o,a,u,c,e,d),e}},69169:function(e,t,r){"use strict";var n=r(2608);const i=8,s=1.1920929e-7,o=.01,a=0;function u(e,t,r,n,l,c,h,d,p){if(p>i)return;const f=Math.PI,m=(t+n)/2,g=(r+l)/2,_=(n+c)/2,x=(l+h)/2,b=(m+_)/2,y=(g+x)/2;let v=c-t,T=h-r;const S=Math.abs((n-c)*T-(l-h)*v);if(S>s){if(S*S<=d*(v*v+T*T)){if(a=f&&(i=2*f-i),is||o&&s>i)&&(u=2*Math.PI-u),a=a||Math.max(6,Math.floor(6*Math.pow(n,1/3)*(u/Math.PI)));let l=u/(a=Math.max(a,3)),c=i;l*=o?-1:1;for(let i=0;ih*u)}},67563:function(e,t,r){"use strict";var n=r(76393);const i=2*Math.PI,s={centerX:0,centerY:0,ang1:0,ang2:0},o=({x:e,y:t},r,n,i,s,o,a,u)=>{const l=i*(e*=r)-s*(t*=n),c=s*e+i*t;return u.x=l+o,u.y=c+a,u};function a(e,t){const r=-1.5707963267948966===t?-.551915024494:4/3*Math.tan(t/4),n=1.5707963267948966===t?.551915024494:r,i=Math.cos(e),s=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:i-s*n,y:s+i*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]}const u=(e,t,r,n)=>{let i=e*r+t*n;return i>1&&(i=1),i<-1&&(i=-1),(e*n-t*r<0?-1:1)*Math.acos(i)};t.buildArcToSvg=function(e,t,r,l,c,h,d,p=0,f=0,m=0){if(0===h||0===d)return;const g=Math.sin(p*i/360),_=Math.cos(p*i/360),x=_*(t-l)/2+g*(r-c)/2,b=-g*(t-l)/2+_*(r-c)/2;if(0===x&&0===b)return;h=Math.abs(h),d=Math.abs(d);const y=Math.pow(x,2)/Math.pow(h,2)+Math.pow(b,2)/Math.pow(d,2);y>1&&(h*=Math.sqrt(y),d*=Math.sqrt(y)),((e,t,r,n,s,o,a,l,c,h,d,p,f)=>{const m=Math.pow(s,2),g=Math.pow(o,2),_=Math.pow(d,2),x=Math.pow(p,2);let b=m*g-m*x-g*_;b<0&&(b=0),b/=m*x+g*_,b=Math.sqrt(b)*(a===l?-1:1);const y=b*s/o*p,v=b*-o/s*d,T=h*y-c*v+(e+r)/2,S=c*y+h*v+(t+n)/2,E=(d-y)/s,A=(p-v)/o,M=(-d-y)/s,P=(-p-v)/o,R=u(1,0,E,A);let w=u(E,A,M,P);0===l&&w>0&&(w-=i),1===l&&w<0&&(w+=i),f.centerX=T,f.centerY=S,f.ang1=R,f.ang2=w})(t,r,l,c,h,d,f,m,g,_,x,b,s);let{ang1:v,ang2:T}=s;const{centerX:S,centerY:E}=s;let A=Math.abs(T)/(i/4);Math.abs(1-A)<1e-7&&(A=1);const M=Math.max(Math.ceil(A),1);T/=M;let P=e[e.length-2],R=e[e.length-1];const w={x:0,y:0};for(let t=0;t=0&&a>=0&&i>=0&&s>=0))return t;const u=Math.ceil(2.3*Math.sqrt(o+a)),l=8*u+(i?4:0)+(s?4:0);if(0===l)return t;if(0===u)return t[0]=t[6]=r+i,t[1]=t[3]=n+s,t[2]=t[4]=r-i,t[5]=t[7]=n-s,t;let c=0,h=4*u+(i?2:0)+2,d=h,p=l,f=i+o,m=s,g=r+f,_=r-f,x=n+m;if(t[c++]=g,t[c++]=x,t[--h]=x,t[--h]=_,s){const e=n-m;t[d++]=_,t[d++]=e,t[--p]=e,t[--p]=g}for(let e=1;e0&&(i[s++]=u,i[s++]=l,i[s++]=u-1),u++;i[s++]=l+1,i[s++]=l,i[s++]=u-1}},i={...n,extension:{...n.extension,name:"ellipse"}},s={...n,extension:{...n.extension,name:"roundedRectangle"}};t.buildCircle=n,t.buildEllipse=i,t.buildRoundedRectangle=s},968:function(e,t,r){"use strict";var n=r(26553),i=r(88365),s=r(20593);function o(e,t,r,n,i,s,o,a){let u,l;o?(u=n,l=-r):(u=-n,l=r);const c=e-r*i+u,h=t-n*i+l,d=e+r*s+u,p=t+n*s+l;return a.push(c,h),a.push(d,p),2}function a(e,t,r,n,i,s,o,a){const u=r-e,l=n-t;let c=Math.atan2(u,l),h=Math.atan2(i-e,s-t);a&&ch&&(h+=2*Math.PI);let d=c;const p=h-c,f=Math.abs(p),m=Math.sqrt(u*u+l*l),g=1+(15*f*Math.sqrt(m)/Math.PI>>0),_=p/g;if(d+=_,a){o.push(e,t),o.push(r,n);for(let r=1,n=d;r=0&&("round"===m.join?S+=a(B,G,B-D*k,G-I*k,B-O*k,G-U*k,v,!1)+4:S+=2,v.push(B-O*N,G-U*N),v.push(B+O*k,G+U*k));continue}const c=(-D+R)*(-I+G)-(-D+B)*(-I+w),h=(-O+C)*(-U+G)-(-O+B)*(-U+F),d=(r*h-i*c)/u,p=(s*c-n*h)/u,f=(d-B)*(d-B)+(p-G)*(p-G),g=B+(d-B)*k,_=G+(p-G)*k,x=B-(d-B)*N,b=G-(p-G)*N,y=l?k:N;f<=Math.min(r*r+n*n,i*i+s*s)+y*y*M?"bevel"===m.join||f/M>P?(l?(v.push(g,_),v.push(B+D*N,G+I*N),v.push(g,_),v.push(B+O*N,G+U*N)):(v.push(B-D*k,G-I*k),v.push(x,b),v.push(B-O*k,G-U*k),v.push(x,b)),S+=2):"round"===m.join?l?(v.push(g,_),v.push(B+D*N,G+I*N),S+=a(B,G,B+D*N,G+I*N,B+O*N,G+U*N,v,!0)+4,v.push(g,_),v.push(B+O*N,G+U*N)):(v.push(B-D*k,G-I*k),v.push(x,b),S+=a(B,G,B-D*k,G-I*k,B-O*k,G-U*k,v,!1)+4,v.push(B-O*k,G-U*k),v.push(x,b)):(v.push(g,_),v.push(x,b)):(v.push(B-D*k,G-I*k),v.push(B+D*N,G+I*N),"round"===m.join?S+=l?a(B,G,B+D*N,G+I*N,B+O*N,G+U*N,v,!0)+2:a(B,G,B-D*k,G-I*k,B-O*k,G-U*k,v,!1)+2:"miter"===m.join&&f/M<=P&&(l?(v.push(x,b),v.push(x,b)):(v.push(g,_),v.push(g,_)),S+=2),v.push(B-O*k,G-U*k),v.push(B+O*N,G+U*N),S+=2)}R=e[2*(T-2)],w=e[2*(T-2)+1],B=e[2*(T-1)],G=e[2*(T-1)+1],D=-(w-G),I=R-B,L=Math.sqrt(D*D+I*I),D/=L,I/=L,D*=A,I*=A,v.push(B-D*k,G-I*k),v.push(B+D*N,G+I*N),b||("round"===m.cap?S+=a(B-D*(k-N)*.5,G-I*(k-N)*.5,B-D*k,G-I*k,B+D*N,G+I*N,v,!1)+2:"square"===m.cap&&(S+=o(B,G,D,I,k,N,!1,v)));const H=i.curveEps*i.curveEps;for(let e=E;e=0&&o>=0?(t[0]=n,t[1]=i,t[2]=n+s,t[3]=i,t[4]=n+s,t[5]=i+o,t[6]=n,t[7]=i+o,t):t},triangulate(e,t,r,n,i,s){let o=0;t[(n*=r)+o]=e[0],t[n+o+1]=e[1],o+=r,t[n+o]=e[2],t[n+o+1]=e[3],o+=r,t[n+o]=e[6],t[n+o+1]=e[7],o+=r,t[n+o]=e[4],t[n+o+1]=e[5],o+=r;const a=n/r;i[s++]=a,i[s++]=a+1,i[s++]=a+2,i[s++]=a+1,i[s++]=a+3,i[s++]=a+2}};t.buildRectangle=n},64778:function(e,t,r){"use strict";const n={extension:{type:r(17073).ExtensionType.ShapeBuilder,name:"triangle"},build(e,t){return t[0]=e.x,t[1]=e.y,t[2]=e.x2,t[3]=e.y2,t[4]=e.x3,t[5]=e.y3,t},triangulate(e,t,r,n,i,s){let o=0;t[(n*=r)+o]=e[0],t[n+o+1]=e[1],o+=r,t[n+o]=e[2],t[n+o+1]=e[3],o+=r,t[n+o]=e[4],t[n+o+1]=e[5];const a=n/r;i[s++]=a,i[s++]=a+1,i[s++]=a+2}};t.buildTriangle=n},88365:function(e,t){"use strict";t.closePointEps=1e-4,t.curveEps=1e-4},37553:function(e,t,r){"use strict";var n=r(58778),i=r(42932),s=r(15685),o=r(75813),a=r(84463),u=r(78739);const l=class e{constructor(e,t,r,n){this.uid=u.uid("fillGradient"),this.type="linear",this.gradientStops=[],this._styleKey=null,this.x0=e,this.y0=t,this.x1=r,this.y1=n}addColorStop(e,t){return this.gradientStops.push({offset:e,color:n.Color.shared.setValue(t).toHex()}),this._styleKey=null,this}buildLinearGradient(){const t=e.defaultTextureSize,{gradientStops:r}=this,n=i.DOMAdapter.get().createCanvas();n.width=t,n.height=t;const u=n.getContext("2d"),l=u.createLinearGradient(0,0,e.defaultTextureSize,1);for(let e=0;e`${e.offset}-${e.color}`)).join("-"),t=this.texture.uid,r=this.transform.toArray().join("-");return`fill-gradient-${this.uid}-${e}-${t}-${r}-${this.x0}-${this.y0}-${this.x1}-${this.y1}`}};l.defaultTextureSize=256;let c=l;t.FillGradient=c},16315:function(e,t,r){"use strict";var n=r(15685),i=r(78739);const s={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}};t.FillPattern=class{constructor(e,t){this.uid=i.uid("fillPattern"),this.transform=new n.Matrix,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=s[t].addressModeU,e.source.style.addressModeV=s[t].addressModeV)}setTransform(e){const t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey||(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`),this._styleKey}}},7639:function(e,t,r){"use strict";var n=r(26553),i=r(78739),s=r(95190),o=r(93940),a=r(26289);class u{constructor(e){this.instructions=[],this.uid=i.uid("graphicsPath"),this._dirty=!0,"string"==typeof e?o.SVGToGraphicsPath(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new a.ShapePath(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,r,i,s){const o=this.instructions[this.instructions.length-1],a=this.getLastPoint(n.Point.shared);let u=0,l=0;if(o&&"bezierCurveTo"===o.action){u=o.data[2],l=o.data[3];const e=a.x,t=a.y;u=e+(e-u),l=t+(t-l)}else u=a.x,l=a.y;return this.instructions.push({action:"bezierCurveTo",data:[u,l,e,t,r,i,s]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,r){const i=this.instructions[this.instructions.length-1],s=this.getLastPoint(n.Point.shared);let o=0,a=0;if(i&&"quadraticCurveTo"===i.action){o=i.data[0],a=i.data[1];const e=s.x,t=s.y;o=e+(e-o),a=t+(t-a)}else o=s.x,a=s.y;return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,r]}),this._dirty=!0,this}rect(e,t,r,n,i){return this.instructions.push({action:"rect",data:[e,t,r,n,i]}),this._dirty=!0,this}circle(e,t,r,n){return this.instructions.push({action:"circle",data:[e,t,r,n]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,r,n,i,s,o){i=i||n/2;const a=-1*Math.PI/2+s,u=2*r,l=2*Math.PI/u,c=[];for(let r=0;r=2;e-=2)l[e]===l[e-2]&&l[e-1]===l[e-3]&&l.splice(e-1,2);return this.poly(l,!0,s)}ellipse(e,t,r,n,s){return this.drawShape(new i.Ellipse(e,t,r,n),s),this}roundRect(e,t,r,n,i,s){return this.drawShape(new a.RoundedRectangle(e,t,r,n,i),s),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new s.Polygon,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){const t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new s.Polygon,e)){const e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let t=e.shape.x,r=e.shape.y;if(!e.transform.isIdentity()){const n=e.transform,i=t;t=n.a*t+n.c*r+n.tx,r=n.b*i+n.d*r+n.ty}this._currentPoly.points.push(t,r)}else this._currentPoly.points.push(0,0)}}buildPath(){const e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t{const r=t.x-e.x,n=t.y-e.y,i=Math.sqrt(r*r+n*n);return{len:i,nx:r/i,ny:n/i}},i=(t,r)=>{0===t?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)};let s=t[t.length-1];for(let o=0;o0&&(p=-1,f=!0);const m=d/2;let g,_=Math.abs(Math.cos(m)*u/Math.sin(m));_>Math.min(c.len/2,h.len/2)?(_=Math.min(c.len/2,h.len/2),g=Math.abs(_*Math.sin(m)/Math.cos(m))):g=u;const x=a.x+h.nx*_+-h.ny*g*p,b=a.y+h.ny*_+h.nx*g*p,y=Math.atan2(c.ny,c.nx)+Math.PI/2*p,v=Math.atan2(h.ny,h.nx)-Math.PI/2*p;0===o&&e.moveTo(x+Math.cos(y)*g,b+Math.sin(y)*g),e.arc(x,b,g,y,v,f),s=a}},t.roundedShapeQuadraticCurve=function(e,t,r,n){const i=(e,t)=>Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2),s=(e,t,r)=>({x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r}),o=t.length;for(let a=0;aparseInt(e,10))),t.context.poly(T,!0),r&&t.context.fill(),a&&t.context.stroke();break;case"polyline":S=e.getAttribute("points"),T=S.match(/\d+/g).map((e=>parseInt(e,10))),t.context.poly(T,!1),a&&t.context.stroke();break;case"g":case"svg":break;default:console.info(`[SVG parser] <${e.nodeName}> elements unsupported`)}for(let e=0;e0&&(o=s.pop(),o?(a=o.startX,u=o.startY):(a=0,u=0)),o=null;break;default:i.warn(`Unknown SVG path command: ${l}`)}"Z"!==l&&"z"!==l&&null===o&&(o={startX:a,startY:u},s.push(o))}return t}},42892:function(e,t,r){"use strict";var n=r(17073),i=r(42181),s=r(44307),o=r(54132),a=r(84463),u=r(86169),l=r(46141),c=r(76788),h=r(968),d=r(57469),p=r(53976),f=r(64778),m=r(47464);const g={};n.extensions.handleByMap(n.ExtensionType.ShapeBuilder,g),n.extensions.add(p.buildRectangle,d.buildPolygon,f.buildTriangle,c.buildCircle,c.buildEllipse,c.buildRoundedRectangle);const _=new i.Rectangle;function x(e,t,r){const{vertices:n,uvs:i,indices:s}=r,a=s.length,c=n.length/2,h=[],d=g.rectangle,p=_,f=e.image;p.x=e.dx,p.y=e.dy,p.width=e.dw,p.height=e.dh;const m=e.transform;d.build(p,h),m&&o.transformVertices(h,m),d.triangulate(h,n,2,c,s,a);const x=f.uvs;i.push(x.x0,x.y0,x.x1,x.y1,x.x3,x.y3,x.x2,x.y2);const b=u.BigPool.get(l.BatchableGraphics);b.indexOffset=a,b.indexSize=s.length-a,b.vertexOffset=c,b.vertexSize=n.length/2-c,b.color=e.style,b.alpha=e.alpha,b.texture=f,b.geometryData=r,t.push(b)}function b(e,t,r,n,i,c){const{vertices:d,uvs:p,indices:f}=c,_=e.shapePrimitives.length-1;e.shapePrimitives.forEach((({shape:e,transform:x},b)=>{const y=f.length,v=d.length/2,T=[],S=g[e.type];if(S.build(e,T),x&&o.transformVertices(T,x),n){const r=e.closePath??!0,n=t;h.buildLine(T,n,!1,r,d,2,v,f,y)}else if(r&&_===b){0!==_&&console.warn("[Pixi Graphics] only the last shape have be cut out");const e=[],t=T.slice(),n=function(e){if(!e)return[];const t=e.shapePrimitives,r=[];for(let e=0;e{e.push(t.length/2),t.push(...r)})),m.triangulateWithHoles(t,e,d,2,v,f,y)}else S.triangulate(T,d,2,v,f,y);const E=p.length/2,A=t.texture;if(A!==a.Texture.WHITE){const e=t.matrix;e&&(x&&e.append(x.clone().invert()),s.buildUvs(d,2,v,p,E,2,d.length/2-v,e))}else s.buildSimpleUvs(p,E,2,d.length/2-v);const M=u.BigPool.get(l.BatchableGraphics);M.indexOffset=y,M.indexSize=f.length-y,M.vertexOffset=v,M.vertexSize=d.length/2-v,M.color=t.color,M.alpha=t.alpha,M.texture=A,M.geometryData=c,i.push(M)}))}t.buildContextBatches=function(e,t){const{geometryData:r,batches:n}=t;n.length=0,r.indices.length=0,r.vertices.length=0,r.uvs.length=0;for(let t=0;t{const a=o.length,l=t.length/2,c=[],d=h[e.type];d.build(e,c),s&&i.transformVertices(c,s),d.triangulate(c,t,2,l,o,a);const p=r.length/2;u?(s&&u.append(s.clone().invert()),n.buildUvs(t,2,l,r,p,2,t.length/2-l,u)):n.buildSimpleUvs(r,p,2,t.length/2-l)}));const l=e.out;return l?(l.positions=new Float32Array(t),l.uvs=new Float32Array(r),l.indices=new Uint32Array(o),l):new s.MeshGeometry({positions:new Float32Array(t),uvs:new Float32Array(r),indices:new Uint32Array(o)})}},97886:function(e,t,r){"use strict";var n=r(58778),i=r(15685),s=r(84463),o=r(37553),a=r(16315);function u(e){return e instanceof a.FillPattern}function l(e){return e instanceof o.FillGradient}function c(e,t,r){return e.fill=t,e.color=16777215,e.texture=t.texture,e.matrix=t.transform,{...r,...e}}function h(e,t,r){return t.buildLinearGradient(),e.fill=t,e.color=16777215,e.texture=t.texture,e.matrix=t.transform,{...r,...e}}function d(e,t){if(null==e)return null;const r={},o=e;return function(e){return n.Color.isColorLike(e)}(e)?function(e,t,r){const i=n.Color.shared.setValue(t??0);return e.color=i.toNumber(),e.alpha=1===i.alpha?r.alpha:i.alpha,e.texture=s.Texture.WHITE,{...r,...e}}(r,e,t):u(e)?c(r,e,t):l(e)?h(r,e,t):o.fill&&u(o.fill)?c(o,o.fill,t):o.fill&&l(o.fill)?h(o,o.fill,t):function(e,t){const r={...t,...e};if(r.texture){if(r.texture!==s.Texture.WHITE){const e=r.matrix?.invert()||new i.Matrix;e.scale(1/r.texture.frame.width,1/r.texture.frame.height),r.matrix=e}const e=r.texture.source.style;"clamp-to-edge"===e.addressMode&&(e.addressMode="repeat",e.update())}const o=n.Color.shared.setValue(r.color);return r.alpha*=o.alpha,r.color=o.toNumber(),r.matrix=r.matrix?r.matrix.clone():null,r}(o,t)}t.toFillStyle=d,t.toStrokeStyle=function(e,t){const{width:r,alignment:n,miterLimit:i,cap:s,join:o,...a}=t,u=d(e,a);return u?{width:r,alignment:n,miterLimit:i,cap:s,join:o,...u}:null}},20593:function(e,t){"use strict";t.getOrientationOfPoints=function(e){const t=e.length;if(t<6)return 1;let r=0;for(let n=0,i=e[t-2],s=e[t-1];n0&&(r.source.style.addressMode="repeat"),super(n.definedProps({...a,texture:r,geometry:u})),this.autoUpdate=!0,this.onRender=this._render}_render(){const e=this.geometry;(this.autoUpdate||e._width!==this.texture.height)&&(e._width=this.texture.height,e.update())}};o.defaultOptions={textureScale:0};let a=o;t.MeshRope=a},14749:function(e,t,r){"use strict";var n=r(6877),i=r(37086),s=r(46525);class o extends i.Mesh{constructor(e){const{texture:t,vertices:r,uvs:i,indices:o,topology:a,...u}=e,l=new s.MeshGeometry(n.definedProps({positions:r,uvs:i,indices:o,topology:a}));super(n.definedProps({...u,texture:t,geometry:l})),this.autoUpdate=!0,this.onRender=this._render}get vertices(){return this.geometry.getBuffer("aPosition").data}set vertices(e){this.geometry.getBuffer("aPosition").data=e}_render(){this.autoUpdate&&this.geometry.getBuffer("aPosition").update()}}t.MeshSimple=o},11291:function(e,t,r){"use strict";var n=r(46525);const i=class e extends n.MeshGeometry{constructor(t){const{width:r,points:n,textureScale:i}={...e.defaultOptions,...t};super({positions:new Float32Array(4*n.length),uvs:new Float32Array(4*n.length),indices:new Uint32Array(6*(n.length-1))}),this.points=n,this._width=r,this.textureScale=i,this._build()}get width(){return this._width}_build(){const e=this.points;if(!e)return;const t=this.getBuffer("aPosition"),r=this.getBuffer("aUV"),n=this.getIndex();if(e.length<1)return;t.data.length/4!==e.length&&(t.data=new Float32Array(4*e.length),r.data=new Float32Array(4*e.length),n.data=new Uint16Array(6*(e.length-1)));const i=r.data,s=n.data;i[0]=0,i[1]=0,i[2]=0,i[3]=1;let o=0,a=e[0];const u=this._width*this.textureScale,l=e.length;for(let t=0;t0){const r=a.x-e[t].x,n=a.y-e[t].y,i=Math.sqrt(r*r+n*n);a=e[t],o+=i/u}else o=t/(l-1);i[r]=o,i[r+1]=0,i[r+2]=o,i[r+3]=1}let c=0;for(let e=0;e0?this.textureScale*this._width/2:this._width/2;for(let u=0;u1&&(h=1);const d=Math.sqrt(n*n+i*i);d<1e-6?(n=0,i=0):(n/=d,i/=d,n*=a,i*=a),s[c]=l.x+n,s[c+1]=l.y+i,s[c+2]=l.x-n,s[c+3]=l.y-i,r=l}this.buffers[0].update()}update(){this.textureScale>0?this._build():this.updateVertices()}};i.defaultOptions={width:200,points:[],textureScale:0};let s=i;t.RopeGeometry=s},65935:function(e,t,r){"use strict";var n=r(17073),i=r(15685),s=r(21380),o=r(74813),a=r(4116),u=r(36114),l=r(97505),c=r(84463),h=r(95190);class d{init(){const e=s.compileHighShaderGlProgram({name:"mesh",bits:[o.localUniformBitGl,u.textureBitGl,a.roundPixelsBitGl]});this._shader=new l.Shader({glProgram:e,resources:{uTexture:c.Texture.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3",value:new i.Matrix}}}})}execute(e,t){const r=e.renderer;let n=t._shader;if(n){if(!n.glProgram)return void h.warn("Mesh shader has no glProgram",t.shader)}else{n=this._shader;const e=t.texture,r=e.source;n.resources.uTexture=r,n.resources.uSampler=r.style,n.resources.textureUniforms.uniforms.uTextureMatrix=e.textureMatrix.mapCoord}n.groups[100]=r.globalUniforms.bindGroup,n.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:n,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}d.extension={type:[n.ExtensionType.WebGLPipesAdaptor],name:"mesh"},t.GlMeshAdaptor=d},45136:function(e,t,r){"use strict";var n=r(17073),i=r(15685),s=r(21380),o=r(74813),a=r(4116),u=r(36114),l=r(97505),c=r(84463),h=r(95190);class d{init(){const e=s.compileHighShaderGpuProgram({name:"mesh",bits:[o.localUniformBit,u.textureBit,a.roundPixelsBit]});this._shader=new l.Shader({gpuProgram:e,resources:{uTexture:c.Texture.EMPTY._source,uSampler:c.Texture.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3",value:new i.Matrix}}}})}execute(e,t){const r=e.renderer;let n=t._shader;if(n){if(!n.gpuProgram)return void h.warn("Mesh shader has no gpuProgram",t.shader)}else n=this._shader,n.resources.uTexture=t.texture.source,n.resources.uSampler=t.texture.source.style,n.resources.textureUniforms.uniforms.uTextureMatrix=t.texture.textureMatrix.mapCoord;const i=n.gpuProgram;if(i.autoAssignGlobalUniforms&&(n.groups[0]=r.globalUniforms.bindGroup),i.autoAssignLocalUniforms){const t=e.localUniforms;n.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(t,!0)}r.encoder.draw({geometry:t._geometry,shader:n,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}d.extension={type:[n.ExtensionType.WebGPUPipesAdaptor],name:"mesh"},t.GpuMeshAdapter=d},60862:function(e,t,r){"use strict";var n=r(17073),i=r(25784);n.extensions.add(i.MeshPipe)},58507:function(e,t){"use strict";t.BatchableMesh=class{constructor(){this.batcher=null,this.batch=null,this.roundPixels=0,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}get blendMode(){return this.mesh.groupBlendMode}reset(){this.mesh=null,this.texture=null,this.batcher=null,this.batch=null}packIndex(e,t,r){const n=this.geometry.indices;for(let i=0;i"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new s.BindGroup({0:this.localUniforms}),this._meshDataHash=Object.create(null),this._gpuBatchableMeshHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){const t=this._getMeshData(e),r=t.batched,n=e.batched;if(t.batched=n,r!==n)return!0;if(n){const r=e._geometry;if(r.indices.length!==t.indexSize||r.positions.length!==t.vertexSize)return t.indexSize=r.indices.length,t.vertexSize=r.positions.length,!0;const n=this._getBatchableMesh(e),i=e.texture;if(n.texture._source!==i._source&&n.texture._source!==i._source)return!n.batcher.checkAndUpdateTexture(n,i)}return!1}addRenderable(e,t){const r=this.renderer.renderPipes.batch,{batched:n}=this._getMeshData(e);if(n){const t=this._getBatchableMesh(e);t.texture=e._texture,t.geometry=e._geometry,r.addToBatch(t)}else r.break(t),t.add({renderPipeId:"mesh",mesh:e})}updateRenderable(e){if(e.batched){const t=this._gpuBatchableMeshHash[e.uid];t.texture=e._texture,t.geometry=e._geometry,t.batcher.updateElement(t)}}destroyRenderable(e){this._meshDataHash[e.uid]=null;const t=this._gpuBatchableMeshHash[e.uid];t&&(u.BigPool.return(t),this._gpuBatchableMeshHash[e.uid]=null)}execute({mesh:e}){if(!e.isRenderable)return;e.state.blendMode=a.getAdjustedBlendModeBlend(e.groupBlendMode,e.texture._source);const t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),l.color32BitToUniform(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){return this._meshDataHash[e.uid]||this._initMeshData(e)}_initMeshData(e){return this._meshDataHash[e.uid]={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e.on("destroyed",(()=>{this.destroyRenderable(e)})),this._meshDataHash[e.uid]}_getBatchableMesh(e){return this._gpuBatchableMeshHash[e.uid]||this._initBatchableMesh(e)}_initBatchableMesh(e){const t=u.BigPool.get(c.BatchableMesh);return t.mesh=e,t.texture=e._texture,t.roundPixels=this.renderer._roundPixels|e._roundPixels,this._gpuBatchableMeshHash[e.uid]=t,t.mesh=e,t}destroy(){for(const e in this._gpuBatchableMeshHash)this._gpuBatchableMeshHash[e]&&u.BigPool.return(this._gpuBatchableMeshHash[e]);this._gpuBatchableMeshHash=null,this._meshDataHash=null,this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}}h.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"mesh"},t.MeshPipe=h},86957:function(e,t){"use strict";t.getTextureDefaultMatrix=function(e,t){const{width:r,height:n}=e.frame;return t.scale(1/r,1/n),t}},2600:function(e,t,r){"use strict";var n=r(84463),i=r(35292),s=r(63983),o=r(10701);class a extends o.Sprite{constructor(e,t=!0){super(e[0]instanceof n.Texture?e[0]:e[0].texture),this._textures=null,this._durations=null,this._autoUpdate=t,this._isConnectedToTicker=!1,this.animationSpeed=1,this.loop=!0,this.updateAnchor=!1,this.onComplete=null,this.onFrameChange=null,this.onLoop=null,this._currentTime=0,this._playing=!1,this._previousFrame=null,this.textures=e}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(s.Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(s.Ticker.shared.add(this.update,this,i.UPDATE_PRIORITY.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(e){this.stop(),this.currentFrame=e}gotoAndPlay(e){this.currentFrame=e,this.play()}update(e){if(!this._playing)return;const t=e.deltaTime,r=this.animationSpeed*t,n=this.currentFrame;if(null!==this._durations){let e=this._currentTime%1*this._durations[this.currentFrame];for(e+=r/60*1e3;e<0;)this._currentTime--,e+=this._durations[this.currentFrame];const n=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);e>=this._durations[this.currentFrame];)e-=this._durations[this.currentFrame]*n,this._currentTime+=n;this._currentTime+=e/this._durations[this.currentFrame]}else this._currentTime+=r;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):n!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFramen)&&this.onLoop(),this._updateTexture())}_updateTexture(){const e=this.currentFrame;this._previousFrame!==e&&(this._previousFrame=e,this.texture=this._textures[e],this.updateAnchor&&this.anchor.copyFrom(this.texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame))}destroy(){this.stop(),super.destroy(),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}static fromFrames(e){const t=[];for(let r=0;rthis.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${e}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const t=this.currentFrame;this._currentTime=e,t!==this.currentFrame&&this._updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,!this._autoUpdate&&this._isConnectedToTicker?(s.Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(s.Ticker.shared.add(this.update,this),this._isConnectedToTicker=!0))}}t.AnimatedSprite=a},76596:function(e,t,r){"use strict";var n=r(27574);const i=class e extends n.PlaneGeometry{constructor(t={}){super({width:(t={...e.defaultOptions,...t}).width,height:t.height,verticesX:4,verticesY:4}),this.update(t)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this.updateUvs(),this.updatePositions()}updatePositions(){const e=this.positions,t=this._leftWidth+this._rightWidth,r=this.width>t?1:this.width/t,n=this._topHeight+this._bottomHeight,i=this.height>n?1:this.height/n,s=Math.min(r,i);e[9]=e[11]=e[13]=e[15]=this._topHeight*s,e[17]=e[19]=e[21]=e[23]=this.height-this._bottomHeight*s,e[25]=e[27]=e[29]=e[31]=this.height,e[2]=e[10]=e[18]=e[26]=this._leftWidth*s,e[4]=e[12]=e[20]=e[28]=this.width-this._rightWidth*s,e[6]=e[14]=e[22]=e[30]=this.width,this.getBuffer("aPosition").update()}updateUvs(){const e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;const t=1/this._originalWidth,r=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=r*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update()}};i.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};let s=i;t.NineSliceGeometry=s},33449:function(e,t,r){"use strict";var n=r(84463),i=r(60094),s=r(74599),o=r(76596);const a=class e extends s.Container{constructor(t){t instanceof n.Texture&&(t={texture:t});const{width:r,height:i,leftWidth:s,rightWidth:a,topHeight:u,bottomHeight:l,texture:c,roundPixels:h,...d}=t;super({label:"NineSliceSprite",...d}),this._roundPixels=0,this.renderPipeId="nineSliceSprite",this.batched=!0,this._didSpriteUpdate=!0,this.bounds={minX:0,minY:0,maxX:0,maxY:0},this._leftWidth=s??c?.defaultBorders?.left??o.NineSliceGeometry.defaultOptions.leftWidth,this._topHeight=u??c?.defaultBorders?.top??o.NineSliceGeometry.defaultOptions.topHeight,this._rightWidth=a??c?.defaultBorders?.right??o.NineSliceGeometry.defaultOptions.rightWidth,this._bottomHeight=l??c?.defaultBorders?.bottom??o.NineSliceGeometry.defaultOptions.bottomHeight,this.bounds.maxX=this._width=r??c.width??o.NineSliceGeometry.defaultOptions.width,this.bounds.maxY=this._height=i??c.height??o.NineSliceGeometry.defaultOptions.height,this.allowChildren=!1,this.texture=c??e.defaultOptions.texture,this.roundPixels=h??!1}get width(){return this._width}set width(e){this.bounds.maxX=this._width=e,this.onViewUpdate()}get height(){return this._height}set height(e){this.bounds.maxY=this._height=e,this.onViewUpdate()}get leftWidth(){return this._leftWidth}set leftWidth(e){this._leftWidth=e,this.onViewUpdate()}get topHeight(){return this._topHeight}set topHeight(e){this._topHeight=e,this.onViewUpdate()}get rightWidth(){return this._rightWidth}set rightWidth(e){this._rightWidth=e,this.onViewUpdate()}get bottomHeight(){return this._bottomHeight}set bottomHeight(e){this._bottomHeight=e,this.onViewUpdate()}get texture(){return this._texture}set texture(e){e||(e=n.Texture.EMPTY);const t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this.onViewUpdate())}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}get originalWidth(){return this._texture.width}get originalHeight(){return this._texture.height}onViewUpdate(){if(this._didChangeId+=4096,this._didSpriteUpdate=!0,this.didViewUpdate)return;this.didViewUpdate=!0;const e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}addBounds(e){const t=this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}containsPoint(e){const t=this.bounds;return e.x>=t.minX&&e.x<=t.maxX&&e.y>=t.minY&&e.y<=t.maxY}destroy(e){super.destroy(e);if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null,this.bounds=null}};a.defaultOptions={texture:n.Texture.EMPTY};let u=a;t.NineSlicePlane=class extends u{constructor(...e){let t=e[0];t instanceof n.Texture&&(i.deprecation(i.v8_0_0,"NineSlicePlane now uses the options object {texture, leftWidth, rightWidth, topHeight, bottomHeight}"),t={texture:t,leftWidth:e[1],topHeight:e[2],rightWidth:e[3],bottomHeight:e[4]}),i.deprecation(i.v8_0_0,"NineSlicePlane is deprecated. Use NineSliceSprite instead."),super(t)}},t.NineSliceSprite=u},87577:function(e,t,r){"use strict";var n=r(17073),i=r(86169),s=r(58507),o=r(76596);class a{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){const r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){const t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){const t=this._gpuSpriteHash[e.uid];i.BigPool.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.geometry.update(e),t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){const t=new s.BatchableMesh;return t.geometry=new o.NineSliceGeometry,t.mesh=e,t.texture=e._texture,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuSpriteHash){this._gpuSpriteHash[e].geometry.destroy()}this._gpuSpriteHash=null,this._renderer=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"nineSliceSprite"},t.NineSliceSpritePipe=a},58537:function(e,t,r){"use strict";var n=r(17073),i=r(87577);n.extensions.add(i.NineSliceSpritePipe)},74839:function(e,t,r){"use strict";var n=r(56509),i=r(62792),s=r(84463),o=r(60094),a=r(23522),u=r(74599);const l=class e extends u.Container{constructor(...t){let r=t[0]||{};r instanceof s.Texture&&(r={texture:r}),t.length>1&&(o.deprecation(o.v8_0_0,"use new TilingSprite({ texture, width:100, height:100 }) instead"),r.width=t[1],r.height=t[2]),r={...e.defaultOptions,...r};const{texture:n,anchor:u,tilePosition:l,tileScale:c,tileRotation:h,width:d,height:p,applyAnchorToTexture:f,roundPixels:m,...g}=r??{};super({label:"TilingSprite",...g}),this.renderPipeId="tilingSprite",this.canBundle=!0,this.batched=!0,this._roundPixels=0,this._bounds={minX:0,maxX:1,minY:0,maxY:0},this._boundsDirty=!0,this.allowChildren=!1,this._anchor=new i.ObservablePoint({_onUpdate:()=>{this.onViewUpdate()}}),this._applyAnchorToTexture=f,this.texture=n,this._width=d??n.width,this._height=p??n.height,this._tileTransform=new a.Transform({observer:{_onUpdate:()=>this.onViewUpdate()}}),u&&(this.anchor=u),this.tilePosition=l,this.tileScale=c,this.tileRotation=h,this.roundPixels=m??!1}static from(t,r={}){return new e("string"==typeof t?{texture:n.Cache.get(t),...r}:{texture:t,...r})}get clampMargin(){return this._texture.textureMatrix.clampMargin}set clampMargin(e){this._texture.textureMatrix.clampMargin=e}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get tilePosition(){return this._tileTransform.position}set tilePosition(e){this._tileTransform.position.copyFrom(e)}get tileScale(){return this._tileTransform.scale}set tileScale(e){"number"==typeof e?this._tileTransform.scale.set(e):this._tileTransform.scale.copyFrom(e)}set tileRotation(e){this._tileTransform.rotation=e}get tileRotation(){return this._tileTransform.rotation}get tileTransform(){return this._tileTransform}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}set texture(e){e||(e=s.Texture.EMPTY);const t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this.onViewUpdate())}get texture(){return this._texture}set width(e){this._width=e,this.onViewUpdate()}get width(){return this._width}set height(e){this._height=e,this.onViewUpdate()}get height(){return this._height}_updateBounds(){const e=this._bounds,t=this._anchor,r=this._width,n=this._height;e.maxX=-t._x*r,e.minX=e.maxX+r,e.maxY=-t._y*n,e.minY=e.maxY+n}addBounds(e){const t=this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}containsPoint(e){const t=this._width,r=this._height,n=-t*this._anchor._x;let i=0;return e.x>=n&&e.x<=n+t&&(i=-r*this._anchor._y,e.y>=i&&e.y<=i+r)}onViewUpdate(){if(this._boundsDirty=!0,this._didTilingSpriteUpdate=!0,this._didChangeId+=4096,this.didViewUpdate)return;this.didViewUpdate=!0;const e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e=!1){super.destroy(e),this._anchor=null,this._tileTransform=null,this._bounds=null;if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null}};l.defaultOptions={texture:s.Texture.EMPTY,anchor:{x:0,y:0},tilePosition:{x:0,y:0},tileScale:{x:1,y:1},tileRotation:0,applyAnchorToTexture:!1};let c=l;t.TilingSprite=c},3857:function(e,t,r){"use strict";var n=r(17073),i=r(254),s=r(55141),o=r(2559),a=r(76818),u=r(58507),l=r(46525),c=r(67919),h=r(20872),d=r(44260),p=r(50426);const f=new h.QuadGeometry;class m{constructor(e){this._state=s.State.default2d,this._tilingSpriteDataHash=Object.create(null),this._renderer=e}validateRenderable(e){const t=this._getTilingSpriteData(e),r=t.canBatch;this._updateCanBatch(e);const n=t.canBatch;if(n&&n===r){const{batchableMesh:r}=t;if(r&&r.texture._source!==e.texture._source)return!r.batcher.checkAndUpdateTexture(r,e.texture)}return r!==n}addRenderable(e,t){const r=this._renderer.renderPipes.batch;this._updateCanBatch(e);const n=this._getTilingSpriteData(e),{geometry:i,canBatch:s}=n;if(s){n.batchableMesh||(n.batchableMesh=new u.BatchableMesh);const t=n.batchableMesh;e._didTilingSpriteUpdate&&(e._didTilingSpriteUpdate=!1,this._updateBatchableMesh(e),t.geometry=i,t.mesh=e,t.texture=e._texture),t.roundPixels=this._renderer._roundPixels|e._roundPixels,r.addToBatch(t)}else r.break(t),n.shader||(n.shader=new c.TilingSpriteShader),this.updateRenderable(e),t.add(e)}execute(e){const{shader:t}=this._tilingSpriteDataHash[e.uid];t.groups[0]=this._renderer.globalUniforms.bindGroup;const r=t.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=this._renderer._roundPixels|e._roundPixels,a.color32BitToUniform(e.groupColorAlpha,r.uColor,0),this._state.blendMode=i.getAdjustedBlendModeBlend(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:f,shader:t,state:this._state})}updateRenderable(e){const t=this._getTilingSpriteData(e),{canBatch:r}=t;if(r){const{batchableMesh:r}=t;e._didTilingSpriteUpdate&&this._updateBatchableMesh(e),r.batcher.updateElement(r)}else if(e._didTilingSpriteUpdate){const{shader:r}=t;r.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}e._didTilingSpriteUpdate=!1}destroyRenderable(e){const t=this._getTilingSpriteData(e);t.batchableMesh=null,t.shader?.destroy(),this._tilingSpriteDataHash[e.uid]=null}_getTilingSpriteData(e){return this._tilingSpriteDataHash[e.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){const t=new l.MeshGeometry({indices:f.indices,positions:f.positions.slice(),uvs:f.uvs.slice()});return this._tilingSpriteDataHash[e.uid]={canBatch:!0,renderable:e,geometry:t},e.on("destroyed",(()=>{this.destroyRenderable(e)})),this._tilingSpriteDataHash[e.uid]}_updateBatchableMesh(e){const t=this._getTilingSpriteData(e),{geometry:r}=t,n=e.texture.source.style;"repeat"!==n.addressMode&&(n.addressMode="repeat",n.update()),p.setUvs(e,r.uvs),d.setPositions(e,r.positions)}destroy(){for(const e in this._tilingSpriteDataHash)this.destroyRenderable(this._tilingSpriteDataHash[e].renderable);this._tilingSpriteDataHash=null,this._renderer=null}_updateCanBatch(e){const t=this._getTilingSpriteData(e),r=e.texture;let n=!0;return this._renderer.type===o.RendererType.WEBGL&&(n=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(n||r.source.isPowerOfTwo),t.canBatch}}m.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"tilingSprite"},t.TilingSpritePipe=m},51654:function(e,t,r){"use strict";var n=r(17073),i=r(3857);n.extensions.add(i.TilingSpritePipe)},67919:function(e,t,r){"use strict";var n=r(15685),i=r(21380),s=r(74813),o=r(4116),a=r(97505),u=r(65518),l=r(84463),c=r(63522);let h,d;class p extends a.Shader{constructor(){h??(h=i.compileHighShaderGpuProgram({name:"tiling-sprite-shader",bits:[s.localUniformBit,c.tilingBit,o.roundPixelsBit]})),d??(d=i.compileHighShaderGlProgram({name:"tiling-sprite-shader",bits:[s.localUniformBitGl,c.tilingBitGl,o.roundPixelsBitGl]}));const e=new u.UniformGroup({uMapCoord:{value:new n.Matrix,type:"mat3x3"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2"},uTextureTransform:{value:new n.Matrix,type:"mat3x3"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4"}});super({glProgram:d,gpuProgram:h,resources:{localUniforms:new u.UniformGroup({uTransformMatrix:{value:new n.Matrix,type:"mat3x3"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:l.Texture.EMPTY.source,uSampler:l.Texture.EMPTY.source.style}})}updateUniforms(e,t,r,n,i,s){const o=this.resources.tilingUniforms,a=s.width,u=s.height,l=s.textureMatrix,c=o.uniforms.uTextureTransform;c.set(r.a*a/e,r.b*a/t,r.c*u/e,r.d*u/t,r.tx/e,r.ty/t),c.invert(),o.uniforms.uMapCoord=l.mapCoord,o.uniforms.uClampFrame=l.uClampFrame,o.uniforms.uClampOffset=l.uClampOffset,o.uniforms.uTextureTransform=c,o.uniforms.uSizeAnchor[0]=e,o.uniforms.uSizeAnchor[1]=t,o.uniforms.uSizeAnchor[2]=n,o.uniforms.uSizeAnchor[3]=i,s&&(this.resources.uTexture=s.source,this.resources.uSampler=s.source.style)}}t.TilingSpriteShader=p},63522:function(e,t){"use strict";const r={name:"tiling-bit",vertex:{header:"\n struct TilingUniforms {\n uMapCoord:mat3x3,\n uClampFrame:vec4,\n uClampOffset:vec2,\n uTextureTransform:mat3x3,\n uSizeAnchor:vec4\n };\n\n @group(2) @binding(0) var tilingUniforms: TilingUniforms;\n @group(2) @binding(1) var uTexture: texture_2d;\n @group(2) @binding(2) var uSampler: sampler;\n ",main:"\n uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;\n\n position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;\n "},fragment:{header:"\n struct TilingUniforms {\n uMapCoord:mat3x3,\n uClampFrame:vec4,\n uClampOffset:vec2,\n uTextureTransform:mat3x3,\n uSizeAnchor:vec4\n };\n\n @group(2) @binding(0) var tilingUniforms: TilingUniforms;\n @group(2) @binding(1) var uTexture: texture_2d;\n @group(2) @binding(2) var uSampler: sampler;\n ",main:"\n\n var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);\n coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;\n var unclamped = coord;\n coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);\n\n var bias = 0.;\n\n if(unclamped.x == coord.x && unclamped.y == coord.y)\n {\n bias = -32.;\n } \n\n outColor = textureSampleBias(uTexture, uSampler, coord, bias);\n "}},n={name:"tiling-bit",vertex:{header:"\n uniform mat3 uTextureTransform;\n uniform vec4 uSizeAnchor;\n \n ",main:"\n uv = (uTextureTransform * vec3(aUV, 1.0)).xy;\n\n position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;\n "},fragment:{header:"\n uniform sampler2D uTexture;\n uniform mat3 uMapCoord;\n uniform vec4 uClampFrame;\n uniform vec2 uClampOffset;\n ",main:"\n\n vec2 coord = vUV + ceil(uClampOffset - vUV);\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n vec2 unclamped = coord;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n \n outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0\n \n "}};t.tilingBit=r,t.tilingBitGl=n},20872:function(e,t,r){"use strict";var n=r(46525);class i extends n.MeshGeometry{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}t.QuadGeometry=i},42598:function(e,t){"use strict";t.applyMatrix=function(e,t,r,n){let i=0;const s=e.length/(t||2),o=n.a,a=n.b,u=n.c,l=n.d,c=n.tx,h=n.ty;for(r*=t;i{this.onViewUpdate()}}),r?this.anchor=r:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,o&&(this.width=o),a&&(this.height=a)}static from(e,t=!1){return e instanceof i.Texture?new a(e):new a(i.Texture.from(e,t))}set texture(e){e||(e=i.Texture.EMPTY);const t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}get sourceBounds(){return this._sourceBoundsDirty&&(this._updateSourceBounds(),this._sourceBoundsDirty=!1),this._sourceBounds}containsPoint(e){const t=this.sourceBounds;return e.x>=t.maxX&&e.x<=t.minX&&e.y>=t.maxY&&e.y<=t.minY}addBounds(e){const t=this._texture.trim?this.sourceBounds:this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}onViewUpdate(){if(this._didChangeId+=4096,this._didSpriteUpdate=!0,this._sourceBoundsDirty=this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;const e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}_updateBounds(){s.updateQuadBounds(this._bounds,this._anchor,this._texture,0)}_updateSourceBounds(){const e=this._anchor,t=this._texture,r=this._sourceBounds,{width:n,height:i}=t.orig;r.maxX=-e._x*n,r.minX=r.maxX+n,r.maxY=-e._y*i,r.minY=r.maxY+i}destroy(e=!1){super.destroy(e);if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null,this._bounds=null,this._sourceBounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){let r,n;"object"!=typeof e?(r=e,n=t??e):(r=e.width,n=e.height??e.width),void 0!==r&&this._setWidth(r,this._texture.orig.width),void 0!==n&&this._setHeight(n,this._texture.orig.height)}}t.Sprite=a},1894:function(e,t,r){"use strict";var n=r(17073),i=r(86169),s=r(22972);class o{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){const r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){const t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){const t=this._gpuSpriteHash[e.uid];i.BigPool.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.bounds=e.bounds,t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){const t=i.BigPool.get(s.BatchableSprite);return t.renderable=e,t.texture=e._texture,t.bounds=e.bounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e._didSpriteUpdate=!1,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuSpriteHash)i.BigPool.return(this._gpuSpriteHash[e]);this._gpuSpriteHash=null,this._renderer=null}}o.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"sprite"},t.SpritePipe=o},76887:function(e,t,r){"use strict";var n=r(5323),i=r(60094);t.AbstractBitmapFont=class extends n{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return i.deprecation(i.v8_0_0,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return i.deprecation(i.v8_0_0,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return i.deprecation(i.v8_0_0,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return i.deprecation(i.v8_0_0,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return i.deprecation(i.v8_0_0,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(const e in this.chars)this.chars[e].texture?.destroy();this.chars=null,e&&(this.pages.forEach((e=>e.texture.destroy(!0))),this.pages=null)}}},10476:function(e,t,r){"use strict";var n=r(42181),i=r(84463),s=r(76887),o=r(91195);class a extends s.AbstractBitmapFont{constructor(e,t){super();const{textures:r,data:s}=e;Object.keys(s.pages).forEach((e=>{const t=s.pages[parseInt(e,10)],n=r[t.id];this.pages.push({texture:n})})),Object.keys(s.chars).forEach((e=>{const t=s.chars[e],{frame:o,source:a}=r[t.page],u=new n.Rectangle(t.x+o.x,t.y+o.y,t.width,t.height),l=new i.Texture({source:a,frame:u});this.chars[e]={id:e.codePointAt(0),xOffset:t.xOffset,yOffset:t.yOffset,xAdvance:t.xAdvance,kerning:t.kerning??{},texture:l}})),this.baseRenderedFontSize=s.fontSize,this.baseMeasurementFontSize=s.fontSize,this.fontMetrics={ascent:0,descent:0,fontSize:s.fontSize},this.baseLineOffset=s.baseLineOffset,this.lineHeight=s.lineHeight,this.fontFamily=s.fontFamily,this.distanceField=s.distanceField??{type:"none",range:0},this.url=t}destroy(){super.destroy();for(let e=0;e50&&s.warn("BitmapText",`You have dynamically created ${c} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),e.once("destroy",(()=>{c--,n.Cache.remove(r)})),n.Cache.set(r,e)}const o=n.Cache.get(r);return o.ensureCharacters?.(e),o}getLayout(e,t){const r=this.getFont(e,t);return u.getBitmapTextLayout([...e],t,r)}measureText(e,t){return this.getLayout(e,t)}install(...e){let t=e[0];"string"==typeof t&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},i.deprecation(i.v8_0_0,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));const r=t?.name;if(!r)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};const s=t.style,u=s instanceof o.TextStyle?s:new o.TextStyle(s),c=null!==u._fill.fill&&void 0!==u._fill.fill,h=new a.DynamicBitmapFont({style:u,overrideFill:c,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1}),d=l.resolveCharacters(t.chars);return h.ensureCharacters(d.join("")),n.Cache.set(`${r}-bitmap`,h),h.once("destroy",(()=>n.Cache.remove(`${r}-bitmap`))),h}uninstall(e){const t=`${e}-bitmap`,r=n.Cache.get(t);r&&(n.Cache.remove(t),r.destroy())}};t.BitmapFontManager=h},80265:function(e,t,r){"use strict";var n=r(89523),i=r(79517),s=r(91195);class o extends n.AbstractText{constructor(...e){var t;const r=n.ensureOptions(e,"BitmapText");r.style??(r.style=r.style||{}),(t=r.style).fill??(t.fill=16777215),super(r,i.TextStyle),this.renderPipeId="bitmapText"}_updateBounds(){const e=this._bounds,t=this._style.padding,r=this._anchor,n=s.BitmapFontManager.measureText(this.text,this._style),i=n.scale,o=n.offsetY*i;let a=n.width*i,u=n.height*i;const l=this._style._stroke;l&&(a+=l.width,u+=l.width),e.minX=-r._x*a-t,e.maxX=e.minX+a,e.minY=-r._y*(u+o)-t,e.maxY=e.minY+u}}t.BitmapText=o},43969:function(e,t,r){"use strict";var n=r(56509),i=r(17073),s=r(86169),o=r(69639),a=r(34988),u=r(91195),l=r(30610);class c{constructor(e){this._gpuBitmapText={},this._renderer=e}validateRenderable(e){const t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){const r=this._getGpuBitmapText(e);h(e,r),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,r)),this._renderer.renderPipes.graphics.addRenderable(r,t),r.context.customShader&&this._updateDistanceField(e)}destroyRenderable(e){this._destroyRenderableByUid(e.uid)}_destroyRenderableByUid(e){const t=this._gpuBitmapText[e].context;t.customShader&&(s.BigPool.return(t.customShader),t.customShader=null),s.BigPool.return(this._gpuBitmapText[e]),this._gpuBitmapText[e]=null}updateRenderable(e){const t=this._getGpuBitmapText(e);h(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){const{context:r}=t,n=u.BitmapFontManager.getFont(e.text,e._style);r.clear(),"none"!==n.distanceField.type&&(r.customShader||(r.customShader=s.BigPool.get(a.SdfShader)));const i=Array.from(e.text),o=e._style;let c=n.baseLineOffset;const h=l.getBitmapTextLayout(i,o,n);let d=0;const p=o.padding,f=h.scale;let m=h.width,g=h.height+h.offsetY;o._stroke&&(m+=o._stroke.width/f,g+=o._stroke.width/f),r.translate(-e._anchor._x*m-p,-e._anchor._y*g-p).scale(f,f);const _=n.applyFillAsTint?o._fill.color:16777215;for(let e=0;e{this.destroyRenderable(e)})),this._gpuBitmapText[e.uid]}_updateDistanceField(e){const t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,i=n.Cache.get(`${r}-bitmap`),{a:s,b:o,c:a,d:u}=e.groupTransform,l=Math.sqrt(s*s+o*o),c=Math.sqrt(a*a+u*u),h=(Math.abs(l)+Math.abs(c))/2,d=i.baseRenderedFontSize/e._style.fontSize,p=h*i.distanceField.range*(1/d);t.customShader.resources.localUniforms.uniforms.uDistance=p}destroy(){for(const e in this._gpuBitmapText)this._destroyRenderableByUid(e);this._gpuBitmapText=null,this._renderer=null}}function h(e,t){t.groupTransform=e.groupTransform,t.groupColorAlpha=e.groupColorAlpha,t.groupColor=e.groupColor,t.groupBlendMode=e.groupBlendMode,t.globalDisplayStatus=e.globalDisplayStatus,t.groupTransform=e.groupTransform,t.localDisplayStatus=e.localDisplayStatus,t.groupAlpha=e.groupAlpha,t._roundPixels=e._roundPixels}c.extension={type:[i.ExtensionType.WebGLPipes,i.ExtensionType.WebGPUPipes,i.ExtensionType.CanvasPipes],name:"bitmapText"},t.BitmapTextPipe=c},22082:function(e,t,r){"use strict";var n=r(58778),i=r(42181),s=r(60932),o=r(75813),a=r(84463),u=r(60094),l=r(31030),c=r(61868),h=r(73602),d=r(79517),p=r(76887),f=r(38513);const m=class e extends p.AbstractBitmapFont{constructor(t){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentPageIndex=-1,this._skipKerning=!1;const r={...e.defaultOptions,...t};this._textureSize=r.textureSize,this._mipmap=r.mipmap;const n=r.style.clone();r.overrideFill&&(n._fill.color=16777215,n._fill.alpha=1,n._fill.texture=a.Texture.WHITE,n._fill.fill=null),this.applyFillAsTint=r.overrideFill;const i=n.fontSize;n.fontSize=this.baseMeasurementFontSize;const s=c.fontStringFromTextStyle(n);r.overrideSize?n._stroke&&(n._stroke.width*=this.baseRenderedFontSize/i):n.fontSize=this.baseRenderedFontSize=i,this._style=n,this._skipKerning=r.skipKerning??!1,this.resolution=r.resolution??1,this._padding=r.padding??4,this.fontMetrics=l.CanvasTextMetrics.measureFont(s),this.lineHeight=n.lineHeight||this.fontMetrics.fontSize||n.fontSize}ensureCharacters(e){const t=f.resolveCharacters(e).filter((e=>!this._currentChars.includes(e))).filter(((e,t,r)=>r.indexOf(e)===t));if(!t.length)return;let r;this._currentChars=[...this._currentChars,...t],r=-1===this._currentPageIndex?this._nextPage():this.pages[this._currentPageIndex];let{canvas:n,context:s}=r.canvasAndContext,o=r.texture.source;const u=this._style;let c=this._currentX,h=this._currentY;const d=this.baseRenderedFontSize/this.baseMeasurementFontSize,p=this._padding*d,m="italic"===u.fontStyle?2:1;let g=0,_=!1;for(let e=0;ethis._textureSize&&(h+=g,g=y,c=0,h+g>this._textureSize)){o.update();const e=this._nextPage();n=e.canvasAndContext.canvas,s=e.canvasAndContext.context,o=e.texture.source,h=0}const v=x/d-(u.dropShadow?.distance??0)-(u._stroke?.width??0);if(this.chars[r]={id:r.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:v,kerning:{}},_){this._drawGlyph(s,f,c+p,h+p,d,u);const e=o.width*d,t=o.height*d,n=new i.Rectangle(c/e*o.width,h/t*o.height,b/e*o.width,y/t*o.height);this.chars[r].texture=new a.Texture({source:o,frame:n}),c+=Math.ceil(b)}}o.update(),this._currentX=c,this._currentY=h,this._skipKerning&&this._applyKerning(t,s)}get pageTextures(){return u.deprecation(u.v8_0_0,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){const r=this._measureCache;for(let n=0;n"))&&i.bitmapFontXMLParser.test(n.DOMAdapter.get().parseXML(e))},parse(e){return i.bitmapFontXMLParser.parse(n.DOMAdapter.get().parseXML(e))}};t.bitmapFontXMLStringParser=s},45847:function(e,t,r){"use strict";var n=r(8774),i=r(90973),s=r(42932),o=r(17073),a=r(36491),u=r(10476),l=r(82556),c=r(17668);const h=[".xml",".fnt"],d={extension:{type:o.ExtensionType.CacheParser,name:"cacheBitmapFont"},test:e=>e instanceof u.BitmapFont,getCacheableAssets(e,t){const r={};return e.forEach((e=>{r[e]=t,r[`${e}-bitmap`]=t})),r[`${t.fontFamily}-bitmap`]=t,r}},p={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.Normal},name:"loadBitmapFont",test(e){return h.includes(a.path.extname(e).toLowerCase())},async testParse(e){return l.bitmapFontTextParser.test(e)||c.bitmapFontXMLStringParser.test(e)},async parse(e,t,r){const n=l.bitmapFontTextParser.test(e)?l.bitmapFontTextParser.parse(e):c.bitmapFontXMLStringParser.parse(e),{src:s}=t,{pages:o}=n,h=[],d=n.distanceField?{scaleMode:"linear",alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:!1,resolution:1}:{};for(let e=0;ep[e.src]));return new u.BitmapFont({data:n,textures:f},s)},async load(e,t){const r=await s.DOMAdapter.get().fetch(e);return await r.text()},async unload(e,t,r){await Promise.all(e.pages.map((e=>r.unload(e.texture.source._sourceOrigin)))),e.destroy()}};t.bitmapFontCachePlugin=d,t.loadBitmapFont=p},4862:function(e,t,r){"use strict";var n=r(17073),i=r(43969);n.extensions.add(i.BitmapTextPipe)},30610:function(e,t){"use strict";t.getBitmapTextLayout=function(e,t,r){const n={width:0,height:0,offsetY:0,scale:t.fontSize/r.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};n.offsetY=r.baseLineOffset;let i=n.lines[0],s=null,o=!0;const a={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=e=>{const t=i.width;for(let r=0;r{let e=i.chars.length-1,t=i.chars[e];for(;" "===t;)i.width-=r.chars[t].xAdvance,t=i.chars[--e];n.width=Math.max(n.width,i.width),i={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},o=!0,n.lines.push(i),n.height+=r.lineHeight},c=r.baseMeasurementFontSize/t.fontSize,h=t.letterSpacing*c,d=t.wordWrapWidth*c;for(let n=0;nd?(l(),u(a),p||i.charPositions.push(0)):(a.start=i.width,u(a),p||i.charPositions.push(0)),"\r"===c||"\n"===c)0!==i.width&&l();else if(!p){const e=f.xAdvance+(f.kerning[s]||0)+h;i.width+=e,i.spaceWidth=e,i.spacesIndex.push(i.charPositions.length),i.chars.push(c)}}else{const e=f.kerning[s]||0,t=f.xAdvance+e+h;a.positions[a.index++]=a.width+e,a.chars.push(c),a.width+=t}s=c}return l(),"center"===t.align?function(e){for(let t=0;t{console.error(e)})),e._didTextUpdate=!1;const i=e._style.padding;s.updateQuadBounds(n.bounds,e._anchor,n.texture,i)}async _updateGpuText(e){e._didTextUpdate=!1;const t=this._getGpuText(e);if(t.generatingTexture)return;const r=e._getKey();this._renderer.htmlText.decreaseReferenceCount(t.currentKey),t.generatingTexture=!0,t.currentKey=r;const n=e.resolution??this._renderer.resolution,i=await this._renderer.htmlText.getManagedTexture(e.text,n,e._style,e._getKey()),o=t.batchableSprite;o.texture=t.texture=i,t.generatingTexture=!1,t.textureNeedsUploading=!0,e.onViewUpdate();const a=e._style.padding;s.updateQuadBounds(o.bounds,e._anchor,o.texture,a)}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){const t={texture:i.Texture.EMPTY,currentKey:"--",batchableSprite:o.BigPool.get(a.BatchableSprite),textureNeedsUploading:!1,generatingTexture:!1},r=t.batchableSprite;return r.renderable=e,r.texture=i.Texture.EMPTY,r.bounds={minX:0,maxX:1,minY:0,maxY:0},r.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,this._gpuText[e.uid]=t,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}u.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"htmlText"},t.HTMLTextPipe=u},2668:function(e,t){"use strict";const r="http://www.w3.org/2000/svg",n="http://www.w3.org/1999/xhtml";t.HTMLTextRenderData=class{constructor(){this.svgRoot=document.createElementNS(r,"svg"),this.foreignObject=document.createElementNS(r,"foreignObject"),this.domElement=document.createElementNS(n,"div"),this.styleElement=document.createElementNS(n,"style"),this.image=new Image;const{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}},t.nssvg=r,t.nsxhtml=n},73543:function(e,t,r){"use strict";var n=r(17073),i=r(38759),s=r(2559),o=r(57296),a=r(95190),u=r(86169),l=r(30705),c=r(2668),h=r(47308),d=r(62074),p=r(46242),f=r(27252),m=r(20628),g=r(85669),_=r(11296);class x{constructor(e){this._activeTextures={},this._renderer=e,this._createCanvas=e.type===s.RendererType.WEBGPU}getTexture(e){return this._buildTexturePromise(e.text,e.resolution,e.style)}getManagedTexture(e,t,r,n){if(this._activeTextures[n])return this._increaseReferenceCount(n),this._activeTextures[n].promise;const i=this._buildTexturePromise(e,t,r).then((e=>(this._activeTextures[n].texture=e,e)));return this._activeTextures[n]={texture:null,promise:i,usageCount:1},i}async _buildTexturePromise(e,t,r){const n=u.BigPool.get(c.HTMLTextRenderData),i=d.extractFontFamilies(e,r),s=await p.getFontCss(i,r,h.HTMLTextStyle.defaultTextStyle),a=_.measureHtmlText(e,r,s,n),x=Math.ceil(Math.ceil(Math.max(1,a.width)+2*r.padding)*t),b=Math.ceil(Math.ceil(Math.max(1,a.height)+2*r.padding)*t),y=n.image;y.width=0|x,y.height=0|b;const v=f.getSVGUrl(e,r,t,s,n);await g.loadSVGImage(y,v,o.isSafari()&&i.length>0);let T=y;this._createCanvas&&(T=m.getTemporaryCanvasFromImage(y,t));const S=l.getPo2TextureFromSource(T,y.width,y.height,t);return this._createCanvas&&this._renderer.texture.initSource(S.source),u.BigPool.return(n),S}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){const t=this._activeTextures[e];t&&(t.usageCount--,0===t.usageCount&&(t.texture?this._cleanUp(t):t.promise.then((e=>{t.texture=e,this._cleanUp(t)})).catch((()=>{a.warn("HTMLTextSystem: Failed to clean texture")})),this._activeTextures[e]=null))}_cleanUp(e){i.TexturePool.returnTexture(e.texture),e.texture.source.resource=null,e.texture.source.uploadMethodId="unknown"}getReferenceCount(e){return this._activeTextures[e].usageCount}destroy(){this._activeTextures=null}}x.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"htmlText"},x.defaultFontOptions={fontFamily:"Arial",fontStyle:"normal",fontWeight:"normal"},t.HTMLTextSystem=x},47308:function(e,t,r){"use strict";var n=r(95190),i=r(79517),s=r(64597),o=r(19790);class a extends i.TextStyle{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides??(this.cssOverrides=e.cssOverrides),this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}_generateKey(){return this._styleKey=s.generateTextStyleKey(this)+this._cssOverrides.join("-"),this._styleKey}update(){this._cssStyle=null,super.update()}clone(){return new a({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides})}get cssStyle(){return this._cssStyle||(this._cssStyle=o.textStyleToCSS(this)),this._cssStyle}addOverride(...e){const t=e.filter((e=>!this.cssOverrides.includes(e)));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){const t=e.filter((e=>this.cssOverrides.includes(e)));t.length>0&&(this.cssOverrides=this.cssOverrides.filter((e=>!t.includes(e))),this.update())}set fill(e){"string"!=typeof e&&"number"!=typeof e&&n.warn("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&"string"!=typeof e&&"number"!=typeof e&&n.warn("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}t.HTMLTextStyle=a},38717:function(e,t,r){"use strict";var n=r(17073),i=r(93968),s=r(73543);n.extensions.add(s.HTMLTextSystem),n.extensions.add(i.HTMLTextPipe)},62074:function(e,t){"use strict";t.extractFontFamilies=function(e,t){const r=t.fontFamily,n=[],i={},s=e.match(/font-family:([^;"\s]+)/g);function o(e){i[e]||(n.push(e),i[e]=!0)}if(Array.isArray(r))for(let e=0;e{o(e.split(":")[1].trim())}));for(const e in t.tagStyles){o(t.tagStyles[e].fontFamily)}return n}},46242:function(e,t,r){"use strict";var n=r(56509),i=r(75761);const s=new Map;t.FontStylePromiseCache=s,t.getFontCss=async function(e,t,r){const o=e.filter((e=>n.Cache.has(`${e}-and-url`))).map(((e,o)=>{if(!s.has(e)){const{url:a}=n.Cache.get(`${e}-and-url`);0===o?s.set(e,i.loadFontCSS(t,a)):s.set(e,i.loadFontCSS({fontWeight:r.fontWeight,fontStyle:r.fontStyle,fontFamily:e},a))}return s.get(e)}));return(await Promise.all(o)).join("\n")}},27252:function(e,t){"use strict";t.getSVGUrl=function(e,t,r,n,i){const{domElement:s,styleElement:o,svgRoot:a}=i;s.innerHTML=`
${e}
`,s.setAttribute("style",`transform: scale(${r});transform-origin: top left; display: inline-block`),o.textContent=n;const{width:u,height:l}=i.image;return a.setAttribute("width",u.toString()),a.setAttribute("height",l.toString()),(new XMLSerializer).serializeToString(a)}},20628:function(e,t,r){"use strict";var n=r(60932);t.getTemporaryCanvasFromImage=function(e,t){const r=n.CanvasPool.getOptimalCanvasAndContext(e.width,e.height,t),{context:i}=r;return i.clearRect(0,0,e.width,e.height),i.drawImage(e,0,0),n.CanvasPool.returnCanvasAndContext(r),r.canvas}},23026:function(e,t,r){"use strict";var n=r(42932);t.loadFontAsBase64=async function(e){const t=await n.DOMAdapter.get().fetch(e),r=await t.blob(),i=new FileReader;return await new Promise(((e,t)=>{i.onloadend=()=>e(i.result),i.onerror=t,i.readAsDataURL(r)}))}},75761:function(e,t,r){"use strict";var n=r(23026);t.loadFontCSS=async function(e,t){const r=await n.loadFontAsBase64(t);return`@font-face {\n font-family: "${e.fontFamily}";\n src: url('${r}');\n font-weight: ${e.fontWeight};\n font-style: ${e.fontStyle};\n }`}},85669:function(e,t){"use strict";t.loadSVGImage=function(e,t,r){return new Promise((async n=>{r&&await new Promise((e=>setTimeout(e,100))),e.onload=()=>{n()},e.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(t)}`,e.crossOrigin="anonymous"}))}},11296:function(e,t,r){"use strict";var n=r(31030),i=r(2668);let s;t.measureHtmlText=function(e,t,r,o){o=o||s||(s=new i.HTMLTextRenderData);const{domElement:a,styleElement:u,svgRoot:l}=o;a.innerHTML=`
${e}
`,a.setAttribute("style","transform-origin: top left; display: inline-block"),r&&(u.textContent=r),document.body.appendChild(l);const c=a.getBoundingClientRect();l.remove();const h=n.CanvasTextMetrics.measureFont(t.fontStyle).descent;return{width:c.width,height:c.height+h}}},19790:function(e,t,r){"use strict";var n=r(58778);function i(e){const t=n.Color.shared.setValue(e.color).setAlpha(e.alpha).toHexa(),r=`${Math.round(Math.cos(e.angle)*e.distance)}px ${Math.round(Math.sin(e.angle)*e.distance)}px`;return e.blur>0?`text-shadow: ${r} ${e.blur}px ${t}`:`text-shadow: ${r} ${t}`}function s(e){return[`-webkit-text-stroke-width: ${e.width}px`,`-webkit-text-stroke-color: ${n.Color.shared.setValue(e.color).toHex()}`,`text-stroke-width: ${e.width}px`,`text-stroke-color: ${n.Color.shared.setValue(e.color).toHex()}`,"paint-order: stroke"].join(";")}const o={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},a={fill:e=>`color: ${n.Color.shared.setValue(e).toHex()}`,breakWords:e=>"word-wrap: "+(e?"break-all":"break-word"),stroke:s,dropShadow:i};t.textStyleToCSS=function(e){const t=e._stroke,r=e._fill,u=[`div { ${[`color: ${n.Color.shared.setValue(r.color).toHex()}`,`font-size: ${e.fontSize}px`,`font-family: ${e.fontFamily}`,`font-weight: ${e.fontWeight}`,`font-style: ${e.fontStyle}`,`font-variant: ${e.fontVariant}`,`letter-spacing: ${e.letterSpacing}px`,`text-align: ${e.align}`,`padding: ${e.padding}px`,`white-space: ${"pre"===e.whiteSpace&&e.wordWrap?"pre-wrap":e.whiteSpace}`,...e.lineHeight?[`line-height: ${e.lineHeight}px`]:[],...e.wordWrap?["word-wrap: "+(e.breakWords?"break-all":"break-word"),`max-width: ${e.wordWrapWidth}px`]:[],...t?[s(t)]:[],...e.dropShadow?[i(e.dropShadow)]:[],...e.cssOverrides].join(";")} }`];return function(e,t){for(const r in e){const n=e[r],i=[];for(const e in n)a[e]?i.push(a[e](n[e])):o[e]&&i.push(o[e].replace("{{VALUE}}",n[e]));t.push(`${r} { ${i.join(";")} }`)}}(e.tagStyles,u),u.join(" ")}},89523:function(e,t,r){"use strict";var n=r(62792),i=r(60094),s=r(14786),o=r(74599);class a extends o.Container{constructor(e,t){const{text:r,resolution:i,style:o,anchor:a,width:u,height:l,roundPixels:c,...h}=e;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._roundPixels=0,this._bounds=new s.Bounds,this._boundsDirty=!0,this._styleClass=t,this.text=r??"",this.style=o,this.resolution=i??null,this.allowChildren=!1,this._anchor=new n.ObservablePoint({_onUpdate:()=>{this.onViewUpdate()}}),a&&(this.anchor=a),this.roundPixels=c??!1,u&&(this.width=u),l&&(this.height=l)}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=null===e,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e=e||{},this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){let r,n;"object"!=typeof e?(r=e,n=t??e):(r=e.width,n=e.height??e.width),void 0!==r&&this._setWidth(r,this.bounds.width),void 0!==n&&this._setHeight(n,this.bounds.height)}addBounds(e){const t=this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}containsPoint(e){const t=this.bounds.width,r=this.bounds.height,n=-t*this.anchor.x;let i=0;return e.x>=n&&e.x<=n+t&&(i=-r*this.anchor.y,e.y>=i&&e.y<=i+r)}onViewUpdate(){if(this._didChangeId+=4096,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0,this._didTextUpdate=!0;const e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}_getKey(){return`${this.text}:${this._style.styleKey}:${this._resolution}`}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,("boolean"==typeof e?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}}t.AbstractText=a,t.ensureOptions=function(e,t){let r=e[0]??{};return("string"==typeof r||e[1])&&(i.deprecation(i.v8_0_0,`use new ${t}({ text: "hi!", style }) instead`),r={text:r,style:e[1]}),r}},62434:function(e,t,r){"use strict";var n=r(89523),i=r(31030),s=r(79517);class o extends n.AbstractText{constructor(...e){super(n.ensureOptions(e,"Text"),s.TextStyle),this.renderPipeId="text"}_updateBounds(){const e=this._bounds,t=this._style.padding,r=this._anchor,n=i.CanvasTextMetrics.measureText(this._text,this._style),{width:s,height:o}=n;e.minX=-r._x*s-t,e.maxX=e.minX+s+2*t,e.minY=-r._y*o-t,e.maxY=e.minY+o+2*t}}t.Text=o},79517:function(e,t,r){"use strict";var n=r(5323),i=r(58778),s=r(60094),o=r(37553),a=r(16315),u=r(90537),l=r(97886),c=r(64597);const h=class e extends n{constructor(t={}){super(),function(e){const t=e;if("boolean"==typeof t.dropShadow&&t.dropShadow){const r=d.defaultDropShadow;e.dropShadow={alpha:t.dropShadowAlpha??r.alpha,angle:t.dropShadowAngle??r.angle,blur:t.dropShadowBlur??r.blur,color:t.dropShadowColor??r.color,distance:t.dropShadowDistance??r.distance}}if(void 0!==t.strokeThickness){s.deprecation(s.v8_0_0,"strokeThickness is now a part of stroke");const r=t.stroke;let n={};if(i.Color.isColorLike(r))n.color=r;else if(r instanceof o.FillGradient||r instanceof a.FillPattern)n.fill=r;else{if(!Object.hasOwnProperty.call(r,"color")&&!Object.hasOwnProperty.call(r,"fill"))throw new Error("Invalid stroke value.");n=r}e.stroke={...n,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){let r;s.deprecation(s.v8_0_0,"gradient fill is now a fill pattern: `new FillGradient(...)`"),null==e.fontSize?e.fontSize=d.defaultTextStyle.fontSize:r="string"==typeof e.fontSize?parseInt(e.fontSize,10):e.fontSize;const n=new o.FillGradient(0,0,0,1.7*r),a=t.fillGradientStops.map((e=>i.Color.shared.setValue(e).toNumber()));a.forEach(((e,t)=>{const r=t/(a.length-1);n.addColorStop(r,e)})),e.fill={fill:n}}}(t);const r={...e.defaultTextStyle,...t};for(const e in r){this[e]=r[e]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow=null!==t&&"object"==typeof t?this._createProxy({...e.defaultDropShadow,...t}):t?this._createProxy({...e.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){this._fontSize="string"==typeof e?parseInt(e,10):e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e,this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...u.GraphicsContext.defaultFillStyle,...e},(()=>{this._fill=l.toFillStyle({...this._originalFill},u.GraphicsContext.defaultFillStyle)}))),this._fill=l.toFillStyle(0===e?"black":e,u.GraphicsContext.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...u.GraphicsContext.defaultStrokeStyle,...e},(()=>{this._stroke=l.toStrokeStyle({...this._originalStroke},u.GraphicsContext.defaultStrokeStyle)}))),this._stroke=l.toStrokeStyle(e,u.GraphicsContext.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=c.generateTextStyleKey(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){const t=e.defaultTextStyle;for(const e in t)this[e]=t[e]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new e({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth})}destroy(e=!1){this.removeAllListeners();if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(t),this._originalFill?.texture&&this._originalFill.texture.destroy(t),this._stroke?.texture&&this._stroke.texture.destroy(t),this._originalStroke?.texture&&this._originalStroke.texture.destroy(t)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(e,r,n)=>(e[r]=n,t?.(r,n),this.update(),!0)})}_isFillStyle(e){return null!==(e??null)&&!(i.Color.isColorLike(e)||e instanceof o.FillGradient||e instanceof a.FillPattern)}};h.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5},h.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};let d=h;t.TextStyle=d},31030:function(e,t,r){"use strict";var n=r(42932),i=r(61868);const s={willReadFrequently:!0},o=class e{static get experimentalLetterSpacingSupported(){let t=e._experimentalLetterSpacingSupported;if(void 0!==t){const r=n.DOMAdapter.get().getCanvasRenderingContext2D().prototype;t=e._experimentalLetterSpacingSupported="letterSpacing"in r||"textLetterSpacing"in r}return t}constructor(e,t,r,n,i,s,o,a,u){this.text=e,this.style=t,this.width=r,this.height=n,this.lines=i,this.lineWidths=s,this.lineHeight=o,this.maxLineWidth=a,this.fontProperties=u}static measureText(t=" ",r,n=e._canvas,s=r.wordWrap){const o=`${t}:${r.styleKey}`;if(e._measurementCache[o])return e._measurementCache[o];const a=i.fontStringFromTextStyle(r),u=e.measureFont(a);0===u.fontSize&&(u.fontSize=r.fontSize,u.ascent=r.fontSize);const l=e.__context;l.font=a;const c=(s?e._wordWrap(t,r,n):t).split(/(?:\r\n|\r|\n)/),h=new Array(c.length);let d=0;for(let t=0;t0&&(i?s-=r:s+=(e.graphemeSegmenter(t).length-1)*r),s}static _wordWrap(t,r,n=e._canvas){const i=n.getContext("2d",s);let o=0,a="",u="";const l=Object.create(null),{letterSpacing:c,whiteSpace:h}=r,d=e._collapseSpaces(h),p=e._collapseNewlines(h);let f=!d;const m=r.wordWrapWidth+c,g=e._tokenize(t);for(let t=0;tm)if(""!==a&&(u+=e._addLine(a),a="",o=0),e.canBreakWords(n,r.breakWords)){const t=e.wordWrapSplit(n);for(let s=0;sm&&(u+=e._addLine(a),f=!1,a="",o=0),a+=h,o+=g}}else{a.length>0&&(u+=e._addLine(a),a="",o=0);const r=t===g.length-1;u+=e._addLine(n,!r),f=!1,a="",o=0}else s+o>m&&(f=!1,u+=e._addLine(a),a="",o=0),(a.length>0||!e.isBreakingSpace(n)||f)&&(a+=n,o+=s)}return u+=e._addLine(a,!1),u}static _addLine(t,r=!0){return t=e._trimRight(t),t=r?`${t}\n`:t}static _getFromCache(t,r,n,i){let s=n[t];return"number"!=typeof s&&(s=e._measureText(t,r,i)+r,n[t]=s),s}static _collapseSpaces(e){return"normal"===e||"pre-line"===e}static _collapseNewlines(e){return"normal"===e}static _trimRight(t){if("string"!=typeof t)return"";for(let r=t.length-1;r>=0;r--){const n=t[r];if(!e.isBreakingSpace(n))break;t=t.slice(0,-1)}return t}static _isNewline(t){return"string"==typeof t&&e._newlines.includes(t.charCodeAt(0))}static isBreakingSpace(t,r){return"string"==typeof t&&e._breakingSpaces.includes(t.charCodeAt(0))}static _tokenize(t){const r=[];let n="";if("string"!=typeof t)return r;for(let i=0;i{if("function"==typeof Intl?.Segmenter){const e=new Intl.Segmenter;return t=>[...e.segment(t)].map((e=>e.segment))}return e=>[...e]})(),o.experimentalLetterSpacing=!1,o._fonts={},o._newlines=[10,13],o._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],o._measurementCache={};let a=o;t.CanvasTextMetrics=a},76869:function(e,t,r){"use strict";var n=r(17073),i=r(64293),s=r(86169),o=r(22972);class a{constructor(e){this._gpuText=Object.create(null),this._renderer=e,this._renderer.runners.resolutionChange.add(this)}resolutionChange(){for(const e in this._gpuText){const t=this._gpuText[e].batchableSprite.renderable;t._autoResolution&&(t._resolution=this._renderer.resolution,t.onViewUpdate())}}validateRenderable(e){const t=this._getGpuText(e),r=e._getKey();if(t.currentKey!==r){const{width:r,height:n}=this._renderer.canvasText.getTextureSize(e.text,e.resolution,e._style);return 1!==this._renderer.canvasText.getReferenceCount(t.currentKey)||r!==t.texture._source.width||n!==t.texture._source.height}return!1}addRenderable(e,t){const r=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),t.batcher.updateElement(t)}destroyRenderable(e){this._destroyRenderableById(e.uid)}_destroyRenderableById(e){const t=this._gpuText[e];this._renderer.canvasText.decreaseReferenceCount(t.currentKey),s.BigPool.return(t.batchableSprite),this._gpuText[e]=null}_updateText(e){const t=e._getKey(),r=this._getGpuText(e),n=r.batchableSprite;r.currentKey!==t&&this._updateGpuText(e),e._didTextUpdate=!1;const s=e._style.padding;i.updateQuadBounds(n.bounds,e._anchor,n.texture,s)}_updateGpuText(e){const t=this._getGpuText(e),r=t.batchableSprite;t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey),t.texture=r.texture=this._renderer.canvasText.getManagedTexture(e),t.currentKey=e._getKey(),r.texture=t.texture}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){const t={texture:null,currentKey:"--",batchableSprite:s.BigPool.get(o.BatchableSprite)};return t.batchableSprite.renderable=e,t.batchableSprite.bounds={minX:0,maxX:1,minY:0,maxY:0},t.batchableSprite.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuText[e.uid]=t,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,this._updateText(e),e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"text"},t.CanvasTextPipe=a},58054:function(e,t,r){"use strict";var n=r(58778),i=r(17073),s=r(39018),o=r(60932),a=r(38759),u=r(50034),l=r(60094),c=r(79517),h=r(30705),d=r(31030),p=r(61868),f=r(73602);class m{constructor(e){this._activeTextures={},this._renderer=e}getTextureSize(e,t,r){const n=d.CanvasTextMetrics.measureText(e||" ",r);let i=Math.ceil(Math.ceil(Math.max(1,n.width)+2*r.padding)*t),o=Math.ceil(Math.ceil(Math.max(1,n.height)+2*r.padding)*t);return i=Math.ceil(i-1e-6),o=Math.ceil(o-1e-6),i=s.nextPow2(i),o=s.nextPow2(o),{width:i,height:o}}getTexture(e,t,r,n){"string"==typeof e&&(l.deprecation("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof c.TextStyle||(e.style=new c.TextStyle(e.style));const{texture:i,canvasAndContext:s}=this.createTextureAndCanvas(e);return this._renderer.texture.initSource(i._source),o.CanvasPool.returnCanvasAndContext(s),i}createTextureAndCanvas(e){const{text:t,style:r}=e,n=e.resolution??this._renderer.resolution,i=d.CanvasTextMetrics.measureText(t||" ",r),s=Math.ceil(Math.ceil(Math.max(1,i.width)+2*r.padding)*n),a=Math.ceil(Math.ceil(Math.max(1,i.height)+2*r.padding)*n),l=o.CanvasPool.getOptimalCanvasAndContext(s,a),{canvas:c}=l;this.renderTextToCanvas(t,r,n,l);const p=h.getPo2TextureFromSource(c,s,a,n);if(r.trim){const e=u.getCanvasBoundingBox(c,n);p.frame.copyFrom(e),p.updateUvs()}return{texture:p,canvasAndContext:l}}getManagedTexture(e){e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;const t=e._getKey();if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].texture;const{texture:r,canvasAndContext:n}=this.createTextureAndCanvas(e);return this._activeTextures[t]={canvasAndContext:n,texture:r,usageCount:1},r}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){const t=this._activeTextures[e];if(t.usageCount--,0===t.usageCount){o.CanvasPool.returnCanvasAndContext(t.canvasAndContext),a.TexturePool.returnTexture(t.texture);const r=t.texture.source;r.resource=null,r.uploadMethodId="unknown",r.alphaMode="no-premultiply-alpha",this._activeTextures[e]=null}}getReferenceCount(e){return this._activeTextures[e].usageCount}renderTextToCanvas(e,t,r,i){const{canvas:s,context:o}=i,a=p.fontStringFromTextStyle(t),u=d.CanvasTextMetrics.measureText(e||" ",t),l=u.lines,c=u.lineHeight,h=u.lineWidths,m=u.maxLineWidth,g=u.fontProperties,_=s.height;o.resetTransform(),o.scale(r,r);const x=2*t.padding;if(o.clearRect(0,0,u.width+4+x,u.height+4+x),t._stroke?.width){const e=t._stroke;o.lineWidth=e.width,o.miterLimit=e.miterLimit,o.lineJoin=e.join,o.lineCap=e.cap}let b,y;o.font=a;const v=t.dropShadow?2:1;for(let e=0;e=0;e--){let t=n[e].trim();/([\"\'])[^\'\"]+\1/.test(t)||r.includes(t)||(t=`"${t}"`),n[e]=t}return`${e.fontStyle} ${e.fontVariant} ${e.fontWeight} ${t} ${n.join(",")}`}},73602:function(e,t,r){"use strict";var n=r(58778),i=r(15685),s=r(84463),o=r(95190),a=r(37553),u=r(16315);t.getCanvasFillStyle=function(e,t){if(e.texture===s.Texture.WHITE&&!e.fill)return n.Color.shared.setValue(e.color).toHex();if(!e.fill){const r=t.createPattern(e.texture.source.resource,"repeat"),n=e.matrix.copyTo(i.Matrix.shared);return n.scale(e.texture.frame.width,e.texture.frame.height),r.setTransform(n),r}if(e.fill instanceof u.FillPattern){const r=e.fill,n=t.createPattern(r.texture.source.resource,"repeat"),s=r.transform.copyTo(i.Matrix.shared);return s.scale(r.texture.frame.width,r.texture.frame.height),n.setTransform(s),n}if(e.fill instanceof a.FillGradient){const r=e.fill;if("linear"===r.type){const e=t.createLinearGradient(r.x0,r.y0,r.x1,r.y1);return r.gradientStops.forEach((t=>{e.addColorStop(t.offset,n.Color.shared.setValue(t.color).toHex())})),e}}return o.warn("FillStyle not recognised",e),"red"}},34266:function(e,t,r){"use strict";var n=r(17073),i=r(76869),s=r(58054);n.extensions.add(s.CanvasTextSystem),n.extensions.add(i.CanvasTextPipe)},34988:function(e,t,r){"use strict";var n=r(15685),i=r(1766),s=r(21380),o=r(84215),a=r(19209),u=r(4116),l=r(9488),c=r(97505),h=r(65518),d=r(40206),p=r(71424);let f,m;class g extends c.Shader{constructor(){const e=new h.UniformGroup({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uTransformMatrix:{value:new n.Matrix,type:"mat3x3"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}}),t=i.getMaxTexturesPerBatch();f??(f=s.compileHighShaderGpuProgram({name:"sdf-shader",bits:[o.colorBit,a.generateTextureBatchBit(t),d.localUniformMSDFBit,p.mSDFBit,u.roundPixelsBit]})),m??(m=s.compileHighShaderGlProgram({name:"sdf-shader",bits:[o.colorBitGl,a.generateTextureBatchBitGl(t),d.localUniformMSDFBitGl,p.mSDFBitGl,u.roundPixelsBitGl]})),super({glProgram:m,gpuProgram:f,resources:{localUniforms:e,batchSamplers:l.getBatchSamplersUniformGroup(t)}})}}t.SdfShader=g},40206:function(e,t){"use strict";const r={name:"local-uniform-msdf-bit",vertex:{header:"\n struct LocalUniforms {\n uColor:vec4,\n uTransformMatrix:mat3x3,\n uDistance: f32,\n uRound:f32,\n }\n\n @group(2) @binding(0) var localUniforms : LocalUniforms;\n ",main:"\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n ",end:"\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "},fragment:{header:"\n struct LocalUniforms {\n uColor:vec4,\n uTransformMatrix:mat3x3,\n uDistance: f32\n }\n\n @group(2) @binding(0) var localUniforms : LocalUniforms;\n ",main:" \n outColor = vec4(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));\n "}},n={name:"local-uniform-msdf-bit",vertex:{header:"\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n ",main:"\n vColor *= uColor;\n modelMatrix *= uTransformMatrix;\n ",end:"\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "},fragment:{header:"\n uniform float uDistance;\n ",main:" \n outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));\n "}};t.localUniformMSDFBit=r,t.localUniformMSDFBitGl=n},71424:function(e,t){"use strict";const r={name:"msdf-bit",fragment:{header:"\n fn calculateMSDFAlpha(msdfColor:vec4, shapeColor:vec4, distance:f32) -> f32 {\n \n // MSDF\n var median = msdfColor.r + msdfColor.g + msdfColor.b -\n min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -\n max(msdfColor.r, max(msdfColor.g, msdfColor.b));\n \n // SDF\n median = min(median, msdfColor.a);\n\n var screenPxDistance = distance * (median - 0.5);\n var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n if (median < 0.01) {\n alpha = 0.0;\n } else if (median > 0.99) {\n alpha = 1.0;\n }\n\n // Gamma correction for coverage-like alpha\n var luma: f32 = dot(shapeColor.rgb, vec3(0.299, 0.587, 0.114));\n var gamma: f32 = mix(1.0, 1.0 / 2.2, luma);\n var coverage: f32 = pow(shapeColor.a * alpha, gamma);\n\n return coverage;\n \n }\n "}},n={name:"msdf-bit",fragment:{header:"\n float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {\n \n // MSDF\n float median = msdfColor.r + msdfColor.g + msdfColor.b -\n min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -\n max(msdfColor.r, max(msdfColor.g, msdfColor.b));\n \n // SDF\n median = min(median, msdfColor.a);\n \n float screenPxDistance = distance * (median - 0.5);\n float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n \n if (median < 0.01) {\n alpha = 0.0;\n } else if (median > 0.99) {\n alpha = 1.0;\n }\n\n // Gamma correction for coverage-like alpha\n float luma = dot(shapeColor.rgb, vec3(0.299, 0.587, 0.114));\n float gamma = mix(1.0, 1.0 / 2.2, luma);\n float coverage = pow(shapeColor.a * alpha, gamma); \n \n return coverage;\n }\n "}};t.mSDFBit=r,t.mSDFBitGl=n},24328:function(e,t,r){"use strict";var n=r(47308),i=r(79517);t.ensureTextStyle=function(e,t){return t instanceof i.TextStyle||t instanceof n.HTMLTextStyle?t:"html"===e?new n.HTMLTextStyle(t):new i.TextStyle(t)}},64597:function(e,t,r){"use strict";var n=r(58778);const i=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"];function s(e,t,r){return e?(t[r++]=e.color,t[r++]=e.alpha,t[r++]=e.fill?.styleKey,r):r}t.generateTextStyleKey=function(e){const t=[];let r=0;for(let n=0;n{this._callback=t,this._batchIndex=0,this._frameKeys.length<=e.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()}))}_processFrames(t){let r=t;const s=e.BATCH_SIZE;for(;r-t{this._batchIndex*e.BATCH_SIZE{n[e]=t})),Object.keys(t.textures).forEach((e=>{n[e]=t.textures[e]})),!r){const r=u.path.dirname(e[0]);t.linkedSheets.forEach(((e,i)=>{const s=h([`${r}/${t.data.meta.related_multi_packs[i]}`],e,!0);Object.assign(n,s)}))}return n}const d={extension:o.ExtensionType.Asset,cache:{test:e=>e instanceof l.Spritesheet,getCacheableAssets:(e,t)=>h(e,t,!1)},resolver:{extension:{type:o.ExtensionType.ResolveParser,name:"resolveSpritesheet"},test:e=>{const t=e.split("?")[0].split("."),r=t.pop(),n=t.pop();return"json"===r&&c.includes(n)},parse:e=>{const t=e.split(".");return{resolution:parseFloat(i.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:t[t.length-2],src:e}}},loader:{name:"spritesheetLoader",extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.Normal,name:"spritesheetLoader"},async testParse(e,t){return".json"===u.path.extname(t.src).toLowerCase()&&!!e.frames},async parse(e,t,r){const{texture:n,imageFilename:i}=t?.data??{};let o,c=u.path.dirname(t.src);if(c&&c.lastIndexOf("/")!==c.length-1&&(c+="/"),n instanceof a.Texture)o=n;else{const n=s.copySearchParams(c+(i??e.meta.image),t.src);o=(await r.load([n]))[n]}const h=new l.Spritesheet(o.source,e);await h.parse();const d=e?.meta?.related_multi_packs;if(Array.isArray(d)){const e=[];for(const n of d){if("string"!=typeof n)continue;let i=c+n;t.data?.ignoreMultiPack||(i=s.copySearchParams(i,t.src),e.push(r.load({src:i,data:{ignoreMultiPack:!0}})))}const n=await Promise.all(e);h.linkedSheets=n,n.forEach((e=>{e.linkedSheets=[h].concat(h.linkedSheets.filter((t=>t!==e)))}))}return h},async unload(e,t,r){await r.unload(e.textureSource._sourceOrigin),e.destroy(!1)}}};t.spritesheetAsset=d},63983:function(e,t,r){"use strict";var n=r(35292),i=r(31137);const s=class e{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new i.TickerListener(null,null,1/0),this.deltaMS=1/e.targetFPMS,this.elapsedMS=1/e.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&null===this._requestId&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){null===this._requestId&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){null!==this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,r=n.UPDATE_PRIORITY.NORMAL){return this._addListener(new i.TickerListener(e,t,r))}addOnce(e,t,r=n.UPDATE_PRIORITY.NORMAL){return this._addListener(new i.TickerListener(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(t){for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}else e.connect(r);return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r=r.match(e,t)?r.destroy():r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(t=performance.now()){let r;if(t>this.lastTime){if(r=this.elapsedMS=t-this.lastTime,r>this._maxElapsedMS&&(r=this._maxElapsedMS),r*=this.speed,this._minElapsedMS){const e=t-this._lastFrame|0;if(e(e[e.INTERACTION=50]="INTERACTION",e[e.HIGH=25]="HIGH",e[e.NORMAL=0]="NORMAL",e[e.LOW=-25]="LOW",e[e.UTILITY=-50]="UTILITY",e))(r||{});t.UPDATE_PRIORITY=r},42508:function(e,t,r){"use strict";var n=r(35292),i=r(63983),s=r(31137);t.UPDATE_PRIORITY=n.UPDATE_PRIORITY,t.Ticker=i.Ticker,t.TickerListener=s.TickerListener},86105:function(e,t){"use strict";let r;t.detectVideoAlphaMode=async function(){return r??(r=(async()=>{const e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";const t=await new Promise((e=>{const t=document.createElement("video");t.onloadeddata=()=>e(t),t.onerror=()=>e(null),t.autoplay=!1,t.crossOrigin="anonymous",t.preload="auto",t.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",t.load()}));if(!t)return"premultiply-alpha-on-upload";const r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);const n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);const i=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,i),e.deleteFramebuffer(n),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),i[0]<=i[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),r}},2636:function(e,t,r){"use strict";var n=r(90891);const i=(n.default??n)(globalThis.navigator);t.isMobile=i},57296:function(e,t,r){"use strict";var n=r(42932);t.isSafari=function(){const{userAgent:e}=n.DOMAdapter.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}},58050:function(e,t,r){"use strict";var n=r(42932),i=r(95931);let s;t.isWebGLSupported=function(e){return void 0!==s||(s=(()=>{const t={stencil:!0,failIfMajorPerformanceCaveat:e??i.AbstractRenderer.defaultOptions.failIfMajorPerformanceCaveat};try{if(!n.DOMAdapter.get().getWebGLRenderingContext())return!1;let e=n.DOMAdapter.get().createCanvas().getContext("webgl",t);const r=!!e?.getContextAttributes()?.stencil;if(e){const t=e.getExtension("WEBGL_lose_context");t&&t.loseContext()}return e=null,r}catch(e){return!1}})()),s}},73533:function(e,t,r){"use strict";var n=r(42932);let i;t.isWebGPUSupported=async function(e={}){return void 0!==i||(i=await(async()=>{if(!n.DOMAdapter.get().getNavigator().gpu)return!1;try{const t=await navigator.gpu.requestAdapter(e);return await t.requestDevice(),!0}catch(e){return!1}})()),i}},4037:function(e,t){"use strict";let r;t.unsafeEvalSupported=function(){if("boolean"==typeof r)return r;try{const e=new Function("param1","param2","param3","return param1[param2] === param3;");r=!0===e({a:"b"},"a","b")}catch(e){r=!1}return r}},50034:function(e,t,r){"use strict";var n=r(42181);function i(e,t,r){for(let n=0,i=4*r*t;n=n||0===r)return;const s=n-(r=t+r>n?n-t:r);for(i=t;i{}},23522:function(e,t,r){"use strict";var n=r(15685),i=r(62792);t.Transform=class{constructor({matrix:e,observer:t}={}){this.dirty=!0,this._matrix=e??new n.Matrix,this.observer=t,this.position=new i.ObservablePoint(this,0,0),this.scale=new i.ObservablePoint(this,1,1),this.pivot=new i.ObservablePoint(this,0,0),this.skew=new i.ObservablePoint(this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1}get matrix(){const e=this._matrix;return this.dirty?(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this.dirty=!1,e):e}_onUpdate(e){this.dirty=!0,e===this.skew&&this.updateSkew(),this.observer?._onUpdate(this)}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this.dirty=!0}toString(){return`[pixi.js/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}setFromMatrix(e){e.decompose(this),this.dirty=!0}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this.skew))}}},87876:function(e,t,r){"use strict";var n=r(95997);t.getResolutionOfUrl=function(e,t=1){const r=n.Resolver.RETINA_PREFIX?.exec(e);return r?parseFloat(r[1]):t}},36491:function(e,t,r){"use strict";var n=r(42932);function i(e){if("string"!=typeof e)throw new TypeError(`Path must be a string. Received ${JSON.stringify(e)}`)}function s(e){return e.split("?")[0].split("#")[0]}const o={toPosix(e){return t="\\",r="/",e.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r);var t,r},isUrl(e){return/^https?:/.test(this.toPosix(e))},isDataUrl(e){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(e)},isBlobUrl(e){return e.startsWith("blob:")},hasProtocol(e){return/^[^/:]+:/.test(this.toPosix(e))},getProtocol(e){i(e),e=this.toPosix(e);const t=/^file:\/\/\//.exec(e);if(t)return t[0];const r=/^[^/:]+:\/{0,2}/.exec(e);return r?r[0]:""},toAbsolute(e,t,r){if(i(e),this.isDataUrl(e)||this.isBlobUrl(e))return e;const a=s(this.toPosix(t??n.DOMAdapter.get().getBaseUrl())),u=s(this.toPosix(r??this.rootname(a)));if((e=this.toPosix(e)).startsWith("/"))return o.join(u,e.slice(1));return this.isAbsolute(e)?e:this.join(a,e)},normalize(e){if(i(e),0===e.length)return".";if(this.isDataUrl(e)||this.isBlobUrl(e))return e;let t="";const r=(e=this.toPosix(e)).startsWith("/");this.hasProtocol(e)&&(t=this.rootname(e),e=e.slice(t.length));const n=e.endsWith("/");return(e=function(e,t){let r="",n=0,i=-1,s=0,o=-1;for(let a=0;a<=e.length;++a){if(a2){const e=r.lastIndexOf("/");if(e!==r.length-1){-1===e?(r="",n=0):(r=r.slice(0,e),n=r.length-1-r.lastIndexOf("/")),i=a,s=0;continue}}else if(2===r.length||1===r.length){r="",n=0,i=a,s=0;continue}t&&(r.length>0?r+="/..":r="..",n=2)}else r.length>0?r+=`/${e.slice(i+1,a)}`:r=e.slice(i+1,a),n=a-i-1;i=a,s=0}else 46===o&&-1!==s?++s:s=-1}return r}(e,!1)).length>0&&n&&(e+="/"),r?`/${e}`:t+e},isAbsolute(e){return i(e),e=this.toPosix(e),!!this.hasProtocol(e)||e.startsWith("/")},join(...e){if(0===e.length)return".";let t;for(let r=0;r0)if(void 0===t)t=n;else{const i=e[r-1]??"";this.joinExtensions.includes(this.extname(i).toLowerCase())?t+=`/../${n}`:t+=`/${n}`}}return void 0===t?".":this.normalize(t)},dirname(e){if(i(e),0===e.length)return".";let t=(e=this.toPosix(e)).charCodeAt(0);const r=47===t;let n=-1,s=!0;const o=this.getProtocol(e),a=e;for(let r=(e=e.slice(o.length)).length-1;r>=1;--r)if(t=e.charCodeAt(r),47===t){if(!s){n=r;break}}else s=!1;return-1===n?r?"/":this.isUrl(a)?o+e:o:r&&1===n?"//":o+e.slice(0,n)},rootname(e){i(e);let t="";if(t=(e=this.toPosix(e)).startsWith("/")?"/":this.getProtocol(e),this.isUrl(e)){const r=e.indexOf("/",t.length);t=-1!==r?e.slice(0,r):e,t.endsWith("/")||(t+="/")}return t},basename(e,t){i(e),t&&i(t),e=s(this.toPosix(e));let r,n=0,o=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";let i=t.length-1,s=-1;for(r=e.length-1;r>=0;--r){const u=e.charCodeAt(r);if(47===u){if(!a){n=r+1;break}}else-1===s&&(a=!1,s=r+1),i>=0&&(u===t.charCodeAt(i)?-1==--i&&(o=r):(i=-1,o=s))}return n===o?o=s:-1===o&&(o=e.length),e.slice(n,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){n=r+1;break}}else-1===o&&(a=!1,o=r+1);return-1===o?"":e.slice(n,o)},extname(e){i(e);let t=-1,r=0,n=-1,o=!0,a=0;for(let i=(e=s(this.toPosix(e))).length-1;i>=0;--i){const s=e.charCodeAt(i);if(47!==s)-1===n&&(o=!1,n=i+1),46===s?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){r=i+1;break}}return-1===t||-1===n||0===a||1===a&&t===n-1&&t===r+1?"":e.slice(t,n)},parse(e){i(e);const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;let r=(e=s(this.toPosix(e))).charCodeAt(0);const n=this.isAbsolute(e);let o;t.root=this.rootname(e),o=n||this.hasProtocol(e)?1:0;let a=-1,u=0,l=-1,c=!0,h=e.length-1,d=0;for(;h>=o;--h)if(r=e.charCodeAt(h),47!==r)-1===l&&(c=!1,l=h+1),46===r?-1===a?a=h:1!==d&&(d=1):-1!==a&&(d=-1);else if(!c){u=h+1;break}return-1===a||-1===l||0===d||1===d&&a===l-1&&a===u+1?-1!==l&&(t.base=t.name=0===u&&n?e.slice(1,l):e.slice(u,l)):(0===u&&n?(t.name=e.slice(1,a),t.base=e.slice(1,l)):(t.name=e.slice(u,a),t.base=e.slice(u,l)),t.ext=e.slice(a,l)),t.dir=this.dirname(e),t},sep:"/",delimiter:":",joinExtensions:[".html"]};t.path=o},82568:function(e,t){"use strict";t.Pool=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t0?this._pool[--this._index]:new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}}},86169:function(e,t,r){"use strict";var n=r(82568);class i{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new n.Pool(e)),this._poolsByClass.get(e)}stats(){const e={};return this._poolsByClass.forEach((t=>{const r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}})),e}}const s=new i;t.BigPool=s,t.PoolGroupClass=i},37087:function(e,t,r){"use strict";var n=r(42932);let i=!1;const s="8.2.5";t.VERSION=s,t.sayHello=function(e){if(!i){if(n.DOMAdapter.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){const t=[`%c %c %c %c %c PixiJS %c v${s} (${e}) http://www.pixijs.com/\n\n`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${s} - ${e} - http://www.pixijs.com/`);i=!0}}},65863:function(){},59121:function(e,t,r){"use strict";var n=r(5323),i=r(9187);t.EventEmitter=n,t.earcut=i},5323:function(e){"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),u=r?r+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],a]:e._events[u].push(a):(e._events[u]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i{const n=new FileReader;n.addEventListener("loadend",(()=>{t(n.result)})),n.addEventListener("error",r),n.readAsArrayBuffer(e)}))}async function i(e){const t=await n(e);return new Uint8Array(t)}function s(e){return"undefined"!=typeof Blob&&e instanceof Blob}function o(e){return"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer}r.r(t),r.d(t,{HTTPRangeReader:function(){return c},cleanup:function(){return ue},setOptions:function(){return se},unzip:function(){return ae},unzipRaw:function(){return oe}}),e=r.hmd(e);const a="undefined"!=typeof process&&process.versions&&void 0!==process.versions.node&&void 0===process.versions.electron;class u{constructor(e){this.typedArray=e instanceof ArrayBuffer||o(e)?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}async getLength(){return this.typedArray.byteLength}async read(e,t){return new Uint8Array(this.typedArray.buffer,this.typedArray.byteOffset+e,t)}}class l{constructor(e){this.blob=e}async getLength(){return this.blob.size}async read(e,t){const r=this.blob.slice(e,e+t),i=await n(r);return new Uint8Array(i)}async sliceAsBlob(e,t,r=""){return this.blob.slice(e,e+t,r)}}class c{constructor(e){this.url=e}async getLength(){if(void 0===this.length){const e=await fetch(this.url,{method:"HEAD"});if(!e.ok)throw new Error(`failed http request ${this.url}, status: ${e.status}: ${e.statusText}`);if(this.length=parseInt(e.headers.get("content-length")),Number.isNaN(this.length))throw Error("could not get length")}return this.length}async read(e,t){if(0===t)return new Uint8Array(0);const r=await fetch(this.url,{headers:{Range:`bytes=${e}-${e+t-1}`}});if(!r.ok)throw new Error(`failed http request ${this.url}, status: ${r.status} offset: ${e} size: ${t}: ${r.statusText}`);const n=await r.arrayBuffer();return new Uint8Array(n)}}function h(e,t){var r=e.length;if(t<=r)return e;var n=new Uint8Array(Math.max(r<<1,t));return n.set(e,0),n}function d(e,t,r,n,i,s){for(var o=_,a=b,u=0;u>>4;if(c<=15)s[u]=c,u++;else{var h=0,d=0;16==c?(d=3+o(n,i,2),i+=2,h=s[u-1]):17==c?(d=3+o(n,i,3),i+=3):18==c&&(d=11+o(n,i,7),i+=7);for(var p=u+d;u>>1;si&&(i=a),s++}for(;s>1,a=e[s+1],u=o<<4|a,l=t-a,c=e[s]<>>15-t]=u,c++}}function g(e,t){for(var r=y.rev15,n=15-t,i=0;i>>n}}function _(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)}const y=(v=Uint16Array,T=Uint32Array,{next_code:new v(16),bl_count:new v(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new v(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new T(32),flmap:new v(512),fltree:[],fdmap:new v(32),fdtree:[],lmap:new v(32768),ltree:[],ttree:[],dmap:new v(32768),dtree:[],imap:new v(512),itree:[],rev15:new v(32768),lhst:new T(286),dhst:new T(30),ihst:new T(19),lits:new T(15e3),strt:new v(65536),prev:new v(32768)});var v,T;!function(){for(var e=0;e<32768;e++){var t=e;t=(4278255360&(t=(4042322160&(t=(3435973836&(t=(2863311530&t)>>>1|(1431655765&t)<<1))>>>2|(858993459&t)<<2))>>>4|(252645135&t)<<4))>>>8|(16711935&t)<<8,y.rev15[e]=(t>>>16|t<<16)>>>17}function r(e,t,r){for(;0!=t--;)e.push(0,r)}for(e=0;e<32;e++)y.ldef[e]=y.of0[e]<<3|y.exb[e],y.ddef[e]=y.df0[e]<<4|y.dxb[e];r(y.fltree,144,8),r(y.fltree,112,9),r(y.fltree,24,7),r(y.fltree,8,8),f(y.fltree,9),m(y.fltree,9,y.flmap),g(y.fltree,9),r(y.fdtree,32,5),f(y.fdtree,5),m(y.fdtree,5,y.fdmap),g(y.fdtree,5),r(y.itree,19,0),r(y.ltree,286,0),r(y.dtree,30,0),r(y.ttree,320,0)}();const S={table:function(){for(var e=new Uint32Array(256),t=0;t<256;t++){for(var r=t,n=0;n<8;n++)1&r?r=3988292384^r>>>1:r>>>=1;e[t]=r}return e}(),update:function(e,t,r,n){for(var i=0;i>>8;return e},crc:function(e,t,r){return 4294967295^S.update(4294967295,e,t,r)}};function E(e,t){return function(e,t){var r=Uint8Array;if(3==e[0]&&0==e[1])return t||new r(0);var n=x,i=_,s=d,o=b,a=null==t;a&&(t=new r(e.length>>>2<<3));for(var u,l,c=0,g=0,v=0,T=0,S=0,E=0,A=0,M=0,P=0;0==c;)if(c=n(e,P,1),g=n(e,P+1,2),P+=3,0!=g){if(a&&(t=h(t,M+(1<<17))),1==g&&(u=y.flmap,l=y.fdmap,E=511,A=31),2==g){v=i(e,P,5)+257,T=i(e,P+5,5)+1,S=i(e,P+10,4)+4,P+=14;for(var R=0;R<38;R+=2)y.itree[R]=0,y.itree[R+1]=0;var w=1;for(R=0;Rw&&(w=B)}P+=3*S,f(y.itree,w),m(y.itree,w,y.imap),u=y.lmap,l=y.dmap,P=s(y.imap,(1<>>4;if(D>>>8==0)t[M++]=D;else{if(256==D)break;var I=M+D-254;if(D>264){var O=y.ldef[D-257];I=M+(O>>>3)+i(e,P,7&O),P+=7&O}var U=l[o(e,P)&A];P+=15&U;var L=U>>>4,k=y.ddef[L],N=(k>>>4)+n(e,P,15&k);for(P+=15&k,a&&(t=h(t,M+(1<<17)));M>>3),X=e[H-4]|e[H-3]<<8;a&&(t=h(t,M+X)),t.set(new r(e.buffer,e.byteOffset+H,X),M),P=H+X<<3,M+=X}return t.length==M?t:t.slice(0,M)}(e,t)}const A={numWorkers:1,workerURL:"",useWorkers:!1};let M=0,P=0,R=!0;const w=[],B=[],G=[],C=new Map;function F(e){O(e.target);const{id:t,error:r,data:n}=e.data,i=C.get(t);C.delete(t),r?i.reject(r):i.resolve(n)}function D(e){return new Promise(((t,r)=>{const n=new Worker(e);n.onmessage=e=>{"start"===e.data?(n.onerror=void 0,n.onmessage=void 0,t(n)):r(new Error(`unexpected message: ${e.data}`))},n.onerror=r}))}const I=function(){if(a){const{Worker:n}=(r="worker_threads",(t=e).require?t.require(r):{});return{async createWorker(e){return new n(e)},addEventListener(e,t){e.on("message",(r=>{t({target:e,data:r})}))},async terminate(e){await e.terminate()}}}return{async createWorker(e){try{return await D(e)}catch(t){console.warn("could not load worker:",e)}let t;try{const r=await fetch(e,{mode:"cors"});if(!r.ok)throw new Error(`could not load: ${e}`);t=await r.text(),e=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));const n=await D(e);return A.workerURL=e,n}catch(t){console.warn("could not load worker via fetch:",e)}if(void 0!==t)try{e=`data:application/javascript;base64,${btoa(t)}`;const r=await D(e);return A.workerURL=e,r}catch(e){console.warn("could not load worker via dataURI")}throw console.warn("workers will not be used"),new Error("can not start workers")},addEventListener(e,t){e.addEventListener("message",t)},async terminate(e){e.terminate()}};var t,r}();function O(e){B.push(e),L()}function U(e,t,r,n){const i=new Uint8Array(t);E(e,i),n(r?new Blob([i],{type:r}):i.buffer)}async function L(){if(0!==G.length){if(A.useWorkers&&R){const e=await async function(){if(0===B.length&&P{G.push({src:e,uncompressedSize:t,type:r,resolve:n,reject:i,id:M++}),L()}))}function N(e){e.splice(0,e.length)}class H{constructor(e,t){var r,n;this._reader=e,this._rawEntry=t,this.name=t.name,this.nameBytes=t.nameBytes,this.size=t.uncompressedSize,this.compressedSize=t.compressedSize,this.comment=t.comment,this.commentBytes=t.commentBytes,this.compressionMethod=t.compressionMethod,this.lastModDate=(r=t.lastModFileDate,n=t.lastModFileTime,new Date(1980+(r>>9&127),(r>>5&15)-1,31&r,n>>11&31,n>>5&63,2*(31&n),0)),this.isDirectory=0===t.uncompressedSize&&t.name.endsWith("/"),this.encrypted=!!(1&t.generalPurposeBitFlag),this.externalFileAttributes=t.externalFileAttributes,this.versionMadeBy=t.versionMadeBy}async blob(e="application/octet-stream"){return await async function(e,t,r){const{decompress:n,fileDataStart:i}=await ie(e,t);if(!n){const n=await $(e,i,t.compressedSize,r);return s(n)?n:new Blob([o(n.buffer)?new Uint8Array(n):n],{type:r})}const a=await $(e,i,t.compressedSize),u=await k(a,t.uncompressedSize,r);return u}(this._reader,this._rawEntry,e)}async arrayBuffer(){return await async function(e,t){const{decompress:r,fileDataStart:n}=await ie(e,t);if(!r){const r=await Y(e,n,t.compressedSize);return 0===(i=r).byteOffset&&i.byteLength===i.buffer.byteLength?r.buffer:r.slice().buffer}var i;const s=await $(e,n,t.compressedSize);return await k(s,t.uncompressedSize)}(this._reader,this._rawEntry)}async text(){const e=await this.arrayBuffer();return J(new Uint8Array(e))}async json(){const e=await this.text();return JSON.parse(e)}}const X=22,V=65535,z=101010256,W=101075792;async function Y(e,t,r){return await e.read(t,r)}async function $(e,t,r,n){return e.sliceAsBlob?await e.sliceAsBlob(t,r,n):await e.read(t,r)}const j={unsigned(){return 0}};function q(e,t){return e[t]+256*e[t+1]}function K(e,t){return e[t]+256*e[t+1]+65536*e[t+2]+16777216*e[t+3]}function Z(e,t){return K(e,t)+4294967296*K(e,t+4)}const Q=new TextDecoder;function J(e,t){return o(e.buffer)&&(e=new Uint8Array(e)),Q.decode(e)}const ee=117853008;async function te(e,t,r,n){const i=t-20,s=await Y(e,i,20);if(K(s,0)!==ee)throw new Error("invalid zip64 end of central directory locator signature");const o=Z(s,8),a=await Y(e,o,56);if(K(a,0)!==W)throw new Error("invalid zip64 end of central directory record signature");const u=Z(a,32),l=Z(a,40);return ne(e,Z(a,48),l,u,r,n)}const re=33639248;async function ne(e,t,r,n,i,s){let o=0;const a=await Y(e,t,r),u=[];for(let e=0;es.length)throw new Error("extra field length exceeds extra field buffer size");r.extraFields.push({id:e,data:s.slice(t,n)}),l=n}if(r.commentBytes=n.slice(i,i+r.fileCommentLength),r.comment=J(r.commentBytes),o+=n.length,4294967295===r.uncompressedSize||4294967295===r.compressedSize||4294967295===r.relativeOffsetOfLocalHeader){const e=r.extraFields.find((e=>1===e.id));if(!e)throw new Error("expected zip64 extended information extra field");const t=e.data;let n=0;if(4294967295===r.uncompressedSize){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include uncompressed size");r.uncompressedSize=Z(t,n),n+=8}if(4294967295===r.compressedSize){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include compressed size");r.compressedSize=Z(t,n),n+=8}if(4294967295===r.relativeOffsetOfLocalHeader){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include relative header offset");r.relativeOffsetOfLocalHeader=Z(t,n),n+=8}}const c=r.extraFields.find((e=>28789===e.id&&e.data.length>=6&&1===e.data[0]&&K(e.data,1)),j.unsigned(r.nameBytes));if(c&&(r.fileName=J(c.data.slice(5))),0===r.compressionMethod){let e=r.uncompressedSize;if(0!=(1&r.generalPurposeBitFlag)&&(e+=12),r.compressedSize!==e)throw new Error(`compressed size mismatch for stored file: ${r.compressedSize} != ${e}`)}u.push(r)}return{zip:{comment:i,commentBytes:s},entries:u.map((t=>new H(e,t)))}}async function ie(e,t){if(1&t.generalPurposeBitFlag)throw new Error("encrypted entries not supported");const r=await Y(e,t.relativeOffsetOfLocalHeader,30),n=await e.getLength(),i=K(r,0);if(67324752!==i)throw new Error(`invalid local file header signature: 0x${i.toString(16)}`);const s=q(r,26),o=q(r,28),a=t.relativeOffsetOfLocalHeader+r.length+s+o;let u;if(0===t.compressionMethod)u=!1;else{if(8!==t.compressionMethod)throw new Error(`unsupported compression method: ${t.compressionMethod}`);u=!0}const l=a,c=l+t.compressedSize;if(0!==t.compressedSize&&c>n)throw new Error(`file data overflows file bounds: ${l} + ${t.compressedSize} > ${n}`);return{decompress:u,fileDataStart:l}}function se(e){!function(e){A.workerURL=e.workerURL||A.workerURL,e.workerURL&&(A.useWorkers=!0),A.useWorkers=void 0!==e.useWorkers?e.useWorkers:A.useWorkers,A.numWorkers=e.numWorkers||A.numWorkers}(e)}async function oe(e){let t;if("undefined"!=typeof Blob&&e instanceof Blob)t=new l(e);else if(e instanceof ArrayBuffer||e&&e.buffer&&e.buffer instanceof ArrayBuffer)t=new u(e);else if(o(e)||o(e.buffer))t=new u(e);else if("string"==typeof e){const r=await fetch(e);if(!r.ok)throw new Error(`failed http request ${e}, status: ${r.status}: ${r.statusText}`);const n=await r.blob();t=new l(n)}else{if("function"!=typeof e.getLength||"function"!=typeof e.read)throw new Error("unsupported source type");t=e}const r=await t.getLength();if(r>Number.MAX_SAFE_INTEGER)throw new Error(`file too large. size: ${r}. Only file sizes up 4503599627370496 bytes are supported`);return await async function(e,t){const r=Math.min(X+V,t),n=t-r,i=await Y(e,n,r);for(let t=r-X;t>=0;--t){if(K(i,t)!==z)continue;const r=new Uint8Array(i.buffer,i.byteOffset+t,i.byteLength-t),s=q(r,4);if(0!==s)throw new Error(`multi-volume zip files are not supported. This is volume: ${s}`);const o=q(r,10),a=K(r,12),u=K(r,16),l=q(r,20),c=r.length-X;if(l!==c)throw new Error(`invalid comment length. expected: ${c}, actual: ${l}`);const h=new Uint8Array(r.buffer,r.byteOffset+22,l),d=J(h);return 65535===o||4294967295===u?await te(e,n+t,d,h):await ne(e,u,a,o,d,h)}throw new Error("could not find end of central directory. maybe not zip file")}(t,r)}async function ae(e){const{zip:t,entries:r}=await oe(e);return{zip:t,entries:Object.fromEntries(r.map((e=>[e.name,e])))}}function ue(){!async function(){for(const e of w)await I.terminate(e);N(w),N(B),N(G),C.clear(),P=0,R=!0}()}}}]); \ No newline at end of file diff --git a/dist/game.94da70e997bbf41a2db8.js b/dist/game.94da70e997bbf41a2db8.js deleted file mode 100644 index 5f902819..00000000 --- a/dist/game.94da70e997bbf41a2db8.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkpixi_typescript_boilerplate=self.webpackChunkpixi_typescript_boilerplate||[]).push([[507],{5538:function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={grad:.9,turn:360,rad:360/(2*Math.PI)},n=function(e){return"string"==typeof e?e.length>0:"number"==typeof e},i=function(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=Math.pow(10,t)),Math.round(r*e)/r+0},s=function(e,t,r){return void 0===t&&(t=0),void 0===r&&(r=1),e>r?r:e>t?e:t},o=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},a=function(e){return{r:s(e.r,0,255),g:s(e.g,0,255),b:s(e.b,0,255),a:s(e.a)}},u=function(e){return{r:i(e.r),g:i(e.g),b:i(e.b),a:i(e.a,3)}},l=/^#([0-9a-f]{3,8})$/i,c=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},h=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,s=Math.max(t,r,n),o=s-Math.min(t,r,n),a=o?s===t?(r-n)/o:s===r?2+(n-t)/o:4+(t-r)/o:0;return{h:60*(a<0?a+6:a),s:s?o/s*100:0,v:s/255*100,a:i}},d=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var s=Math.floor(t),o=n*(1-r),a=n*(1-(t-s)*r),u=n*(1-(1-t+s)*r),l=s%6;return{r:255*[n,a,o,o,u,n][l],g:255*[u,n,n,a,o,o][l],b:255*[o,o,u,n,n,a][l],a:i}},p=function(e){return{h:o(e.h),s:s(e.s,0,100),l:s(e.l,0,100),a:s(e.a)}},f=function(e){return{h:i(e.h),s:i(e.s),l:i(e.l),a:i(e.a,3)}},m=function(e){return d((r=(t=e).s,{h:t.h,s:(r*=((n=t.l)<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:t.a}));var t,r,n},g=function(e){return{h:(t=h(e)).h,s:(i=(200-(r=t.s))*(n=t.v)/100)>0&&i<200?r*n/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,r,n,i},_=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,x=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,b=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v={string:[[function(e){var t=l.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?i(parseInt(e[3]+e[3],16)/255,2):1}:6===e.length||8===e.length?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:8===e.length?i(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=b.exec(e)||y.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=_.exec(e)||x.exec(e);if(!t)return null;var n,i,s=p({h:(n=t[1],i=t[2],void 0===i&&(i="deg"),Number(n)*(r[i]||1)),s:Number(t[3]),l:Number(t[4]),a:void 0===t[5]?1:Number(t[5])/(t[6]?100:1)});return m(s)},"hsl"]],object:[[function(e){var t=e.r,r=e.g,i=e.b,s=e.a,o=void 0===s?1:s;return n(t)&&n(r)&&n(i)?a({r:Number(t),g:Number(r),b:Number(i),a:Number(o)}):null},"rgb"],[function(e){var t=e.h,r=e.s,i=e.l,s=e.a,o=void 0===s?1:s;if(!n(t)||!n(r)||!n(i))return null;var a=p({h:Number(t),s:Number(r),l:Number(i),a:Number(o)});return m(a)},"hsl"],[function(e){var t=e.h,r=e.s,i=e.v,a=e.a,u=void 0===a?1:a;if(!n(t)||!n(r)||!n(i))return null;var l=function(e){return{h:o(e.h),s:s(e.s,0,100),v:s(e.v,0,100),a:s(e.a)}}({h:Number(t),s:Number(r),v:Number(i),a:Number(u)});return d(l)},"hsv"]]},T=function(e,t){for(var r=0;r=.5},e.prototype.toHex=function(){return t=(e=u(this.rgba)).r,r=e.g,n=e.b,o=(s=e.a)<1?c(i(255*s)):"","#"+c(t)+c(r)+c(n)+o;var e,t,r,n,s,o},e.prototype.toRgb=function(){return u(this.rgba)},e.prototype.toRgbString=function(){return t=(e=u(this.rgba)).r,r=e.g,n=e.b,(i=e.a)<1?"rgba("+t+", "+r+", "+n+", "+i+")":"rgb("+t+", "+r+", "+n+")";var e,t,r,n,i},e.prototype.toHsl=function(){return f(g(this.rgba))},e.prototype.toHslString=function(){return t=(e=f(g(this.rgba))).h,r=e.s,n=e.l,(i=e.a)<1?"hsla("+t+", "+r+"%, "+n+"%, "+i+")":"hsl("+t+", "+r+"%, "+n+"%)";var e,t,r,n,i},e.prototype.toHsv=function(){return e=h(this.rgba),{h:i(e.h),s:i(e.s),v:i(e.v),a:i(e.a,3)};var e},e.prototype.invert=function(){return R({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return void 0===e&&(e=.1),R(E(this.rgba,e))},e.prototype.desaturate=function(e){return void 0===e&&(e=.1),R(E(this.rgba,-e))},e.prototype.grayscale=function(){return R(E(this.rgba,-1))},e.prototype.lighten=function(e){return void 0===e&&(e=.1),R(P(this.rgba,e))},e.prototype.darken=function(e){return void 0===e&&(e=.1),R(P(this.rgba,-e))},e.prototype.rotate=function(e){return void 0===e&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return"number"==typeof e?R({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):i(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=g(this.rgba);return"number"==typeof e?R({h:e,s:t.s,l:t.l,a:t.a}):i(t.h)},e.prototype.isEqual=function(e){return this.toHex()===R(e).toHex()},e}(),R=function(e){return e instanceof M?e:new M(e)},w=[];t.Colord=M,t.colord=R,t.extend=function(e){e.forEach((function(e){w.indexOf(e)<0&&(e(M,v),w.push(e))}))},t.getFormat=function(e){return S(e)[1]},t.random=function(){return new M({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})}},13185:function(e){e.exports=function(e,t){var r={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},n={};for(var i in r)n[r[i]]=i;var s={};e.prototype.toName=function(t){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var i,o,a=n[this.toHex()];if(a)return a;if(null==t?void 0:t.closest){var u=this.toRgb(),l=1/0,c="black";if(!s.length)for(var h in r)s[h]=new e(r[h]).toRgb();for(var d in r){var p=(i=u,o=s[d],Math.pow(i.r-o.r,2)+Math.pow(i.g-o.g,2)+Math.pow(i.b-o.b,2));p=t+r||t?new java.lang.String(e,t,r)+"":e}function _(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}d.prototype.parseFromString=function(e,t){var r=this.options,n=new c,i=r.domBuilder||new p,o=r.errorHandler,a=r.locator,l=r.xmlns||{},d=/\/x?html?$/.test(t),f=d?s.HTML_ENTITIES:s.XML_ENTITIES;a&&i.setDocumentLocator(a),n.errorHandler=function(e,t,r){if(!e){if(t instanceof p)return t;e=t}var n={},i=e instanceof Function;function s(t){var s=e[t];!s&&i&&(s=2==e.length?function(r){e(t,r)}:e),n[t]=s&&function(e){s("[xmldom "+t+"]\t"+e+m(r))}||function(){}}return r=r||{},s("warning"),s("error"),s("fatalError"),n}(o,i,a),n.domBuilder=r.domBuilder||i,d&&(l[""]=u.HTML),l.xml=l.xml||u.XML;var g=r.normalizeLineEndings||h;return e&&"string"==typeof e?n.parse(g(e),l,f):n.errorHandler.error("invalid doc source"),i.doc},p.prototype={startDocument:function(){this.doc=(new a).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,r,n){var i=this.doc,s=i.createElementNS(e,r||t),o=n.length;_(this,s),this.currentElement=s,this.locator&&f(this.locator,s);for(var a=0;a=0))throw new w(M,new Error(e.tagName+"@"+r));for(var i=t.length-1;n"==e&&">")||"&"==e&&"&"||'"'==e&&"""||"&#"+e.charCodeAt()+";"}function N(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(N(e,t))return!0}while(e=e.nextSibling)}function X(){this.ownerDocument=this}function H(e,t,r,n){e&&e._inc++,r.namespaceURI===s.XMLNS&&delete t._nsMap[r.prefix?r.localName:""]}function z(e,t,r){if(e&&e._inc){e._inc++;var n=t.childNodes;if(r)n[n.length++]=r;else{for(var i=t.firstChild,s=0;i;)n[s++]=i,i=i.nextSibling;n.length=s,delete n[n.length]}}}function V(e,t){var r=t.previousSibling,n=t.nextSibling;return r?r.nextSibling=n:e.firstChild=n,n?n.previousSibling=r:e.lastChild=r,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,z(e.ownerDocument,e),t}function W(e){return e&&e.nodeType===L.DOCUMENT_TYPE_NODE}function Y(e){return e&&e.nodeType===L.ELEMENT_NODE}function q(e){return e&&e.nodeType===L.TEXT_NODE}function $(e,t){var r=e.childNodes||[];if(i(r,Y)||W(t))return!1;var n=i(r,W);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function j(e,t){var r=e.childNodes||[];if(i(r,(function(e){return Y(e)&&e!==t})))return!1;var n=i(r,W);return!(t&&n&&r.indexOf(n)>r.indexOf(t))}function K(e,t,r){if(!function(e){return e&&(e.nodeType===L.DOCUMENT_NODE||e.nodeType===L.DOCUMENT_FRAGMENT_NODE||e.nodeType===L.ELEMENT_NODE)}(e))throw new w(P,"Unexpected parent node type "+e.nodeType);if(r&&r.parentNode!==e)throw new w(M,"child not in parent");if(!function(e){return e&&(Y(e)||q(e)||W(e)||e.nodeType===L.DOCUMENT_FRAGMENT_NODE||e.nodeType===L.COMMENT_NODE||e.nodeType===L.PROCESSING_INSTRUCTION_NODE)}(t)||W(t)&&e.nodeType!==L.DOCUMENT_NODE)throw new w(P,"Unexpected node type "+t.nodeType+" for parent node type "+e.nodeType)}function Z(e,t,r){var n=e.childNodes||[],s=t.childNodes||[];if(t.nodeType===L.DOCUMENT_FRAGMENT_NODE){var o=s.filter(Y);if(o.length>1||i(s,q))throw new w(P,"More than one element or text in fragment");if(1===o.length&&!$(e,r))throw new w(P,"Element in fragment can not be inserted before doctype")}if(Y(t)&&!$(e,r))throw new w(P,"Only one element can be added and only after doctype");if(W(t)){if(i(n,W))throw new w(P,"Only one doctype is allowed");var a=i(n,Y);if(r&&n.indexOf(a)1||i(s,q))throw new w(P,"More than one element or text in fragment");if(1===o.length&&!j(e,r))throw new w(P,"Element in fragment can not be inserted before doctype")}if(Y(t)&&!j(e,r))throw new w(P,"Only one element can be added and only after doctype");if(W(t)){if(i(n,(function(e){return W(e)&&e!==r})))throw new w(P,"Only one doctype is allowed");var a=i(n,Y);if(r&&n.indexOf(a)=0;S--){if(""===(E=i[S]).prefix&&E.namespace===e.namespaceURI){h=E.namespace;break}}if(h!==e.namespaceURI)for(S=i.length-1;S>=0;S--){var E;if((E=i[S]).namespace===e.namespaceURI){E.prefix&&(c=E.prefix+":"+l);break}}}t.push("<",c);for(var A=0;A"),r&&/^script$/i.test(l))for(;u;)u.data?t.push(u.data):ge(u,t,r,n,i.slice()),u=u.nextSibling;else for(;u;)ge(u,t,r,n,i.slice()),u=u.nextSibling;t.push("")}else t.push("/>");return;case y:case T:for(u=e.firstChild;u;)ge(u,t,r,n,i.slice()),u=u.nextSibling;return;case p:return me(t,e.name,e.value);case f:return t.push(e.data.replace(/[<&>]/g,k));case m:return t.push("");case b:return t.push("\x3c!--",e.data,"--\x3e");case v:var w=e.publicId,B=e.systemId;if(t.push("");else if(B&&"."!=B)t.push(" SYSTEM ",B,">");else{var G=e.internalSubset;G&&t.push(" [",G,"]"),t.push(">")}return;case x:return t.push("");case g:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function _e(e,t,r){var n;switch(t.nodeType){case d:(n=t.cloneNode(!1)).ownerDocument=e;case T:break;case p:r=!0}if(n||(n=t.cloneNode(!1)),n.ownerDocument=e,n.parentNode=null,r)for(var i=t.firstChild;i;)n.appendChild(_e(e,i,r)),i=i.nextSibling;return n}function xe(e,t,r){var n=new t.constructor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];"object"!=typeof s&&s!=n[i]&&(n[i]=s)}switch(t.childNodes&&(n.childNodes=new B),n.ownerDocument=e,n.nodeType){case d:var o=t.attributes,a=n.attributes=new F,u=o.length;a._ownerElement=n;for(var l=0;l=0&&e0},lookupPrefix:function(e){for(var t=this;t;){var r=t._nsMap;if(r)for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)&&r[n]===e)return n;t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var r=t._nsMap;if(r&&Object.prototype.hasOwnProperty.call(r,e))return r[e];t=t.nodeType==p?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},l(h,L),l(h,L.prototype),X.prototype={nodeName:"#document",nodeType:y,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==T){for(var r=e.firstChild;r;){var n=r.nextSibling;this.insertBefore(r,t),r=n}return e}return J(this,e,t),e.ownerDocument=this,null===this.documentElement&&e.nodeType===d&&(this.documentElement=e),e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),V(this,e)},replaceChild:function(e,t){J(this,e,t,Q),e.ownerDocument=this,t&&this.removeChild(t),Y(e)&&(this.documentElement=e)},importNode:function(e,t){return _e(this,e,t)},getElementById:function(e){var t=null;return N(this.documentElement,(function(r){if(r.nodeType==d&&r.getAttribute("id")==e)return t=r,!0})),t},getElementsByClassName:function(e){var t=u(e);return new G(this,(function(r){var n=[];return t.length>0&&N(r.documentElement,(function(i){if(i!==r&&i.nodeType===d){var s=i.getAttribute("class");if(s){var o=e===s;if(!o){var a=u(s);o=t.every((l=a,function(e){return l&&-1!==l.indexOf(e)}))}o&&n.push(i)}}var l})),n}))},createElement:function(e){var t=new ee;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.localName=e,t.childNodes=new B,(t.attributes=new F)._ownerElement=t,t},createDocumentFragment:function(){var e=new ce;return e.ownerDocument=this,e.childNodes=new B,e},createTextNode:function(e){var t=new ne;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new ie;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new se;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var r=new he;return r.ownerDocument=this,r.tagName=r.nodeName=r.target=e,r.nodeValue=r.data=t,r},createAttribute:function(e){var t=new te;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new le;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var r=new ee,n=t.split(":"),i=r.attributes=new F;return r.childNodes=new B,r.ownerDocument=this,r.nodeName=t,r.tagName=t,r.namespaceURI=e,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,i._ownerElement=r,r},createAttributeNS:function(e,t){var r=new te,n=t.split(":");return r.ownerDocument=this,r.nodeName=t,r.name=t,r.namespaceURI=e,r.specified=!0,2==n.length?(r.prefix=n[0],r.localName=n[1]):r.localName=t,r}},c(X,L),ee.prototype={nodeType:d,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var r=this.ownerDocument.createAttribute(e);r.value=r.nodeValue=""+t,this.setAttributeNode(r)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===T?this.insertBefore(e,null):function(e,t){return t.parentNode&&t.parentNode.removeChild(t),t.parentNode=e,t.previousSibling=e.lastChild,t.nextSibling=null,t.previousSibling?t.previousSibling.nextSibling=t:e.firstChild=t,e.lastChild=t,z(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);r&&this.removeAttributeNode(r)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var r=this.getAttributeNodeNS(e,t);return r&&r.value||""},setAttributeNS:function(e,t,r){var n=this.ownerDocument.createAttributeNS(e,t);n.value=n.nodeValue=""+r,this.setAttributeNode(n)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new G(this,(function(t){var r=[];return N(t,(function(n){n===t||n.nodeType!=d||"*"!==e&&n.tagName!=e||r.push(n)})),r}))},getElementsByTagNameNS:function(e,t){return new G(this,(function(r){var n=[];return N(r,(function(i){i===r||i.nodeType!==d||"*"!==e&&i.namespaceURI!==e||"*"!==t&&i.localName!=t||n.push(i)})),n}))}},X.prototype.getElementsByTagName=ee.prototype.getElementsByTagName,X.prototype.getElementsByTagNameNS=ee.prototype.getElementsByTagNameNS,c(ee,L),te.prototype.nodeType=p,c(te,L),re.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(A[P])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,r){r=this.data.substring(0,e)+r+this.data.substring(e+t),this.nodeValue=this.data=r,this.length=r.length}},c(re,L),ne.prototype={nodeName:"#text",nodeType:f,splitText:function(e){var t=this.data,r=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var n=this.ownerDocument.createTextNode(r);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n}},c(ne,re),ie.prototype={nodeName:"#comment",nodeType:b},c(ie,re),se.prototype={nodeName:"#cdata-section",nodeType:m},c(se,re),oe.prototype.nodeType=v,c(oe,L),ae.prototype.nodeType=S,c(ae,L),ue.prototype.nodeType=_,c(ue,L),le.prototype.nodeType=g,c(le,L),ce.prototype.nodeName="#document-fragment",ce.prototype.nodeType=T,c(ce,L),he.prototype.nodeType=x,c(he,L),de.prototype.serializeToString=function(e,t,r){return pe.call(e,t,r)},L.prototype.toString=pe;try{if(Object.defineProperty){function ye(e){switch(e.nodeType){case d:case T:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(ye(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(G.prototype,"length",{get:function(){return C(this),this.$$length}}),Object.defineProperty(L.prototype,"textContent",{get:function(){return ye(this)},set:function(e){switch(this.nodeType){case d:case T:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),be=function(e,t,r){e["$$"+t]=r}}}catch(ve){}t.DocumentType=oe,t.DOMException=w,t.DOMImplementation=U,t.Element=ee,t.Node=L,t.NodeList=B,t.XMLSerializer=de},31045:function(e,t,r){"use strict";var n=r(72167).freeze;t.XML_ENTITIES=n({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}),t.HTML_ENTITIES=n({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),t.entityMap=t.HTML_ENTITIES},3969:function(e,t,r){var n=r(41146);t.DOMImplementation=n.DOMImplementation,t.XMLSerializer=n.XMLSerializer,t.DOMParser=r(86129).DOMParser},76925:function(e,t,r){var n=r(72167).NAMESPACE,i=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,s=new RegExp("[\\-\\.0-9"+i.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),o=new RegExp("^"+i.source+s.source+"*(?::"+i.source+s.source+"*)?$"),a=0,u=1,l=2,c=3,h=4,d=5,p=6,f=7;function m(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,m)}function g(){}function _(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function x(e,t,r,i,s,o){function m(e,t,n){r.attributeNames.hasOwnProperty(e)&&o.fatalError("Attribute "+e+" redefined"),r.addValue(e,t.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),n)}for(var g,_=++t,x=a;;){var b=e.charAt(_);switch(b){case"=":if(x===u)g=e.slice(t,_),x=c;else{if(x!==l)throw new Error("attribute equal must after attrName");x=c}break;case"'":case'"':if(x===c||x===u){if(x===u&&(o.warning('attribute value must after "="'),g=e.slice(t,_)),t=_+1,!((_=e.indexOf(b,t))>0))throw new Error("attribute value no end '"+b+"' match");m(g,y=e.slice(t,_),t-1),x=d}else{if(x!=h)throw new Error('attribute value must after "="');m(g,y=e.slice(t,_),t),o.warning('attribute "'+g+'" missed start quot('+b+")!!"),t=_+1,x=d}break;case"/":switch(x){case a:r.setTagName(e.slice(t,_));case d:case p:case f:x=f,r.closed=!0;case h:case u:break;case l:r.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return o.error("unexpected end of input"),x==a&&r.setTagName(e.slice(t,_)),_;case">":switch(x){case a:r.setTagName(e.slice(t,_));case d:case p:case f:break;case h:case u:"/"===(y=e.slice(t,_)).slice(-1)&&(r.closed=!0,y=y.slice(0,-1));case l:x===l&&(y=g),x==h?(o.warning('attribute "'+y+'" missed quot(")!'),m(g,y,t)):(n.isHTML(i[""])&&y.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute "'+y+'" missed value!! "'+y+'" instead!!'),m(y,y,t));break;case c:throw new Error("attribute value missed!!")}return _;case"€":b=" ";default:if(b<=" ")switch(x){case a:r.setTagName(e.slice(t,_)),x=p;break;case u:g=e.slice(t,_),x=l;break;case h:var y=e.slice(t,_);o.warning('attribute "'+y+'" missed quot(")!!'),m(g,y,t);case d:x=p}else switch(x){case l:r.tagName;n.isHTML(i[""])&&g.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute "'+g+'" missed value!! "'+g+'" instead2!!'),m(g,g,t),t=_,x=u;break;case d:o.warning('attribute space is required"'+g+'"!!');case p:x=u,t=_;break;case c:x=h,t=_;break;case f:throw new Error("elements closed character '/' and '>' must be connected to")}}_++}}function b(e,t,r){for(var i=e.tagName,s=null,o=e.length;o--;){var a=e[o],u=a.qName,l=a.value;if((p=u.indexOf(":"))>0)var c=a.prefix=u.slice(0,p),h=u.slice(p+1),d="xmlns"===c&&h;else h=u,c=null,d="xmlns"===u&&"";a.localName=h,!1!==d&&(null==s&&(s={},T(r,r={})),r[d]=s[d]=l,a.uri=n.XMLNS,t.startPrefixMapping(d,l))}for(o=e.length;o--;){(c=(a=e[o]).prefix)&&("xml"===c&&(a.uri=n.XML),"xmlns"!==c&&(a.uri=r[c||""]))}var p;(p=i.indexOf(":"))>0?(c=e.prefix=i.slice(0,p),h=e.localName=i.slice(p+1)):(c=null,h=e.localName=i);var f=e.uri=r[c||""];if(t.startElement(f,h,i,e),!e.closed)return e.currentNSMap=r,e.localNSMap=s,!0;if(t.endElement(f,h,i),s)for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&t.endPrefixMapping(c)}function y(e,t,r,n,i){if(/^(?:script|textarea)$/i.test(r)){var s=e.indexOf("",t),o=e.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(r)?(i.characters(o,0,o.length),s):(o=o.replace(/&#?\w+;/g,n),i.characters(o,0,o.length),s)}return t+1}function v(e,t,r,n){var i=n[r];return null==i&&((i=e.lastIndexOf(""))t?(r.comment(e,t+4,i-t-4),i+3):(n.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var i=e.indexOf("]]>",t+9);return r.startCDATA(),r.characters(e,t+9,i-t-9),r.endCDATA(),i+3}var s=function(e,t){var r,n=[],i=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;i.lastIndex=t,i.exec(e);for(;r=i.exec(e);)if(n.push(r),r[1])return n}(e,t),o=s.length;if(o>1&&/!doctype/i.test(s[0][0])){var a=s[1][0],u=!1,l=!1;o>3&&(/^public$/i.test(s[2][0])?(u=s[3][0],l=o>4&&s[4][0]):/^system$/i.test(s[2][0])&&(l=s[3][0]));var c=s[o-1];return r.startDTD(a,u,l),r.endDTD(),c.index+c[0].length}return-1}function E(e,t,r){var n=e.indexOf("?>",t);if(n){var i=e.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(i){i[0].length;return r.processingInstruction(i[1],i[2]),n+2}return-1}return-1}function A(){this.attributeNames={}}m.prototype=new Error,m.prototype.name=m.name,g.prototype={parse:function(e,t,r){var i=this.domBuilder;i.startDocument(),T(t,t={}),function(e,t,r,i,s){function o(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}function a(e){var t=e.slice(1,-1);return Object.hasOwnProperty.call(r,t)?r[t]:"#"===t.charAt(0)?o(parseInt(t.substr(1).replace("x","0x"))):(s.error("entity not found:"+e),e)}function u(t){if(t>T){var r=e.substring(T,t).replace(/&#?\w+;/g,a);p&&l(T),i.characters(r,0,t-T),T=t}}function l(t,r){for(;t>=h&&(r=d.exec(e));)c=r.index,h=c+r[0].length,p.lineNumber++;p.columnNumber=t-c+1}var c=0,h=0,d=/.*(?:\r\n?|\n)|.*$/g,p=i.locator,f=[{currentNSMap:t}],g={},T=0;for(;;){try{var P=e.indexOf("<",T);if(P<0){if(!e.substr(T).match(/^\s*$/)){var M=i.doc,R=M.createTextNode(e.substr(T));M.appendChild(R),i.currentElement=R}return}switch(P>T&&u(P),e.charAt(P+1)){case"/":var w=e.indexOf(">",P+3),B=e.substring(P+2,w).replace(/[ \t\n\r]+$/g,""),G=f.pop();w<0?(B=e.substring(P+2).replace(/[\s<].*/,""),s.error("end tag name: "+B+" is not complete:"+G.tagName),w=P+1+B.length):B.match(/\sT?T=w:u(Math.max(P,T)+1)}}(e,t,r,i,this.errorHandler),i.endDocument()}},A.prototype={setTagName:function(e){if(!o.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,r){if(!o.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:r}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},t.XMLReader=g,t.ParseError=m},9187:function(e){"use strict";function t(e,t,n){n=n||2;var s,o,a,u,h,d,f,m=t&&t.length,g=m?t[0]*n:e.length,_=r(e,0,g,n,!0),x=[];if(!_||_.next===_.prev)return x;if(m&&(_=function(e,t,n,i){var s,o,a,u=[];for(s=0,o=t.length;s80*n){s=a=e[0],o=u=e[1];for(var b=n;ba&&(a=h),d>u&&(u=d);f=0!==(f=Math.max(a-s,u-o))?32767/f:0}return i(_,x,n,s,o,f,0),x}function r(e,t,r,n,i){var s,o;if(i===P(e,t,r,n)>0)for(s=t;s=t;s-=n)o=S(s,e[s],e[s+1],o);return o&&_(o,o.next)&&(E(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!_(n,n.next)&&0!==g(n.prev,n,n.next))n=n.next;else{if(E(n),(n=t=n.prev)===n.next)break;r=!0}}while(r||n!==t);return t}function i(e,t,r,l,c,h,p){if(e){!p&&h&&function(e,t,r,n){var i=e;do{0===i.z&&(i.z=d(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,r,n,i,s,o,a,u,l=1;do{for(r=e,e=null,s=null,o=0;r;){for(o++,n=r,a=0,t=0;t0||u>0&&n;)0!==a&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,a--):(i=n,n=n.nextZ,u--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;r=n}s.nextZ=null,l*=2}while(o>1)}(i)}(e,l,c,h);for(var f,m,g=e;e.prev!==e.next;)if(f=e.prev,m=e.next,h?o(e,l,c,h):s(e))t.push(f.i/r|0),t.push(e.i/r|0),t.push(m.i/r|0),E(e),e=m.next,g=m.next;else if((e=m)===g){p?1===p?i(e=a(n(e),t,r),t,r,l,c,h,2):2===p&&u(e,t,r,l,c,h):i(n(e),t,r,l,c,h,1);break}}}function s(e){var t=e.prev,r=e,n=e.next;if(g(t,r,n)>=0)return!1;for(var i=t.x,s=r.x,o=n.x,a=t.y,u=r.y,l=n.y,c=is?i>o?i:o:s>o?s:o,p=a>u?a>l?a:l:u>l?u:l,m=n.next;m!==t;){if(m.x>=c&&m.x<=d&&m.y>=h&&m.y<=p&&f(i,a,s,u,o,l,m.x,m.y)&&g(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function o(e,t,r,n){var i=e.prev,s=e,o=e.next;if(g(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,l=o.x,c=i.y,h=s.y,p=o.y,m=au?a>l?a:l:u>l?u:l,b=c>h?c>p?c:p:h>p?h:p,y=d(m,_,t,r,n),v=d(x,b,t,r,n),T=e.prevZ,S=e.nextZ;T&&T.z>=y&&S&&S.z<=v;){if(T.x>=m&&T.x<=x&&T.y>=_&&T.y<=b&&T!==i&&T!==o&&f(a,c,u,h,l,p,T.x,T.y)&&g(T.prev,T,T.next)>=0)return!1;if(T=T.prevZ,S.x>=m&&S.x<=x&&S.y>=_&&S.y<=b&&S!==i&&S!==o&&f(a,c,u,h,l,p,S.x,S.y)&&g(S.prev,S,S.next)>=0)return!1;S=S.nextZ}for(;T&&T.z>=y;){if(T.x>=m&&T.x<=x&&T.y>=_&&T.y<=b&&T!==i&&T!==o&&f(a,c,u,h,l,p,T.x,T.y)&&g(T.prev,T,T.next)>=0)return!1;T=T.prevZ}for(;S&&S.z<=v;){if(S.x>=m&&S.x<=x&&S.y>=_&&S.y<=b&&S!==i&&S!==o&&f(a,c,u,h,l,p,S.x,S.y)&&g(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function a(e,t,r){var i=e;do{var s=i.prev,o=i.next.next;!_(s,o)&&x(s,i,i.next,o)&&v(s,o)&&v(o,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(o.i/r|0),E(i),E(i.next),i=e=o),i=i.next}while(i!==e);return n(i)}function u(e,t,r,s,o,a){var u=e;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&m(u,l)){var c=T(u,l);return u=n(u,u.next),c=n(c,c.next),i(u,t,r,s,o,a,0),void i(c,t,r,s,o,a,0)}l=l.next}u=u.next}while(u!==e)}function l(e,t){return e.x-t.x}function c(e,t){var r=function(e,t){var r,n=t,i=e.x,s=e.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>o&&(o=a,r=n.x=n.x&&n.x>=c&&i!==n.x&&f(sr.x||n.x===r.x&&h(r,n)))&&(r=n,p=u)),n=n.next}while(n!==l);return r}(e,t);if(!r)return t;var i=T(r,e);return n(i,i.next),n(r,r.next)}function h(e,t){return g(e.prev,e,t.prev)<0&&g(t.next,e,e.next)<0}function d(e,t,r,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function p(e){var t=e,r=e;do{(t.x=(e-o)*(s-a)&&(e-o)*(n-a)>=(r-o)*(t-a)&&(r-o)*(s-a)>=(i-o)*(n-a)}function m(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&x(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&(v(e,t)&&v(t,e)&&function(e,t){var r=e,n=!1,i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)&&(g(e.prev,e,t.prev)||g(e,t.prev,t))||_(e,t)&&g(e.prev,e,e.next)>0&&g(t.prev,t,t.next)>0)}function g(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function _(e,t){return e.x===t.x&&e.y===t.y}function x(e,t,r,n){var i=y(g(e,t,r)),s=y(g(e,t,n)),o=y(g(r,n,e)),a=y(g(r,n,t));return i!==s&&o!==a||(!(0!==i||!b(e,r,t))||(!(0!==s||!b(e,n,t))||(!(0!==o||!b(r,e,n))||!(0!==a||!b(r,t,n)))))}function b(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function y(e){return e>0?1:e<0?-1:0}function v(e,t){return g(e.prev,e,e.next)<0?g(e,t,e.next)>=0&&g(e,e.prev,t)>=0:g(e,t,e.prev)<0||g(e,e.next,t)<0}function T(e,t){var r=new A(e.i,e.x,e.y),n=new A(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function S(e,t,r,n){var i=new A(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function E(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function A(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function P(e,t,r,n){for(var i=0,s=t,o=r-n;s0&&(n+=e[i-1].length,r.holes.push(n))}return r}},90891:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return b}});var n=/iPhone/i,i=/iPod/i,s=/iPad/i,o=/\biOS-universal(?:.+)Mac\b/i,a=/\bAndroid(?:.+)Mobile\b/i,u=/Android/i,l=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,c=/Silk/i,h=/Windows Phone/i,d=/\bWindows(?:.+)ARM\b/i,p=/BlackBerry/i,f=/BB10/i,m=/Opera Mini/i,g=/\b(CriOS|Chrome)(?:.+)Mobile/i,_=/Mobile(?:.+)Firefox\b/i,x=function(e){return void 0!==e&&"MacIntel"===e.platform&&"number"==typeof e.maxTouchPoints&&e.maxTouchPoints>1&&"undefined"==typeof MSStream};function b(e){var t={userAgent:"",platform:"",maxTouchPoints:0};e||"undefined"==typeof navigator?"string"==typeof e?t.userAgent=e:e&&e.userAgent&&(t={userAgent:e.userAgent,platform:e.platform,maxTouchPoints:e.maxTouchPoints||0}):t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0};var r=t.userAgent,b=r.split("[FBAN");void 0!==b[1]&&(r=b[0]),void 0!==(b=r.split("Twitter"))[1]&&(r=b[0]);var y=function(e){return function(t){return t.test(e)}}(r),v={apple:{phone:y(n)&&!y(h),ipod:y(i),tablet:!y(n)&&(y(s)||x(t))&&!y(h),universal:y(o),device:(y(n)||y(i)||y(s)||y(o)||x(t))&&!y(h)},amazon:{phone:y(l),tablet:!y(l)&&y(c),device:y(l)||y(c)},android:{phone:!y(h)&&y(l)||!y(h)&&y(a),tablet:!y(h)&&!y(l)&&!y(a)&&(y(c)||y(u)),device:!y(h)&&(y(l)||y(c)||y(a)||y(u))||y(/\bokhttp\b/i)},windows:{phone:y(h),tablet:y(d),device:y(h)||y(d)},other:{blackberry:y(p),blackberry10:y(f),opera:y(m),firefox:y(_),chrome:y(g),device:y(p)||y(f)||y(m)||y(_)||y(g)},any:!1,phone:!1,tablet:!1};return v.any=v.apple.device||v.android.device||v.windows.device||v.other.device,v.phone=v.apple.phone||v.android.phone||v.windows.phone,v.tablet=v.apple.tablet||v.android.tablet||v.windows.tablet,v}},94462:function(e){e.exports=function(e){var i=[];return e.replace(r,(function(e,r,s){var o=r.toLowerCase();for(s=function(e){var t=e.match(n);return t?t.map(Number):[]}(s),"m"==o&&s.length>2&&(i.push([r].concat(s.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(s.length==t[o])return s.unshift(r),i.push(s);if(s.lengththis.updateCoord(e,u,"x");break;case"scaleY":case"skewY":u=t.substr(0,t.length-1),n=e[u].y,i=r,s=r-n,o=e=>this.updateCoord(e,u,"y");break;case"tint":case"blend":const l=Array.isArray(r)?r:[e.tint,r];n=0,i=l.length,s=i,o="tint"===t?e=>this.updateTint(e,l):e=>this.updateBlend(e,l);break;case"shake":n={x:e.x,y:e.y},i=r,o=e=>this.updateShake(e);break;case"position":n={x:e.x,y:e.y},i={x:r.x,y:r.y},s={x:i.x-n.x,y:i.y-n.y},o=e=>this.updatePosition(e);break;case"skew":case"scale":n=e[t].x,i=r,s=r-n,o=e=>this.updatePoint(e,t);break;case"face":n=e.rotation,i=a.shortestAngle(n,Math.atan2(r.y-e.y,r.x-e.x)),s=i-n,o=e=>this.updateOne(e,"rotation");break;default:n=e[t],i=r,s=r-n,o=e=>this.updateOne(e,t)}this.eases.push({element:e,entry:t,update:o,start:n,to:i,delta:s})}static shortestAngle(e,t){const r=2*Math.PI;let n=Math.abs(e-t)%r;n=n>Math.PI?r-n:n;var i;return n*(((t-e+Math.PI)%(i=r)+i)%i-Math.PI>0?1:-1)}remove(e,t){if(0===arguments.length)this.eases=[];else{"string"==typeof t&&(t=[t]);for(let r=0;r>16)+s*(a>>16),c=u*(o>>8&255)+s*(a>>8&255),h=u*(255&o)+s*(255&a);e.element.tint=l<<16|c<<8|h}updateShake(e){function t(e){return Math.floor(Math.random()*e)-Math.floor(e/2)}e.element.x=e.start.x+t(e.to),e.element.y=e.start.y+t(e.to)}complete(e){"shake"===e.entry&&(e.element.x=e.start.x,e.element.y=e.start.y)}reverse(e){if("position"===e.entry){const t=e.to.x,r=e.to.y;e.to.x=e.start.x,e.to.y=e.start.y,e.start.x=t,e.start.y=r,e.delta.x=-e.delta.x,e.delta.y=-e.delta.y}else{const t=e.to;e.to=e.start,e.start=t,e.delta=-e.delta}}repeat(e){switch(e.entry){case"skewX":e.element.skew.x=e.start;break;case"skewY":e.element.skew.y=e.start;break;case"skew":e.element.skew.x=e.start,e.element.skew.y=e.start;break;case"scaleX":e.element.scale.x=e.start;break;case"scaleY":e.element.scale.y=e.start;break;case"scale":e.element.scale.x=e.start,e.element.scale.y=e.start;break;case"position":e.element.x=e.start.x,e.element.y=e.start.y;break;default:e.element[e.entry]=e.start}}update(e){if(0===this.eases.length)return!0;if(this.options.wait){if(this.options.wait-=e,this.options.wait>0)return void this.emit("wait",this);e=-this.options.wait,this.options.wait=0,this.emit("wait-end",this)}this.time+=e;let t=0;this.time>=this.options.duration&&(t=this.time-this.options.duration,this.time=this.options.duration);for(let e=0;e=this.options.duration)if(this.options.reverse)this.eases.forEach((e=>this.reverse(e))),this.time=t,t&&this.eases.forEach((e=>e.update(e))),this.emit("reverse",this),this.options.repeat?!0!==this.options.repeat&&this.options.repeat--:this.options.reverse=!1;else{if(!this.options.repeat)return this.eases.forEach((e=>this.complete(e))),this.emit("complete",this),!0;this.eases.forEach((e=>this.repeat(e))),this.time=t,t&&this.eases.forEach((e=>e.update(e))),!0!==this.options.repeat&&this.options.repeat--,this.emit("repeat",this)}}get count(){return this.eases.length}}const u={duration:1e3,ease:s.easeInOutSine,maxFrame:1e3/60,ticker:null,useRAF:!0};class l extends o{constructor(e){super(),this.options=Object.assign({},u,e),this.easings=[],this.empty=!0,this.options.ticker&&this.options.ticker.add(this.update,this)}destroy(){this.removeAll(),this.options.useTicker?this.ticker.remove(this.update,this):this.options.useRAF&&(cancelAnimationFrame(this.handleRAF),this.handleRAF=null)}add(e,t,r){(r=r||{}).duration=void 0!==r.duration?r.duration:this.options.duration,r.ease=r.ease||this.options.ease,"string"==typeof r.ease&&(r.ease=s[r.ease]);const n=new a(e,t,r);return this.easings.push(n),this.empty&&this.options.useRAF&&(this.handleRAF=requestAnimationFrame((()=>this.update())),this.lastTime=Date.now()),this.empty=!1,n}target(e,t,r,n){const i=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))/r;return(n=n||{}).duration=i,this.add(e,{x:t.x,y:t.y},n)}face(e,t,r,n){const i=a.shortestAngle(e.rotation,Math.atan2(t.y-e.y,t.x-e.x)),s=Math.abs(i-e.rotation)/r;return(n=n||{}).duration=s,this.add(e,{rotation:i},n)}removeEase(e,t){for(let r=0;rthis.update())):this.handleRAF=null}get count(){return this.easings.length}countRunning(){let e=0;for(let t of this.easings)e+=t.count;return e}set duration(e){this.options.duration=e}get duration(){return this.options.duration}set ease(e){this.options.ease=e}get ease(){return this.options.ease}}l.id=0;let c=new l;l.ease=c;class h{constructor(){console.warn("Ease.List was deprecated. Use new Ease() instead.")}}},16803:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n function createLevelBuffers(basisTexture, basisTranscoderFormat) {\n const images = basisTexture.getNumImages();\n const levels = basisTexture.getNumLevels(0);\n const success = basisTexture.startTranscoding();\n if (!success) {\n throw new Error("startTranscoding failed");\n }\n const levelBuffers = [];\n for (let levelIndex = 0; levelIndex < levels; ++levelIndex) {\n for (let sliceIndex = 0; sliceIndex < images; ++sliceIndex) {\n const transcodeSize = basisTexture.getImageTranscodedSizeInBytes(sliceIndex, levelIndex, basisTranscoderFormat);\n const levelBuffer = new Uint8Array(transcodeSize);\n const success2 = basisTexture.transcodeImage(levelBuffer, sliceIndex, levelIndex, basisTranscoderFormat, 1, 0);\n if (!success2) {\n throw new Error("transcodeImage failed");\n }\n levelBuffers.push(levelBuffer);\n }\n }\n return levelBuffers;\n }\n\n const gpuFormatToBasisTranscoderFormatMap = {\n "bc3-rgba-unorm": 3,\n // cTFBC3_RGBA\n "bc7-rgba-unorm": 6,\n // cTFBC7_RGBA,\n "etc2-rgba8unorm": 1,\n // cTFETC2_RGBA,\n "astc-4x4-unorm": 10,\n // cTFASTC_4x4_RGBA,\n // Uncompressed\n rgba8unorm: 13,\n // cTFRGBA32,\n rgba4unorm: 16\n // cTFRGBA4444,\n };\n function gpuFormatToBasisTranscoderFormat(transcoderFormat) {\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n }\n\n const settings = {\n jsUrl: "basis/basis_transcoder.js",\n wasmUrl: "basis/basis_transcoder.wasm"\n };\n let basisTranscoderFormat;\n let basisTranscodedTextureFormat;\n let basisPromise;\n async function getBasis() {\n if (!basisPromise) {\n const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;\n const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;\n importScripts(absoluteJsUrl);\n basisPromise = new Promise((resolve) => {\n BASIS({\n locateFile: (_file) => absoluteWasmUrl\n }).then((module) => {\n module.initializeBasis();\n resolve(module.BasisFile);\n });\n });\n }\n return basisPromise;\n }\n async function fetchBasisTexture(url, BasisTexture) {\n const basisResponse = await fetch(url);\n if (basisResponse.ok) {\n const basisArrayBuffer = await basisResponse.arrayBuffer();\n return new BasisTexture(new Uint8Array(basisArrayBuffer));\n }\n throw new Error(`Failed to load Basis texture: ${url}`);\n }\n const preferredTranscodedFormat = [\n "bc7-rgba-unorm",\n "astc-4x4-unorm",\n "etc2-rgba8unorm",\n "bc3-rgba-unorm",\n "rgba8unorm"\n ];\n async function load(url) {\n const BasisTexture = await getBasis();\n const basisTexture = await fetchBasisTexture(url, BasisTexture);\n const levelBuffers = createLevelBuffers(basisTexture, basisTranscoderFormat);\n return {\n width: basisTexture.getImageWidth(0, 0),\n height: basisTexture.getImageHeight(0, 0),\n format: basisTranscodedTextureFormat,\n resource: levelBuffers,\n alphaMode: "no-premultiply-alpha"\n };\n }\n async function init(jsUrl, wasmUrl, supportedTextures) {\n if (jsUrl)\n settings.jsUrl = jsUrl;\n if (wasmUrl)\n settings.wasmUrl = wasmUrl;\n basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];\n basisTranscoderFormat = gpuFormatToBasisTranscoderFormat(basisTranscodedTextureFormat);\n await getBasis();\n }\n const messageHandlers = {\n init: async (data) => {\n const { jsUrl, wasmUrl, supportedTextures } = data;\n await init(jsUrl, wasmUrl, supportedTextures);\n },\n load: async (data) => {\n try {\n const textureOptions = await load(data.url);\n return {\n type: "load",\n url: data.url,\n success: true,\n textureOptions,\n transferables: textureOptions.resource?.map((arr) => arr.buffer)\n };\n } catch (e) {\n throw e;\n }\n }\n };\n self.onmessage = async (messageEvent) => {\n const message = messageEvent.data;\n const response = await messageHandlers[message.type](message);\n if (response) {\n self.postMessage(response, response.transferables);\n }\n };\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},9083:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=";\n async function checkImageBitmap() {\n try {\n if (typeof createImageBitmap !== "function")\n return false;\n const response = await fetch(WHITE_PNG);\n const imageBlob = await response.blob();\n const imageBitmap = await createImageBitmap(imageBlob);\n return imageBitmap.width === 1 && imageBitmap.height === 1;\n } catch (e) {\n return false;\n }\n }\n void checkImageBitmap().then((result) => {\n self.postMessage(result);\n });\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},86312:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(['(function () {\n \'use strict\';\n\n const converters = {\n rgb8unorm: {\n convertedFormat: "rgba8unorm",\n convertFunction: convertRGBtoRGBA\n },\n "rgb8unorm-srgb": {\n convertedFormat: "rgba8unorm-srgb",\n convertFunction: convertRGBtoRGBA\n }\n };\n function convertFormatIfRequired(textureOptions) {\n const format = textureOptions.format;\n if (converters[format]) {\n const convertFunction = converters[format].convertFunction;\n const levelBuffers = textureOptions.resource;\n for (let i = 0; i < levelBuffers.length; i++) {\n levelBuffers[i] = convertFunction(levelBuffers[i]);\n }\n textureOptions.format = converters[format].convertedFormat;\n }\n }\n function convertRGBtoRGBA(levelBuffer) {\n const pixelCount = levelBuffer.byteLength / 3;\n const levelBufferWithAlpha = new Uint32Array(pixelCount);\n for (let i = 0; i < pixelCount; ++i) {\n levelBufferWithAlpha[i] = levelBuffer[i * 3] + (levelBuffer[i * 3 + 1] << 8) + (levelBuffer[i * 3 + 2] << 16) + 4278190080;\n }\n return new Uint8Array(levelBufferWithAlpha.buffer);\n }\n\n function createLevelBuffersFromKTX(ktxTexture) {\n const levelBuffers = [];\n for (let i = 0; i < ktxTexture.numLevels; i++) {\n const imageData = ktxTexture.getImageData(i, 0, 0);\n const levelBuffer = new Uint8Array(imageData.byteLength);\n levelBuffer.set(imageData);\n levelBuffers.push(levelBuffer);\n }\n return levelBuffers;\n }\n\n const glFormatToGPUFormatMap = {\n 6408: "rgba8unorm",\n 32856: "bgra8unorm",\n //\n 32857: "rgb10a2unorm",\n 33189: "depth16unorm",\n 33190: "depth24plus",\n 33321: "r8unorm",\n 33323: "rg8unorm",\n 33325: "r16float",\n 33326: "r32float",\n 33327: "rg16float",\n 33328: "rg32float",\n 33329: "r8sint",\n 33330: "r8uint",\n 33331: "r16sint",\n 33332: "r16uint",\n 33333: "r32sint",\n 33334: "r32uint",\n 33335: "rg8sint",\n 33336: "rg8uint",\n 33337: "rg16sint",\n 33338: "rg16uint",\n 33339: "rg32sint",\n 33340: "rg32uint",\n 33778: "bc2-rgba-unorm",\n 33779: "bc3-rgba-unorm",\n 34836: "rgba32float",\n 34842: "rgba16float",\n 35056: "depth24plus-stencil8",\n 35898: "rg11b10ufloat",\n 35901: "rgb9e5ufloat",\n 35907: "rgba8unorm-srgb",\n // bgra8unorm-srgb\n 36012: "depth32float",\n 36013: "depth32float-stencil8",\n 36168: "stencil8",\n 36208: "rgba32uint",\n 36214: "rgba16uint",\n 36220: "rgba8uint",\n 36226: "rgba32sint",\n 36232: "rgba16sint",\n 36238: "rgba8sint",\n 36492: "bc7-rgba-unorm",\n 36756: "r8snorm",\n 36757: "rg8snorm",\n 36759: "rgba8snorm",\n 37496: "etc2-rgba8unorm",\n 37808: "astc-4x4-unorm"\n };\n function glFormatToGPUFormat(glInternalFormat) {\n const format = glFormatToGPUFormatMap[glInternalFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported glInternalFormat: ${glInternalFormat}`);\n }\n\n const vkFormatToGPUFormatMap = {\n 23: "rgb8unorm",\n // VK_FORMAT_R8G8B8_UNORM\n 37: "rgba8unorm",\n // VK_FORMAT_R8G8B8A8_UNORM\n 43: "rgba8unorm-srgb"\n // VK_FORMAT_R8G8B8A8_SRGB\n // TODO add more!\n };\n function vkFormatToGPUFormat(vkFormat) {\n const format = vkFormatToGPUFormatMap[vkFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported VkFormat: ${vkFormat}`);\n }\n\n function getTextureFormatFromKTXTexture(ktxTexture) {\n if (ktxTexture.classId === 2) {\n return vkFormatToGPUFormat(ktxTexture.vkFormat);\n }\n return glFormatToGPUFormat(ktxTexture.glInternalformat);\n }\n\n const gpuFormatToBasisTranscoderFormatMap = {\n "bc3-rgba-unorm": "BC3_RGBA",\n "bc7-rgba-unorm": "BC7_M5_RGBA",\n "etc2-rgba8unorm": "ETC2_RGBA",\n "astc-4x4-unorm": "ASTC_4x4_RGBA",\n // Uncompressed\n rgba8unorm: "RGBA32",\n rg11b10ufloat: "R11F_G11F_B10F"\n };\n function gpuFormatToKTXBasisTranscoderFormat(transcoderFormat) {\n const format = gpuFormatToBasisTranscoderFormatMap[transcoderFormat];\n if (format) {\n return format;\n }\n throw new Error(`Unsupported transcoderFormat: ${transcoderFormat}`);\n }\n\n const settings = {\n jsUrl: "",\n wasmUrl: ""\n };\n let basisTranscoderFormat;\n let basisTranscodedTextureFormat;\n let ktxPromise;\n async function getKTX() {\n if (!ktxPromise) {\n const absoluteJsUrl = new URL(settings.jsUrl, location.origin).href;\n const absoluteWasmUrl = new URL(settings.wasmUrl, location.origin).href;\n importScripts(absoluteJsUrl);\n ktxPromise = new Promise((resolve) => {\n LIBKTX({\n locateFile: (_file) => absoluteWasmUrl\n }).then((libktx) => {\n resolve(libktx);\n });\n });\n }\n return ktxPromise;\n }\n async function fetchKTXTexture(url, ktx) {\n const ktx2Response = await fetch(url);\n if (ktx2Response.ok) {\n const ktx2ArrayBuffer = await ktx2Response.arrayBuffer();\n return new ktx.ktxTexture(new Uint8Array(ktx2ArrayBuffer));\n }\n throw new Error(`Failed to load KTX(2) texture: ${url}`);\n }\n const preferredTranscodedFormat = [\n "bc7-rgba-unorm",\n "astc-4x4-unorm",\n "etc2-rgba8unorm",\n "bc3-rgba-unorm",\n "rgba8unorm"\n ];\n async function load(url) {\n const ktx = await getKTX();\n const ktxTexture = await fetchKTXTexture(url, ktx);\n let format;\n if (ktxTexture.needsTranscoding) {\n format = basisTranscodedTextureFormat;\n const transcodeFormat = ktx.TranscodeTarget[basisTranscoderFormat];\n const result = ktxTexture.transcodeBasis(transcodeFormat, 0);\n if (result !== ktx.ErrorCode.SUCCESS) {\n throw new Error("Unable to transcode basis texture.");\n }\n } else {\n format = getTextureFormatFromKTXTexture(ktxTexture);\n }\n const levelBuffers = createLevelBuffersFromKTX(ktxTexture);\n const textureOptions = {\n width: ktxTexture.baseWidth,\n height: ktxTexture.baseHeight,\n format,\n mipLevelCount: ktxTexture.numLevels,\n resource: levelBuffers,\n alphaMode: "no-premultiply-alpha"\n };\n convertFormatIfRequired(textureOptions);\n return textureOptions;\n }\n async function init(jsUrl, wasmUrl, supportedTextures) {\n if (jsUrl)\n settings.jsUrl = jsUrl;\n if (wasmUrl)\n settings.wasmUrl = wasmUrl;\n basisTranscodedTextureFormat = preferredTranscodedFormat.filter((format) => supportedTextures.includes(format))[0];\n basisTranscoderFormat = gpuFormatToKTXBasisTranscoderFormat(basisTranscodedTextureFormat);\n await getKTX();\n }\n const messageHandlers = {\n init: async (data) => {\n const { jsUrl, wasmUrl, supportedTextures } = data;\n await init(jsUrl, wasmUrl, supportedTextures);\n },\n load: async (data) => {\n try {\n const textureOptions = await load(data.url);\n return {\n type: "load",\n url: data.url,\n success: true,\n textureOptions,\n transferables: textureOptions.resource?.map((arr) => arr.buffer)\n };\n } catch (e) {\n throw e;\n }\n }\n };\n self.onmessage = async (messageEvent) => {\n const message = messageEvent.data;\n const response = await messageHandlers[message.type]?.(message);\n if (response) {\n self.postMessage(response, response.transferables);\n }\n };\n\n})();\n'],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},61567:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let r=null;class n{constructor(){r||(r=URL.createObjectURL(new Blob(["(function () {\n 'use strict';\n\n async function loadImageBitmap(url) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`[WorkerManager.loadImageBitmap] Failed to fetch ${url}: ${response.status} ${response.statusText}`);\n }\n const imageBlob = await response.blob();\n const imageBitmap = await createImageBitmap(imageBlob);\n return imageBitmap;\n }\n self.onmessage = async (event) => {\n try {\n const imageBitmap = await loadImageBitmap(event.data.data[0]);\n self.postMessage({\n data: imageBitmap,\n uuid: event.data.uuid,\n id: event.data.id\n }, [imageBitmap]);\n } catch (e) {\n self.postMessage({\n error: e,\n uuid: event.data.uuid,\n id: event.data.id\n });\n }\n };\n\n})();\n"],{type:"application/javascript"}))),this.worker=new Worker(r)}}n.revokeObjectURL=function(){r&&(URL.revokeObjectURL(r),r=null)},t.default=n},96480:function(e,t,r){"use strict";var n=r(49410),i=r(17073),s=r(2636),o=r(39654);class a{constructor(e,t=s.isMobile){this._mobileInfo=t,this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook();const r=document.createElement("div");r.style.width="100px",r.style.height="100px",r.style.position="absolute",r.style.top="0px",r.style.left="0px",r.style.zIndex=2..toString(),this._div=r,this._renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){const e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex=2..toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",(()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()})),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.add(this),this._renderer.view.canvas.parentNode?.appendChild(this._div))}_deactivate(){this._isActive&&!this._isMobileAccessibility&&(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this),this._div.parentNode?.removeChild(this._div))}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);const t=e.children;if(t)for(let e=0;e title : ${e.title}
tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);const{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let t=this._pool.pop();t||(t=document.createElement("button"),t.style.width="100px",t.style.height="100px",t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=2..toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&null!==e.accessibleTitle?t.title=e.accessibleTitle:e.accessibleHint&&null!==e.accessibleHint||(t.title=`container ${e.tabIndex}`),e.accessibleHint&&null!==e.accessibleHint&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){const{container:r}=e.target,i=this._renderer.events.rootBoundary,s=Object.assign(new n.FederatedEvent(i),{target:r});i.rootTarget=this._renderer.lastObjectRendered,t.forEach((e=>i.dispatchEvent(s,e)))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){9===e.keyCode&&this._activate()}_onMouseMove(e){0===e.movementX&&0===e.movementY||this._deactivate()}destroy(){this._destroyTouchHook(),this._div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this._pool=null,this._children=null,this._renderer=null}}a.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem],name:"accessibility"},t.AccessibilitySystem=a},49507:function(e,t){"use strict";t.accessibilityTarget={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,_renderId:-1}},46807:function(e,t,r){"use strict";var n=r(96480),i=r(49507);t.AccessibilitySystem=n.AccessibilitySystem,t.accessibilityTarget=i.accessibilityTarget},29377:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(96480),o=r(49507);n.extensions.add(s.AccessibilitySystem),i.Container.mixin(o.accessibilityTarget)},43931:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendColor(vec3 base, vec3 blend, float opacity)\n {\n return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendColor(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendColorOpacity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (setLuminosity(blend, getLuminosity(base)) * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendColorOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"color",type:n.ExtensionType.BlendMode},t.ColorBlend=a},20607:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorBurn(float base, float blend)\n {\n return max((1.0 - ((1.0 - base) / blend)), 0.0);\n }\n\n vec3 blendColorBurn(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n colorBurn(base.r, blend.r),\n colorBurn(base.g, blend.g),\n colorBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendColorBurn(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorBurn(base:f32, blend:f32) -> f32\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n fn blendColorBurn(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n colorBurn(base.r, blend.r),\n colorBurn(base.g, blend.g),\n colorBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendColorBurn(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"color-burn",type:n.ExtensionType.BlendMode},t.ColorBurnBlend=s},96755:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorDodge(float base, float blend)\n {\n return base / (1.0 - blend);\n }\n\n vec3 blendColorDodge(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n colorDodge(base.r, blend.r),\n colorDodge(base.g, blend.g),\n colorDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendColorDodge(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorDodge(base: f32, blend: f32) -> f32\n {\n return base / (1.0 - blend);\n }\n\n fn blendColorDodge(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n colorDodge(base.r, blend.r),\n colorDodge(base.g, blend.g),\n colorDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendColorDodge(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"color-dodge",type:n.ExtensionType.BlendMode},t.ColorDodgeBlend=s},12488:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendDarken(vec3 base, vec3 blend, float opacity)\n {\n return (min(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDarken(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendDarken(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (min(blend,base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDarken(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"darken",type:n.ExtensionType.BlendMode},t.DarkenBlend=s},56442:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendDifference(vec3 base, vec3 blend, float opacity)\n {\n return (abs(blend - base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDifference(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendDifference(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (abs(blend - base) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDifference(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"difference",type:n.ExtensionType.BlendMode},t.DifferenceBlend=s},97914:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float divide(float base, float blend)\n {\n return (blend > 0.0) ? clamp(base / blend, 0.0, 1.0) : 1.0;\n }\n\n vec3 blendDivide(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n divide(base.r, blend.r),\n divide(base.g, blend.g),\n divide(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendDivide(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn divide(base: f32, blend: f32) -> f32\n {\n return select(1.0, clamp(base / blend, 0.0, 1.0), blend > 0.0);\n }\n\n fn blendDivide(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n divide(base.r, blend.r),\n divide(base.g, blend.g),\n divide(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendDivide(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"divide",type:n.ExtensionType.BlendMode},t.DivideBlend=s},64909:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 exclusion(vec3 base, vec3 blend)\n {\n return base + blend - 2.0 * base * blend;\n }\n\n vec3 blendExclusion(vec3 base, vec3 blend, float opacity)\n {\n return (exclusion(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendExclusion(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn exclusion(base: vec3, blend: vec3) -> vec3\n {\n return base+blend-2.0*base*blend;\n }\n\n fn blendExclusion(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n return (exclusion(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendExclusion(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"exclusion",type:n.ExtensionType.BlendMode},t.ExclusionBlend=s},26004:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float hardLight(float base, float blend)\n {\n return (blend < 0.5) ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);\n }\n\n vec3 blendHardLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n hardLight(base.r, blend.r),\n hardLight(base.g, blend.g),\n hardLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendHardLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn hardLight(base: f32, blend: f32) -> f32\n {\n return select(1.0 - 2.0 * (1.0 - base) * (1.0 - blend), 2.0 * base * blend, blend < 0.5);\n }\n\n fn blendHardLight(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n hardLight(base.r, blend.r),\n hardLight(base.g, blend.g),\n hardLight(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendHardLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"hard-light",type:n.ExtensionType.BlendMode},t.HardLightBlend=s},92219:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float hardMix(float base, float blend)\n {\n return (base + blend >= 1.0) ? 1.0 : 0.0;\n }\n\n vec3 blendHardMix(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n hardMix(base.r, blend.r),\n hardMix(base.g, blend.g),\n hardMix(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendHardMix(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn hardMix(base: f32, blend: f32) -> f32\n {\n return select(0.0, 1.0, base + blend >= 1.0);\n }\n\n fn blendHardMix(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended: vec3 = vec3(\n hardMix(base.r, blend.r),\n hardMix(base.g, blend.g),\n hardMix(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendHardMix(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"hard-mix",type:n.ExtensionType.BlendMode},t.HardMixBlend=s},31660:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 blendLighten(vec3 base, vec3 blend, float opacity)\n {\n return (max(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLighten(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendLighten(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n return (max(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLighten(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"lighten",type:n.ExtensionType.BlendMode},t.LightenBlend=s},34412:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearBurn(float base, float blend)\n {\n return max(0.0, base + blend - 1.0);\n }\n\n vec3 blendLinearBurn(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n linearBurn(base.r, blend.r),\n linearBurn(base.g, blend.g),\n linearBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearBurn(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearBurn(base: f32, blend: f32) -> f32\n {\n return max(0.0, base + blend - 1.0);\n }\n\n fn blendLinearBurn(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearBurn(base.r, blend.r),\n linearBurn(base.g, blend.g),\n linearBurn(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearBurn(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-burn",type:n.ExtensionType.BlendMode},t.LinearBurnBlend=s},24258:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearDodge(float base, float blend) {\n return min(1.0, base + blend);\n }\n\n vec3 blendLinearDodge(vec3 base, vec3 blend, float opacity) {\n vec3 blended = vec3(\n linearDodge(base.r, blend.r),\n linearDodge(base.g, blend.g),\n linearDodge(base.b, blend.b)\n );\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearDodge(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearDodge(base: f32, blend: f32) -> f32\n {\n return min(1, base + blend);\n }\n\n fn blendLinearDodge(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearDodge(base.r, blend.r),\n linearDodge(base.g, blend.g),\n linearDodge(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearDodge(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-dodge",type:n.ExtensionType.BlendMode},t.LinearDodgeBlend=s},93040:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float linearBurn(float base, float blend) {\n return max(0.0, base + blend - 1.0);\n }\n\n float linearDodge(float base, float blend) {\n return min(1.0, base + blend);\n }\n\n float linearLight(float base, float blend) {\n return (blend <= 0.5) ? linearBurn(base,2.0*blend) : linearBurn(base,2.0*(blend-0.5));\n }\n\n vec3 blendLinearLight(vec3 base, vec3 blend, float opacity) {\n vec3 blended = vec3(\n linearLight(base.r, blend.r),\n linearLight(base.g, blend.g),\n linearLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendLinearLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn linearBurn(base: f32, blend: f32) -> f32\n {\n return max(0.0, base + blend - 1.0);\n }\n\n fn linearDodge(base: f32, blend: f32) -> f32\n {\n return min(1.0, base + blend);\n }\n\n fn linearLight(base: f32, blend: f32) -> f32\n {\n return select(linearBurn(base,2.0*(blend-0.5)), linearBurn(base,2.0*blend), blend <= 0.5);\n }\n\n fn blendLinearLightOpacity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n linearLight(base.r, blend.r),\n linearLight(base.g, blend.g),\n linearLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendLinearLightOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"linear-light",type:n.ExtensionType.BlendMode},t.LinearLightBlend=s},63846:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendLuminosity(vec3 base, vec3 blend, float opacity)\n {\n vec3 blendLuminosity = setLuminosity(base, getLuminosity(blend));\n return (blendLuminosity * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendLuminosity(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendLuminosity(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blendLuminosity: vec3 = setLuminosity(base, getLuminosity(blend));\n return (blendLuminosity * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendLuminosity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"luminosity",type:n.ExtensionType.BlendMode},t.LuminosityBlend=a},61843:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n vec3 negation(vec3 base, vec3 blend)\n {\n return 1.0-abs(1.0-base-blend);\n }\n\n vec3 blendNegation(vec3 base, vec3 blend, float opacity)\n {\n return (negation(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendNegation(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn blendNegation(base: vec3, blend: vec3) -> vec3\n {\n return 1.0-abs(1.0-base-blend);\n }\n\n fn blendNegationOpacity(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n return (blendNegation(base, blend) * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendNegationOpacity(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"negation",type:n.ExtensionType.BlendMode},t.NegationBlend=s},98815:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float overlay(float base, float blend)\n {\n return (blend < 0.5) ? (2.0*base*blend) : (1.0-2.0*(1.0-base)*(1.0-blend));\n }\n\n vec3 blendOverlay(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n overlay(base.r, blend.r),\n overlay(base.g, blend.g),\n overlay(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendOverlay(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn overlay(base: f32, blend: f32) -> f32\n {\n return select((1.0-2.0*(1.0-base)*(1.0-blend)), (2.0*base*blend), base < 0.5);\n }\n\n fn blendOverlay(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended = vec3(\n overlay(base.r, blend.r),\n overlay(base.g, blend.g),\n overlay(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendOverlay(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"overlay",type:n.ExtensionType.BlendMode},t.OverlayBlend=s},37976:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float pinLight(float base, float blend)\n {\n return (blend <= 0.5) ? min(base, 2.0 * blend) : max(base, 2.0 * (blend - 0.5));\n }\n\n vec3 blendPinLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n pinLight(base.r, blend.r),\n pinLight(base.g, blend.g),\n pinLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendPinLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn pinLight(base: f32, blend: f32) -> f32\n {\n return select(max(base,2.0*(blend-0.5)), min(base,2.0*blend), blend <= 0.5);\n }\n\n fn blendPinLight(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n pinLight(base.r, blend.r),\n pinLight(base.g, blend.g),\n pinLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendPinLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"pin-light",type:n.ExtensionType.BlendMode},t.PinLightBlend=s},47864:function(e,t,r){"use strict";var n=r(17073),i=r(81210),s=r(57422),o=r(79474);class a extends i.BlendModeFilter{constructor(){super({gl:{functions:`\n ${s.hslgl}\n\n vec3 blendSaturation(vec3 base, vec3 blend, float opacity)\n {\n vec3 blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));\n return (blendSaturation * opacity + base * (1.0 - opacity));\n }\n `,main:"\n finalColor = vec4(blendSaturation(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:`\n ${o.hslgpu}\n\n fn blendSaturation(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blendSaturation = setLuminosity(setSaturation(base, getSaturation(blend)), getLuminosity(base));\n return (blendSaturation * opacity + base * (1.0 - opacity));\n }\n `,main:"\n out = vec4(blendSaturation(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}a.extension={name:"saturation",type:n.ExtensionType.BlendMode},t.SaturationBlend=a},70922:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float softLight(float base, float blend)\n {\n return (blend < 0.5) ? (2.0 * base * blend + base * base * (1.0 - 2.0 * blend)) : (sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend));\n }\n\n vec3 blendSoftLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n softLight(base.r, blend.r),\n softLight(base.g, blend.g),\n softLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendSoftLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn softLight(base: f32, blend: f32) -> f32\n {\n return select(2.0 * base * blend + base * base * (1.0 - 2.0 * blend), sqrt(base) * (2.0 * blend - 1.0) + 2.0 * base * (1.0 - blend), blend < 0.5);\n }\n\n fn blendSoftLight(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended: vec3 = vec3(\n softLight(base.r, blend.r),\n softLight(base.g, blend.g),\n softLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendSoftLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"soft-light",type:n.ExtensionType.BlendMode},t.SoftLightBlend=s},56697:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float subtract(float base, float blend)\n {\n return max(0.0, base - blend);\n }\n\n vec3 blendSubtract(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n subtract(base.r, blend.r),\n subtract(base.g, blend.g),\n subtract(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendSubtract(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn subtract(base: f32, blend: f32) -> f32\n {\n return max(0, base - blend);\n }\n\n fn blendSubtract(base:vec3, blend:vec3, opacity:f32) -> vec3\n {\n let blended = vec3(\n subtract(base.r, blend.r),\n subtract(base.g, blend.g),\n subtract(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendSubtract(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"subtract",type:n.ExtensionType.BlendMode},t.SubtractBlend=s},89660:function(e,t,r){"use strict";var n=r(17073),i=r(81210);class s extends i.BlendModeFilter{constructor(){super({gl:{functions:"\n float colorBurn(float base, float blend)\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n float colorDodge(float base, float blend)\n {\n return min(1.0, base / (1.0-blend));\n }\n\n float vividLight(float base, float blend)\n {\n return (blend < 0.5) ? colorBurn(base,(2.0*blend)) : colorDodge(base,(2.0*(blend-0.5)));\n }\n\n vec3 blendVividLight(vec3 base, vec3 blend, float opacity)\n {\n vec3 blended = vec3(\n vividLight(base.r, blend.r),\n vividLight(base.g, blend.g),\n vividLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n finalColor = vec4(blendVividLight(back.rgb, front.rgb, front.a), uBlend);\n "},gpu:{functions:"\n fn colorBurn(base:f32, blend:f32) -> f32\n {\n return max((1.0-((1.0-base)/blend)),0.0);\n }\n\n fn colorDodge(base: f32, blend: f32) -> f32\n {\n return min(1.0, base / (1.0-blend));\n }\n\n fn vividLight(base: f32, blend: f32) -> f32\n {\n return select(colorDodge(base,(2.0*(blend-0.5))), colorBurn(base,(2.0*blend)), blend<0.5);\n }\n\n fn blendVividLight(base: vec3, blend: vec3, opacity: f32) -> vec3\n {\n let blended: vec3 = vec3(\n vividLight(base.r, blend.r),\n vividLight(base.g, blend.g),\n vividLight(base.b, blend.b)\n );\n\n return (blended * opacity + base * (1.0 - opacity));\n }\n ",main:"\n out = vec4(blendVividLight(back.rgb, front.rgb, front.a), blendUniforms.uBlend);\n "}})}}s.extension={name:"vivid-light",type:n.ExtensionType.BlendMode},t.VividLightBlend=s},24217:function(e,t,r){"use strict";var n=r(43931),i=r(20607),s=r(96755),o=r(12488),a=r(56442),u=r(97914),l=r(64909),c=r(26004),h=r(92219),d=r(31660),p=r(34412),f=r(24258),m=r(93040),g=r(63846),_=r(61843),x=r(98815),b=r(37976),y=r(47864),v=r(70922),T=r(56697),S=r(89660);t.ColorBlend=n.ColorBlend,t.ColorBurnBlend=i.ColorBurnBlend,t.ColorDodgeBlend=s.ColorDodgeBlend,t.DarkenBlend=o.DarkenBlend,t.DifferenceBlend=a.DifferenceBlend,t.DivideBlend=u.DivideBlend,t.ExclusionBlend=l.ExclusionBlend,t.HardLightBlend=c.HardLightBlend,t.HardMixBlend=h.HardMixBlend,t.LightenBlend=d.LightenBlend,t.LinearBurnBlend=p.LinearBurnBlend,t.LinearDodgeBlend=f.LinearDodgeBlend,t.LinearLightBlend=m.LinearLightBlend,t.LuminosityBlend=g.LuminosityBlend,t.NegationBlend=_.NegationBlend,t.OverlayBlend=x.OverlayBlend,t.PinLightBlend=b.PinLightBlend,t.SaturationBlend=y.SaturationBlend,t.SoftLightBlend=v.SoftLightBlend,t.SubtractBlend=T.SubtractBlend,t.VividLightBlend=S.VividLightBlend},38531:function(e,t,r){"use strict";var n=r(17073),i=r(4722),s=r(74599),o=r(60094);const a=class e{constructor(...e){this.stage=new s.Container,void 0!==e[0]&&o.deprecation(o.v8_0_0,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.renderer=await i.autoDetectRenderer(t),e._plugins.forEach((e=>{e.init.call(this,t)}))}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return o.deprecation(o.v8_0_0,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}destroy(t=!1,r=!1){const n=e._plugins.slice(0);n.reverse(),n.forEach((e=>{e.destroy.call(this)})),this.stage.destroy(r),this.stage=null,this.renderer.destroy(t),this.renderer=null}};a._plugins=[];let u=a;n.extensions.handleByList(n.ExtensionType.Application,u._plugins),t.Application=u},45747:function(e,t,r){"use strict";var n=r(17073);class i{static init(e){Object.defineProperty(this,"resizeTo",{set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame((()=>this.resize())))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;let e,t;if(this._cancelResize(),this._resizeTo===globalThis.window)e=globalThis.innerWidth,t=globalThis.innerHeight;else{const{clientWidth:r,clientHeight:n}=this._resizeTo;e=r,t=n}this.renderer.resize(e,t),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}}i.extension=n.ExtensionType.Application,t.ResizePlugin=i},81729:function(e,t,r){"use strict";var n=r(17073),i=r(35292),s=r(63983);class o{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,i.UPDATE_PRIORITY.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?s.Ticker.shared:new s.Ticker,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}o.extension=n.ExtensionType.Application,t.TickerPlugin=o},58305:function(e,t,r){"use strict";var n=r(38531),i=r(45747),s=r(81729);t.Application=n.Application,t.ResizePlugin=i.ResizePlugin,t.TickerPlugin=s.TickerPlugin},9266:function(e,t,r){"use strict";var n=r(17073),i=r(45747),s=r(81729);n.extensions.add(i.ResizePlugin),n.extensions.add(s.TickerPlugin)},3033:function(){},18800:function(e,t,r){"use strict";var n=r(17073),i=r(95190),s=r(45724),o=r(56509),a=r(62392),u=r(58433),l=r(28881),c=r(55673),h=r(62972),d=r(36214),p=r(17178),f=r(32181),m=r(20246),g=r(20763),_=r(76529),x=r(80428),b=r(27273),y=r(13189),v=r(6195),T=r(34361),S=r(95997),E=r(5866),A=r(82493);class P{constructor(){this._detections=[],this._initialized=!1,this.resolver=new S.Resolver,this.loader=new f.Loader,this.cache=o.Cache,this._backgroundLoader=new s.BackgroundLoader(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){if(this._initialized)return void i.warn("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let t=e.manifest;"string"==typeof t&&(t=await this.load(t)),this.resolver.addManifest(t)}const t=e.texturePreference?.resolution??1,r="number"==typeof t?[t]:t,n=await this._detectFormats({preferredFormats:e.texturePreference?.format,skipDetections:e.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:n,resolution:r}}),e.preferences&&this.setPreferences(e.preferences)}add(e){this.resolver.add(e)}async load(e,t){this._initialized||await this.init();const r=A.isSingleItem(e),n=E.convertToList(e).map((e=>{if("string"!=typeof e){const t=this.resolver.getAlias(e);return t.some((e=>!this.resolver.hasKey(e)))&&this.add(e),Array.isArray(t)?t[0]:t}return this.resolver.hasKey(e)||this.add({alias:e,src:e}),e})),i=this.resolver.resolve(n),s=await this._mapLoadToResolve(i,t);return r?s[n[0]]:s}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let r=!1;"string"==typeof e&&(r=!0,e=[e]);const n=this.resolver.resolveBundle(e),i={},s=Object.keys(n);let o=0,a=0;const u=()=>{t?.(++o/a)},l=s.map((e=>{const t=n[e];return a+=Object.keys(t).length,this._mapLoadToResolve(t,u).then((t=>{i[e]=t}))}));return await Promise.all(l),r?i[e[0]]:i}async backgroundLoad(e){this._initialized||await this.init(),"string"==typeof e&&(e=[e]);const t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),"string"==typeof e&&(e=[e]);const t=this.resolver.resolveBundle(e);Object.values(t).forEach((e=>{this._backgroundLoader.add(Object.values(e))}))}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if("string"==typeof e)return o.Cache.get(e);const t={};for(let r=0;r{const t=n[e.src],r=[e.src];e.alias&&r.push(...e.alias),r.forEach((e=>{i[e]=t})),o.Cache.set(r,t)})),i}async unload(e){this._initialized||await this.init();const t=E.convertToList(e).map((e=>"string"!=typeof e?e.src:e)),r=this.resolver.resolve(t);await this._unloadFromResolved(r)}async unloadBundle(e){this._initialized||await this.init(),e=E.convertToList(e);const t=this.resolver.resolveBundle(e),r=Object.keys(t).map((e=>this._unloadFromResolved(t[e])));await Promise.all(r)}async _unloadFromResolved(e){const t=Object.values(e);t.forEach((e=>{o.Cache.remove(e.src)})),await this.loader.unload(t)}async _detectFormats(e){let t=[];e.preferredFormats&&(t=Array.isArray(e.preferredFormats)?e.preferredFormats:[e.preferredFormats]);for(const r of e.detections)e.skipDetections||await r.test()?t=await r.add(t):e.skipDetections||(t=await r.remove(t));return t=t.filter(((e,r)=>t.indexOf(e)===r)),t}get detections(){return this._detections}setPreferences(e){this.loader.parsers.forEach((t=>{t.config&&Object.keys(t.config).filter((t=>t in e)).forEach((r=>{t.config[r]=e[r]}))}))}}const M=new P;n.extensions.handleByList(n.ExtensionType.LoadParser,M.loader.parsers).handleByList(n.ExtensionType.ResolveParser,M.resolver.parsers).handleByList(n.ExtensionType.CacheParser,M.cache.parsers).handleByList(n.ExtensionType.DetectionParser,M.detections),n.extensions.add(a.cacheTextureArray,l.detectDefaults,u.detectAvif,p.detectWebp,c.detectMp4,h.detectOgv,d.detectWebm,m.loadJson,g.loadTxt,_.loadWebFont,x.loadSvg,b.loadTextures,y.loadVideoTextures,T.resolveTextureUrl,v.resolveJsonUrl);const R={loader:n.ExtensionType.LoadParser,resolver:n.ExtensionType.ResolveParser,cache:n.ExtensionType.CacheParser,detection:n.ExtensionType.DetectionParser};n.extensions.handle(n.ExtensionType.Asset,(e=>{const t=e.ref;Object.entries(R).filter((([e])=>!!t[e])).forEach((([e,r])=>n.extensions.add(Object.assign(t[e],{extension:t[e].extension??r}))))}),(e=>{const t=e.ref;Object.keys(R).filter((e=>!!t[e])).forEach((e=>n.extensions.remove(t[e])))})),t.Assets=M,t.AssetsClass=P},45724:function(e,t){"use strict";t.BackgroundLoader=class{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach((e=>{this._assetList.push(e)})),this.verbose&&console.log("[BackgroundLoader] assets: ",this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;const e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let r=0;r{o.set(e,t)}));const a=[...o.keys()],u={cacheKeys:a,keys:r};r.forEach((e=>{this._cacheMap.set(e,u)})),a.forEach((e=>{const r=s?s[e]:t;this._cache.has(e)&&this._cache.get(e)!==r&&n.warn("[Cache] already has key:",e),this._cache.set(e,o.get(e))}))}remove(e){if(!this._cacheMap.has(e))return void n.warn(`[Assets] Asset id ${e} was not found in the Cache`);const t=this._cacheMap.get(e);t.cacheKeys.forEach((e=>{this._cache.delete(e)})),t.keys.forEach((e=>{this._cacheMap.delete(e)}))}get parsers(){return this._parsers}};t.Cache=s},74858:function(){},62392:function(e,t,r){"use strict";var n=r(17073),i=r(84463);const s={extension:n.ExtensionType.CacheParser,test:e=>Array.isArray(e)&&e.every((e=>e instanceof i.Texture)),getCacheableAssets:(e,t)=>{const r={};return e.forEach((e=>{t.forEach(((t,n)=>{r[e+(0===n?"":n+1)]=t}))})),r}};t.cacheTextureArray=s},58433:function(e,t,r){"use strict";var n=r(17073),i=r(11560);const s={extension:{type:n.ExtensionType.DetectionParser,priority:1},test:async()=>i.testImageFormat("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),add:async e=>[...e,"avif"],remove:async e=>e.filter((e=>"avif"!==e))};t.detectAvif=s},28881:function(e,t,r){"use strict";var n=r(17073);const i=["png","jpg","jpeg"],s={extension:{type:n.ExtensionType.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async e=>[...e,...i],remove:async e=>e.filter((e=>!i.includes(e)))};t.detectDefaults=s},55673:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/mp4"),add:async e=>[...e,"mp4","m4v"],remove:async e=>e.filter((e=>"mp4"!==e&&"m4v"!==e))};t.detectMp4=s},62972:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/ogg"),add:async e=>[...e,"ogv"],remove:async e=>e.filter((e=>"ogv"!==e))};t.detectOgv=s},36214:function(e,t,r){"use strict";var n=r(17073),i=r(44994);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testVideoFormat("video/webm"),add:async e=>[...e,"webm"],remove:async e=>e.filter((e=>"webm"!==e))};t.detectWebm=s},17178:function(e,t,r){"use strict";var n=r(17073),i=r(11560);const s={extension:{type:n.ExtensionType.DetectionParser,priority:0},test:async()=>i.testImageFormat("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA="),add:async e=>[...e,"webp"],remove:async e=>e.filter((e=>"webp"!==e))};t.detectWebp=s},77645:function(){},11560:function(e,t){"use strict";t.testImageFormat=async function(e){if("Image"in globalThis)return new Promise((t=>{const r=new Image;r.onload=()=>{t(!0)},r.onerror=()=>{t(!1)},r.src=e}));if("createImageBitmap"in globalThis&&"fetch"in globalThis){try{const t=await(await fetch(e)).blob();await createImageBitmap(t)}catch(e){return!1}return!0}return!1}},44994:function(e,t){"use strict";const r="WorkerGlobalScope"in globalThis&&globalThis instanceof globalThis.WorkerGlobalScope;t.testVideoFormat=function(e){return!r&&""!==document.createElement("video").canPlayType(e)}},98430:function(e,t,r){"use strict";r(3033);var n=r(18800),i=r(45724),s=r(56509);r(74858);var o=r(62392),a=r(58433),u=r(28881),l=r(55673),c=r(62972),h=r(36214),d=r(17178);r(77645);var p=r(11560),f=r(44994),m=r(32181),g=r(8774),_=r(20246),x=r(20763),b=r(76529),y=r(80428),v=r(27273),T=r(13189),S=r(64822);r(48024);var E=r(76836),A=r(6195),P=r(34361),M=r(95997);r(33717),r(44971);var R=r(73036),w=r(90206),B=r(5866),G=r(90973),C=r(42196),F=r(82493);t.Assets=n.Assets,t.AssetsClass=n.AssetsClass,t.BackgroundLoader=i.BackgroundLoader,t.Cache=s.Cache,t.cacheTextureArray=o.cacheTextureArray,t.detectAvif=a.detectAvif,t.detectDefaults=u.detectDefaults,t.detectMp4=l.detectMp4,t.detectOgv=c.detectOgv,t.detectWebm=h.detectWebm,t.detectWebp=d.detectWebp,t.testImageFormat=p.testImageFormat,t.testVideoFormat=f.testVideoFormat,t.Loader=m.Loader,t.LoaderParserPriority=g.LoaderParserPriority,t.loadJson=_.loadJson,t.loadTxt=x.loadTxt,t.getFontFamilyName=b.getFontFamilyName,t.loadWebFont=b.loadWebFont,t.loadSvg=y.loadSvg,t.loadImageBitmap=v.loadImageBitmap,t.loadTextures=v.loadTextures,t.crossOrigin=T.crossOrigin,t.determineCrossOrigin=T.determineCrossOrigin,t.loadVideoTextures=T.loadVideoTextures,t.preloadVideo=T.preloadVideo,t.createTexture=S.createTexture,t.WorkerManager=E.WorkerManager,t.resolveJsonUrl=A.resolveJsonUrl,t.resolveTextureUrl=P.resolveTextureUrl,t.Resolver=M.Resolver,t.getUrlExtension=M.getUrlExtension,t.checkDataUrl=R.checkDataUrl,t.checkExtension=w.checkExtension,t.convertToList=B.convertToList,t.copySearchParams=G.copySearchParams,t.createStringVariations=C.createStringVariations,t.isSingleItem=F.isSingleItem},32181:function(e,t,r){"use strict";var n=r(95190),i=r(36491),s=r(5866),o=r(82493);t.Loader=class{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,r)=>(this._parsersValidated=!1,e[t]=r,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){const r={promise:null,parser:null};return r.promise=(async()=>{let i=null,s=null;if(t.loadParser&&(s=this._parserHash[t.loadParser],s||n.warn(`[Assets] specified load parser "${t.loadParser}" not found while loading ${e}`)),!s){for(let r=0;r({alias:[e],src:e}))),l=u.length,c=u.map((async e=>{const s=i.path.toAbsolute(e.src);if(!n[e.src])try{this.promiseCache[s]||(this.promiseCache[s]=this._getLoadPromiseAndParser(s,e)),n[e.src]=await this.promiseCache[s].promise,t&&t(++r/l)}catch(t){throw delete this.promiseCache[s],delete n[e.src],new Error(`[Loader.load] Failed to load ${s}.\n${t}`)}}));return await Promise.all(c),a?n[u[0].src]:n}async unload(e){const t=s.convertToList(e,(e=>({alias:[e],src:e}))).map((async e=>{const t=i.path.toAbsolute(e.src),r=this.promiseCache[t];if(r){const n=await r.promise;delete this.promiseCache[t],await(r.parser?.unload?.(n,e,this))}}));await Promise.all(t)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter((e=>e.name)).reduce(((e,t)=>(t.name?e[t.name]&&n.warn(`[Assets] loadParser name conflict "${t.name}"`):n.warn("[Assets] loadParser should have a name"),{...e,[t.name]:t})),{})}}},8774:function(e,t){"use strict";var r=(e=>(e[e.Low=0]="Low",e[e.Normal=1]="Normal",e[e.High=2]="High",e))(r||{});t.LoaderParserPriority=r},20246:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(73036),o=r(90206),a=r(8774);const u={extension:{type:i.ExtensionType.LoadParser,priority:a.LoaderParserPriority.Low},name:"loadJson",test(e){return s.checkDataUrl(e,"application/json")||o.checkExtension(e,".json")},async load(e){const t=await n.DOMAdapter.get().fetch(e);return await t.json()}};t.loadJson=u},20763:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(73036),o=r(90206),a=r(8774);const u={name:"loadTxt",extension:{type:i.ExtensionType.LoadParser,priority:a.LoaderParserPriority.Low},test(e){return s.checkDataUrl(e,"text/plain")||o.checkExtension(e,".txt")},async load(e){const t=await n.DOMAdapter.get().fetch(e);return await t.text()}};t.loadTxt=u},76529:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(95190),o=r(36491),a=r(56509),u=r(73036),l=r(90206),c=r(8774);const h=["normal","bold","100","200","300","400","500","600","700","800","900"],d=[".ttf",".otf",".woff",".woff2"],p=["font/ttf","font/otf","font/woff","font/woff2"],f=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function m(e){const t=o.path.extname(e),r=o.path.basename(e,t).replace(/(-|_)/g," ").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1)));let n=r.length>0;for(const e of r)if(!e.match(f)){n=!1;break}let i=r.join(" ");return n||(i=`"${i.replace(/[\\"]/g,"\\$&")}"`),i}const g=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;const _={extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.Low},name:"loadWebFont",test(e){return u.checkDataUrl(e,p)||l.checkExtension(e,d)},async load(e,t){const r=n.DOMAdapter.get().getFontFaceSet();if(r){const n=[],s=t.data?.family??m(e),o=t.data?.weights?.filter((e=>h.includes(e)))??["normal"],u=t.data??{};for(let t=0;t{a.Cache.remove(e.family),n.DOMAdapter.get().getFontFaceSet().delete(e)}))}};t.getFontFamilyName=m,t.loadWebFont=_},80428:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(75813),o=r(90537),a=r(87876),u=r(73036),l=r(90206),c=r(8774),h=r(64822);const d={extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.Low},name:"loadSVG",config:{crossOrigin:"anonymous",parseAsGraphicsContext:!1},test(e){return u.checkDataUrl(e,"image/svg+xml")||l.checkExtension(e,".svg")},async load(e,t,r){return t.data.parseAsGraphicsContext??this.config.parseAsGraphicsContext?async function(e){const t=await n.DOMAdapter.get().fetch(e),r=await t.text(),i=new o.GraphicsContext;return i.svg(r),i}(e):async function(e,t,r,i){const o=await n.DOMAdapter.get().fetch(e),u=await o.blob(),l=URL.createObjectURL(u),c=new Image;c.src=l,c.crossOrigin=i,await c.decode(),URL.revokeObjectURL(l);const d=document.createElement("canvas"),p=d.getContext("2d"),f=t.data?.resolution||a.getResolutionOfUrl(e),m=t.data?.width??c.width,g=t.data?.height??c.height;d.width=m*f,d.height=g*f,p.drawImage(c,0,0,m*f,g*f);const{parseAsGraphicsContext:_,...x}=t.data,b=new s.ImageSource({resource:d,alphaMode:"premultiply-alpha-on-upload",resolution:f,...x});return h.createTexture(b,r,e)}(e,t,r,this.config.crossOrigin)},unload(e){e.destroy(!0)}};t.loadSvg=d},27273:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(75813),o=r(87876),a=r(73036),u=r(90206),l=r(76836),c=r(8774),h=r(64822);const d=[".jpeg",".jpg",".png",".webp",".avif"],p=["image/jpeg","image/png","image/webp","image/avif"];async function f(e){const t=await n.DOMAdapter.get().fetch(e);if(!t.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${e}: ${t.status} ${t.statusText}`);const r=await t.blob();return await createImageBitmap(r)}const m={name:"loadTextures",extension:{type:i.ExtensionType.LoadParser,priority:c.LoaderParserPriority.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(e){return a.checkDataUrl(e,p)||u.checkExtension(e,d)},async load(e,t,r){let n=null;n=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap?this.config.preferWorkers&&await l.WorkerManager.isImageBitmapSupported()?await l.WorkerManager.loadImageBitmap(e):await f(e):await new Promise((t=>{n=new Image,n.crossOrigin=this.config.crossOrigin,n.src=e,n.complete?t(n):n.onload=()=>{t(n)}}));const i=new s.ImageSource({resource:n,alphaMode:"premultiply-alpha-on-upload",resolution:t.data?.resolution||o.getResolutionOfUrl(e),...t.data});return h.createTexture(i,r,e)},unload(e){e.destroy(!0)}};t.loadImageBitmap=f,t.loadTextures=m},13189:function(e,t,r){"use strict";var n=r(17073),i=r(62480),s=r(86105),o=r(87876),a=r(73036),u=r(90206),l=r(64822);const c=[".mp4",".m4v",".webm",".ogg",".ogv",".h264",".avi",".mov"],h=c.map((e=>`video/${e.substring(1)}`));function d(e,t,r){void 0!==r||t.startsWith("data:")?!1!==r&&(e.crossOrigin="string"==typeof r?r:"anonymous"):e.crossOrigin=f(t)}function p(e){return new Promise(((t,r)=>{function n(){s(),t()}function i(e){s(),r(e)}function s(){e.removeEventListener("canplaythrough",n),e.removeEventListener("error",i)}e.addEventListener("canplaythrough",n),e.addEventListener("error",i),e.load()}))}function f(e,t=globalThis.location){if(e.startsWith("data:"))return"";t=t||globalThis.location;const r=new URL(e,document.baseURI);return r.hostname!==t.hostname||r.port!==t.port||r.protocol!==t.protocol?"anonymous":""}const m={name:"loadVideo",extension:{type:n.ExtensionType.LoadParser},config:null,test(e){const t=a.checkDataUrl(e,h),r=u.checkExtension(e,c);return t||r},async load(e,t,r){const n={...i.VideoSource.defaultOptions,resolution:t.data?.resolution||o.getResolutionOfUrl(e),alphaMode:t.data?.alphaMode||await s.detectVideoAlphaMode(),...t.data},a=document.createElement("video"),u={preload:!1!==n.autoLoad?"auto":void 0,"webkit-playsinline":!1!==n.playsinline?"":void 0,playsinline:!1!==n.playsinline?"":void 0,muted:!0===n.muted?"":void 0,loop:!0===n.loop?"":void 0,autoplay:!1!==n.autoPlay?"":void 0};Object.keys(u).forEach((e=>{const t=u[e];void 0!==t&&a.setAttribute(e,t)})),!0===n.muted&&(a.muted=!0),d(a,e,n.crossorigin);const c=document.createElement("source");let h;if(e.startsWith("data:"))h=e.slice(5,e.indexOf(";"));else if(!e.startsWith("blob:")){const t=e.split("?")[0].slice(e.lastIndexOf(".")+1).toLowerCase();h=i.VideoSource.MIME_TYPES[t]||`video/${t}`}return c.src=e,h&&(c.type=h),new Promise((s=>{const o=async()=>{const u=new i.VideoSource({...n,resource:a});a.removeEventListener("canplay",o),t.data.preload&&await p(a),s(l.createTexture(u,r,e))};a.addEventListener("canplay",o),a.appendChild(c)}))},unload(e){e.destroy(!0)}};t.crossOrigin=d,t.determineCrossOrigin=f,t.loadVideoTextures=m,t.preloadVideo=p},64822:function(e,t,r){"use strict";var n=r(84463),i=r(95190),s=r(56509);t.createTexture=function(e,t,r){e.label=r,e._sourceOrigin=r;const o=new n.Texture({source:e,label:r}),a=()=>{delete t.promiseCache[r],s.Cache.has(r)&&s.Cache.remove(r)};return o.source.once("destroy",(()=>{t.promiseCache[r]&&(i.warn("[Assets] A TextureSource managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the TextureSource."),a())})),o.once("destroy",(()=>{e.destroyed||(i.warn("[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture."),a())})),o}},48024:function(){},76836:function(e,t,r){"use strict";var n=r(9083),i=r(61567);let s,o=0;const a=new class{constructor(){this._initialized=!1,this._createdWorkers=0,this._workerPool=[],this._queue=[],this._resolveHash={}}isImageBitmapSupported(){return void 0!==this._isImageBitmapSupported||(this._isImageBitmapSupported=new Promise((e=>{const{worker:t}=new n.default;t.addEventListener("message",(r=>{t.terminate(),n.default.revokeObjectURL(),e(r.data)}))}))),this._isImageBitmapSupported}loadImageBitmap(e){return this._run("loadImageBitmap",[e])}async _initWorkers(){this._initialized||(this._initialized=!0)}_getWorker(){void 0===s&&(s=navigator.hardwareConcurrency||4);let e=this._workerPool.pop();return!e&&this._createdWorkers{this._complete(e.data),this._returnWorker(e.target),this._next()}))),e}_returnWorker(e){this._workerPool.push(e)}_complete(e){void 0!==e.error?this._resolveHash[e.uuid].reject(e.error):this._resolveHash[e.uuid].resolve(e.data),this._resolveHash[e.uuid]=null}async _run(e,t){await this._initWorkers();const r=new Promise(((r,n)=>{this._queue.push({id:e,arguments:t,resolve:r,reject:n})}));return this._next(),r}_next(){if(!this._queue.length)return;const e=this._getWorker();if(!e)return;const t=this._queue.pop(),r=t.id;this._resolveHash[o]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:o++,id:r})}};t.WorkerManager=a},95997:function(e,t,r){"use strict";var n=r(95190),i=r(36491),s=r(5866),o=r(42196),a=r(82493);class u{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,"bar"!==this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar")))throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach((e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params))})),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if("string"==typeof e)this._defaultSearchParams=e;else{const t=e;this._defaultSearchParams=Object.keys(t).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&")}}getAlias(e){const{alias:t,src:r}=e;return s.convertToList(t||r,(e=>"string"==typeof e?e:Array.isArray(e)?e.map((e=>e?.src??e)):e?.src?e.src:e),!0)}addManifest(e){this._manifest&&n.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach((e=>{this.addBundle(e.name,e.assets)}))}addBundle(e,t){const r=[];let n=t;Array.isArray(t)||(n=Object.entries(t).map((([e,t])=>"string"==typeof t||Array.isArray(t)?{alias:e,src:t}:{alias:e,...t}))),n.forEach((t=>{const n=t.src,i=t.alias;let s;if("string"==typeof i){const t=this._createBundleAssetId(e,i);r.push(t),s=[i,t]}else{const t=i.map((t=>this._createBundleAssetId(e,t)));r.push(...t),s=[...i,...t]}this.add({...t,alias:s,src:n})})),this._bundles[e]=r}add(e){const t=[];let r;Array.isArray(e)?t.push(...e):t.push(e),r=e=>{this.hasKey(e)&&n.warn(`[Resolver] already has key: ${e} overwriting`)};s.convertToList(t).forEach((e=>{const{src:t}=e;let{data:n,format:i,loadParser:a}=e;const u=s.convertToList(t).map((e=>"string"==typeof e?o.createStringVariations(e):Array.isArray(e)?e:[e])),l=this.getAlias(e);Array.isArray(l)?l.forEach(r):r(l);const c=[];u.forEach((e=>{e.forEach((e=>{let t={};if("object"!=typeof e){t.src=e;for(let r=0;r{this._assetMap[e]=c}))}))}resolveBundle(e){const t=a.isSingleItem(e);e=s.convertToList(e);const r={};return e.forEach((e=>{const t=this._bundles[e];if(t){const n=this.resolve(t),i={};for(const t in n){const r=n[t];i[this._extractAssetIdFromBundle(e,t)]=r}r[e]=i}})),t?r[e[0]]:r}resolveUrl(e){const t=this.resolve(e);if("string"!=typeof e){const e={};for(const r in t)e[r]=t[r].src;return e}return t.src}resolve(e){const t=a.isSingleItem(e);e=s.convertToList(e);const r={};return e.forEach((e=>{if(!this._resolverHash[e])if(this._assetMap[e]){let t=this._assetMap[e];const r=this._getPreferredOrder(t);r?.priority.forEach((e=>{r.params[e].forEach((r=>{const n=t.filter((t=>!!t[e]&&t[e]===r));n.length&&(t=n)}))})),this._resolverHash[e]=t[0]}else this._resolverHash[e]=this._buildResolvedAsset({alias:[e],src:e},{});r[e]=this._resolverHash[e]})),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;te.params.format.includes(t.format)));if(r)return r}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;return`${e}${/\?/.test(e)?"&":"?"}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){const{aliases:r,data:n,loadParser:s,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=i.path.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...n||{},...e.data},e.loadParser=s??e.loadParser,e.format=o??e.format??l(e.src),e}}function l(e){return e.split(".").pop().split("?").shift().split("#").shift()}u.RETINA_PREFIX=/@([0-9\.]+)x/,t.Resolver=u,t.getUrlExtension=l},6195:function(e,t,r){"use strict";var n=r(17073),i=r(95997),s=r(34361);const o={extension:n.ExtensionType.ResolveParser,test:e=>i.Resolver.RETINA_PREFIX.test(e)&&e.endsWith(".json"),parse:s.resolveTextureUrl.parse};t.resolveJsonUrl=o},34361:function(e,t,r){"use strict";var n=r(17073),i=r(27273),s=r(95997);const o={extension:n.ExtensionType.ResolveParser,test:i.loadTextures.test,parse:e=>({resolution:parseFloat(s.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:e.split(".").pop(),src:e})};t.resolveTextureUrl=o},33717:function(){},44971:function(){},73036:function(e,t){"use strict";t.checkDataUrl=function(e,t){if(Array.isArray(t)){for(const r of t)if(e.startsWith(`data:${r}`))return!0;return!1}return e.startsWith(`data:${t}`)}},90206:function(e,t,r){"use strict";var n=r(36491);t.checkExtension=function(e,t){const r=e.split("?")[0],i=n.path.extname(r).toLowerCase();return Array.isArray(t)?t.includes(i):i===t}},5866:function(e,t){"use strict";t.convertToList=(e,t,r=!1)=>(Array.isArray(e)||(e=[e]),t?e.map((e=>"string"==typeof e||r?t(e):e)):e)},90973:function(e,t){"use strict";t.copySearchParams=(e,t)=>{const r=t.split("?")[1];return r&&(e+=`?${r}`),e}},42196:function(e,t){"use strict";function r(e,t,n,i,s){const o=t[n];for(let a=0;a{const t=e.substring(1,e.length-1).split(",");i.push(t)})),r(e,i,0,t,n)}else n.push(e);return n}},82493:function(e,t){"use strict";t.isSingleItem=e=>!Array.isArray(e)},58778:function(e,t,r){"use strict";var n=r(5538),i=r(13185);n.extend([i]);const s=class e{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(t){if(t instanceof e)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(null===t)throw new Error("Cannot set Color#value to null");null!==this._value&&this._isSourceEqual(this._value,t)||(this._normalize(t),this._value=this._cloneSource(t))}}get value(){return this._value}_cloneSource(e){return"string"==typeof e||"number"==typeof e||e instanceof Number||null===e?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):"object"==typeof e&&null!==e?{...e}:e}_isSourceEqual(e,t){const r=typeof e;if(r!==typeof t)return!1;if("number"===r||"string"===r||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length===t.length&&e.every(((e,r)=>e===t[r]));if(null!==e&&null!==t){const r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every((r=>e[r]===t[r]))}return e===t}toRgba(){const[e,t,r,n]=this._components;return{r:e,g:t,b:r,a:n}}toRgb(){const[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){const[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){const[t,r,n]=this._components;return this._arrayRgb||(this._arrayRgb=[]),(e=e||this._arrayRgb)[0]=Math.round(255*t),e[1]=Math.round(255*r),e[2]=Math.round(255*n),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e=e||this._arrayRgba;const[t,r,n,i]=this._components;return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e=e||this._arrayRgb;const[t,r,n]=this._components;return e[0]=t,e[1]=r,e[2]=n,e}toNumber(){return this._int}toBgrNumber(){const[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){const e=this._int;return(e>>16)+(65280&e)+((255&e)<<16)}multiply(t){const[r,n,i,s]=e._temp.setValue(t)._components;return this._components[0]*=r,this._components[1]*=n,this._components[2]*=i,this._components[3]*=s,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(1===e)return(255<<24)+this._int;if(0===e)return t?0:this._int;let r=this._int>>16&255,n=this._int>>8&255,i=255&this._int;return t&&(r=r*e+.5|0,n=n*e+.5|0,i=i*e+.5|0),(255*e<<24)+(r<<16)+(n<<8)+i}toHex(){const e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){const e=Math.round(255*this._components[3]).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(t){let r,i,s,o;if(("number"==typeof t||t instanceof Number)&&t>=0&&t<=16777215){r=(t>>16&255)/255,i=(t>>8&255)/255,s=(255&t)/255,o=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[r,i,s,o=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[r,i,s,o=255]=t,r/=255,i/=255,s/=255,o/=255;else if("string"==typeof t||"object"==typeof t){if("string"==typeof t){const r=e.HEX_PATTERN.exec(t);r&&(t=`#${r[2]}`)}const a=n.colord(t);a.isValid()&&(({r:r,g:i,b:s,a:o}=a.rgba),r/=255,i/=255,s/=255)}if(void 0===r)throw new Error(`Unable to convert color ${t}`);this._components[0]=r,this._components[1]=i,this._components[2]=s,this._components[3]=o,this._refreshInt()}_refreshInt(){this._clamp(this._components);const[e,t,r]=this._components;this._int=(255*e<<16)+(255*t<<8)+(255*r|0)}_clamp(e,t=0,r=1){return"number"==typeof e?Math.min(Math.max(e,t),r):(e.forEach(((n,i)=>{e[i]=Math.min(Math.max(n,t),r)})),e)}static isColorLike(t){return"number"==typeof t||"string"==typeof t||t instanceof Number||t instanceof e||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||void 0!==t.r&&void 0!==t.g&&void 0!==t.b||void 0!==t.r&&void 0!==t.g&&void 0!==t.b&&void 0!==t.a||void 0!==t.h&&void 0!==t.s&&void 0!==t.l||void 0!==t.h&&void 0!==t.s&&void 0!==t.l&&void 0!==t.a||void 0!==t.h&&void 0!==t.s&&void 0!==t.v||void 0!==t.h&&void 0!==t.s&&void 0!==t.v&&void 0!==t.a}};s.shared=new s,s._temp=new s,s.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;let o=s;t.Color=o},77235:function(e,t,r){"use strict";var n=r(58778);t.Color=n.Color},25917:function(e,t,r){"use strict";var n=r(17073),i=r(58050),s=r(73533);const o={extension:{type:n.ExtensionType.DetectionParser,priority:3},test:async()=>!!await s.isWebGPUSupported()||!!i.isWebGLSupported(),add:async e=>[...e,"basis"],remove:async e=>e.filter((e=>"basis"!==e))};t.detectBasis=o},49728:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(94086);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High},name:"loadBasis",test(e){return s.checkExtension(e,[".basis"])},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await l.loadBasisOnWorker(e,n),o=new a.CompressedSource(s);return i.createTexture(o,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadBasis=c},82923:function(){},31166:function(e,t){"use strict";t.createLevelBuffers=function(e,t){const r=e.getNumImages(),n=e.getNumLevels(0);if(!e.startTranscoding())throw new Error("startTranscoding failed");const i=[];for(let s=0;s{const{success:t,url:r,textureOptions:n}=e.data;t||console.warn("Failed to load Basis texture",r),o[r](n)},s.postMessage({type:"init",jsUrl:i.basisTranscoderUrls.jsUrl,wasmUrl:i.basisTranscoderUrls.wasmUrl,supportedTextures:e})),s}(t);return new Promise((t=>{o[e]=t,r.postMessage({type:"load",url:e})}))}},95966:function(e,t){"use strict";var r=(e=>(e[e.DXGI_FORMAT_UNKNOWN=0]="DXGI_FORMAT_UNKNOWN",e[e.DXGI_FORMAT_R32G32B32A32_TYPELESS=1]="DXGI_FORMAT_R32G32B32A32_TYPELESS",e[e.DXGI_FORMAT_R32G32B32A32_FLOAT=2]="DXGI_FORMAT_R32G32B32A32_FLOAT",e[e.DXGI_FORMAT_R32G32B32A32_UINT=3]="DXGI_FORMAT_R32G32B32A32_UINT",e[e.DXGI_FORMAT_R32G32B32A32_SINT=4]="DXGI_FORMAT_R32G32B32A32_SINT",e[e.DXGI_FORMAT_R32G32B32_TYPELESS=5]="DXGI_FORMAT_R32G32B32_TYPELESS",e[e.DXGI_FORMAT_R32G32B32_FLOAT=6]="DXGI_FORMAT_R32G32B32_FLOAT",e[e.DXGI_FORMAT_R32G32B32_UINT=7]="DXGI_FORMAT_R32G32B32_UINT",e[e.DXGI_FORMAT_R32G32B32_SINT=8]="DXGI_FORMAT_R32G32B32_SINT",e[e.DXGI_FORMAT_R16G16B16A16_TYPELESS=9]="DXGI_FORMAT_R16G16B16A16_TYPELESS",e[e.DXGI_FORMAT_R16G16B16A16_FLOAT=10]="DXGI_FORMAT_R16G16B16A16_FLOAT",e[e.DXGI_FORMAT_R16G16B16A16_UNORM=11]="DXGI_FORMAT_R16G16B16A16_UNORM",e[e.DXGI_FORMAT_R16G16B16A16_UINT=12]="DXGI_FORMAT_R16G16B16A16_UINT",e[e.DXGI_FORMAT_R16G16B16A16_SNORM=13]="DXGI_FORMAT_R16G16B16A16_SNORM",e[e.DXGI_FORMAT_R16G16B16A16_SINT=14]="DXGI_FORMAT_R16G16B16A16_SINT",e[e.DXGI_FORMAT_R32G32_TYPELESS=15]="DXGI_FORMAT_R32G32_TYPELESS",e[e.DXGI_FORMAT_R32G32_FLOAT=16]="DXGI_FORMAT_R32G32_FLOAT",e[e.DXGI_FORMAT_R32G32_UINT=17]="DXGI_FORMAT_R32G32_UINT",e[e.DXGI_FORMAT_R32G32_SINT=18]="DXGI_FORMAT_R32G32_SINT",e[e.DXGI_FORMAT_R32G8X24_TYPELESS=19]="DXGI_FORMAT_R32G8X24_TYPELESS",e[e.DXGI_FORMAT_D32_FLOAT_S8X24_UINT=20]="DXGI_FORMAT_D32_FLOAT_S8X24_UINT",e[e.DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS=21]="DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS",e[e.DXGI_FORMAT_X32_TYPELESS_G8X24_UINT=22]="DXGI_FORMAT_X32_TYPELESS_G8X24_UINT",e[e.DXGI_FORMAT_R10G10B10A2_TYPELESS=23]="DXGI_FORMAT_R10G10B10A2_TYPELESS",e[e.DXGI_FORMAT_R10G10B10A2_UNORM=24]="DXGI_FORMAT_R10G10B10A2_UNORM",e[e.DXGI_FORMAT_R10G10B10A2_UINT=25]="DXGI_FORMAT_R10G10B10A2_UINT",e[e.DXGI_FORMAT_R11G11B10_FLOAT=26]="DXGI_FORMAT_R11G11B10_FLOAT",e[e.DXGI_FORMAT_R8G8B8A8_TYPELESS=27]="DXGI_FORMAT_R8G8B8A8_TYPELESS",e[e.DXGI_FORMAT_R8G8B8A8_UNORM=28]="DXGI_FORMAT_R8G8B8A8_UNORM",e[e.DXGI_FORMAT_R8G8B8A8_UNORM_SRGB=29]="DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",e[e.DXGI_FORMAT_R8G8B8A8_UINT=30]="DXGI_FORMAT_R8G8B8A8_UINT",e[e.DXGI_FORMAT_R8G8B8A8_SNORM=31]="DXGI_FORMAT_R8G8B8A8_SNORM",e[e.DXGI_FORMAT_R8G8B8A8_SINT=32]="DXGI_FORMAT_R8G8B8A8_SINT",e[e.DXGI_FORMAT_R16G16_TYPELESS=33]="DXGI_FORMAT_R16G16_TYPELESS",e[e.DXGI_FORMAT_R16G16_FLOAT=34]="DXGI_FORMAT_R16G16_FLOAT",e[e.DXGI_FORMAT_R16G16_UNORM=35]="DXGI_FORMAT_R16G16_UNORM",e[e.DXGI_FORMAT_R16G16_UINT=36]="DXGI_FORMAT_R16G16_UINT",e[e.DXGI_FORMAT_R16G16_SNORM=37]="DXGI_FORMAT_R16G16_SNORM",e[e.DXGI_FORMAT_R16G16_SINT=38]="DXGI_FORMAT_R16G16_SINT",e[e.DXGI_FORMAT_R32_TYPELESS=39]="DXGI_FORMAT_R32_TYPELESS",e[e.DXGI_FORMAT_D32_FLOAT=40]="DXGI_FORMAT_D32_FLOAT",e[e.DXGI_FORMAT_R32_FLOAT=41]="DXGI_FORMAT_R32_FLOAT",e[e.DXGI_FORMAT_R32_UINT=42]="DXGI_FORMAT_R32_UINT",e[e.DXGI_FORMAT_R32_SINT=43]="DXGI_FORMAT_R32_SINT",e[e.DXGI_FORMAT_R24G8_TYPELESS=44]="DXGI_FORMAT_R24G8_TYPELESS",e[e.DXGI_FORMAT_D24_UNORM_S8_UINT=45]="DXGI_FORMAT_D24_UNORM_S8_UINT",e[e.DXGI_FORMAT_R24_UNORM_X8_TYPELESS=46]="DXGI_FORMAT_R24_UNORM_X8_TYPELESS",e[e.DXGI_FORMAT_X24_TYPELESS_G8_UINT=47]="DXGI_FORMAT_X24_TYPELESS_G8_UINT",e[e.DXGI_FORMAT_R8G8_TYPELESS=48]="DXGI_FORMAT_R8G8_TYPELESS",e[e.DXGI_FORMAT_R8G8_UNORM=49]="DXGI_FORMAT_R8G8_UNORM",e[e.DXGI_FORMAT_R8G8_UINT=50]="DXGI_FORMAT_R8G8_UINT",e[e.DXGI_FORMAT_R8G8_SNORM=51]="DXGI_FORMAT_R8G8_SNORM",e[e.DXGI_FORMAT_R8G8_SINT=52]="DXGI_FORMAT_R8G8_SINT",e[e.DXGI_FORMAT_R16_TYPELESS=53]="DXGI_FORMAT_R16_TYPELESS",e[e.DXGI_FORMAT_R16_FLOAT=54]="DXGI_FORMAT_R16_FLOAT",e[e.DXGI_FORMAT_D16_UNORM=55]="DXGI_FORMAT_D16_UNORM",e[e.DXGI_FORMAT_R16_UNORM=56]="DXGI_FORMAT_R16_UNORM",e[e.DXGI_FORMAT_R16_UINT=57]="DXGI_FORMAT_R16_UINT",e[e.DXGI_FORMAT_R16_SNORM=58]="DXGI_FORMAT_R16_SNORM",e[e.DXGI_FORMAT_R16_SINT=59]="DXGI_FORMAT_R16_SINT",e[e.DXGI_FORMAT_R8_TYPELESS=60]="DXGI_FORMAT_R8_TYPELESS",e[e.DXGI_FORMAT_R8_UNORM=61]="DXGI_FORMAT_R8_UNORM",e[e.DXGI_FORMAT_R8_UINT=62]="DXGI_FORMAT_R8_UINT",e[e.DXGI_FORMAT_R8_SNORM=63]="DXGI_FORMAT_R8_SNORM",e[e.DXGI_FORMAT_R8_SINT=64]="DXGI_FORMAT_R8_SINT",e[e.DXGI_FORMAT_A8_UNORM=65]="DXGI_FORMAT_A8_UNORM",e[e.DXGI_FORMAT_R1_UNORM=66]="DXGI_FORMAT_R1_UNORM",e[e.DXGI_FORMAT_R9G9B9E5_SHAREDEXP=67]="DXGI_FORMAT_R9G9B9E5_SHAREDEXP",e[e.DXGI_FORMAT_R8G8_B8G8_UNORM=68]="DXGI_FORMAT_R8G8_B8G8_UNORM",e[e.DXGI_FORMAT_G8R8_G8B8_UNORM=69]="DXGI_FORMAT_G8R8_G8B8_UNORM",e[e.DXGI_FORMAT_BC1_TYPELESS=70]="DXGI_FORMAT_BC1_TYPELESS",e[e.DXGI_FORMAT_BC1_UNORM=71]="DXGI_FORMAT_BC1_UNORM",e[e.DXGI_FORMAT_BC1_UNORM_SRGB=72]="DXGI_FORMAT_BC1_UNORM_SRGB",e[e.DXGI_FORMAT_BC2_TYPELESS=73]="DXGI_FORMAT_BC2_TYPELESS",e[e.DXGI_FORMAT_BC2_UNORM=74]="DXGI_FORMAT_BC2_UNORM",e[e.DXGI_FORMAT_BC2_UNORM_SRGB=75]="DXGI_FORMAT_BC2_UNORM_SRGB",e[e.DXGI_FORMAT_BC3_TYPELESS=76]="DXGI_FORMAT_BC3_TYPELESS",e[e.DXGI_FORMAT_BC3_UNORM=77]="DXGI_FORMAT_BC3_UNORM",e[e.DXGI_FORMAT_BC3_UNORM_SRGB=78]="DXGI_FORMAT_BC3_UNORM_SRGB",e[e.DXGI_FORMAT_BC4_TYPELESS=79]="DXGI_FORMAT_BC4_TYPELESS",e[e.DXGI_FORMAT_BC4_UNORM=80]="DXGI_FORMAT_BC4_UNORM",e[e.DXGI_FORMAT_BC4_SNORM=81]="DXGI_FORMAT_BC4_SNORM",e[e.DXGI_FORMAT_BC5_TYPELESS=82]="DXGI_FORMAT_BC5_TYPELESS",e[e.DXGI_FORMAT_BC5_UNORM=83]="DXGI_FORMAT_BC5_UNORM",e[e.DXGI_FORMAT_BC5_SNORM=84]="DXGI_FORMAT_BC5_SNORM",e[e.DXGI_FORMAT_B5G6R5_UNORM=85]="DXGI_FORMAT_B5G6R5_UNORM",e[e.DXGI_FORMAT_B5G5R5A1_UNORM=86]="DXGI_FORMAT_B5G5R5A1_UNORM",e[e.DXGI_FORMAT_B8G8R8A8_UNORM=87]="DXGI_FORMAT_B8G8R8A8_UNORM",e[e.DXGI_FORMAT_B8G8R8X8_UNORM=88]="DXGI_FORMAT_B8G8R8X8_UNORM",e[e.DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM=89]="DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM",e[e.DXGI_FORMAT_B8G8R8A8_TYPELESS=90]="DXGI_FORMAT_B8G8R8A8_TYPELESS",e[e.DXGI_FORMAT_B8G8R8A8_UNORM_SRGB=91]="DXGI_FORMAT_B8G8R8A8_UNORM_SRGB",e[e.DXGI_FORMAT_B8G8R8X8_TYPELESS=92]="DXGI_FORMAT_B8G8R8X8_TYPELESS",e[e.DXGI_FORMAT_B8G8R8X8_UNORM_SRGB=93]="DXGI_FORMAT_B8G8R8X8_UNORM_SRGB",e[e.DXGI_FORMAT_BC6H_TYPELESS=94]="DXGI_FORMAT_BC6H_TYPELESS",e[e.DXGI_FORMAT_BC6H_UF16=95]="DXGI_FORMAT_BC6H_UF16",e[e.DXGI_FORMAT_BC6H_SF16=96]="DXGI_FORMAT_BC6H_SF16",e[e.DXGI_FORMAT_BC7_TYPELESS=97]="DXGI_FORMAT_BC7_TYPELESS",e[e.DXGI_FORMAT_BC7_UNORM=98]="DXGI_FORMAT_BC7_UNORM",e[e.DXGI_FORMAT_BC7_UNORM_SRGB=99]="DXGI_FORMAT_BC7_UNORM_SRGB",e[e.DXGI_FORMAT_AYUV=100]="DXGI_FORMAT_AYUV",e[e.DXGI_FORMAT_Y410=101]="DXGI_FORMAT_Y410",e[e.DXGI_FORMAT_Y416=102]="DXGI_FORMAT_Y416",e[e.DXGI_FORMAT_NV12=103]="DXGI_FORMAT_NV12",e[e.DXGI_FORMAT_P010=104]="DXGI_FORMAT_P010",e[e.DXGI_FORMAT_P016=105]="DXGI_FORMAT_P016",e[e.DXGI_FORMAT_420_OPAQUE=106]="DXGI_FORMAT_420_OPAQUE",e[e.DXGI_FORMAT_YUY2=107]="DXGI_FORMAT_YUY2",e[e.DXGI_FORMAT_Y210=108]="DXGI_FORMAT_Y210",e[e.DXGI_FORMAT_Y216=109]="DXGI_FORMAT_Y216",e[e.DXGI_FORMAT_NV11=110]="DXGI_FORMAT_NV11",e[e.DXGI_FORMAT_AI44=111]="DXGI_FORMAT_AI44",e[e.DXGI_FORMAT_IA44=112]="DXGI_FORMAT_IA44",e[e.DXGI_FORMAT_P8=113]="DXGI_FORMAT_P8",e[e.DXGI_FORMAT_A8P8=114]="DXGI_FORMAT_A8P8",e[e.DXGI_FORMAT_B4G4R4A4_UNORM=115]="DXGI_FORMAT_B4G4R4A4_UNORM",e[e.DXGI_FORMAT_P208=116]="DXGI_FORMAT_P208",e[e.DXGI_FORMAT_V208=117]="DXGI_FORMAT_V208",e[e.DXGI_FORMAT_V408=118]="DXGI_FORMAT_V408",e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE=119]="DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE",e[e.DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE=120]="DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE",e[e.DXGI_FORMAT_FORCE_UINT=121]="DXGI_FORMAT_FORCE_UINT",e))(r||{}),n=(e=>(e[e.DDS_DIMENSION_TEXTURE1D=2]="DDS_DIMENSION_TEXTURE1D",e[e.DDS_DIMENSION_TEXTURE2D=3]="DDS_DIMENSION_TEXTURE2D",e[e.DDS_DIMENSION_TEXTURE3D=6]="DDS_DIMENSION_TEXTURE3D",e))(n||{});function i(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var s,o=((s=o||{})[s.UNKNOWN=0]="UNKNOWN",s[s.R8G8B8=20]="R8G8B8",s[s.A8R8G8B8=21]="A8R8G8B8",s[s.X8R8G8B8=22]="X8R8G8B8",s[s.R5G6B5=23]="R5G6B5",s[s.X1R5G5B5=24]="X1R5G5B5",s[s.A1R5G5B5=25]="A1R5G5B5",s[s.A4R4G4B4=26]="A4R4G4B4",s[s.R3G3B2=27]="R3G3B2",s[s.A8=28]="A8",s[s.A8R3G3B2=29]="A8R3G3B2",s[s.X4R4G4B4=30]="X4R4G4B4",s[s.A2B10G10R10=31]="A2B10G10R10",s[s.A8B8G8R8=32]="A8B8G8R8",s[s.X8B8G8R8=33]="X8B8G8R8",s[s.G16R16=34]="G16R16",s[s.A2R10G10B10=35]="A2R10G10B10",s[s.A16B16G16R16=36]="A16B16G16R16",s[s.A8P8=40]="A8P8",s[s.P8=41]="P8",s[s.L8=50]="L8",s[s.A8L8=51]="A8L8",s[s.A4L4=52]="A4L4",s[s.V8U8=60]="V8U8",s[s.L6V5U5=61]="L6V5U5",s[s.X8L8V8U8=62]="X8L8V8U8",s[s.Q8W8V8U8=63]="Q8W8V8U8",s[s.V16U16=64]="V16U16",s[s.A2W10V10U10=67]="A2W10V10U10",s[s.Q16W16V16U16=110]="Q16W16V16U16",s[s.R16F=111]="R16F",s[s.G16R16F=112]="G16R16F",s[s.A16B16G16R16F=113]="A16B16G16R16F",s[s.R32F=114]="R32F",s[s.G32R32F=115]="G32R32F",s[s.A32B32G32R32F=116]="A32B32G32R32F",s[s.UYVY=i("UYVY")]="UYVY",s[s.R8G8_B8G8=i("RGBG")]="R8G8_B8G8",s[s.YUY2=i("YUY2")]="YUY2",s[s.D3DFMT_G8R8_G8B8=i("GRGB")]="D3DFMT_G8R8_G8B8",s[s.DXT1=i("DXT1")]="DXT1",s[s.DXT2=i("DXT2")]="DXT2",s[s.DXT3=i("DXT3")]="DXT3",s[s.DXT4=i("DXT4")]="DXT4",s[s.DXT5=i("DXT5")]="DXT5",s[s.ATI1=i("ATI1")]="ATI1",s[s.AT1N=i("AT1N")]="AT1N",s[s.ATI2=i("ATI2")]="ATI2",s[s.AT2N=i("AT2N")]="AT2N",s[s.BC4U=i("BC4U")]="BC4U",s[s.BC4S=i("BC4S")]="BC4S",s[s.BC5U=i("BC5U")]="BC5U",s[s.BC5S=i("BC5S")]="BC5S",s[s.DX10=i("DX10")]="DX10",s);const a={[o.DXT1]:"bc1-rgba-unorm",[o.DXT2]:"bc2-rgba-unorm",[o.DXT3]:"bc2-rgba-unorm",[o.DXT4]:"bc3-rgba-unorm",[o.DXT5]:"bc3-rgba-unorm",[o.ATI1]:"bc4-r-unorm",[o.BC4U]:"bc4-r-unorm",[o.BC4S]:"bc4-r-snorm",[o.ATI2]:"bc5-rg-unorm",[o.BC5U]:"bc5-rg-unorm",[o.BC5S]:"bc5-rg-snorm",36:"rgba16uint",110:"rgba16sint",111:"r16float",112:"rg16float",113:"rgba16float",114:"r32float",115:"rg32float",116:"rgba32float"},u={70:"bc1-rgba-unorm",71:"bc1-rgba-unorm",72:"bc1-rgba-unorm-srgb",73:"bc2-rgba-unorm",74:"bc2-rgba-unorm",75:"bc2-rgba-unorm-srgb",76:"bc3-rgba-unorm",77:"bc3-rgba-unorm",78:"bc3-rgba-unorm-srgb",79:"bc4-r-unorm",80:"bc4-r-unorm",81:"bc4-r-snorm",82:"bc5-rg-unorm",83:"bc5-rg-unorm",84:"bc5-rg-snorm",94:"bc6h-rgb-ufloat",95:"bc6h-rgb-ufloat",96:"bc6h-rgb-float",97:"bc7-rgba-unorm",98:"bc7-rgba-unorm",99:"bc7-rgba-unorm-srgb",28:"rgba8unorm",29:"rgba8unorm-srgb",87:"bgra8unorm",91:"bgra8unorm-srgb",41:"r32float",49:"rg8unorm",56:"r16uint",61:"r8unorm",24:"rgb10a2unorm",11:"rgba16uint",13:"rgba16sint",10:"rgba16float",54:"r16float",34:"rg16float",16:"rg32float",2:"rgba32float"},l={MAGIC_VALUE:542327876,MAGIC_SIZE:4,HEADER_SIZE:124,HEADER_DX10_SIZE:20,PIXEL_FORMAT_FLAGS:{ALPHAPIXELS:1,ALPHA:2,FOURCC:4,RGB:64,RGBA:65,YUV:512,LUMINANCE:131072,LUMINANCEA:131073},RESOURCE_MISC_TEXTURECUBE:4,HEADER_FIELDS:{MAGIC:0,SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19,PF_FLAGS:20,FOURCC:21,RGB_BITCOUNT:22,R_BIT_MASK:23,G_BIT_MASK:24,B_BIT_MASK:25,A_BIT_MASK:26},HEADER_DX10_FIELDS:{DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4},DXGI_FORMAT:r,D3D10_RESOURCE_DIMENSION:n,D3DFMT:o};t.DDS=l,t.DXGI_TO_TEXTURE_FORMAT=u,t.FOURCC_TO_TEXTURE_FORMAT=a,t.TEXTURE_FORMAT_BLOCK_SIZE={"bc1-rgba-unorm":8,"bc1-rgba-unorm-srgb":8,"bc2-rgba-unorm":16,"bc2-rgba-unorm-srgb":16,"bc3-rgba-unorm":16,"bc3-rgba-unorm-srgb":16,"bc4-r-unorm":8,"bc4-r-snorm":8,"bc5-rg-unorm":16,"bc5-rg-snorm":16,"bc6h-rgb-ufloat":16,"bc6h-rgb-float":16,"bc7-rgba-unorm":16,"bc7-rgba-unorm-srgb":16}},69040:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(55418);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High},name:"loadDDS",test(e){return s.checkExtension(e,[".dds"])},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await fetch(e),o=await s.arrayBuffer(),c=l.parseDDS(o,n),h=new a.CompressedSource(c);return i.createTexture(h,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadDDS=c},55418:function(e,t,r){"use strict";var n=r(95966);t.parseDDS=function(e,t){const{format:r,fourCC:i,width:s,height:o,dataOffset:a,mipmapCount:u}=function(e){const t=new Uint32Array(e,0,n.DDS.HEADER_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(t[n.DDS.HEADER_FIELDS.MAGIC]!==n.DDS.MAGIC_VALUE)throw new Error("Invalid magic number in DDS header");const r=t[n.DDS.HEADER_FIELDS.HEIGHT],i=t[n.DDS.HEADER_FIELDS.WIDTH],s=Math.max(1,t[n.DDS.HEADER_FIELDS.MIPMAP_COUNT]),o=t[n.DDS.HEADER_FIELDS.PF_FLAGS],a=t[n.DDS.HEADER_FIELDS.FOURCC],u=function(e,t,r,i){if(t&n.DDS.PIXEL_FORMAT_FLAGS.FOURCC){if(r===n.DDS.D3DFMT.DX10){const e=new Uint32Array(i,n.DDS.MAGIC_SIZE+n.DDS.HEADER_SIZE,n.DDS.HEADER_DX10_SIZE/Uint32Array.BYTES_PER_ELEMENT);if(e[n.DDS.HEADER_DX10_FIELDS.MISC_FLAG]===n.DDS.RESOURCE_MISC_TEXTURECUBE)throw new Error("DDSParser does not support cubemap textures");if(e[n.DDS.HEADER_DX10_FIELDS.RESOURCE_DIMENSION]===n.DDS.D3D10_RESOURCE_DIMENSION.DDS_DIMENSION_TEXTURE3D)throw new Error("DDSParser does not supported 3D texture data");const t=e[n.DDS.HEADER_DX10_FIELDS.DXGI_FORMAT];if(t in n.DXGI_TO_TEXTURE_FORMAT)return n.DXGI_TO_TEXTURE_FORMAT[t];throw new Error(`DDSParser cannot parse texture data with DXGI format ${t}`)}if(r in n.FOURCC_TO_TEXTURE_FORMAT)return n.FOURCC_TO_TEXTURE_FORMAT[r];throw new Error(`DDSParser cannot parse texture data with fourCC format ${r}`)}if(t&n.DDS.PIXEL_FORMAT_FLAGS.RGB||t&n.DDS.PIXEL_FORMAT_FLAGS.RGBA)return function(e){const t=e[n.DDS.HEADER_FIELDS.RGB_BITCOUNT],r=e[n.DDS.HEADER_FIELDS.R_BIT_MASK],i=e[n.DDS.HEADER_FIELDS.G_BIT_MASK],s=e[n.DDS.HEADER_FIELDS.B_BIT_MASK],o=e[n.DDS.HEADER_FIELDS.A_BIT_MASK];switch(t){case 32:if(255===r&&65280===i&&16711680===s&&4278190080===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8B8A8_UNORM];if(16711680===r&&65280===i&&255===s&&4278190080===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B8G8R8A8_UNORM];if(1072693248===r&&1047552===i&&1023===s&&3221225472===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R10G10B10A2_UNORM];if(65535===r&&4294901760===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R16G16_UNORM];if(4294967295===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R32_FLOAT];break;case 24:break;case 16:if(31744===r&&992===i&&31===s&&32768===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G5R5A1_UNORM];if(63488===r&&2016===i&&31===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B5G6R5_UNORM];if(3840===r&&240===i&&15===s&&61440===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_B4G4R4A4_UNORM];if(255===r&&0===i&&0===s&&65280===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8G8_UNORM];if(65535===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R16_UNORM];break;case 8:if(255===r&&0===i&&0===s&&0===o)return n.DXGI_TO_TEXTURE_FORMAT[n.DDS.DXGI_FORMAT.DXGI_FORMAT_R8_UNORM]}throw new Error(`DDSParser does not support uncompressed texture with configuration:\n bitCount = ${t}, rBitMask = ${r}, gBitMask = ${i}, aBitMask = ${o}`)}(e);if(t&n.DDS.PIXEL_FORMAT_FLAGS.YUV)throw new Error("DDSParser does not supported YUV uncompressed texture data.");if(t&n.DDS.PIXEL_FORMAT_FLAGS.LUMINANCE||t&n.DDS.PIXEL_FORMAT_FLAGS.LUMINANCEA)throw new Error("DDSParser does not support single-channel (lumninance) texture data!");if(t&n.DDS.PIXEL_FORMAT_FLAGS.ALPHA||t&n.DDS.PIXEL_FORMAT_FLAGS.ALPHAPIXELS)throw new Error("DDSParser does not support single-channel (alpha) texture data!");throw new Error("DDSParser failed to load a texture file due to an unknown reason!")}(t,o,a,e),l=n.DDS.MAGIC_SIZE+n.DDS.HEADER_SIZE+(a===n.DDS.D3DFMT.DX10?n.DDS.HEADER_DX10_SIZE:0);return{format:u,fourCC:a,width:i,height:r,dataOffset:l,mipmapCount:s}}(e);if(!t.includes(r))throw new Error(`Unsupported texture format: ${i} ${r}, supported: ${t}`);if(u<=1)return{format:r,width:s,height:o,resource:[new Uint8Array(e,a)],alphaMode:"no-premultiply-alpha"};const l=function(e,t,r,i,s,o){const a=[],u=n.TEXTURE_FORMAT_BLOCK_SIZE[e];let l=t,c=r,h=i;for(let e=0;e>1,1),c=Math.max(c>>1,1)}return a}(r,s,o,a,u,e);return{format:r,width:s,height:o,resource:l,alphaMode:"no-premultiply-alpha"}}},80385:function(e,t,r){"use strict";var n=r(25917),i=r(49728);r(82923);var s=r(31166),o=r(2383),a=r(45031),u=r(94086),l=r(95966),c=r(69040),h=r(55418),d=r(5566),p=r(7451),f=r(79531),m=r(97051);r(61155);var g=r(87976),_=r(41177),x=r(67172),b=r(54143),y=r(48834),v=r(12055),T=r(8198),S=r(17125),E=r(56899),A=r(13320);t.detectBasis=n.detectBasis,t.loadBasis=i.loadBasis,t.createLevelBuffers=s.createLevelBuffers,t.gpuFormatToBasisTranscoderFormat=o.gpuFormatToBasisTranscoderFormat,t.basisTranscoderUrls=a.basisTranscoderUrls,t.setBasisTranscoderPath=a.setBasisTranscoderPath,t.loadBasisOnWorker=u.loadBasisOnWorker,t.DDS=l.DDS,t.DXGI_TO_TEXTURE_FORMAT=l.DXGI_TO_TEXTURE_FORMAT,t.FOURCC_TO_TEXTURE_FORMAT=l.FOURCC_TO_TEXTURE_FORMAT,t.TEXTURE_FORMAT_BLOCK_SIZE=l.TEXTURE_FORMAT_BLOCK_SIZE,t.loadDDS=c.loadDDS,t.parseDDS=h.parseDDS,t.loadKTX=d.loadKTX,t.parseKTX=p.parseKTX,t.GL_INTERNAL_FORMAT=f.GL_INTERNAL_FORMAT,t.KTX=f.KTX,t.loadKTX2=m.loadKTX2,t.convertFormatIfRequired=g.convertFormatIfRequired,t.createLevelBuffersFromKTX=_.createLevelBuffersFromKTX,t.getTextureFormatFromKTXTexture=x.getTextureFormatFromKTXTexture,t.glFormatToGPUFormat=b.glFormatToGPUFormat,t.gpuFormatToKTXBasisTranscoderFormat=y.gpuFormatToKTXBasisTranscoderFormat,t.ktxTranscoderUrls=v.ktxTranscoderUrls,t.setKTXTranscoderPath=v.setKTXTranscoderPath,t.vkFormatToGPUFormat=T.vkFormatToGPUFormat,t.loadKTX2onWorker=S.loadKTX2onWorker,t.detectCompressed=E.detectCompressed,t.resolveCompressedTextureUrl=A.resolveCompressedTextureUrl,t.validFormats=A.validFormats},79531:function(e,t){"use strict";var r=(e=>(e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGBA=6408]="RGBA",e[e.RGBA8UI=36220]="RGBA8UI",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.RGBA8I=36238]="RGBA8I",e[e.RGBA8=32856]="RGBA8",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e))(r||{});const n={FILE_HEADER_SIZE:64,FILE_IDENTIFIER:[171,75,84,88,32,49,49,187,13,10,26,10],FORMATS_TO_COMPONENTS:{6408:4,6407:3,33319:2,6403:1,6409:1,6410:2,6406:1},INTERNAL_FORMAT_TO_BYTES_PER_PIXEL:{33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,36283:.5,36284:.5,36285:1,36286:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,37808:1,37840:1,37809:.8,37841:.8,37810:.64,37842:.64,37811:.53375,37843:.53375,37812:.445,37844:.445,37813:.4,37845:.4,37814:.33375,37846:.33375,37815:.25,37847:.25,37816:.32,37848:.32,37817:.26625,37849:.26625,37818:.2,37850:.2,37819:.16,37851:.16,37820:.13375,37852:.13375,37821:.11125,37853:.11125,36492:1,36493:1,36494:1,36495:1},INTERNAL_FORMAT_TO_TEXTURE_FORMATS:{33776:"bc1-rgba-unorm",33777:"bc1-rgba-unorm",33778:"bc2-rgba-unorm",33779:"bc3-rgba-unorm",35916:"bc1-rgba-unorm-srgb",35917:"bc1-rgba-unorm-srgb",35918:"bc2-rgba-unorm-srgb",35919:"bc3-rgba-unorm-srgb",36283:"bc4-r-unorm",36284:"bc4-r-snorm",36285:"bc5-rg-unorm",36286:"bc5-rg-snorm",37488:"eac-r11unorm",37490:"eac-rg11snorm",37492:"etc2-rgb8unorm",37496:"etc2-rgba8unorm",37493:"etc2-rgb8unorm-srgb",37497:"etc2-rgba8unorm-srgb",37494:"etc2-rgb8a1unorm",37495:"etc2-rgb8a1unorm-srgb",37808:"astc-4x4-unorm",37840:"astc-4x4-unorm-srgb",37809:"astc-5x4-unorm",37841:"astc-5x4-unorm-srgb",37810:"astc-5x5-unorm",37842:"astc-5x5-unorm-srgb",37811:"astc-6x5-unorm",37843:"astc-6x5-unorm-srgb",37812:"astc-6x6-unorm",37844:"astc-6x6-unorm-srgb",37813:"astc-8x5-unorm",37845:"astc-8x5-unorm-srgb",37814:"astc-8x6-unorm",37846:"astc-8x6-unorm-srgb",37815:"astc-8x8-unorm",37847:"astc-8x8-unorm-srgb",37816:"astc-10x5-unorm",37848:"astc-10x5-unorm-srgb",37817:"astc-10x6-unorm",37849:"astc-10x6-unorm-srgb",37818:"astc-10x8-unorm",37850:"astc-10x8-unorm-srgb",37819:"astc-10x10-unorm",37851:"astc-10x10-unorm-srgb",37820:"astc-12x10-unorm",37852:"astc-12x10-unorm-srgb",37821:"astc-12x12-unorm",37853:"astc-12x12-unorm-srgb",36492:"bc7-rgba-unorm",36493:"bc7-rgba-unorm-srgb",36494:"bc6h-rgb-float",36495:"bc6h-rgb-ufloat",35907:"rgba8unorm-srgb",36759:"rgba8snorm",36220:"rgba8uint",36238:"rgba8sint",6408:"rgba8unorm"},FIELDS:{FILE_IDENTIFIER:0,ENDIANNESS:12,GL_TYPE:16,GL_TYPE_SIZE:20,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,GL_BASE_INTERNAL_FORMAT:32,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},TYPES_TO_BYTES_PER_COMPONENT:{5121:1,5123:2,5124:4,5125:4,5126:4,36193:8},TYPES_TO_BYTES_PER_PIXEL:{32819:2,32820:2,33635:2},ENDIANNESS:67305985};t.GL_INTERNAL_FORMAT=r,t.KTX=n},97051:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(17125);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High},name:"loadKTX2",test(e){return s.checkExtension(e,".ktx2")},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await l.loadKTX2onWorker(e,n),o=new a.CompressedSource(s);return i.createTexture(o,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadKTX2=c},61155:function(){},87976:function(e,t){"use strict";const r={rgb8unorm:{convertedFormat:"rgba8unorm",convertFunction:n},"rgb8unorm-srgb":{convertedFormat:"rgba8unorm-srgb",convertFunction:n}};function n(e){const t=e.byteLength/3,r=new Uint32Array(t);for(let n=0;n{const{success:t,url:r,textureOptions:n}=e.data;t||console.warn("Failed to load KTX texture",r),o[r](n)},s.postMessage({type:"init",jsUrl:i.ktxTranscoderUrls.jsUrl,wasmUrl:i.ktxTranscoderUrls.wasmUrl,supportedTextures:e})),s}(t);return new Promise((t=>{o[e]=t,r.postMessage({type:"load",url:e})}))}},5566:function(e,t,r){"use strict";var n=r(8774),i=r(64822),s=r(90206),o=r(17073),a=r(68651),u=r(55484),l=r(7451);const c={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.High},name:"loadKTX",test(e){return s.checkExtension(e,".ktx")},async load(e,t,r){const n=await u.getSupportedTextureFormats(),s=await fetch(e),o=await s.arrayBuffer(),c=l.parseKTX(o,n),h=new a.CompressedSource(c);return i.createTexture(h,r,e)},unload(e){Array.isArray(e)?e.forEach((e=>e.destroy(!0))):e.destroy(!0)}};t.loadKTX=c},7451:function(e,t,r){"use strict";var n=r(79531);t.parseKTX=function(e,t){const r=new DataView(e);if(!function(e){for(let t=0;t>1||1,p=p>>1||1,f=d+4-1&-4,m=p+4-1&-4,h=f*m*r}return _}(r,s,p,u,l,h,c,i);return{format:d,width:u,height:l,resource:f,alphaMode:"no-premultiply-alpha"}}},56899:function(e,t,r){"use strict";var n=r(17073),i=r(34155),s=r(58050),o=r(73533),a=r(13320);let u;const l={extension:{type:n.ExtensionType.DetectionParser,priority:2},test:async()=>!!await o.isWebGPUSupported()||!!s.isWebGLSupported(),add:async e=>{const t=await i.getSupportedCompressedTextureFormats();return u=function(e){const t=["basis"],r={};return e.forEach((e=>{const n=e.split("-")[0];n&&!r[n]&&(r[n]=!0,t.push(n))})),t.sort(((e,t)=>{const r=a.validFormats.indexOf(e),n=a.validFormats.indexOf(t);return-1===r?1:-1===n?-1:r-n})),t}(t),[...u,...e]},remove:async e=>u?e.filter((e=>!(e in u))):e};t.detectCompressed=l},13320:function(e,t,r){"use strict";var n=r(95997),i=r(90206),s=r(17073);const o=["basis","bc7","bc6h","astc","etc2","bc5","bc4","bc3","bc2","bc1","eac"],a={extension:s.ExtensionType.ResolveParser,test:e=>i.checkExtension(e,[".ktx",".ktx2",".dds"]),parse:e=>{let t;const r=e.split(".");if(r.length>2){const e=r[r.length-2];o.includes(e)&&(t=e)}else t=r[r.length-1];return{resolution:parseFloat(n.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:t,src:e}}};t.resolveCompressedTextureUrl=a,t.validFormats=o},1394:function(e,t,r){"use strict";var n=r(14786),i=r(9565);const s=new n.Bounds,o=class{cull(e,t,r=!0){this._cullRecursive(e,t,r)}_cullRecursive(e,t,r=!0){if(e.cullable&&e.measurable&&e.includeInBuild){const n=e.cullArea??i.getGlobalBounds(e,r,s);e.culled=!(n.x>=t.x+t.width||n.y>=t.y+t.height||n.x+n.width<=t.x||n.y+n.height<=t.y)}if(e.cullableChildren&&!e.culled&&e.renderable&&e.measurable&&e.includeInBuild)for(let n=0;n{i.Culler.shared.cull(this.stage,this.renderer.screen),this.renderer.render({container:this.stage})}}static destroy(){this.render=this._renderRef}}s.extension={priority:10,type:n.ExtensionType.Application,name:"culler"},t.CullerPlugin=s},10051:function(e,t){"use strict";t.cullingMixin={cullArea:null,cullable:!1,cullableChildren:!0}},76143:function(e,t,r){"use strict";var n=r(1394),i=r(165),s=r(10051);t.Culler=n.Culler,t.CullerPlugin=i.CullerPlugin,t.cullingMixin=s.cullingMixin},36484:function(e,t){"use strict";const r={createCanvas:(e,t)=>{const r=document.createElement("canvas");return r.width=e,r.height=t,r},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(e,t)=>fetch(e,t),parseXML:e=>(new DOMParser).parseFromString(e,"text/xml")};t.BrowserAdapter=r},30149:function(e,t,r){"use strict";r(29377),r(9266),r(79322),r(55102),r(55063),r(83016),r(60862),r(34266),r(4862),r(38717),r(51654),r(58537),r(72400)},59759:function(e,t,r){"use strict";const n={extension:{type:r(17073).ExtensionType.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then((function(){return r(30149)}))}};t.browserExt=n},38496:function(e,t,r){"use strict";var n=r(36484),i=r(59759);t.BrowserAdapter=n.BrowserAdapter,t.browserExt=i.browserExt},24306:function(e,t,r){"use strict";var n=r(3969);const i={createCanvas:(e,t)=>new OffscreenCanvas(e??0,t??0),getCanvasRenderingContext2D:()=>OffscreenCanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>globalThis.location.href,getFontFaceSet:()=>globalThis.fonts,fetch:(e,t)=>fetch(e,t),parseXML:e=>(new n.DOMParser).parseFromString(e,"text/xml")};t.WebWorkerAdapter=i},59868:function(e,t,r){"use strict";var n=r(24306),i=r(147);t.WebWorkerAdapter=n.WebWorkerAdapter,t.webworkerExt=i.webworkerExt},23874:function(e,t,r){"use strict";r(9266),r(55102),r(55063),r(83016),r(60862),r(34266),r(4862),r(38717),r(51654),r(58537),r(72400)},147:function(e,t,r){"use strict";const n={extension:{type:r(17073).ExtensionType.Environment,name:"webworker",priority:0},test:()=>"undefined"!=typeof self&&void 0!==self.WorkerGlobalScope,load:async()=>{await Promise.resolve().then((function(){return r(23874)}))}};t.webworkerExt=n},42932:function(e,t,r){"use strict";let n=r(36484).BrowserAdapter;const i={get(){return n},set(e){n=e}};t.DOMAdapter=i},98182:function(e,t,r){"use strict";var n=r(17073);const i=[];n.extensions.handleByNamedList(n.ExtensionType.Environment,i),t.autoDetectEnvironment=async function(e){if(e)for(let e=0;ee.priority-t.priority))}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;const t=this.mappingTable[e.type];if(t)for(let r=0,n=t.length;r=0;n--)if(e.currentTarget=r[n],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(0===r.length)return;e.eventPhase=e.BUBBLING_PHASE;const n=Array.isArray(t)?t:[t];for(let t=r.length-1;t>=0;t--)n.forEach((n=>{e.currentTarget=r[t],this.notifyTarget(e,n)}))}propagationPath(e){const t=[e];for(let r=0;r<2048&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,n,i,s=!1){let a=!1;if(this._interactivePrune(e))return null;if("dynamic"!==e.eventMode&&"dynamic"!==t||(o.EventsTicker.pauseUpdate=!1),e.interactiveChildren&&e.children){const o=e.children;for(let u=o.length-1;u>=0;u--){const l=o[u],c=this.hitTestMoveRecursive(l,this._isInteractive(t)?t:l.eventMode,r,n,i,s||i(e,r));if(c){if(c.length>0&&!c[c.length-1].parent)continue;const t=e.isInteractive();(c.length>0||t)&&(t&&this._allInteractiveElements.push(e),c.push(e)),0===this._hitElements.length&&(this._hitElements=c),a=!0}}}const u=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),s||this._hitElements.length>0?null:a?this._hitElements:u&&!i(e,r)&&n(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,n,i){if(this._interactivePrune(e)||i(e,r))return null;if("dynamic"!==e.eventMode&&"dynamic"!==t||(o.EventsTicker.pauseUpdate=!1),e.interactiveChildren&&e.children){const s=e.children,o=r;for(let r=s.length-1;r>=0;r--){const a=s[r],u=this.hitTestRecursive(a,this._isInteractive(t)?t:a.eventMode,o,n,i);if(u){if(u.length>0&&!u[u.length-1].parent)continue;const t=e.isInteractive();return(u.length>0||t)&&u.push(e),u}}}const s=this._isInteractive(t),a=e.isInteractive();return s&&n(e,r)?a?[e]:[]:null}_isInteractive(e){return"static"===e||"dynamic"===e}_interactivePrune(e){return!(e&&e.visible&&e.renderable)||("none"===e.eventMode||"passive"===e.eventMode&&!e.interactiveChildren)}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,h),!e.hitArea.contains(h.x,h.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r0&&i!==t.target){const n="mousemove"===e.type?"mouseout":"pointerout",s=this.createPointerEvent(e,n,i);if(this.dispatchEvent(s,"pointerout"),r&&this.dispatchEvent(s,"mouseout"),!t.composedPath().includes(i)){const n=this.createPointerEvent(e,"pointerleave",i);for(n.eventPhase=n.AT_TARGET;n.target&&!t.composedPath().includes(n.target);)n.currentTarget=n.target,this.notifyTarget(n),r&&this.notifyTarget(n,"mouseleave"),n.target=n.target.parent;this.freeEvent(n)}this.freeEvent(s)}if(i!==t.target){const n="mousemove"===e.type?"mouseover":"pointerover",s=this.clonePointerEvent(t,n);this.dispatchEvent(s,"pointerover"),r&&this.dispatchEvent(s,"mouseover");let o=i?.parent;for(;o&&o!==this.rootTarget.parent&&o!==t.target;)o=o.parent;if(!o||o===this.rootTarget.parent){const e=this.clonePointerEvent(t,"pointerenter");for(e.eventPhase=e.AT_TARGET;e.target&&e.target!==i&&e.target!==this.rootTarget.parent;)e.currentTarget=e.target,this.notifyTarget(e),r&&this.notifyTarget(e,"mouseenter"),e.target=e.target.parent;this.freeEvent(e)}this.freeEvent(s)}const o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),"touch"===t.pointerType&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,n.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),n="mouse"===r.pointerType||"pen"===r.pointerType;this.dispatchEvent(r,"pointerover"),n&&this.dispatchEvent(r,"mouseover"),"mouse"===r.pointerType&&(this.cursor=r.target?.cursor);const i=this.clonePointerEvent(r,"pointerenter");for(i.eventPhase=i.AT_TARGET;i.target&&i.target!==this.rootTarget.parent;)i.currentTarget=i.target,this.notifyTarget(i),n&&this.notifyTarget(i,"mouseenter"),i.target=i.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(i)}mapPointerOut(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId);if(t.overTargets){const r="mouse"===e.pointerType||"pen"===e.pointerType,n=this.findMountedTarget(t.overTargets),i=this.createPointerEvent(e,"pointerout",n);this.dispatchEvent(i),r&&this.dispatchEvent(i,"mouseout");const s=this.createPointerEvent(e,"pointerleave",n);for(s.eventPhase=s.AT_TARGET;s.target&&s.target!==this.rootTarget.parent;)s.currentTarget=s.target,this.notifyTarget(s),r&&this.notifyTarget(s,"mouseleave"),s.target=s.target.parent;t.overTargets=null,this.freeEvent(i),this.freeEvent(s)}this.cursor=null}mapPointerUp(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,"pointerup"),"touch"===r.pointerType)this.dispatchEvent(r,"touchend");else if("mouse"===r.pointerType||"pen"===r.pointerType){const e=2===r.button;this.dispatchEvent(r,e?"rightup":"mouseup")}const n=this.trackingData(e.pointerId),i=this.findMountedTarget(n.pressTargetsByButton[e.button]);let o=i;if(i&&!r.composedPath().includes(i)){let t=i;for(;t&&!r.composedPath().includes(t);){if(r.currentTarget=t,this.notifyTarget(r,"pointerupoutside"),"touch"===r.pointerType)this.notifyTarget(r,"touchendoutside");else if("mouse"===r.pointerType||"pen"===r.pointerType){const e=2===r.button;this.notifyTarget(r,e?"rightupoutside":"mouseupoutside")}t=t.parent}delete n.pressTargetsByButton[e.button],o=t}if(o){const i=this.clonePointerEvent(r,"click");i.target=o,i.path=null,n.clicksByButton[e.button]||(n.clicksByButton[e.button]={clickCount:0,target:i.target,timeStamp:t});const s=n.clicksByButton[e.button];if(s.target===i.target&&t-s.timeStamp<200?++s.clickCount:s.clickCount=1,s.target=i.target,s.timeStamp=t,i.detail=s.clickCount,"mouse"===i.pointerType){const e=2===i.button;this.dispatchEvent(i,e?"rightclick":"click")}else"touch"===i.pointerType&&this.dispatchEvent(i,"tap");this.dispatchEvent(i,"pointertap"),this.freeEvent(i)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof u.FederatedPointerEvent))return void s.warn("EventBoundary cannot map a non-pointer event as a pointer event");const t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),n=this.createPointerEvent(e);if(r){let i=r;for(;i;)n.currentTarget=i,this.notifyTarget(n,"pointerupoutside"),"touch"===n.pointerType?this.notifyTarget(n,"touchendoutside"):"mouse"!==n.pointerType&&"pen"!==n.pointerType||this.notifyTarget(n,2===n.button?"rightupoutside":"mouseupoutside"),i=i.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(n)}mapWheel(e){if(!(e instanceof l.FederatedWheelEvent))return void s.warn("EventBoundary cannot map a non-wheel event as a wheel event");const t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r("globalMove"===t&&(this.rootBoundary.enableGlobalMoveEvents=r),e[t]=r,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(t){const{canvas:r,resolution:n}=this.renderer;this.setTargetElement(r),this.resolution=n,e._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e=e||"default";let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;const r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r)}else t&&"string"==typeof e&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;const t=this._normalizeToPointerData(e);if(this.autoPreventDefault&&t[0].isNormalized){(e.cancelable||!("cancelable"in e))&&e.preventDefault()}for(let e=0,r=t.length;e0&&(t=e.composedPath()[0]);const r=t!==this.domElement?"outside":"",n=this._normalizeToPointerData(e);for(let e=0,t=n.length;e{u.off(e,a,o)})),s?u.once(e,a,o):u.on(e,a,o)},removeEventListener(e,t,r){const n="function"==typeof t?void 0:t;e="boolean"==typeof r&&r||"object"==typeof r&&r.capture?`${e}capture`:e,t="function"==typeof t?t:t.handleEvent,this.off(e,t,n)},dispatchEvent(e){if(!(e instanceof i.FederatedEvent))throw new Error("Container cannot propagate events outside of the Federated Events API");return e.defaultPrevented=!1,e.path=null,e.target=this,e.manager.dispatchEvent(e),!e.defaultPrevented}};t.FederatedContainer=s},19250:function(e,t,r){"use strict";var n=r(26553),i=r(49410);class s extends i.FederatedEvent{constructor(){super(...arguments),this.client=new n.Point,this.movement=new n.Point,this.offset=new n.Point,this.global=new n.Point,this.screen=new n.Point}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,n,i,s,o,a,u,l,c,h,d,p,f){throw new Error("Method not implemented.")}}t.FederatedMouseEvent=s},45345:function(e,t,r){"use strict";var n=r(19250);class i extends n.FederatedMouseEvent{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return"pointermove"===this.type||"mousemove"===this.type||"touchmove"===this.type?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}t.FederatedPointerEvent=i},81483:function(e,t,r){"use strict";var n=r(19250);class i extends n.FederatedMouseEvent{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}}i.DOM_DELTA_PIXEL=0,i.DOM_DELTA_LINE=1,i.DOM_DELTA_PAGE=2,t.FederatedWheelEvent=i},14073:function(e,t,r){"use strict";var n=r(41863);r(14406);var i=r(8599),s=r(5443),o=r(49410);r(43094);var a=r(14235),u=r(19250),l=r(45345),c=r(81483);t.EventBoundary=n.EventBoundary,t.EventSystem=i.EventSystem,t.EventsTicker=s.EventsTicker,t.FederatedEvent=o.FederatedEvent,t.FederatedContainer=a.FederatedContainer,t.FederatedMouseEvent=u.FederatedMouseEvent,t.FederatedPointerEvent=l.FederatedPointerEvent,t.FederatedWheelEvent=c.FederatedWheelEvent},79322:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(8599),o=r(14235);n.extensions.add(s.EventSystem),i.Container.mixin(o.FederatedContainer)},17073:function(e,t){"use strict";var r=(e=>(e.Application="application",e.WebGLPipes="webgl-pipes",e.WebGLPipesAdaptor="webgl-pipes-adaptor",e.WebGLSystem="webgl-system",e.WebGPUPipes="webgpu-pipes",e.WebGPUPipesAdaptor="webgpu-pipes-adaptor",e.WebGPUSystem="webgpu-system",e.CanvasSystem="canvas-system",e.CanvasPipesAdaptor="canvas-pipes-adaptor",e.CanvasPipes="canvas-pipes",e.Asset="asset",e.LoadParser="load-parser",e.ResolveParser="resolve-parser",e.CacheParser="cache-parser",e.DetectionParser="detection-parser",e.MaskEffect="mask-effect",e.BlendMode="blend-mode",e.TextureSource="texture-source",e.Environment="environment",e))(r||{});const n=e=>{if("function"==typeof e||"object"==typeof e&&e.extension){if(!e.extension)throw new Error("Extension class must have an extension object");e={..."object"!=typeof e.extension?{type:e.extension}:e.extension,ref:e}}if("object"!=typeof e)throw new Error("Invalid extension type");return"string"==typeof(e={...e}).type&&(e.type=[e.type]),e},i=(e,t)=>n(e).priority??t,s={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...e){return e.map(n).forEach((e=>{e.type.forEach((t=>this._removeHandlers[t]?.(e)))})),this},add(...e){return e.map(n).forEach((e=>{e.type.forEach((t=>{const r=this._addHandlers,n=this._queue;r[t]?r[t]?.(e):(n[t]=n[t]||[],n[t]?.push(e))}))})),this},handle(e,t,r){const n=this._addHandlers,i=this._removeHandlers;if(n[e]||i[e])throw new Error(`Extension type ${e} already has a handler`);n[e]=t,i[e]=r;const s=this._queue;return s[e]&&(s[e]?.forEach((e=>t(e))),delete s[e]),this},handleByMap(e,t){return this.handle(e,(e=>{e.name&&(t[e.name]=e.ref)}),(e=>{e.name&&delete t[e.name]}))},handleByNamedList(e,t,r=-1){return this.handle(e,(e=>{t.findIndex((t=>t.name===e.name))>=0||(t.push({name:e.name,value:e.ref}),t.sort(((e,t)=>i(t.value,r)-i(e.value,r))))}),(e=>{const r=t.findIndex((t=>t.name===e.name));-1!==r&&t.splice(r,1)}))},handleByList(e,t,r=-1){return this.handle(e,(e=>{t.includes(e.ref)||(t.push(e.ref),t.sort(((e,t)=>i(t,r)-i(e,r))))}),(e=>{const r=t.indexOf(e.ref);-1!==r&&t.splice(r,1)}))}};t.ExtensionType=r,t.extensions=s,t.normalizeExtensionPriority=i},46569:function(e,t,r){"use strict";var n=r(17073);t.ExtensionType=n.ExtensionType,t.extensions=n.extensions,t.normalizeExtensionPriority=n.normalizeExtensionPriority},44023:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(97505),o=r(55141);const a=class e extends s.Shader{constructor(t){super(t={...e.defaultOptions,...t}),this.enabled=!0,this._state=o.State.for2d(),this.padding=t.padding,"boolean"==typeof t.antialias?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.addResource("uTexture",0,1)}apply(e,t,r,n){e.applyFilter(this,t,r,n)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(t){const{gpu:r,gl:s,...o}=t;let a,u;return r&&(a=i.GpuProgram.from(r)),s&&(u=n.GlProgram.from(s)),new e({gpuProgram:a,glProgram:u,...o})}};a.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1};let u=a;t.Filter=u},71210:function(e,t){"use strict";t.FilterEffect=class{constructor(e){this.pipe="filter",this.priority=1,this.filters=e?.filters,this.filterArea=e?.filterArea}destroy(){for(let e=0;e"},uInputPixel:{value:new Float32Array(4),type:"vec4"},uInputClamp:{value:new Float32Array(4),type:"vec4"},uOutputFrame:{value:new Float32Array(4),type:"vec4"},uGlobalFrame:{value:new Float32Array(4),type:"vec4"},uOutputTexture:{value:new Float32Array(4),type:"vec4"}}),this._globalFilterBindGroup=new o.BindGroup({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){const t=this.renderer,r=e.filterEffect.filters;this._filterStack[this._filterStackIndex]||(this._filterStack[this._filterStackIndex]=this._getFilterData());const n=this._filterStack[this._filterStackIndex];if(this._filterStackIndex++,0===r.length)return void(n.skip=!0);const i=n.bounds;e.renderables?f.getGlobalRenderableBounds(e.renderables,i):e.filterEffect.filterArea?(i.clear(),i.addRect(e.filterEffect.filterArea),i.applyMatrix(e.container.worldTransform)):p.getFastGlobalBounds(e.container,i);const s=t.renderTarget.rootRenderTarget.colorTexture.source;let o=s._resolution,a=0,u=s.antialias,l=!1,h=!1;for(let e=0;e0?this._filterStack[this._filterStackIndex-1].bounds:null,s=e.renderTarget.getRenderTarget(t.previousRenderSurface);i=this.getBackTexture(s,n,r)}t.backTexture=i;const s=t.filterEffect.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(i.source,3),e.globalUniforms.pop(),1===s.length)s[0].apply(this,r,t.previousRenderSurface,!1),c.TexturePool.returnTexture(r);else{let e=t.inputTexture,r=c.TexturePool.getOptimalTexture(n.width,n.height,e.source._resolution,!1),i=0;for(i=0;i0&&this._filterStack[p].skip;)--p;p>0&&(d=this._filterStack[p].inputTexture.source._resolution);const f=this._filterGlobalUniforms,m=f.uniforms,_=m.uOutputFrame,x=m.uInputSize,b=m.uInputPixel,y=m.uInputClamp,v=m.uGlobalFrame,T=m.uOutputTexture;if(c){let e=this._filterStackIndex;for(;e>0;){e--;const t=this._filterStack[this._filterStackIndex-1];if(!t.skip){u.x=t.bounds.minX,u.y=t.bounds.minY;break}}_[0]=a.minX-u.x,_[1]=a.minY-u.y}else _[0]=0,_[1]=0;_[2]=t.frame.width,_[3]=t.frame.height,x[0]=t.source.width,x[1]=t.source.height,x[2]=1/x[0],x[3]=1/x[1],b[0]=t.source.pixelWidth,b[1]=t.source.pixelHeight,b[2]=1/b[0],b[3]=1/b[1],y[0]=.5*b[2],y[1]=.5*b[3],y[2]=t.frame.width*x[2]-.5*b[2],y[3]=t.frame.height*x[3]-.5*b[3];const S=this.renderer.renderTarget.rootRenderTarget.colorTexture;v[0]=u.x*d,v[1]=u.y*d,v[2]=S.source.width*d,v[3]=S.source.height*d;const E=this.renderer.renderTarget.getRenderTarget(r);if(i.renderTarget.bind(r,!!n),r instanceof l.Texture?(T[0]=r.frame.width,T[1]=r.frame.height):(T[0]=E.width,T[1]=E.height),T[2]=E.isRoot?-1:1,f.update(),i.renderPipes.uniformBatch){const e=i.renderPipes.uniformBatch.getUboResource(f);this._globalFilterBindGroup.setResource(e,0)}else this._globalFilterBindGroup.setResource(f,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,i.encoder.draw({geometry:g,shader:e,state:e._state,topology:"triangle-list"}),i.type===h.RendererType.WEBGL&&i.renderTarget.finishRenderPass()}_getFilterData(){return{skip:!1,inputTexture:null,bounds:new d.Bounds,container:null,filterEffect:null,blendRequired:!1,previousRenderSurface:null}}calculateSpriteMatrix(e,t){const r=this._activeFilterData,n=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),s=t.worldTransform.copyTo(i.Matrix.shared);return s.invert(),n.prepend(s),n.scale(1/t.texture.frame.width,1/t.texture.frame.height),n.translate(t.anchor.x,t.anchor.y),n}}_.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"filter"},t.FilterSystem=_},81210:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(84463),a=r(44023),u=r(70475),l=r(40265),c=r(53784);class h extends a.Filter{constructor(e){const t=e.gpu,r=d({source:c.default,...t}),a=i.GpuProgram.from({vertex:{source:r,entryPoint:"mainVertex"},fragment:{source:r,entryPoint:"mainFragment"}}),h=e.gl,p=d({source:u.default,...h});super({gpuProgram:a,glProgram:n.GlProgram.from({vertex:l.default,fragment:p}),blendRequired:!0,resources:{blendUniforms:new s.UniformGroup({uBlend:{value:1,type:"f32"}}),uBackTexture:o.Texture.EMPTY}})}}function d(e){const{source:t,functions:r,main:n}=e;return t.replace("{FUNCTIONS}",r).replace("{MAIN}",n)}t.BlendModeFilter=h},70475:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec4 vColor;\n\nout vec4 finalColor;\n\nuniform float uBlend;\n\nuniform sampler2D uTexture;\nuniform sampler2D uBackTexture;\n\n{FUNCTIONS}\n\nvoid main()\n{ \n vec4 back = texture(uBackTexture, vTextureCoord);\n vec4 front = texture(uTexture, vTextureCoord);\n\n {MAIN}\n}\n"},40265:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\nout vec2 vTextureCoord;\nout vec2 backgroundUv;\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n"},53784:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct BlendUniforms {\n uBlend:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n@group(0) @binding(3) var uBackTexture: texture_2d;\n\n@group(1) @binding(0) var blendUniforms : BlendUniforms;\n\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\n{FUNCTIONS}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2\n) -> @location(0) vec4 {\n\n\n var back = textureSample(uBackTexture, uSampler, uv);\n var front = textureSample(uTexture, uSampler, uv);\n \n var out = vec4(0.0,0.0,0.0,0.0);\n\n {MAIN}\n\n return out;\n}"},57422:function(e,t){"use strict";t.hslgl="\n\tfloat getLuminosity(vec3 c) {\n\t\treturn 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;\n\t}\n\n\tvec3 setLuminosity(vec3 c, float lum) {\n\t\tfloat modLum = lum - getLuminosity(c);\n\t\tvec3 color = c.rgb + vec3(modLum);\n\n\t\t// clip back into legal range\n\t\tmodLum = getLuminosity(color);\n\t\tvec3 modLumVec = vec3(modLum);\n\n\t\tfloat cMin = min(color.r, min(color.g, color.b));\n\t\tfloat cMax = max(color.r, max(color.g, color.b));\n\n\t\tif(cMin < 0.0) {\n\t\t\tcolor = mix(modLumVec, color, modLum / (modLum - cMin));\n\t\t}\n\n\t\tif(cMax > 1.0) {\n\t\t\tcolor = mix(modLumVec, color, (1.0 - modLum) / (cMax - modLum));\n\t\t}\n\n\t\treturn color;\n\t}\n\n\tfloat getSaturation(vec3 c) {\n\t\treturn max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n\t}\n\n\tvec3 setSaturationMinMidMax(vec3 cSorted, float s) {\n\t\tvec3 colorSorted = cSorted;\n\n\t\tif(colorSorted.z > colorSorted.x) {\n\t\t\tcolorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));\n\t\t\tcolorSorted.z = s;\n\t\t}\n\t\telse {\n\t\t\tcolorSorted.y = 0.0;\n\t\t\tcolorSorted.z = 0.0;\n\t\t}\n\n\t\tcolorSorted.x = 0.0;\n\n\t\treturn colorSorted;\n\t}\n\n\tvec3 setSaturation(vec3 c, float s) {\n\t\tvec3 color = c;\n\n\t\tif(color.r <= color.g && color.r <= color.b) {\n\t\t\tif(color.g <= color.b) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.rgb, s).rgb;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.rbg, s).rbg;\n\t\t\t}\n\t\t}\n\t\telse if(color.g <= color.r && color.g <= color.b) {\n\t\t\tif(color.r <= color.b) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.grb, s).grb;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.gbr, s).gbr;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Using bgr for both fixes part of hue\n\t\t\tif(color.r <= color.g) {\n\t\t\t\tcolor = setSaturationMinMidMax(color.brg, s).brg;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcolor = setSaturationMinMidMax(color.bgr, s).bgr;\n\t\t\t}\n\t\t}\n\n\t\treturn color;\n\t}\n "},79474:function(e,t){"use strict";t.hslgpu="\n\tfn getLuminosity(c: vec3) -> f32\n\t{\n\t\treturn 0.3*c.r + 0.59*c.g + 0.11*c.b;\n\t}\n\n\tfn setLuminosity(c: vec3, lum: f32) -> vec3\n\t{\n\t\tvar modLum: f32 = lum - getLuminosity(c);\n\t\tvar color: vec3 = c.rgb + modLum;\n\n\t\t// clip back into legal range\n\t\tmodLum = getLuminosity(color);\n\t\tlet modLumVec = vec3(modLum);\n\n\t\tlet cMin: f32 = min(color.r, min(color.g, color.b));\n\t\tlet cMax: f32 = max(color.r, max(color.g, color.b));\n\n\t\tif(cMin < 0.0)\n\t\t{\n\t\t\tcolor = mix(modLumVec, color, modLum / (modLum - cMin));\n\t\t}\n\n\t\tif(cMax > 1.0)\n\t\t{\n\t\t\tcolor = mix(modLumVec, color, (1 - modLum) / (cMax - modLum));\n\t\t}\n\n\t\treturn color;\n\t}\n\n\tfn getSaturation(c: vec3) -> f32\n\t{\n\t\treturn max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n\t}\n\n\tfn setSaturationMinMidMax(cSorted: vec3, s: f32) -> vec3\n\t{\n\t\tvar colorSorted = cSorted;\n\n\t\tif(colorSorted.z > colorSorted.x)\n\t\t{\n\t\t\tcolorSorted.y = (((colorSorted.y - colorSorted.x) * s) / (colorSorted.z - colorSorted.x));\n\t\t\tcolorSorted.z = s;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcolorSorted.y = 0;\n\t\t\tcolorSorted.z = 0;\n\t\t}\n\n\t\tcolorSorted.x = 0;\n\n\t\treturn colorSorted;\n\t}\n\n\tfn setSaturation(c: vec3, s: f32) -> vec3\n\t{\n\t\tvar color = c;\n\n\t\tif (color.r <= color.g && color.r <= color.b)\n\t\t{\n\t\t\tif (color.g <= color.b)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.rgb, s)).rgb;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.rbg, s)).rbg;\n\t\t\t}\n\t\t}\n\t\telse if (color.g <= color.r && color.g <= color.b)\n\t\t{\n\t\t\tif (color.r <= color.b)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.grb, s)).grb;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.gbr, s)).gbr;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Using bgr for both fixes part of hue\n\t\t\tif (color.r <= color.g)\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.brg, s)).brg;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcolor = vec3(setSaturationMinMidMax(color.bgr, s)).bgr;\n\t\t\t}\n\t\t}\n\n\t\treturn color;\n\t}\n\t"},26508:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="fn getLuminosity(c: vec3) -> f32 {\n return 0.3 * c.r + 0.59 * c.g + 0.11 * c.b;\n}\n\nfn setLuminosity(c: vec3, lum: f32) -> vec3 {\n let d: f32 = lum - getLuminosity(c);\n let newColor: vec3 = c.rgb + vec3(d, d, d);\n\n // clip back into legal range\n let newLum: f32 = getLuminosity(newColor);\n let cMin: f32 = min(newColor.r, min(newColor.g, newColor.b));\n let cMax: f32 = max(newColor.r, max(newColor.g, newColor.b));\n\n let t1: f32 = newLum / (newLum - cMin);\n let t2: f32 = (1.0 - newLum) / (cMax - newLum);\n\n let finalColor = mix(vec3(newLum, newLum, newLum), newColor, select(select(1.0, t2, cMax > 1.0), t1, cMin < 0.0));\n\n return finalColor;\n}\n\nfn getSaturation(c: vec3) -> f32 {\n return max(c.r, max(c.g, c.b)) - min(c.r, min(c.g, c.b));\n}\n\n// Set saturation if color components are sorted in ascending order.\nfn setSaturationMinMidMax(cSorted: vec3, s: f32) -> vec3 {\n var result: vec3;\n if (cSorted.z > cSorted.x) {\n let newY = (((cSorted.y - cSorted.x) * s) / (cSorted.z - cSorted.x));\n result = vec3(0.0, newY, s);\n } else {\n result = vec3(0.0, 0.0, 0.0);\n }\n return vec3(result.x, result.y, result.z);\n}\n\nfn setSaturation(c: vec3, s: f32) -> vec3 {\n var result: vec3 = c;\n\n if (c.r <= c.g && c.r <= c.b) {\n if (c.g <= c.b) {\n result = setSaturationMinMidMax(result, s);\n } else {\n var temp: vec3 = vec3(result.r, result.b, result.g);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.r, temp.b, temp.g);\n }\n } else if (c.g <= c.r && c.g <= c.b) {\n if (c.r <= c.b) {\n var temp: vec3 = vec3(result.g, result.r, result.b);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.g, temp.r, temp.b);\n } else {\n var temp: vec3 = vec3(result.g, result.b, result.r);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.g, temp.b, temp.r);\n }\n } else {\n if (c.r <= c.g) {\n var temp: vec3 = vec3(result.b, result.r, result.g);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.b, temp.r, temp.g);\n } else {\n var temp: vec3 = vec3(result.b, result.g, result.r);\n temp = setSaturationMinMidMax(temp, s);\n result = vec3(temp.b, temp.g, temp.r);\n }\n }\n\n return result;\n}"},77047:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(44023),a=r(41792),u=r(85860),l=r(90588);const c=class e extends o.Filter{constructor(t){t={...e.defaultOptions,...t};const r=i.GpuProgram.from({vertex:{source:l.default,entryPoint:"mainVertex"},fragment:{source:l.default,entryPoint:"mainFragment"}}),o=n.GlProgram.from({vertex:a.default,fragment:u.default,name:"alpha-filter"}),{alpha:c,...h}=t;super({...h,gpuProgram:r,glProgram:o,resources:{alphaUniforms:new s.UniformGroup({uAlpha:{value:c,type:"f32"}})}})}get alpha(){return this.resources.alphaUniforms.uniforms.uAlpha}set alpha(e){this.resources.alphaUniforms.uniforms.uAlpha=e}};c.defaultOptions={alpha:1};let h=c;t.AlphaFilter=h},85860:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\n\nout vec4 finalColor;\n\nuniform float uAlpha;\nuniform sampler2D uTexture;\n\nvoid main()\n{\n finalColor = texture(uTexture, vTextureCoord) * uAlpha;\n}\n"},90588:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="struct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct AlphaUniforms {\n uAlpha:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var alphaUniforms : AlphaUniforms;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getSize() -> vec2\n{\n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n \n var sample = textureSample(uTexture, uSampler, uv);\n \n return sample * alphaUniforms.uAlpha;\n}"},82510:function(e,t,r){"use strict";var n=r(38759),i=r(2559),s=r(60094),o=r(44023),a=r(27657);class u extends o.Filter{constructor(...e){let t=e[0]??{};"number"==typeof t&&(s.deprecation(s.v8_0_0,"BlurFilter constructor params are now options object. See params: { strength, quality, resolution, kernelSize }"),t={strength:t},e[1]&&(t.quality=e[1]),e[2]&&(t.resolution=e[2]),e[3]&&(t.kernelSize=e[3])),t={...a.BlurFilterPass.defaultOptions,...t};const{strength:r,quality:n,...o}=t;super({...o,compatibleRenderers:i.RendererType.BOTH,resources:{}}),this._repeatEdgePixels=!1,this.blurXFilter=new a.BlurFilterPass({horizontal:!1,...t}),this.blurYFilter=new a.BlurFilterPass({horizontal:!0,...t}),this.quality=n,this.blur=r,this.repeatEdgePixels=!1}apply(e,t,r,i){const s=Math.abs(this.blurXFilter.strength),o=Math.abs(this.blurYFilter.strength);if(s&&o){const s=n.TexturePool.getSameSizeTexture(t);this.blurXFilter.apply(e,t,s,!0),this.blurYFilter.apply(e,s,r,i),n.TexturePool.returnTexture(s)}else o?this.blurYFilter.apply(e,t,r,i):this.blurXFilter.apply(e,t,r,i)}updatePadding(){this._repeatEdgePixels?this.padding=0:this.padding=2*Math.max(Math.abs(this.blurXFilter.blur),Math.abs(this.blurYFilter.blur))}get blur(){return this.blurXFilter.blur}set blur(e){this.blurXFilter.blur=this.blurYFilter.blur=e,this.updatePadding()}get quality(){return this.blurXFilter.quality}set quality(e){this.blurXFilter.quality=this.blurYFilter.quality=e}get blurX(){return this.blurXFilter.blur}set blurX(e){this.blurXFilter.blur=e,this.updatePadding()}get blurY(){return this.blurYFilter.blur}set blurY(e){this.blurYFilter.blur=e,this.updatePadding()}get blendMode(){return this.blurYFilter.blendMode}set blendMode(e){this.blurYFilter.blendMode=e}get repeatEdgePixels(){return this._repeatEdgePixels}set repeatEdgePixels(e){this._repeatEdgePixels=e,this.updatePadding()}}u.defaultOptions={strength:8,quality:4,kernelSize:5},t.BlurFilter=u},27657:function(e,t,r){"use strict";var n=r(38759),i=r(2559),s=r(44023),o=r(713),a=r(3824);const u=class e extends s.Filter{constructor(t){t={...e.defaultOptions,...t};super({glProgram:o.generateBlurGlProgram(t.horizontal,t.kernelSize),gpuProgram:a.generateBlurProgram(t.horizontal,t.kernelSize),resources:{blurUniforms:{uStrength:{value:0,type:"f32"}}},...t}),this.horizontal=t.horizontal,this._quality=0,this.quality=t.quality,this.blur=t.strength,this._uniforms=this.resources.blurUniforms.uniforms}apply(e,t,r,s){if(this._uniforms.uStrength=this.strength/this.passes,1===this.passes)e.applyFilter(this,t,r,s);else{const o=n.TexturePool.getSameSizeTexture(t);let a=t,u=o;this._state.blend=!1;for(let t=0;t=r&&(s=e-n-1),i=i.replace("%value%",t[s].toString()),a+=i,a+="\n"}return o=o.replace("%blur%",a),o=o.replace("%size%",e.toString()),o}},713:function(e,t,r){"use strict";var n=r(62991),i=r(29028),s=r(40806);t.generateBlurGlProgram=function(e,t){const r=s.generateBlurVertSource(t,e),o=i.generateBlurFragSource(t);return n.GlProgram.from({vertex:r,fragment:o,name:`blur-${e?"horizontal":"vertical"}-pass-filter`})}},40806:function(e,t){"use strict";t.generateBlurVertSource=function(e,t){const r=Math.ceil(e/2);let n,i="\n in vec2 aPosition;\n\n uniform float uStrength;\n\n out vec2 vBlurTexCoords[%size%];\n\n uniform vec4 uInputSize;\n uniform vec4 uOutputFrame;\n uniform vec4 uOutputTexture;\n\n vec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\n vec2 filterTextureCoord( void )\n {\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n }\n\n void main(void)\n {\n gl_Position = filterVertexPosition();\n\n float pixelStrength = uInputSize.%dimension% * uStrength;\n\n vec2 textureCoord = filterTextureCoord();\n %blur%\n }",s="";n=t?"vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * pixelStrength, 0.0);":"vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * pixelStrength);";for(let t=0;t,`,u[n]=e?`filteredCord + vec2(${n-o+1} * strength, 0.0),`:`filteredCord + vec2(0.0, ${n-o+1} * strength),`;const i=r[n"},uScale:{value:m,type:"vec2"},uRotation:{value:new Float32Array([0,0,0,0]),type:"mat2x2"}}),_=s.GlProgram.from({vertex:d.default,fragment:h.default,name:"displacement-filter"}),x=o.GpuProgram.from({vertex:{source:p.default,entryPoint:"mainVertex"},fragment:{source:p.default,entryPoint:"mainFragment"}}),b=r.texture.source;super({...f,gpuProgram:x,glProgram:_,resources:{filterUniforms:g,uMapTexture:b,uMapSampler:b.style}}),this._sprite=t.sprite,this._sprite.renderable=!1}apply(e,t,r,n){const i=this.resources.filterUniforms.uniforms;e.calculateSpriteMatrix(i.uFilterMatrix,this._sprite);const s=this._sprite.worldTransform,o=Math.sqrt(s.a*s.a+s.b*s.b),a=Math.sqrt(s.c*s.c+s.d*s.d);0!==o&&0!==a&&(i.uRotation[0]=s.a/o,i.uRotation[1]=s.b/o,i.uRotation[2]=s.c/a,i.uRotation[3]=s.d/a),this.resources.uMapTexture=this._sprite.texture.source,e.applyFilter(this,t,r,n)}get scale(){return this.resources.filterUniforms.uniforms.uScale}}t.DisplacementFilter=f},85001:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec2 vFilterUv;\n\nout vec4 finalColor;\n\nuniform sampler2D uTexture;\nuniform sampler2D uMapTexture;\n\nuniform vec4 uInputClamp;\nuniform highp vec4 uInputSize;\nuniform mat2 uRotation;\nuniform vec2 uScale;\n\nvoid main()\n{\n vec4 map = texture(uMapTexture, vFilterUv);\n \n vec2 offset = uInputSize.zw * (uRotation * (map.xy - 0.5)) * uScale; \n\n finalColor = texture(uTexture, clamp(vTextureCoord + offset, uInputClamp.xy, uInputClamp.zw));\n}\n"},33610:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\nout vec2 vTextureCoord;\nout vec2 vFilterUv;\n\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\n\nuniform mat3 uFilterMatrix;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvec2 getFilterCoord( void )\n{\n return ( uFilterMatrix * vec3( filterTextureCoord(), 1.0) ).xy;\n}\n\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n vFilterUv = getFilterCoord();\n}\n"},25044:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct DisplacementUniforms {\n uFilterMatrix:mat3x3,\n uScale:vec2,\n uRotation:mat2x2\n};\n\n\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var filterUniforms : DisplacementUniforms;\n@group(1) @binding(1) var uMapTexture: texture_2d;\n@group(1) @binding(2) var uMapSampler : sampler;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2,\n @location(1) filterUv : vec2,\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getFilterCoord(aPosition:vec2 ) -> vec2\n{\n return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n}\n\nfn getSize() -> vec2\n{\n\n \n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition),\n getFilterCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @location(1) filterUv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var map = textureSample(uMapTexture, uMapSampler, filterUv);\n\n var offset = gfu.uInputSize.zw * (filterUniforms.uRotation * (map.xy - 0.5)) * filterUniforms.uScale; \n \n return textureSample(uTexture, uSampler, clamp(uv + offset, gfu.uInputClamp.xy, gfu.uInputClamp.zw));\n}"},95547:function(e,t,r){"use strict";var n=r(62991),i=r(50543),s=r(65518),o=r(44023),a=r(41792),u=r(25999),l=r(24310);const c=class e extends o.Filter{constructor(t={}){t={...e.defaultOptions,...t};const r=i.GpuProgram.from({vertex:{source:l.default,entryPoint:"mainVertex"},fragment:{source:l.default,entryPoint:"mainFragment"}}),o=n.GlProgram.from({vertex:a.default,fragment:u.default,name:"noise-filter"}),{noise:c,seed:h,...d}=t;super({...d,gpuProgram:r,glProgram:o,resources:{noiseUniforms:new s.UniformGroup({uNoise:{value:1,type:"f32"},uSeed:{value:1,type:"f32"}})}}),this.noise=c,this.seed=h??Math.random()}get noise(){return this.resources.noiseUniforms.uniforms.uNoise}set noise(e){this.resources.noiseUniforms.uniforms.uNoise=e}get seed(){return this.resources.noiseUniforms.uniforms.uSeed}set seed(e){this.resources.noiseUniforms.uniforms.uSeed=e}};c.defaultOptions={noise:.5};let h=c;t.NoiseFilter=h},25999:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\nin vec2 vTextureCoord;\nin vec4 vColor;\n\nout vec4 finalColor;\n\nuniform float uNoise;\nuniform float uSeed;\nuniform sampler2D uTexture;\n\nfloat rand(vec2 co)\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main()\n{\n vec4 color = texture(uTexture, vTextureCoord);\n float randomValue = rand(gl_FragCoord.xy * 0.2);\n float diff = (randomValue - 0.5) * 0.5;\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n finalColor = color;\n}\n"},24310:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="\n\nstruct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4,\n};\n\nstruct NoiseUniforms {\n uNoise:f32,\n uSeed:f32,\n};\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var noiseUniforms : NoiseUniforms;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getSize() -> vec2\n{\n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition)\n );\n}\n\nfn rand(co:vec2) -> f32\n{\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\n\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var pixelPosition = globalTextureCoord(position.xy);// / (getSize());//- gfu.uOutputFrame.xy);\n \n \n var sample = textureSample(uTexture, uSampler, uv);\n var randomValue = rand(pixelPosition.xy * noiseUniforms.uSeed);\n var diff = (randomValue - 0.5) * noiseUniforms.uNoise;\n \n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (sample.a > 0.0) {\n sample.r /= sample.a;\n sample.g /= sample.a;\n sample.b /= sample.a;\n }\n\n sample.r += diff;\n sample.g += diff;\n sample.b += diff;\n\n // Premultiply alpha again.\n sample.r *= sample.a;\n sample.g *= sample.a;\n sample.b *= sample.a;\n \n return sample;\n}"},33430:function(e,t,r){"use strict";var n=r(81210),i=r(57422),s=r(79474),o=r(77047),a=r(82510),u=r(27657),l=r(58758),c=r(29028),h=r(713),d=r(40806),p=r(3824),f=r(41012),m=r(43795),g=r(95547),_=r(44023),x=r(71210),b=r(85644),y=r(24516),v=r(24745),T=r(70475),S=r(40265),E=r(53784),A=r(26508),P=r(85860),M=r(90588),R=r(6857),w=r(15255),B=r(62494),G=r(41792),C=r(85001),F=r(33610),D=r(25044),O=r(25999),I=r(24310),U=r(20018),L=r(98955),k=r(40059);t.BlendModeFilter=n.BlendModeFilter,t.hslgl=i.hslgl,t.hslgpu=s.hslgpu,t.AlphaFilter=o.AlphaFilter,t.BlurFilter=a.BlurFilter,t.BlurFilterPass=u.BlurFilterPass,t.GAUSSIAN_VALUES=l.GAUSSIAN_VALUES,t.generateBlurFragSource=c.generateBlurFragSource,t.generateBlurGlProgram=h.generateBlurGlProgram,t.generateBlurVertSource=d.generateBlurVertSource,t.generateBlurProgram=p.generateBlurProgram,t.ColorMatrixFilter=f.ColorMatrixFilter,t.DisplacementFilter=m.DisplacementFilter,t.NoiseFilter=g.NoiseFilter,t.Filter=_.Filter,t.FilterEffect=x.FilterEffect,t.FilterPipe=b.FilterPipe,t.FilterSystem=y.FilterSystem,t.MaskFilter=v.MaskFilter,t.blendTemplateFrag=T.default,t.blendTemplateVert=S.default,t.blendTemplateWgsl=E.default,t.hslWgsl=A.default,t.alphaFrag=P.default,t.alphaWgsl=M.default,t.blurTemplateWgsl=R.default,t.colorMatrixFilterFrag=w.default,t.colorMatrixFilterWgsl=B.default,t.defaultFilterVert=G.default,t.displacementFrag=C.default,t.displacementVert=F.default,t.displacementWgsl=D.default,t.noiseFrag=O.default,t.noiseWgsl=I.default,t.maskFrag=U.default,t.maskVert=L.default,t.maskWgsl=k.default},72400:function(e,t,r){"use strict";var n=r(17073),i=r(85644),s=r(24516);n.extensions.add(s.FilterSystem),n.extensions.add(i.FilterPipe)},24745:function(e,t,r){"use strict";var n=r(15685),i=r(62991),s=r(50543),o=r(65518),a=r(94058),u=r(44023),l=r(20018),c=r(98955),h=r(40059);class d extends u.Filter{constructor(e){const{sprite:t,...r}=e,u=new a.TextureMatrix(t.texture),d=new o.UniformGroup({uFilterMatrix:{value:new n.Matrix,type:"mat3x3"},uMaskClamp:{value:u.uClampFrame,type:"vec4"},uAlpha:{value:1,type:"f32"}});super({...r,gpuProgram:s.GpuProgram.from({vertex:{source:h.default,entryPoint:"mainVertex"},fragment:{source:h.default,entryPoint:"mainFragment"}}),glProgram:i.GlProgram.from({vertex:c.default,fragment:l.default,name:"mask-filter"}),resources:{filterUniforms:d,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=u}apply(e,t,r,n){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,r,n)}}t.MaskFilter=d},20018:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 vMaskCoord;\nin vec2 vTextureCoord;\n\nuniform sampler2D uTexture;\nuniform sampler2D uMaskTexture;\n\nuniform float uAlpha;\nuniform vec4 uMaskClamp;\n\nout vec4 finalColor;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(uMaskClamp.x, vMaskCoord.x) +\n step(uMaskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, uMaskClamp.z) +\n step(vMaskCoord.y, uMaskClamp.w));\n\n // TODO look into why this is needed\n float npmAlpha = uAlpha; \n vec4 original = texture(uTexture, vTextureCoord);\n vec4 masky = texture(uMaskTexture, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * uAlpha * clip);\n\n finalColor = original;\n}\n"},98955:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="in vec2 aPosition;\n\nout vec2 vTextureCoord;\nout vec2 vMaskCoord;\n\n\nuniform vec4 uInputSize;\nuniform vec4 uOutputFrame;\nuniform vec4 uOutputTexture;\nuniform mat3 uFilterMatrix;\n\nvec4 filterVertexPosition( vec2 aPosition )\n{\n vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n \n position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( vec2 aPosition )\n{\n return aPosition * (uOutputFrame.zw * uInputSize.zw);\n}\n\nvec2 getFilterCoord( vec2 aPosition )\n{\n return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n} \n\nvoid main(void)\n{\n gl_Position = filterVertexPosition(aPosition);\n vTextureCoord = filterTextureCoord(aPosition);\n vMaskCoord = getFilterCoord(aPosition);\n}\n"},40059:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default="struct GlobalFilterUniforms {\n uInputSize:vec4,\n uInputPixel:vec4,\n uInputClamp:vec4,\n uOutputFrame:vec4,\n uGlobalFrame:vec4,\n uOutputTexture:vec4, \n};\n\nstruct MaskUniforms {\n uFilterMatrix:mat3x3,\n uMaskClamp:vec4,\n uAlpha:f32,\n};\n\n\n@group(0) @binding(0) var gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d;\n@group(0) @binding(2) var uSampler : sampler;\n\n@group(1) @binding(0) var filterUniforms : MaskUniforms;\n@group(1) @binding(1) var uMaskTexture: texture_2d;\n\nstruct VSOutput {\n @builtin(position) position: vec4,\n @location(0) uv : vec2,\n @location(1) filterUv : vec2,\n };\n\nfn filterVertexPosition(aPosition:vec2) -> vec4\n{\n var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2 ) -> vec2\n{\n return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2 ) -> vec2\n{\n return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw); \n}\n\nfn getFilterCoord(aPosition:vec2 ) -> vec2\n{\n return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;\n}\n\nfn getSize() -> vec2\n{\n\n \n return gfu.uGlobalFrame.zw;\n}\n \n@vertex\nfn mainVertex(\n @location(0) aPosition : vec2, \n) -> VSOutput {\n return VSOutput(\n filterVertexPosition(aPosition),\n filterTextureCoord(aPosition),\n getFilterCoord(aPosition)\n );\n}\n\n@fragment\nfn mainFragment(\n @location(0) uv: vec2,\n @location(1) filterUv: vec2,\n @builtin(position) position: vec4\n) -> @location(0) vec4 {\n\n var maskClamp = filterUniforms.uMaskClamp;\n\n var clip = step(3.5,\n step(maskClamp.x, filterUv.x) +\n step(maskClamp.y, filterUv.y) +\n step(filterUv.x, maskClamp.z) +\n step(filterUv.y, maskClamp.w));\n\n var mask = textureSample(uMaskTexture, uSampler, filterUv);\n var source = textureSample(uTexture, uSampler, uv);\n \n var npmAlpha = 0.0;\n\n var alphaMul = 1.0 - npmAlpha * (1.0 - mask.a);\n\n var a = (alphaMul * mask.r) * clip;\n\n return vec4(source.rgb, source.a) * a;\n}"},58687:function(e,t,r){"use strict";var n=r(59759),i=r(147),s=r(17073);r(55063),r(55102),r(46807),r(24217),r(58305),r(98430),r(77235),r(80385),r(76143),r(9653),r(38496),r(59868),r(14073),r(46569),r(33430),r(45517),r(79878),r(12878),r(6514),r(95991),r(42508),r(34005);var o=r(96480),a=r(49507),u=r(43931),l=r(20607),c=r(96755),h=r(12488),d=r(56442),p=r(97914),f=r(64909),m=r(26004),g=r(92219),_=r(31660),x=r(34412),b=r(24258),y=r(93040),v=r(63846),T=r(61843),S=r(98815),E=r(37976),A=r(47864),P=r(70922),M=r(56697),R=r(89660),w=r(38531),B=r(45747),G=r(81729),C=r(18800),F=r(45724),D=r(56509),O=r(62392),I=r(58433),U=r(28881),L=r(55673),k=r(62972),N=r(36214),X=r(17178),H=r(11560),z=r(44994),V=r(32181),W=r(8774),Y=r(20246),q=r(20763),$=r(76529),j=r(80428),K=r(27273),Z=r(13189),Q=r(64822),J=r(76836),ee=r(6195),te=r(34361),re=r(95997),ne=r(73036),ie=r(90206),se=r(5866),oe=r(90973),ae=r(42196),ue=r(82493),le=r(58778),ce=r(25917),he=r(49728),de=r(31166),pe=r(2383),fe=r(45031),me=r(94086),ge=r(95966),_e=r(69040),xe=r(55418),be=r(5566),ye=r(7451),ve=r(79531),Te=r(97051),Se=r(87976),Ee=r(41177),Ae=r(67172),Pe=r(54143),Me=r(48834),Re=r(12055),we=r(8198),Be=r(17125),Ge=r(56899),Ce=r(13320),Fe=r(1394),De=r(165),Oe=r(10051),Ie=r(42932),Ue=r(98182),Le=r(36484),ke=r(24306),Ne=r(41863),Xe=r(8599),He=r(5443),ze=r(49410),Ve=r(14235),We=r(19250),Ye=r(45345),qe=r(81483),$e=r(70475),je=r(40265),Ke=r(53784),Ze=r(26508),Qe=r(85860),Je=r(90588),et=r(6857),tt=r(15255),rt=r(62494),nt=r(41792),it=r(85001),st=r(33610),ot=r(25044),at=r(25999),ut=r(24310),lt=r(20018),ct=r(98955),ht=r(40059),dt=r(81210),pt=r(57422),ft=r(79474),mt=r(77047),gt=r(82510),_t=r(27657),xt=r(58758),bt=r(29028),yt=r(713),vt=r(40806),Tt=r(3824),St=r(41012),Et=r(43795),At=r(95547),Pt=r(44023),Mt=r(71210),Rt=r(85644),wt=r(24516),Bt=r(24745),Gt=r(81955),Ct=r(15685),Ft=r(29705),Dt=r(39018),Ot=r(28985),It=r(62792),Ut=r(26553),Lt=r(21778),kt=r(66736),Nt=r(58173),Xt=r(42181),Ht=r(66321),zt=r(69474),Vt=r(73940),Wt=r(3422),Yt=r(72780),qt=r(26116),$t=r(58578),jt=r(92247),Kt=r(93154),Zt=r(72459),Qt=r(33388),Jt=r(9803),er=r(87866),tr=r(33961),rr=r(74404),nr=r(11909),ir=r(21380),sr=r(42403),or=r(58674),ar=r(15183),ur=r(95233),lr=r(98319),cr=r(11206),hr=r(60079),dr=r(59615),pr=r(84215),fr=r(19209),mr=r(39320),gr=r(74813),_r=r(4116),xr=r(36114),br=r(48718),yr=r(14673),vr=r(50020),Tr=r(62579),Sr=r(81480),Er=r(32258),Ar=r(99022),Pr=r(33648),Mr=r(38782),Rr=r(17957),wr=r(4722),Br=r(85520),Gr=r(3839),Cr=r(7540),Fr=r(32985),Dr=r(36351),Or=r(96307),Ir=r(90493),Ur=r(42026),Lr=r(57066),kr=r(79211),Nr=r(45769),Xr=r(50264),Hr=r(4308),zr=r(9779),Vr=r(54346),Wr=r(62998),Yr=r(65706),qr=r(62991),$r=r(94230),jr=r(2071),Kr=r(53864),Zr=r(49245),Qr=r(27124),Jr=r(32377),en=r(71820),tn=r(61913),rn=r(3480),nn=r(3871),sn=r(51525),on=r(51895),an=r(6887),un=r(19336),ln=r(86380),cn=r(44135),hn=r(9778),dn=r(4023),pn=r(77944),fn=r(48142),mn=r(3553),gn=r(98121),_n=r(90708),xn=r(40074),bn=r(66171),yn=r(8279),vn=r(93199),Tn=r(40655),Sn=r(30290),En=r(52470),An=r(62123),Pn=r(35416),Mn=r(82953),Rn=r(75705),wn=r(53321),Bn=r(88588),Gn=r(84157),Cn=r(5020),Fn=r(51727),Dn=r(16310),On=r(59758),In=r(7358),Un=r(61435),Ln=r(98826),kn=r(71901),Nn=r(40736),Xn=r(30679),Hn=r(61265),zn=r(65586),Vn=r(32920),Wn=r(96150),Yn=r(4812),qn=r(93812),$n=r(50967),jn=r(91428),Kn=r(86136),Zn=r(9143),Qn=r(24628),Jn=r(83582),ei=r(50543),ti=r(25947),ri=r(41036),ni=r(84214),ii=r(29926),si=r(16126),oi=r(1513),ai=r(80863),ui=r(47242),li=r(79320),ci=r(53299),hi=r(81242),di=r(36826),pi=r(56042),fi=r(97394),mi=r(1956),gi=r(37135),_i=r(2766),xi=r(43213),bi=r(87929),yi=r(69264),vi=r(6852),Ti=r(69862),Si=r(21839),Ei=r(1793),Ai=r(18919),Pi=r(70766),Mi=r(95041),Ri=r(42310),wi=r(80163),Bi=r(33829),Gi=r(44307),Ci=r(84026),Fi=r(52783),Di=r(14740),Oi=r(54132),Ii=r(31540),Ui=r(54572),Li=r(11987),ki=r(33764),Ni=r(16952),Xi=r(3695),Hi=r(19450),zi=r(97505),Vi=r(6864),Wi=r(65518),Yi=r(1021),qi=r(90887),$i=r(63981),ji=r(46876),Ki=r(22334),Zi=r(56445),Qi=r(254),Ji=r(55141),es=r(95931),ts=r(62856),rs=r(17627),ns=r(60932),is=r(6121),ss=r(32064),os=r(7634),as=r(91525),us=r(68651),ls=r(75813),cs=r(27666),hs=r(62480),ds=r(84463),ps=r(95224),fs=r(94058),ms=r(38759),gs=r(44174),_s=r(92756),xs=r(95026),bs=r(40190),ys=r(34155),vs=r(55484),Ts=r(39394),Ss=r(6066),Es=r(60527),As=r(80177),Ps=r(2559),Ms=r(14786),Rs=r(91858),ws=r(9565),Bs=r(19025),Gs=r(47306),Cs=r(29541),Fs=r(5408),Ds=r(25136),Os=r(36695),Is=r(59009),Us=r(8125),Ls=r(36422),ks=r(84748),Ns=r(74599),Xs=r(2934),Hs=r(76713),zs=r(49341),Vs=r(9176),Ws=r(13056),Ys=r(15486),qs=r(58216),$s=r(12057),js=r(29409),Ks=r(6877),Zs=r(41482),Qs=r(82397),Js=r(55747),eo=r(89358),to=r(24417),ro=r(48496),no=r(65766),io=r(67589),so=r(81448),oo=r(76818),ao=r(77107),uo=r(46141),lo=r(76393),co=r(69169),ho=r(86570),po=r(92572),fo=r(67563),mo=r(76788),go=r(968),_o=r(57469),xo=r(53976),bo=r(64778),yo=r(88365),vo=r(37553),To=r(16315),So=r(69639),Eo=r(90537),Ao=r(2608),Po=r(20832),Mo=r(7639),Ro=r(84385),wo=r(26289),Bo=r(92248),Go=r(93940),Co=r(42892),Fo=r(60374),Do=r(97886),Oo=r(20593),Io=r(47464),Uo=r(92020),Lo=r(27574),ko=r(14313),No=r(14749),Xo=r(11291),Ho=r(65935),zo=r(45136),Vo=r(58507),Wo=r(86957),Yo=r(37086),qo=r(46525),$o=r(25784),jo=r(2600),Ko=r(76596),Zo=r(33449),Qo=r(87577),Jo=r(63522),ea=r(67919),ta=r(74839),ra=r(3857),na=r(42598),ia=r(20872),sa=r(44260),oa=r(50426),aa=r(22972),ua=r(10701),la=r(1894),ca=r(76887),ha=r(82556),da=r(88061),pa=r(17668),fa=r(45847),ma=r(10476),ga=r(91195),_a=r(80265),xa=r(43969),ba=r(22082),ya=r(30610),va=r(38513),Ta=r(54125),Sa=r(93968),Ea=r(2668),Aa=r(47308),Pa=r(73543),Ma=r(62074),Ra=r(46242),wa=r(27252),Ba=r(20628),Ga=r(23026),Ca=r(75761),Fa=r(85669),Da=r(11296),Oa=r(19790),Ia=r(89523),Ua=r(31030),La=r(76869),ka=r(58054),Na=r(61868),Xa=r(73602),Ha=r(34988),za=r(40206),Va=r(71424),Wa=r(62434),Ya=r(79517),qa=r(24328),$a=r(64597),ja=r(30705),Ka=r(89757),Za=r(65540),Qa=r(35292),Ja=r(63983),eu=r(31137),tu=r(86105),ru=r(2636),nu=r(57296),iu=r(58050),su=r(73533),ou=r(4037),au=r(50034),uu=r(54591),lu=r(5323),cu=r(39654),hu=r(78739),du=r(64293),pu=r(67200),fu=r(60094),mu=r(37277),gu=r(50469),_u=r(95190),xu=r(98449),bu=r(23522),yu=r(87876),vu=r(36491),Tu=r(82568),Su=r(86169),Eu=r(37087),Au=r(9187);s.extensions.add(n.browserExt,i.webworkerExt),t.browserExt=n.browserExt,t.webworkerExt=i.webworkerExt,t.ExtensionType=s.ExtensionType,t.extensions=s.extensions,t.normalizeExtensionPriority=s.normalizeExtensionPriority,t.AccessibilitySystem=o.AccessibilitySystem,t.accessibilityTarget=a.accessibilityTarget,t.ColorBlend=u.ColorBlend,t.ColorBurnBlend=l.ColorBurnBlend,t.ColorDodgeBlend=c.ColorDodgeBlend,t.DarkenBlend=h.DarkenBlend,t.DifferenceBlend=d.DifferenceBlend,t.DivideBlend=p.DivideBlend,t.ExclusionBlend=f.ExclusionBlend,t.HardLightBlend=m.HardLightBlend,t.HardMixBlend=g.HardMixBlend,t.LightenBlend=_.LightenBlend,t.LinearBurnBlend=x.LinearBurnBlend,t.LinearDodgeBlend=b.LinearDodgeBlend,t.LinearLightBlend=y.LinearLightBlend,t.LuminosityBlend=v.LuminosityBlend,t.NegationBlend=T.NegationBlend,t.OverlayBlend=S.OverlayBlend,t.PinLightBlend=E.PinLightBlend,t.SaturationBlend=A.SaturationBlend,t.SoftLightBlend=P.SoftLightBlend,t.SubtractBlend=M.SubtractBlend,t.VividLightBlend=R.VividLightBlend,t.Application=w.Application,t.ResizePlugin=B.ResizePlugin,t.TickerPlugin=G.TickerPlugin,t.Assets=C.Assets,t.AssetsClass=C.AssetsClass,t.BackgroundLoader=F.BackgroundLoader,t.Cache=D.Cache,t.cacheTextureArray=O.cacheTextureArray,t.detectAvif=I.detectAvif,t.detectDefaults=U.detectDefaults,t.detectMp4=L.detectMp4,t.detectOgv=k.detectOgv,t.detectWebm=N.detectWebm,t.detectWebp=X.detectWebp,t.testImageFormat=H.testImageFormat,t.testVideoFormat=z.testVideoFormat,t.Loader=V.Loader,t.LoaderParserPriority=W.LoaderParserPriority,t.loadJson=Y.loadJson,t.loadTxt=q.loadTxt,t.getFontFamilyName=$.getFontFamilyName,t.loadWebFont=$.loadWebFont,t.loadSvg=j.loadSvg,t.loadImageBitmap=K.loadImageBitmap,t.loadTextures=K.loadTextures,t.crossOrigin=Z.crossOrigin,t.determineCrossOrigin=Z.determineCrossOrigin,t.loadVideoTextures=Z.loadVideoTextures,t.preloadVideo=Z.preloadVideo,t.createTexture=Q.createTexture,t.WorkerManager=J.WorkerManager,t.resolveJsonUrl=ee.resolveJsonUrl,t.resolveTextureUrl=te.resolveTextureUrl,t.Resolver=re.Resolver,t.getUrlExtension=re.getUrlExtension,t.checkDataUrl=ne.checkDataUrl,t.checkExtension=ie.checkExtension,t.convertToList=se.convertToList,t.copySearchParams=oe.copySearchParams,t.createStringVariations=ae.createStringVariations,t.isSingleItem=ue.isSingleItem,t.Color=le.Color,t.detectBasis=ce.detectBasis,t.loadBasis=he.loadBasis,t.createLevelBuffers=de.createLevelBuffers,t.gpuFormatToBasisTranscoderFormat=pe.gpuFormatToBasisTranscoderFormat,t.basisTranscoderUrls=fe.basisTranscoderUrls,t.setBasisTranscoderPath=fe.setBasisTranscoderPath,t.loadBasisOnWorker=me.loadBasisOnWorker,t.DDS=ge.DDS,t.DXGI_TO_TEXTURE_FORMAT=ge.DXGI_TO_TEXTURE_FORMAT,t.FOURCC_TO_TEXTURE_FORMAT=ge.FOURCC_TO_TEXTURE_FORMAT,t.TEXTURE_FORMAT_BLOCK_SIZE=ge.TEXTURE_FORMAT_BLOCK_SIZE,t.loadDDS=_e.loadDDS,t.parseDDS=xe.parseDDS,t.loadKTX=be.loadKTX,t.parseKTX=ye.parseKTX,t.GL_INTERNAL_FORMAT=ve.GL_INTERNAL_FORMAT,t.KTX=ve.KTX,t.loadKTX2=Te.loadKTX2,t.convertFormatIfRequired=Se.convertFormatIfRequired,t.createLevelBuffersFromKTX=Ee.createLevelBuffersFromKTX,t.getTextureFormatFromKTXTexture=Ae.getTextureFormatFromKTXTexture,t.glFormatToGPUFormat=Pe.glFormatToGPUFormat,t.gpuFormatToKTXBasisTranscoderFormat=Me.gpuFormatToKTXBasisTranscoderFormat,t.ktxTranscoderUrls=Re.ktxTranscoderUrls,t.setKTXTranscoderPath=Re.setKTXTranscoderPath,t.vkFormatToGPUFormat=we.vkFormatToGPUFormat,t.loadKTX2onWorker=Be.loadKTX2onWorker,t.detectCompressed=Ge.detectCompressed,t.resolveCompressedTextureUrl=Ce.resolveCompressedTextureUrl,t.validFormats=Ce.validFormats,t.Culler=Fe.Culler,t.CullerPlugin=De.CullerPlugin,t.cullingMixin=Oe.cullingMixin,t.DOMAdapter=Ie.DOMAdapter,t.autoDetectEnvironment=Ue.autoDetectEnvironment,t.BrowserAdapter=Le.BrowserAdapter,t.WebWorkerAdapter=ke.WebWorkerAdapter,t.EventBoundary=Ne.EventBoundary,t.EventSystem=Xe.EventSystem,t.EventsTicker=He.EventsTicker,t.FederatedEvent=ze.FederatedEvent,t.FederatedContainer=Ve.FederatedContainer,t.FederatedMouseEvent=We.FederatedMouseEvent,t.FederatedPointerEvent=Ye.FederatedPointerEvent,t.FederatedWheelEvent=qe.FederatedWheelEvent,t.blendTemplateFrag=$e.default,t.blendTemplateVert=je.default,t.blendTemplateWgsl=Ke.default,t.hslWgsl=Ze.default,t.alphaFrag=Qe.default,t.alphaWgsl=Je.default,t.blurTemplateWgsl=et.default,t.colorMatrixFilterFrag=tt.default,t.colorMatrixFilterWgsl=rt.default,t.defaultFilterVert=nt.default,t.displacementFrag=it.default,t.displacementVert=st.default,t.displacementWgsl=ot.default,t.noiseFrag=at.default,t.noiseWgsl=ut.default,t.maskFrag=lt.default,t.maskVert=ct.default,t.maskWgsl=ht.default,t.BlendModeFilter=dt.BlendModeFilter,t.hslgl=pt.hslgl,t.hslgpu=ft.hslgpu,t.AlphaFilter=mt.AlphaFilter,t.BlurFilter=gt.BlurFilter,t.BlurFilterPass=_t.BlurFilterPass,t.GAUSSIAN_VALUES=xt.GAUSSIAN_VALUES,t.generateBlurFragSource=bt.generateBlurFragSource,t.generateBlurGlProgram=yt.generateBlurGlProgram,t.generateBlurVertSource=vt.generateBlurVertSource,t.generateBlurProgram=Tt.generateBlurProgram,t.ColorMatrixFilter=St.ColorMatrixFilter,t.DisplacementFilter=Et.DisplacementFilter,t.NoiseFilter=At.NoiseFilter,t.Filter=Pt.Filter,t.FilterEffect=Mt.FilterEffect,t.FilterPipe=Rt.FilterPipe,t.FilterSystem=wt.FilterSystem,t.MaskFilter=Bt.MaskFilter,t.groupD8=Gt.groupD8,t.Matrix=Ct.Matrix,t.DEG_TO_RAD=Ft.DEG_TO_RAD,t.PI_2=Ft.PI_2,t.RAD_TO_DEG=Ft.RAD_TO_DEG,t.isPow2=Dt.isPow2,t.log2=Dt.log2,t.nextPow2=Dt.nextPow2,t.squaredDistanceToLineSegment=Ot.squaredDistanceToLineSegment,t.ObservablePoint=It.ObservablePoint,t.Point=Ut.Point,t.Circle=Lt.Circle,t.Ellipse=kt.Ellipse,t.Polygon=Nt.Polygon,t.Rectangle=Xt.Rectangle,t.RoundedRectangle=Ht.RoundedRectangle,t.Triangle=zt.Triangle,t.PrepareBase=Vt.PrepareBase,t.PrepareQueue=Wt.PrepareQueue,t.PrepareSystem=Yt.PrepareSystem,t.PrepareUpload=qt.PrepareUpload,t.GlBatchAdaptor=$t.GlBatchAdaptor,t.BatchGeometry=jt.BatchGeometry,t.generateGPULayout=Kt.generateGPULayout,t.generateLayout=Zt.generateLayout,t.getTextureBatchBindGroup=Qt.getTextureBatchBindGroup,t.GpuBatchAdaptor=Jt.GpuBatchAdaptor,t.Batch=er.Batch,t.Batcher=er.Batcher,t.BatcherPipe=tr.BatcherPipe,t.BatchTextureArray=rr.BatchTextureArray,t.MAX_TEXTURES=nr.MAX_TEXTURES,t.compileHighShaderGlProgram=ir.compileHighShaderGlProgram,t.compileHighShaderGpuProgram=ir.compileHighShaderGpuProgram,t.compileHighShader=sr.compileHighShader,t.compileHighShaderGl=sr.compileHighShaderGl,t.addBits=or.addBits,t.compileHooks=ar.compileHooks,t.findHooksRx=ar.findHooksRx,t.compileInputs=ur.compileInputs,t.compileOutputs=lr.compileOutputs,t.formatShader=cr.formatShader,t.injectBits=hr.injectBits,t.fragmentGPUTemplate=dr.fragmentGPUTemplate,t.fragmentGlTemplate=dr.fragmentGlTemplate,t.vertexGPUTemplate=dr.vertexGPUTemplate,t.vertexGlTemplate=dr.vertexGlTemplate,t.colorBit=pr.colorBit,t.colorBitGl=pr.colorBitGl,t.generateTextureBatchBit=fr.generateTextureBatchBit,t.generateTextureBatchBitGl=fr.generateTextureBatchBitGl,t.globalUniformsBit=mr.globalUniformsBit,t.globalUniformsBitGl=mr.globalUniformsBitGl,t.globalUniformsUBOBitGl=mr.globalUniformsUBOBitGl,t.localUniformBit=gr.localUniformBit,t.localUniformBitGl=gr.localUniformBitGl,t.localUniformBitGroup2=gr.localUniformBitGroup2,t.roundPixelsBit=_r.roundPixelsBit,t.roundPixelsBitGl=_r.roundPixelsBitGl,t.textureBit=xr.textureBit,t.textureBitGl=xr.textureBitGl,t.AlphaMask=br.AlphaMask,t.AlphaMaskPipe=yr.AlphaMaskPipe,t.ColorMask=vr.ColorMask,t.ColorMaskPipe=Tr.ColorMaskPipe,t.MaskEffectManager=Sr.MaskEffectManager,t.MaskEffectManagerClass=Sr.MaskEffectManagerClass,t.ScissorMask=Er.ScissorMask,t.StencilMask=Ar.StencilMask,t.StencilMaskPipe=Pr.StencilMaskPipe,t.addMaskBounds=Mr.addMaskBounds,t.addMaskLocalBounds=Rr.addMaskLocalBounds,t.getMatrixRelativeToParent=Rr.getMatrixRelativeToParent,t.autoDetectRenderer=wr.autoDetectRenderer,t.BUFFER_TYPE=Br.BUFFER_TYPE,t.GlBuffer=Gr.GlBuffer,t.GlBufferSystem=Cr.GlBufferSystem,t.CLEAR=Fr.CLEAR,t.GlContextSystem=Dr.GlContextSystem,t.GlGeometrySystem=Or.GlGeometrySystem,t.getGlTypeFromFormat=Ir.getGlTypeFromFormat,t.GlBackBufferSystem=Ur.GlBackBufferSystem,t.GlColorMaskSystem=Lr.GlColorMaskSystem,t.GlEncoderSystem=kr.GlEncoderSystem,t.GlRenderTarget=Nr.GlRenderTarget,t.GlStencilSystem=Xr.GlStencilSystem,t.GlUboSystem=Hr.GlUboSystem,t.GlRenderTargetAdaptor=zr.GlRenderTargetAdaptor,t.GlRenderTargetSystem=Vr.GlRenderTargetSystem,t.batchSamplersUniformGroup=Wr.batchSamplersUniformGroup,t.generateShaderSyncCode=Yr.generateShaderSyncCode,t.GlProgram=qr.GlProgram,t.GlProgramData=$r.GlProgramData,t.IGLUniformData=$r.IGLUniformData,t.GlShaderSystem=jr.GlShaderSystem,t.GlUniformGroupSystem=Kr.GlUniformGroupSystem,t.migrateFragmentFromV7toV8=Zr.migrateFragmentFromV7toV8,t.compileShader=Qr.compileShader,t.defaultValue=Jr.defaultValue,t.ensureAttributes=en.ensureAttributes,t.extractAttributesFromGlProgram=tn.extractAttributesFromGlProgram,t.generateProgram=rn.generateProgram,t.getMaxFragmentPrecision=nn.getMaxFragmentPrecision,t.getTestContext=sn.getTestContext,t.getUboData=on.getUboData,t.getUniformData=an.getUniformData,t.logProgramError=un.logProgramError,t.mapSize=ln.mapSize,t.mapGlToVertexFormat=cn.mapGlToVertexFormat,t.mapType=cn.mapType,t.addProgramDefines=hn.addProgramDefines,t.ensurePrecision=dn.ensurePrecision,t.insertVersion=pn.insertVersion,t.setProgramName=fn.setProgramName,t.stripVersion=mn.stripVersion,t.WGSL_TO_STD40_SIZE=gn.WGSL_TO_STD40_SIZE,t.createUboElementsSTD40=gn.createUboElementsSTD40,t.createUboSyncFunctionSTD40=_n.createUboSyncFunctionSTD40,t.generateArraySyncSTD40=xn.generateArraySyncSTD40,t.generateUniformsSync=bn.generateUniformsSync,t.UNIFORM_TO_ARRAY_SETTERS=yn.UNIFORM_TO_ARRAY_SETTERS,t.UNIFORM_TO_SINGLE_SETTERS=yn.UNIFORM_TO_SINGLE_SETTERS,t.GlStateSystem=vn.GlStateSystem,t.mapWebGLBlendModesToPixi=Tn.mapWebGLBlendModesToPixi,t.GL_FORMATS=Sn.GL_FORMATS,t.GL_TARGETS=Sn.GL_TARGETS,t.GL_TYPES=Sn.GL_TYPES,t.GL_WRAP_MODES=Sn.GL_WRAP_MODES,t.GlTexture=En.GlTexture,t.GlTextureSystem=An.GlTextureSystem,t.glUploadBufferImageResource=Pn.glUploadBufferImageResource,t.glUploadCompressedTextureResource=Mn.glUploadCompressedTextureResource,t.glUploadImageResource=Rn.glUploadImageResource,t.glUploadVideoResource=wn.glUploadVideoResource,t.applyStyleParams=Bn.applyStyleParams,t.getSupportedGlCompressedTextureFormats=Gn.getSupportedGlCompressedTextureFormats,t.mapFormatToGlFormat=Cn.mapFormatToGlFormat,t.mapFormatToGlInternalFormat=Fn.mapFormatToGlInternalFormat,t.mapFormatToGlType=Dn.mapFormatToGlType,t.compareModeToGlCompare=On.compareModeToGlCompare,t.mipmapScaleModeToGlFilter=On.mipmapScaleModeToGlFilter,t.scaleModeToGlFilter=On.scaleModeToGlFilter,t.wrapModeToGlAddress=On.wrapModeToGlAddress,t.unpremultiplyAlpha=In.unpremultiplyAlpha,t.WebGLRenderer=Un.WebGLRenderer,t.BindGroupSystem=Ln.BindGroupSystem,t.GpuBufferSystem=kn.GpuBufferSystem,t.GpuReadBuffer=Nn.GpuReadBuffer,t.UboBatch=Xn.UboBatch,t.GpuColorMaskSystem=Hn.GpuColorMaskSystem,t.GpuDeviceSystem=zn.GpuDeviceSystem,t.GpuEncoderSystem=Vn.GpuEncoderSystem,t.GpuStencilSystem=Wn.GpuStencilSystem,t.GpuUboSystem=Yn.GpuUboSystem,t.GpuUniformBatchPipe=qn.GpuUniformBatchPipe,t.PipelineSystem=$n.PipelineSystem,t.calculateProjection=jn.calculateProjection,t.GpuRenderTarget=Kn.GpuRenderTarget,t.GpuRenderTargetAdaptor=Zn.GpuRenderTargetAdaptor,t.GpuRenderTargetSystem=Qn.GpuRenderTargetSystem,t.BindGroup=Jn.BindGroup,t.GpuProgram=ei.GpuProgram,t.GpuShaderSystem=ti.GpuShaderSystem,t.WGSL_ALIGN_SIZE_DATA=ri.WGSL_ALIGN_SIZE_DATA,t.createUboElementsWGSL=ri.createUboElementsWGSL,t.createUboSyncFunctionWGSL=ni.createUboSyncFunctionWGSL,t.extractAttributesFromGpuProgram=ii.extractAttributesFromGpuProgram,t.extractStructAndGroups=si.extractStructAndGroups,t.generateArraySyncWGSL=oi.generateArraySyncWGSL,t.generateGpuLayoutGroups=ai.generateGpuLayoutGroups,t.generateLayoutHash=ui.generateLayoutHash,t.removeStructAndGroupDuplicates=li.removeStructAndGroupDuplicates,t.GpuBlendModesToPixi=ci.GpuBlendModesToPixi,t.GpuStateSystem=hi.GpuStateSystem,t.GpuStencilModesToPixi=di.GpuStencilModesToPixi,t.GpuTextureSystem=pi.GpuTextureSystem,t.gpuUploadBufferImageResource=fi.gpuUploadBufferImageResource,t.blockDataMap=mi.blockDataMap,t.gpuUploadCompressedTextureResource=mi.gpuUploadCompressedTextureResource,t.gpuUploadImageResource=gi.gpuUploadImageResource,t.gpuUploadVideoResource=_i.gpuUploadVideoResource,t.getSupportedGPUCompressedTextureFormats=xi.getSupportedGPUCompressedTextureFormats,t.GpuMipmapGenerator=bi.GpuMipmapGenerator,t.WebGPURenderer=yi.WebGPURenderer,t.BackgroundSystem=vi.BackgroundSystem,t.BlendModePipe=Ti.BlendModePipe,t.Buffer=Si.Buffer,t.BufferResource=Ei.BufferResource,t.BufferUsage=Ai.BufferUsage,t.fastCopy=Pi.fastCopy,t.ExtractSystem=Mi.ExtractSystem,t.GenerateTextureSystem=Ri.GenerateTextureSystem,t.DRAW_MODES=wi.DRAW_MODES,t.Geometry=Bi.Geometry,t.buildSimpleUvs=Gi.buildSimpleUvs,t.buildUvs=Gi.buildUvs,t.ensureIsBuffer=Ci.ensureIsBuffer,t.getAttributeInfoFromFormat=Fi.getAttributeInfoFromFormat,t.getGeometryBounds=Di.getGeometryBounds,t.transformVertices=Oi.transformVertices,t.InstructionSet=Ii.InstructionSet,t.GlobalUniformSystem=Ui.GlobalUniformSystem,t.isRenderingToScreen=Li.isRenderingToScreen,t.RenderTarget=ki.RenderTarget,t.RenderTargetSystem=Ni.RenderTargetSystem,t.viewportFromFrame=Xi.viewportFromFrame,t.ShaderStage=Hi.ShaderStage,t.Shader=zi.Shader,t.UboSystem=Vi.UboSystem,t.UniformGroup=Wi.UniformGroup,t.createUboSyncFunction=Yi.createUboSyncFunction,t.getDefaultUniformValue=qi.getDefaultUniformValue,t.uboSyncFunctionsSTD40=$i.uboSyncFunctionsSTD40,t.uboSyncFunctionsWGSL=$i.uboSyncFunctionsWGSL,t.uniformParsers=ji.uniformParsers,t.HelloSystem=Ki.HelloSystem,t.BLEND_TO_NPM=Zi.BLEND_TO_NPM,t.STENCIL_MODES=Zi.STENCIL_MODES,t.getAdjustedBlendModeBlend=Qi.getAdjustedBlendModeBlend,t.State=Ji.State,t.AbstractRenderer=es.AbstractRenderer,t.SharedRenderPipes=ts.SharedRenderPipes,t.SharedSystems=ts.SharedSystems,t.SystemRunner=rs.SystemRunner,t.CanvasPool=ns.CanvasPool,t.CanvasPoolClass=ns.CanvasPoolClass,t.DEPRECATED_SCALE_MODES=is.DEPRECATED_SCALE_MODES,t.DEPRECATED_WRAP_MODES=is.DEPRECATED_WRAP_MODES,t.MSAA_QUALITY=is.MSAA_QUALITY,t.SCALE_MODES=is.SCALE_MODES,t.WRAP_MODES=is.WRAP_MODES,t.RenderTexture=ss.RenderTexture,t.BufferImageSource=os.BufferImageSource,t.CanvasSource=as.CanvasSource,t.CompressedSource=us.CompressedSource,t.ImageSource=ls.ImageSource,t.TextureSource=cs.TextureSource,t.VideoSource=hs.VideoSource,t.Texture=ds.Texture,t.TextureGCSystem=ps.TextureGCSystem,t.TextureMatrix=fs.TextureMatrix,t.TexturePool=ms.TexturePool,t.TexturePoolClass=ms.TexturePoolClass,t.TextureStyle=gs.TextureStyle,t.TextureUvs=_s.TextureUvs,t.generateUID=xs.generateUID,t.getCanvasTexture=bs.getCanvasTexture,t.hasCachedCanvasTexture=bs.hasCachedCanvasTexture,t.getSupportedCompressedTextureFormats=ys.getSupportedCompressedTextureFormats,t.getSupportedTextureFormats=vs.getSupportedTextureFormats,t.nonCompressedFormats=vs.nonCompressedFormats,t.autoDetectSource=Ts.autoDetectSource,t.resourceToTexture=Ts.resourceToTexture,t.textureFrom=Ts.textureFrom,t.createIdFromString=Ss.createIdFromString,t.parseFunctionBody=Es.parseFunctionBody,t.ViewSystem=As.ViewSystem,t.RendererType=Ps.RendererType,t.Bounds=Ms.Bounds,t._getGlobalBoundsRecursive=Rs._getGlobalBoundsRecursive,t.getFastGlobalBounds=Rs.getFastGlobalBounds,t._getGlobalBounds=ws._getGlobalBounds,t.getGlobalBounds=ws.getGlobalBounds,t.updateTransformBackwards=ws.updateTransformBackwards,t.getLocalBounds=Bs.getLocalBounds,t.getParent=Bs.getParent,t.getGlobalRenderableBounds=Gs.getGlobalRenderableBounds,t.boundsPool=Cs.boundsPool,t.matrixPool=Cs.matrixPool,t.childrenHelperMixin=Fs.childrenHelperMixin,t.effectsMixin=Ds.effectsMixin,t.findMixin=Os.findMixin,t.measureMixin=Is.measureMixin,t.onRenderMixin=Us.onRenderMixin,t.sortMixin=Ls.sortMixin,t.toLocalGlobalMixin=ks.toLocalGlobalMixin,t.Container=Ns.Container,t.UPDATE_BLEND=Ns.UPDATE_BLEND,t.UPDATE_COLOR=Ns.UPDATE_COLOR,t.UPDATE_TRANSFORM=Ns.UPDATE_TRANSFORM,t.UPDATE_VISIBLE=Ns.UPDATE_VISIBLE,t.CustomRenderPipe=Xs.CustomRenderPipe,t.RenderContainer=Hs.RenderContainer,t.RenderGroup=zs.RenderGroup,t.RenderGroupPipe=Vs.RenderGroupPipe,t.RenderGroupSystem=Ws.RenderGroupSystem,t.assignWithIgnore=Ys.assignWithIgnore,t.buildInstructions=qs.buildInstructions,t.collectAllRenderables=qs.collectAllRenderables,t.checkChildrenDidChange=$s.checkChildrenDidChange,t.collectRenderGroups=js.collectRenderGroups,t.definedProps=Ks.definedProps,t.executeInstructions=Zs.executeInstructions,t.mixColors=Qs.mixColors,t.mixStandardAnd32BitColors=Qs.mixStandardAnd32BitColors,t.mixHexColors=Js.mixHexColors,t.multiplyHexColors=eo.multiplyHexColors,t.updateLocalTransform=to.updateLocalTransform,t.updateRenderGroupTransform=ro.updateRenderGroupTransform,t.updateRenderGroupTransforms=ro.updateRenderGroupTransforms,t.updateTransformAndChildren=ro.updateTransformAndChildren,t.updateWorldTransform=no.updateWorldTransform,t.validateRenderables=io.validateRenderables,t.GlGraphicsAdaptor=so.GlGraphicsAdaptor,t.color32BitToUniform=oo.color32BitToUniform,t.colorToUniform=oo.colorToUniform,t.GpuGraphicsAdaptor=ao.GpuGraphicsAdaptor,t.BatchableGraphics=uo.BatchableGraphics,t.buildAdaptiveBezier=lo.buildAdaptiveBezier,t.buildAdaptiveQuadratic=co.buildAdaptiveQuadratic,t.buildArc=ho.buildArc,t.buildArcTo=po.buildArcTo,t.buildArcToSvg=fo.buildArcToSvg,t.buildCircle=mo.buildCircle,t.buildLine=go.buildLine,t.buildPolygon=_o.buildPolygon,t.buildRectangle=xo.buildRectangle,t.buildTriangle=bo.buildTriangle,t.closePointEps=yo.closePointEps,t.curveEps=yo.curveEps,t.FillGradient=vo.FillGradient,t.FillPattern=To.FillPattern,t.Graphics=So.Graphics,t.GraphicsContext=Eo.GraphicsContext,t.GpuGraphicsContext=Ao.GpuGraphicsContext,t.GraphicsContextRenderData=Ao.GraphicsContextRenderData,t.GraphicsContextSystem=Ao.GraphicsContextSystem,t.GraphicsPipe=Po.GraphicsPipe,t.GraphicsPath=Mo.GraphicsPath,t.roundedShapeArc=Ro.roundedShapeArc,t.roundedShapeQuadraticCurve=Ro.roundedShapeQuadraticCurve,t.ShapePath=wo.ShapePath,t.SVGParser=Bo.SVGParser,t.SVGToGraphicsPath=Go.SVGToGraphicsPath,t.buildContextBatches=Co.buildContextBatches,t.buildGeometryFromPath=Fo.buildGeometryFromPath,t.convertFillInputToFillStyle=Do.convertFillInputToFillStyle,t.getOrientationOfPoints=Oo.getOrientationOfPoints,t.triangulateWithHoles=Io.triangulateWithHoles,t.MeshPlane=Uo.MeshPlane,t.PlaneGeometry=Lo.PlaneGeometry,t.MeshRope=ko.MeshRope,t.MeshSimple=No.MeshSimple,t.RopeGeometry=Xo.RopeGeometry,t.GlMeshAdaptor=Ho.GlMeshAdaptor,t.GpuMeshAdapter=zo.GpuMeshAdapter,t.BatchableMesh=Vo.BatchableMesh,t.getTextureDefaultMatrix=Wo.getTextureDefaultMatrix,t.Mesh=Yo.Mesh,t.MeshGeometry=qo.MeshGeometry,t.MeshPipe=$o.MeshPipe,t.AnimatedSprite=jo.AnimatedSprite,t.NineSliceGeometry=Ko.NineSliceGeometry,t.NineSlicePlane=Zo.NineSlicePlane,t.NineSliceSprite=Zo.NineSliceSprite,t.NineSliceSpritePipe=Qo.NineSliceSpritePipe,t.tilingBit=Jo.tilingBit,t.tilingBitGl=Jo.tilingBitGl,t.TilingSpriteShader=ea.TilingSpriteShader,t.TilingSprite=ta.TilingSprite,t.TilingSpritePipe=ra.TilingSpritePipe,t.applyMatrix=na.applyMatrix,t.QuadGeometry=ia.QuadGeometry,t.setPositions=sa.setPositions,t.setUvs=oa.setUvs,t.BatchableSprite=aa.BatchableSprite,t.Sprite=ua.Sprite,t.SpritePipe=la.SpritePipe,t.AbstractBitmapFont=ca.AbstractBitmapFont,t.bitmapFontTextParser=ha.bitmapFontTextParser,t.bitmapFontXMLParser=da.bitmapFontXMLParser,t.bitmapFontXMLStringParser=pa.bitmapFontXMLStringParser,t.bitmapFontCachePlugin=fa.bitmapFontCachePlugin,t.loadBitmapFont=fa.loadBitmapFont,t.BitmapFont=ma.BitmapFont,t.BitmapFontManager=ga.BitmapFontManager,t.BitmapText=_a.BitmapText,t.BitmapTextPipe=xa.BitmapTextPipe,t.DynamicBitmapFont=ba.DynamicBitmapFont,t.getBitmapTextLayout=ya.getBitmapTextLayout,t.resolveCharacters=va.resolveCharacters,t.HTMLText=Ta.HTMLText,t.HTMLTextPipe=Sa.HTMLTextPipe,t.HTMLTextRenderData=Ea.HTMLTextRenderData,t.nssvg=Ea.nssvg,t.nsxhtml=Ea.nsxhtml,t.HTMLTextStyle=Aa.HTMLTextStyle,t.HTMLTextSystem=Pa.HTMLTextSystem,t.extractFontFamilies=Ma.extractFontFamilies,t.FontStylePromiseCache=Ra.FontStylePromiseCache,t.getFontCss=Ra.getFontCss,t.getSVGUrl=wa.getSVGUrl,t.getTemporaryCanvasFromImage=Ba.getTemporaryCanvasFromImage,t.loadFontAsBase64=Ga.loadFontAsBase64,t.loadFontCSS=Ca.loadFontCSS,t.loadSVGImage=Fa.loadSVGImage,t.measureHtmlText=Da.measureHtmlText,t.textStyleToCSS=Oa.textStyleToCSS,t.AbstractText=Ia.AbstractText,t.ensureOptions=Ia.ensureOptions,t.CanvasTextMetrics=Ua.CanvasTextMetrics,t.CanvasTextPipe=La.CanvasTextPipe,t.CanvasTextSystem=ka.CanvasTextSystem,t.fontStringFromTextStyle=Na.fontStringFromTextStyle,t.getCanvasFillStyle=Xa.getCanvasFillStyle,t.SdfShader=Ha.SdfShader,t.localUniformMSDFBit=za.localUniformMSDFBit,t.localUniformMSDFBitGl=za.localUniformMSDFBitGl,t.mSDFBit=Va.mSDFBit,t.mSDFBitGl=Va.mSDFBitGl,t.Text=Wa.Text,t.TextStyle=Ya.TextStyle,t.ensureTextStyle=qa.ensureTextStyle,t.generateTextStyleKey=$a.generateTextStyleKey,t.getPo2TextureFromSource=ja.getPo2TextureFromSource,t.Spritesheet=Ka.Spritesheet,t.spritesheetAsset=Za.spritesheetAsset,t.UPDATE_PRIORITY=Qa.UPDATE_PRIORITY,t.Ticker=Ja.Ticker,t.TickerListener=eu.TickerListener,t.detectVideoAlphaMode=tu.detectVideoAlphaMode,t.isMobile=ru.isMobile,t.isSafari=nu.isSafari,t.isWebGLSupported=iu.isWebGLSupported,t.isWebGPUSupported=su.isWebGPUSupported,t.unsafeEvalSupported=ou.unsafeEvalSupported,t.getCanvasBoundingBox=au.getCanvasBoundingBox,t.DATA_URI=uu.DATA_URI,t.EventEmitter=lu,t.removeItems=cu.removeItems,t.resetUids=hu.resetUids,t.uid=hu.uid,t.updateQuadBounds=du.updateQuadBounds,t.ViewableBuffer=pu.ViewableBuffer,t.deprecation=fu.deprecation,t.v8_0_0=fu.v8_0_0,t.logDebugTexture=mu.logDebugTexture,t.logRenderGroupScene=gu.logRenderGroupScene,t.logScene=gu.logScene,t.warn=_u.warn,t.NOOP=xu.NOOP,t.Transform=bu.Transform,t.getResolutionOfUrl=yu.getResolutionOfUrl,t.path=vu.path,t.Pool=Tu.Pool,t.BigPool=Su.BigPool,t.PoolGroupClass=Su.PoolGroupClass,t.VERSION=Eu.VERSION,t.sayHello=Eu.sayHello,t.earcut=Au},45517:function(e,t,r){"use strict";var n=r(81955),i=r(15685),s=r(29705),o=r(39018);r(2601);var a=r(28985),u=r(62792),l=r(26553);r(37471),r(80643);var c=r(21778),h=r(66736),d=r(58173),p=r(42181),f=r(66321);r(51851);var m=r(69474);t.groupD8=n.groupD8,t.Matrix=i.Matrix,t.DEG_TO_RAD=s.DEG_TO_RAD,t.PI_2=s.PI_2,t.RAD_TO_DEG=s.RAD_TO_DEG,t.isPow2=o.isPow2,t.log2=o.log2,t.nextPow2=o.nextPow2,t.squaredDistanceToLineSegment=a.squaredDistanceToLineSegment,t.ObservablePoint=u.ObservablePoint,t.Point=l.Point,t.Circle=c.Circle,t.Ellipse=h.Ellipse,t.Polygon=d.Polygon,t.Rectangle=p.Rectangle,t.RoundedRectangle=f.RoundedRectangle,t.Triangle=m.Triangle},15685:function(e,t,r){"use strict";var n=r(29705),i=r(26553);class s{constructor(e=1,t=0,r=0,n=1,i=0,s=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=n,this.tx=i,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,n,i,s){return this.a=e,this.b=t,this.c=r,this.d=n,this.tx=i,this.ty=s,this}toArray(e,t){this.array||(this.array=new Float32Array(9));const r=t||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,t){t=t||new i.Point;const r=e.x,n=e.y;return t.x=this.a*r+this.c*n+this.tx,t.y=this.b*r+this.d*n+this.ty,t}applyInverse(e,t){t=t||new i.Point;const r=this.a,n=this.b,s=this.c,o=this.d,a=this.tx,u=this.ty,l=1/(r*o+s*-n),c=e.x,h=e.y;return t.x=o*l*c+-s*l*h+(u*s-a*o)*l,t.y=r*l*h+-n*l*c+(-u*r+a*n)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){const t=Math.cos(e),r=Math.sin(e),n=this.a,i=this.c,s=this.tx;return this.a=n*t-this.b*r,this.b=n*r+this.b*t,this.c=i*t-this.d*r,this.d=i*r+this.d*t,this.tx=s*t-this.ty*r,this.ty=s*r+this.ty*t,this}append(e){const t=this.a,r=this.b,n=this.c,i=this.d;return this.a=e.a*t+e.b*n,this.b=e.a*r+e.b*i,this.c=e.c*t+e.d*n,this.d=e.c*r+e.d*i,this.tx=e.tx*t+e.ty*n+this.tx,this.ty=e.tx*r+e.ty*i+this.ty,this}appendFrom(e,t){const r=e.a,n=e.b,i=e.c,s=e.d,o=e.tx,a=e.ty,u=t.a,l=t.b,c=t.c,h=t.d;return this.a=r*u+n*c,this.b=r*l+n*h,this.c=i*u+s*c,this.d=i*l+s*h,this.tx=o*u+a*c+t.tx,this.ty=o*l+a*h+t.ty,this}setTransform(e,t,r,n,i,s,o,a,u){return this.a=Math.cos(o+u)*i,this.b=Math.sin(o+u)*i,this.c=-Math.sin(o-a)*s,this.d=Math.cos(o-a)*s,this.tx=e-(r*this.a+n*this.c),this.ty=t-(r*this.b+n*this.d),this}prepend(e){const t=this.tx;if(1!==e.a||0!==e.b||0!==e.c||1!==e.d){const t=this.a,r=this.c;this.a=t*e.a+this.b*e.c,this.b=t*e.b+this.b*e.d,this.c=r*e.a+this.d*e.c,this.d=r*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){const t=this.a,r=this.b,i=this.c,s=this.d,o=e.pivot,a=-Math.atan2(-i,s),u=Math.atan2(r,t),l=Math.abs(a+u);return l<1e-5||Math.abs(n.PI_2-l)<1e-5?(e.rotation=u,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=u),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(i*i+s*s),e.position.x=this.tx+(o.x*t+o.y*i),e.position.y=this.ty+(o.x*r+o.y*s),e}invert(){const e=this.a,t=this.b,r=this.c,n=this.d,i=this.tx,s=e*n-t*r;return this.a=n/s,this.b=-t/s,this.c=-r/s,this.d=e/s,this.tx=(r*this.ty-n*i)/s,this.ty=-(e*this.ty-t*i)/s,this}isIdentity(){return 1===this.a&&0===this.b&&0===this.c&&1===this.d&&0===this.tx&&0===this.ty}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new s;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return a.identity()}static get shared(){return o.identity()}}const o=new s,a=new s;t.Matrix=s},81955:function(e,t,r){"use strict";var n=r(15685);const i=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],s=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],o=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],a=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],u=[],l=[],c=Math.sign;!function(){for(let e=0;e<16;e++){const t=[];u.push(t);for(let r=0;r<16;r++){const n=c(i[e]*i[r]+o[e]*s[r]),u=c(s[e]*i[r]+a[e]*s[r]),l=c(i[e]*o[r]+o[e]*a[r]),h=c(s[e]*o[r]+a[e]*a[r]);for(let e=0;e<16;e++)if(i[e]===n&&s[e]===u&&o[e]===l&&a[e]===h){t.push(e);break}}}for(let e=0;e<16;e++){const t=new n.Matrix;t.set(i[e],s[e],o[e],a[e],0,0),l.push(t)}}();const h={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:e=>i[e],uY:e=>s[e],vX:e=>o[e],vY:e=>a[e],inv:e=>8&e?15&e:7&-e,add:(e,t)=>u[e][t],sub:(e,t)=>u[e][h.inv(t)],rotate180:e=>4^e,isVertical:e=>2==(3&e),byDirection:(e,t)=>2*Math.abs(e)<=Math.abs(t)?t>=0?h.S:h.N:2*Math.abs(t)<=Math.abs(e)?e>0?h.E:h.W:t>0?e>0?h.SE:h.SW:e>0?h.NE:h.NW,matrixAppendRotationInv:(e,t,r=0,n=0)=>{const i=l[h.inv(t)];i.tx=r,i.ty=n,e.append(i)}};t.groupD8=h},2601:function(){},29705:function(e,t){"use strict";const r=2*Math.PI,n=180/Math.PI,i=Math.PI/180;t.DEG_TO_RAD=i,t.PI_2=r,t.RAD_TO_DEG=n},39018:function(e,t){"use strict";t.isPow2=function(e){return!(e&e-1||!e)},t.log2=function(e){let t=(e>65535?1:0)<<4,r=((e>>>=t)>255?1:0)<<3;return t|=r,r=((e>>>=r)>15?1:0)<<2,t|=r,r=((e>>>=r)>3?1:0)<<1,t|=r,t|(e>>>=r)>>1},t.nextPow2=function(e){return e+=0===e?1:0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,(e|=e>>>16)+1}},28985:function(e,t){"use strict";t.squaredDistanceToLineSegment=function(e,t,r,n,i,s){const o=i-r,a=s-n,u=o*o+a*a;let l,c,h=-1;0!==u&&(h=((e-r)*o+(t-n)*a)/u),h<0?(l=r,c=n):h>1?(l=i,c=s):(l=r+h*o,c=n+h*a);const d=e-l,p=t-c;return d*d+p*p}},62792:function(e,t){"use strict";class r{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new r(e??this._observer,this._x,this._y)}set(e=0,t=e){return this._x===e&&this._y===t||(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return this._x===e.x&&this._y===e.y||(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=0 y=0 scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}t.ObservablePoint=r},26553:function(e,t){"use strict";class r{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new r(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return n.x=0,n.y=0,n}}const n=new r;t.Point=r},37471:function(){},80643:function(){},21778:function(e,t,r){"use strict";var n=r(42181);class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;const r=this.radius*this.radius;let n=this.x-e,i=this.y-t;return n*=n,i*=i,n+i<=r}strokeContains(e,t,r){if(0===this.radius)return!1;const n=this.x-e,i=this.y-t,s=this.radius,o=r/2,a=Math.sqrt(n*n+i*i);return as-o}getBounds(e){return(e=e||new n.Rectangle).x=this.x-this.radius,e.y=this.y-this.radius,e.width=2*this.radius,e.height=2*this.radius,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}t.Circle=i},66736:function(e,t,r){"use strict";var n=r(42181);class i{constructor(e=0,t=0,r=0,n=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=n}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,n=(t-this.y)/this.halfHeight;return r*=r,n*=n,r+n<=1}strokeContains(e,t,r){const{halfWidth:n,halfHeight:i}=this;if(n<=0||i<=0)return!1;const s=r/2,o=n-s,a=i-s,u=n+s,l=i+s,c=e-this.x,h=t-this.y;return c*c/(o*o)+h*h/(a*a)>1&&c*c/(u*u)+h*h/(l*l)<=1}getBounds(){return new n.Rectangle(this.x-this.halfWidth,this.y-this.halfHeight,2*this.halfWidth,2*this.halfHeight)}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}t.Ellipse=i},58173:function(e,t,r){"use strict";var n=r(28985),i=r(42181);class s{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if("number"!=typeof t[0]){const e=[];for(let r=0,n=t.length;rt!=u>t&&e<(t-o)/(u-o)*(a-n)+n&&(r=!r)}return r}strokeContains(e,t,r){const i=r/2,s=i*i,{points:o}=this;for(let r=0;rn?i:n,s=ao?a:o}return e.x=r,e.width=n-r,e.y=s,e.height=o-s,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce(((e,t)=>`${e}, ${t}`),"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}t.Polygon=s},42181:function(e,t,r){"use strict";var n=r(26553);const i=[new n.Point,new n.Point,new n.Point,new n.Point];class s{constructor(e=0,t=0,r=0,n=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(r),this.height=Number(n)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new s(0,0,0,0)}clone(){return new s(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return!(this.width<=0||this.height<=0)&&(e>=this.x&&e=this.y&&t=s-r/2&&e<=s+n+r/2&&t>=o-r/2&&t<=o+i+r/2&&!(e>s+r/2&&eo+r/2&&te.right?e.right:this.right)<=t)return!1;const r=this.ye.bottom?e.bottom:this.bottom)>r}const r=this.left,n=this.right,s=this.top,o=this.bottom;if(n<=r||o<=s)return!1;const a=i[0].set(e.left,e.top),u=i[1].set(e.left,e.bottom),l=i[2].set(e.right,e.top),c=i[3].set(e.right,e.bottom);if(l.x<=a.x||u.y<=a.y)return!1;const h=Math.sign(t.a*t.d-t.b*t.c);if(0===h)return!1;if(t.apply(a,a),t.apply(u,u),t.apply(l,l),t.apply(c,c),Math.max(a.x,u.x,l.x,c.x)<=r||Math.min(a.x,u.x,l.x,c.x)>=n||Math.max(a.y,u.y,l.y,c.y)<=s||Math.min(a.y,u.y,l.y,c.y)>=o)return!1;const d=h*(u.y-a.y),p=h*(a.x-u.x),f=d*r+p*s,m=d*n+p*s,g=d*r+p*o,_=d*n+p*o;if(Math.max(f,m,g,_)<=d*a.x+p*a.y||Math.min(f,m,g,_)>=d*c.x+p*c.y)return!1;const x=h*(a.y-l.y),b=h*(l.x-a.x),y=x*r+b*s,v=x*n+b*s,T=x*r+b*o,S=x*n+b*o;return!(Math.max(y,v,T,S)<=x*a.x+b*a.y||Math.min(y,v,T,S)>=x*c.x+b*c.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=2*e,this.height+=2*t,this}fit(e){const t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),n=Math.max(this.y,e.y),i=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=n,this.height=Math.max(i-n,0),this}ceil(e=1,t=.001){const r=Math.ceil((this.x+this.width-t)*e)/e,n=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=n-this.y,this}enlarge(e){const t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),n=Math.min(this.y,e.y),i=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=n,this.height=i-n,this}getBounds(e){return(e=e||new s).copyFrom(this),e}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}t.Rectangle=s},66321:function(e,t,r){"use strict";var n=r(42181);const i=(e,t,r,n,i,s)=>{const o=e-r,a=t-n,u=Math.sqrt(o*o+a*a);return u>=i-s&&u<=i+s};class s{constructor(e=0,t=0,r=0,n=0,i=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=n,this.radius=i}getBounds(e){return(e=e||new n.Rectangle).x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new s(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){const r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let n=e-(this.x+r),i=t-(this.y+r);const s=r*r;if(n*n+i*i<=s)return!0;if(n=e-(this.x+this.width-r),n*n+i*i<=s)return!0;if(i=t-(this.y+this.height-r),n*n+i*i<=s)return!0;if(n=e-(this.x+r),n*n+i*i<=s)return!0}return!1}strokeContains(e,t,r){const{x:n,y:s,width:o,height:a,radius:u}=this,l=r/2,c=n+u,h=s+u,d=n+o,p=s+a;return(e>=n-l&&e<=n+l||e>=d-l&&e<=d+l)&&t>=h&&t<=h+(a-2*u)||((t>=s-l&&t<=s+l||t>=p-l&&t<=p+l)&&e>=c&&e<=c+(o-2*u)||(ed-u&&td-u&&t>p-u&&i(e,t,d-u,p-u,u,l)||ep-u&&i(e,t,c,p-u,u,l)))}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}t.RoundedRectangle=s},51851:function(){},69474:function(e,t,r){"use strict";var n=r(28985),i=r(42181);class s{constructor(e=0,t=0,r=0,n=0,i=0,s=0){this.type="triangle",this.x=e,this.y=t,this.x2=r,this.y2=n,this.x3=i,this.y3=s}contains(e,t){const r=(this.x-this.x3)*(t-this.y3)-(this.y-this.y3)*(e-this.x3),n=(this.x2-this.x)*(t-this.y)-(this.y2-this.y)*(e-this.x);if(r<0!=n<0&&0!==r&&0!==n)return!1;const i=(this.x3-this.x2)*(t-this.y2)-(this.y3-this.y2)*(e-this.x2);return 0===i||i<0==r+n<=0}strokeContains(e,t,r){const i=r/2,s=i*i,{x:o,x2:a,x3:u,y:l,y2:c,y3:h}=this;return n.squaredDistanceToLineSegment(e,t,o,l,a,h)<=s||n.squaredDistanceToLineSegment(e,t,a,c,u,h)<=s||n.squaredDistanceToLineSegment(e,t,u,h,o,l)<=s}clone(){return new s(this.x,this.y,this.x2,this.y2,this.x3,this.y3)}copyFrom(e){return this.x=e.x,this.y=e.y,this.x2=e.x2,this.y2=e.y2,this.x3=e.x3,this.y3=e.y3,this}copyTo(e){return e.copyFrom(this),e}getBounds(e){e=e||new i.Rectangle;const t=Math.min(this.x,this.x2,this.x3),r=Math.max(this.x,this.x2,this.x3),n=Math.min(this.y,this.y2,this.y3),s=Math.max(this.y,this.y2,this.y3);return e.x=t,e.y=n,e.width=r-t,e.height=s-n,e}}t.Triangle=s},73940:function(e,t,r){"use strict";var n=r(74599),i=r(35292),s=r(63983);const o=class e{constructor(t){this._tick=()=>{this.timeout=setTimeout(this._processQueue,0)},this._processQueue=()=>{const{queue:t}=this;let r=0;for(;t.length&&r{this.queue.length?(this.resolves.push(e),this.dedupeQueue(),s.Ticker.system.addOnce(this._tick,this,i.UPDATE_PRIORITY.UTILITY)):e()}))}dedupeQueue(){const e=Object.create(null);let t=0;for(let r=0;r{e.source?t.push(e.source):t.push(e.texture.source)}))}resolveGraphicsContextQueueItem(e){this.renderer.graphicsContext.getContextRenderData(e);const{instructions:t}=e;for(const e of t){if("texture"===e.action){const{image:t}=e.data;return t.source}if("fill"===e.action){const{texture:t}=e.data.style;return t.source}}return null}}t.PrepareQueue=f},72780:function(e,t,r){"use strict";var n=r(17073),i=r(26116);class s extends i.PrepareUpload{destroy(){clearTimeout(this.timeout),this.renderer=null,this.queue=null,this.resolves=null}}s.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"prepare"},t.PrepareSystem=s},26116:function(e,t,r){"use strict";var n=r(27666),i=r(90537),s=r(62434),o=r(80265),a=r(54125),u=r(3422);class l extends u.PrepareQueue{uploadQueueItem(e){e instanceof n.TextureSource?this.uploadTextureSource(e):e instanceof s.Text?this.uploadText(e):e instanceof a.HTMLText?this.uploadHTMLText(e):e instanceof o.BitmapText?this.uploadBitmapText(e):e instanceof i.GraphicsContext&&this.uploadGraphicsContext(e)}uploadTextureSource(e){this.renderer.texture.initSource(e)}uploadText(e){this.renderer.renderPipes.text.initGpuText(e)}uploadBitmapText(e){this.renderer.renderPipes.bitmapText.initGpuText(e)}uploadHTMLText(e){this.renderer.renderPipes.htmlText.initGpuText(e)}uploadGraphicsContext(e){this.renderer.graphicsContext.getContextRenderData(e);const{instructions:t}=e;for(const e of t)if("texture"===e.action){const{image:t}=e.data;this.uploadTextureSource(t.source)}else if("fill"===e.action){const{texture:t}=e.data.style;this.uploadTextureSource(t.source)}return null}}t.PrepareUpload=l},79878:function(e,t,r){"use strict";var n=r(73940),i=r(3422),s=r(72780),o=r(26116);t.PrepareBase=n.PrepareBase,t.PrepareQueue=i.PrepareQueue,t.PrepareSystem=s.PrepareSystem,t.PrepareUpload=o.PrepareUpload},58578:function(e,t,r){"use strict";var n=r(17073),i=r(21380),s=r(84215),o=r(19209),a=r(4116),u=r(62998),l=r(97505),c=r(55141),h=r(11909);class d{constructor(){this._didUpload=!1,this._tempState=c.State.for2d()}init(e){const t=i.compileHighShaderGlProgram({name:"batch",bits:[s.colorBitGl,o.generateTextureBatchBitGl(h.MAX_TEXTURES),a.roundPixelsBitGl]});this._shader=new l.Shader({glProgram:t,resources:{batchSamplers:u.batchSamplersUniformGroup}}),e.renderer.runners.contextChange.add(this)}contextChange(){this._didUpload=!1}start(e,t){const r=e.renderer;r.shader.bind(this._shader,this._didUpload),r.shader.updateUniformGroup(r.globalUniforms.uniformGroup),r.geometry.bind(t,this._shader.glProgram)}execute(e,t){const r=e.renderer;this._didUpload=!0,this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);const n=t.textures.textures;for(let e=0;e>>0;return o[r]||function(e,t){const r={};let a=0;for(let t=0;tthis.attributeBuffer.size&&this._resizeAttributeBuffer(4*this.attributeSize),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);const s=this.attributeBuffer.float32View,h=this.attributeBuffer.uint32View,d=this.indexBuffer;let p=this._batchIndexSize,f=this._batchIndexStart,m="startBatch",g=this._batchPool[this._batchPoolIndex++]||new l;for(let n=this.elementStart;n=u.MAX_TEXTURES||y)&&(this._finishBatch(g,f,p-f,r,i,e,m),m="renderBatch",f=p,i=b,r=this._textureBatchPool[this._textureBatchPoolIndex++]||new a.BatchTextureArray,r.clear(),g=this._batchPool[this._batchPoolIndex++]||new l,++c),_.textureId=x._textureBindLocation=r.count,r.ids[x.uid]=r.count,r.textures[r.count++]=x,_.batch=g,p+=_.indexSize,_.packAttributes(s,h,_.location,_.textureId),_.packIndex(d,_.indexStart,_.location/this._vertexSize)):(_.textureId=x._textureBindLocation,p+=_.indexSize,_.packAttributes(s,h,_.location,_.textureId),_.packIndex(d,_.indexStart,_.location/this._vertexSize),_.batch=g)}r.count>0&&(this._finishBatch(g,f,p-f,r,i,e,m),f=p,++c),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=p}_finishBatch(e,t,r,n,i,s,o){e.gpuBindGroup=null,e.action=o,e.batcher=this,e.textures=n,e.blendMode=i,e.start=t,e.size=r,++c,s.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){4*e<=this.attributeBuffer.size||this._resizeAttributeBuffer(4*e)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){const t=Math.max(e,2*this.attributeBuffer.size),r=new i.ViewableBuffer(t);s.fastCopy(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){const t=this.indexBuffer;let r=Math.max(e,1.5*t.length);r+=r%2;const n=r>65535?new Uint32Array(r):new Uint16Array(r);if(n.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let e=0;e(l.has(e)||l.set(e,c++),l.get(e)))).sort(((e,t)=>e-t)).join("-")+e.vertex+e.fragment}function d(e,t,r){const s=i.compileHooks(e),o=i.compileHooks(t);return r.forEach((e=>{n.addBits(e.vertex,s,e.name),n.addBits(e.fragment,o,e.name)})),{vertex:a.injectBits(e,s),fragment:a.injectBits(t,o)}}t.compileHighShader=function({template:e,bits:t}){const r=h(e,t);if(u[r])return u[r];const{vertex:n,fragment:i}=function(e,t){const r=t.map((e=>e.vertex)).filter((e=>!!e)),n=t.map((e=>e.fragment)).filter((e=>!!e));let i=s.compileInputs(r,e.vertex,!0);i=o.compileOutputs(r,i);const a=s.compileInputs(n,e.fragment,!0);return{vertex:i,fragment:a}}(e,t);return u[r]=d(n,i,t),u[r]},t.compileHighShaderGl=function({template:e,bits:t}){const r=h(e,t);return u[r]||(u[r]=d(e.vertex,e.fragment,t)),u[r]}},75817:function(){},58674:function(e,t,r){"use strict";var n=r(95190);t.addBits=function(e,t,r){if(e)for(const i in e){const s=t[i.toLocaleLowerCase()];if(s){let t=e[i];"header"===i&&(t=t.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),r&&s.push(`//----${r}----//`),s.push(t)}else n.warn(`${i} placement hook does not exist in shader`)}}},15183:function(e,t){"use strict";const r=/\{\{(.*?)\}\}/g;t.compileHooks=function(e){const t={};return(e.match(r)?.map((e=>e.replace(/[{()}]/g,"")))??[]).forEach((e=>{t[e]=[]})),t},t.findHooksRx=r},95233:function(e,t){"use strict";function r(e,t){let r;const n=/@in\s+([^;]+);/g;for(;null!==(r=n.exec(e));)t.push(r[1])}t.compileInputs=function(e,t,n=!1){const i=[];r(t,i),e.forEach((e=>{e.header&&r(e.header,i)}));const s=i;n&&s.sort();const o=s.map(((e,t)=>` @location(${t}) ${e},`)).join("\n");let a=t.replace(/@in\s+[^;]+;\s*/g,"");return a=a.replace("{{in}}",`\n${o}\n`),a}},98319:function(e,t){"use strict";function r(e,t){let r;const n=/@out\s+([^;]+);/g;for(;null!==(r=n.exec(e));)t.push(r[1])}t.compileOutputs=function(e,t){const n=[];r(t,n),e.forEach((e=>{e.header&&r(e.header,n)}));let i=0;const s=n.sort().map((e=>e.indexOf("builtin")>-1?e:`@location(${i++}) ${e}`)).join(",\n"),o=n.sort().map((e=>{return` var ${t=e,t.replace(/@.*?\s+/g,"")};`;var t})).join("\n"),a=`return VSOutput(\n ${n.sort().map((e=>` ${function(e){const t=/\b(\w+)\s*:/g.exec(e);return t?t[1]:""}(e)}`)).join(",\n")});`;let u=t.replace(/@out\s+[^;]+;\s*/g,"");return u=u.replace("{{struct}}",`\n${s}\n`),u=u.replace("{{start}}",`\n${o}\n`),u=u.replace("{{return}}",`\n${a}\n`),u}},11206:function(e,t){"use strict";t.formatShader=function(e){const t=e.split(/([\n{}])/g).map((e=>e.trim())).filter((e=>e.length));let r="";return t.map((e=>{let t=r+e;return"{"===e?r+=" ":"}"===e&&(r=r.substr(0,r.length-4),t=r+e),t})).join("\n")}},60079:function(e,t){"use strict";t.injectBits=function(e,t){let r=e;for(const e in t){const n=t[e];r=n.join("\n").length?r.replace(`{{${e}}}`,`//-----${e} START-----//\n${n.join("\n")}\n//----${e} FINISH----//`):r.replace(`{{${e}}}`,"")}return r}},59615:function(e,t){"use strict";t.fragmentGPUTemplate="\n @in vUV : vec2;\n @in vColor : vec4;\n \n {{header}}\n\n @fragment\n fn main(\n {{in}}\n ) -> @location(0) vec4 {\n \n {{start}}\n\n var outColor:vec4;\n \n {{main}}\n \n return outColor * vColor;\n };\n",t.fragmentGlTemplate="\n \n in vec4 vColor;\n in vec2 vUV;\n\n out vec4 finalColor;\n\n {{header}}\n\n void main(void) {\n \n {{start}}\n\n vec4 outColor;\n \n {{main}}\n \n finalColor = outColor * vColor;\n }\n",t.vertexGPUTemplate="\n @in aPosition: vec2;\n @in aUV: vec2;\n\n @out @builtin(position) vPosition: vec4;\n @out vUV : vec2;\n @out vColor : vec4;\n\n {{header}}\n\n struct VSOutput {\n {{struct}}\n };\n\n @vertex\n fn main( {{in}} ) -> VSOutput {\n\n var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;\n var modelMatrix = mat3x3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n var position = aPosition;\n var uv = aUV;\n\n {{start}}\n \n vColor = vec4(1., 1., 1., 1.);\n\n {{main}}\n\n vUV = uv;\n\n var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n vPosition = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n \n vColor *= globalUniforms.uWorldColorAlpha;\n\n {{end}}\n\n {{return}}\n };\n",t.vertexGlTemplate="\n in vec2 aPosition;\n in vec2 aUV;\n\n out vec4 vColor;\n out vec2 vUV;\n\n {{header}}\n\n void main(void){\n\n mat3 worldTransformMatrix = uWorldTransformMatrix;\n mat3 modelMatrix = mat3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n vec2 position = aPosition;\n vec2 uv = aUV;\n \n {{start}}\n \n vColor = vec4(1.);\n \n {{main}}\n \n vUV = uv;\n \n mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n\n vColor *= uWorldColorAlpha;\n\n {{end}}\n }\n"},84215:function(e,t){"use strict";const r={name:"color-bit",vertex:{header:"\n @in aColor: vec4;\n ",main:"\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n "}},n={name:"color-bit",vertex:{header:"\n in vec4 aColor;\n ",main:"\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n "}};t.colorBit=r,t.colorBitGl=n},19209:function(e,t){"use strict";const r={};function n(e){const t=[];if(1===e)t.push("@group(1) @binding(0) var textureSource1: texture_2d;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let r=0;for(let n=0;n;`),t.push(`@group(1) @binding(${r++}) var textureSampler${n+1}: sampler;`)}return t.join("\n")}function i(e){const t=[];if(1===e)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let r=0;r0&&t.push("else"),r;\n @out @interpolate(flat) vTextureId : u32;\n ",main:"\n vTextureId = aTextureIdAndRound.y;\n ",end:"\n if(aTextureIdAndRound.x == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "},fragment:{header:`\n @in @interpolate(flat) vTextureId: u32;\n \n ${n(16)}\n `,main:`\n var uvDx = dpdx(vUV);\n var uvDy = dpdy(vUV);\n \n ${i(16)}\n `}}),r[e]},t.generateTextureBatchBitGl=function(e){return s[e]||(s[e]={name:"texture-batch-bit",vertex:{header:"\n in vec2 aTextureIdAndRound;\n out float vTextureId;\n \n ",main:"\n vTextureId = aTextureIdAndRound.y;\n ",end:"\n if(aTextureIdAndRound.x == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "},fragment:{header:`\n in float vTextureId;\n \n uniform sampler2D uTextures[${e}];\n \n `,main:`\n \n ${o(16)}\n `}}),s[e]}},39320:function(e,t){"use strict";const r={name:"global-uniforms-bit",vertex:{header:"\n struct GlobalUniforms {\n uProjectionMatrix:mat3x3,\n uWorldTransformMatrix:mat3x3,\n uWorldColorAlpha: vec4,\n uResolution: vec2,\n }\n\n @group(0) @binding(0) var globalUniforms : GlobalUniforms;\n "}},n={name:"global-uniforms-ubo-bit",vertex:{header:"\n uniform globalUniforms {\n mat3 uProjectionMatrix;\n mat3 uWorldTransformMatrix;\n vec4 uWorldColorAlpha;\n vec2 uResolution;\n };\n "}},i={name:"global-uniforms-bit",vertex:{header:"\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform vec4 uWorldColorAlpha;\n uniform vec2 uResolution;\n "}};t.globalUniformsBit=r,t.globalUniformsBitGl=i,t.globalUniformsUBOBitGl=n},74813:function(e,t){"use strict";const r={name:"local-uniform-bit",vertex:{header:"\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3,\n uColor:vec4,\n uRound:f32,\n }\n\n @group(1) @binding(0) var localUniforms : LocalUniforms;\n ",main:"\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n ",end:"\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "}},n={...r,vertex:{...r.vertex,header:r.vertex.header.replace("group(1)","group(2)")}},i={name:"local-uniform-bit",vertex:{header:"\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n ",main:"\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n ",end:"\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "}};t.localUniformBit=r,t.localUniformBitGl=i,t.localUniformBitGroup2=n},4116:function(e,t){"use strict";const r={name:"round-pixels-bit",vertex:{header:"\n fn roundPixels(position: vec2, targetSize: vec2) -> vec2 \n {\n return (floor((position * 0.5 + 0.5) * targetSize) / targetSize) * 2.0 - 1.0;\n }\n "}},n={name:"round-pixels-bit",vertex:{header:" \n vec2 roundPixels(vec2 position, vec2 targetSize)\n { \n return (floor((position * 0.5 + 0.5) * targetSize) / targetSize) * 2.0 - 1.0;\n }\n "}};t.roundPixelsBit=r,t.roundPixelsBitGl=n},36114:function(e,t){"use strict";const r={name:"texture-bit",vertex:{header:"\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3,\n }\n\n @group(2) @binding(2) var textureUniforms : TextureUniforms;\n ",main:"\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n "},fragment:{header:"\n @group(2) @binding(0) var uTexture: texture_2d;\n @group(2) @binding(1) var uSampler: sampler;\n\n \n ",main:"\n outColor = textureSample(uTexture, uSampler, vUV);\n "}},n={name:"texture-bit",vertex:{header:"\n uniform mat3 uTextureMatrix;\n ",main:"\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n "},fragment:{header:"\n uniform sampler2D uTexture;\n\n \n ",main:"\n outColor = texture(uTexture, vUV);\n "}};t.textureBit=r,t.textureBitGl=n},12878:function(e,t,r){"use strict";var n=r(58578),i=r(92247),s=r(93154),o=r(72459),a=r(33388),u=r(9803),l=r(87866),c=r(33961),h=r(74404),d=r(11909),p=r(21380),f=r(42403);r(75817);var m=r(58674),g=r(15183),_=r(95233),x=r(98319),b=r(11206),y=r(60079),v=r(59615),T=r(84215),S=r(19209),E=r(39320),A=r(74813),P=r(4116),M=r(36114),R=r(48718),w=r(14673),B=r(50020),G=r(62579),C=r(81480),F=r(32258),D=r(99022),O=r(33648),I=r(38782),U=r(17957),L=r(4722),k=r(85520),N=r(3839),X=r(7540),H=r(32985),z=r(36351);r(39711),r(39996);var V=r(96307),W=r(90493),Y=r(42026),q=r(57066),$=r(79211),j=r(45769),K=r(50264),Z=r(4308),Q=r(9779),J=r(54346),ee=r(62998);r(26156);var te=r(65706),re=r(62991),ne=r(94230),ie=r(2071),se=r(53864),oe=r(49245),ae=r(27124),ue=r(32377),le=r(71820),ce=r(61913),he=r(3480),de=r(3871),pe=r(51525),fe=r(51895),me=r(6887),ge=r(19336),_e=r(86380),xe=r(44135),be=r(9778),ye=r(4023),ve=r(77944),Te=r(48142),Se=r(3553),Ee=r(98121),Ae=r(90708),Pe=r(40074),Me=r(66171),Re=r(8279),we=r(93199),Be=r(40655),Ge=r(30290),Ce=r(52470),Fe=r(62123);r(96157);var De=r(35416),Oe=r(82953),Ie=r(75705),Ue=r(53321),Le=r(88588),ke=r(84157),Ne=r(5020),Xe=r(51727),He=r(16310),ze=r(59758),Ve=r(7358),We=r(61435),Ye=r(98826),qe=r(71901),$e=r(40736),je=r(30679),Ke=r(61265),Ze=r(65586),Qe=r(32920),Je=r(96150),et=r(4812),tt=r(93812),rt=r(50967),nt=r(91428),it=r(86136),st=r(9143),ot=r(24628),at=r(83582);r(1805);var ut=r(50543),lt=r(25947),ct=r(41036),ht=r(84214),dt=r(29926),pt=r(16126),ft=r(1513),mt=r(80863),gt=r(47242),_t=r(79320),xt=r(53299),bt=r(81242),yt=r(36826),vt=r(56042);r(83040);var Tt=r(97394),St=r(1956),Et=r(37135),At=r(2766),Pt=r(43213),Mt=r(87929),Rt=r(69264),wt=r(6852),Bt=r(69862),Gt=r(21839),Ct=r(1793),Ft=r(18919),Dt=r(70766),Ot=r(95041),It=r(42310),Ut=r(80163),Lt=r(33829),kt=r(44307),Nt=r(84026),Xt=r(52783),Ht=r(14740),zt=r(54132);r(37758);var Vt=r(31540);r(16085),r(42725);var Wt=r(54572),Yt=r(11987),qt=r(33764),$t=r(16952),jt=r(3695),Kt=r(19450),Zt=r(97505);r(21384);var Qt=r(6864),Jt=r(65518),er=r(1021),tr=r(90887),rr=r(63981),nr=r(46876),ir=r(22334),sr=r(56445),or=r(254),ar=r(55141),ur=r(95931),lr=r(62856);r(79480);var cr=r(17627);r(17885);var hr=r(60932),dr=r(6121);r(76349);var pr=r(32064),fr=r(7634),mr=r(91525),gr=r(68651),_r=r(75813),xr=r(27666),br=r(62480),yr=r(84463),vr=r(95224),Tr=r(94058),Sr=r(38759),Er=r(44174),Ar=r(92756),Pr=r(95026),Mr=r(40190),Rr=r(34155),wr=r(55484),Br=r(39394),Gr=r(6066),Cr=r(60527);r(27571);var Fr=r(80177),Dr=r(2559);t.GlBatchAdaptor=n.GlBatchAdaptor,t.BatchGeometry=i.BatchGeometry,t.generateGPULayout=s.generateGPULayout,t.generateLayout=o.generateLayout,t.getTextureBatchBindGroup=a.getTextureBatchBindGroup,t.GpuBatchAdaptor=u.GpuBatchAdaptor,t.Batch=l.Batch,t.Batcher=l.Batcher,t.BatcherPipe=c.BatcherPipe,t.BatchTextureArray=h.BatchTextureArray,t.MAX_TEXTURES=d.MAX_TEXTURES,t.compileHighShaderGlProgram=p.compileHighShaderGlProgram,t.compileHighShaderGpuProgram=p.compileHighShaderGpuProgram,t.compileHighShader=f.compileHighShader,t.compileHighShaderGl=f.compileHighShaderGl,t.addBits=m.addBits,t.compileHooks=g.compileHooks,t.findHooksRx=g.findHooksRx,t.compileInputs=_.compileInputs,t.compileOutputs=x.compileOutputs,t.formatShader=b.formatShader,t.injectBits=y.injectBits,t.fragmentGPUTemplate=v.fragmentGPUTemplate,t.fragmentGlTemplate=v.fragmentGlTemplate,t.vertexGPUTemplate=v.vertexGPUTemplate,t.vertexGlTemplate=v.vertexGlTemplate,t.colorBit=T.colorBit,t.colorBitGl=T.colorBitGl,t.generateTextureBatchBit=S.generateTextureBatchBit,t.generateTextureBatchBitGl=S.generateTextureBatchBitGl,t.globalUniformsBit=E.globalUniformsBit,t.globalUniformsBitGl=E.globalUniformsBitGl,t.globalUniformsUBOBitGl=E.globalUniformsUBOBitGl,t.localUniformBit=A.localUniformBit,t.localUniformBitGl=A.localUniformBitGl,t.localUniformBitGroup2=A.localUniformBitGroup2,t.roundPixelsBit=P.roundPixelsBit,t.roundPixelsBitGl=P.roundPixelsBitGl,t.textureBit=M.textureBit,t.textureBitGl=M.textureBitGl,t.AlphaMask=R.AlphaMask,t.AlphaMaskPipe=w.AlphaMaskPipe,t.ColorMask=B.ColorMask,t.ColorMaskPipe=G.ColorMaskPipe,t.MaskEffectManager=C.MaskEffectManager,t.MaskEffectManagerClass=C.MaskEffectManagerClass,t.ScissorMask=F.ScissorMask,t.StencilMask=D.StencilMask,t.StencilMaskPipe=O.StencilMaskPipe,t.addMaskBounds=I.addMaskBounds,t.addMaskLocalBounds=U.addMaskLocalBounds,t.getMatrixRelativeToParent=U.getMatrixRelativeToParent,t.autoDetectRenderer=L.autoDetectRenderer,t.BUFFER_TYPE=k.BUFFER_TYPE,t.GlBuffer=N.GlBuffer,t.GlBufferSystem=X.GlBufferSystem,t.CLEAR=H.CLEAR,t.GlContextSystem=z.GlContextSystem,t.GlGeometrySystem=V.GlGeometrySystem,t.getGlTypeFromFormat=W.getGlTypeFromFormat,t.GlBackBufferSystem=Y.GlBackBufferSystem,t.GlColorMaskSystem=q.GlColorMaskSystem,t.GlEncoderSystem=$.GlEncoderSystem,t.GlRenderTarget=j.GlRenderTarget,t.GlStencilSystem=K.GlStencilSystem,t.GlUboSystem=Z.GlUboSystem,t.GlRenderTargetAdaptor=Q.GlRenderTargetAdaptor,t.GlRenderTargetSystem=J.GlRenderTargetSystem,t.batchSamplersUniformGroup=ee.batchSamplersUniformGroup,t.generateShaderSyncCode=te.generateShaderSyncCode,t.GlProgram=re.GlProgram,t.GlProgramData=ne.GlProgramData,t.IGLUniformData=ne.IGLUniformData,t.GlShaderSystem=ie.GlShaderSystem,t.GlUniformGroupSystem=se.GlUniformGroupSystem,t.migrateFragmentFromV7toV8=oe.migrateFragmentFromV7toV8,t.compileShader=ae.compileShader,t.defaultValue=ue.defaultValue,t.ensureAttributes=le.ensureAttributes,t.extractAttributesFromGlProgram=ce.extractAttributesFromGlProgram,t.generateProgram=he.generateProgram,t.getMaxFragmentPrecision=de.getMaxFragmentPrecision,t.getTestContext=pe.getTestContext,t.getUboData=fe.getUboData,t.getUniformData=me.getUniformData,t.logProgramError=ge.logProgramError,t.mapSize=_e.mapSize,t.mapGlToVertexFormat=xe.mapGlToVertexFormat,t.mapType=xe.mapType,t.addProgramDefines=be.addProgramDefines,t.ensurePrecision=ye.ensurePrecision,t.insertVersion=ve.insertVersion,t.setProgramName=Te.setProgramName,t.stripVersion=Se.stripVersion,t.WGSL_TO_STD40_SIZE=Ee.WGSL_TO_STD40_SIZE,t.createUboElementsSTD40=Ee.createUboElementsSTD40,t.createUboSyncFunctionSTD40=Ae.createUboSyncFunctionSTD40,t.generateArraySyncSTD40=Pe.generateArraySyncSTD40,t.generateUniformsSync=Me.generateUniformsSync,t.UNIFORM_TO_ARRAY_SETTERS=Re.UNIFORM_TO_ARRAY_SETTERS,t.UNIFORM_TO_SINGLE_SETTERS=Re.UNIFORM_TO_SINGLE_SETTERS,t.GlStateSystem=we.GlStateSystem,t.mapWebGLBlendModesToPixi=Be.mapWebGLBlendModesToPixi,t.GL_FORMATS=Ge.GL_FORMATS,t.GL_TARGETS=Ge.GL_TARGETS,t.GL_TYPES=Ge.GL_TYPES,t.GL_WRAP_MODES=Ge.GL_WRAP_MODES,t.GlTexture=Ce.GlTexture,t.GlTextureSystem=Fe.GlTextureSystem,t.glUploadBufferImageResource=De.glUploadBufferImageResource,t.glUploadCompressedTextureResource=Oe.glUploadCompressedTextureResource,t.glUploadImageResource=Ie.glUploadImageResource,t.glUploadVideoResource=Ue.glUploadVideoResource,t.applyStyleParams=Le.applyStyleParams,t.getSupportedGlCompressedTextureFormats=ke.getSupportedGlCompressedTextureFormats,t.mapFormatToGlFormat=Ne.mapFormatToGlFormat,t.mapFormatToGlInternalFormat=Xe.mapFormatToGlInternalFormat,t.mapFormatToGlType=He.mapFormatToGlType,t.compareModeToGlCompare=ze.compareModeToGlCompare,t.mipmapScaleModeToGlFilter=ze.mipmapScaleModeToGlFilter,t.scaleModeToGlFilter=ze.scaleModeToGlFilter,t.wrapModeToGlAddress=ze.wrapModeToGlAddress,t.unpremultiplyAlpha=Ve.unpremultiplyAlpha,t.WebGLRenderer=We.WebGLRenderer,t.BindGroupSystem=Ye.BindGroupSystem,t.GpuBufferSystem=qe.GpuBufferSystem,t.GpuReadBuffer=$e.GpuReadBuffer,t.UboBatch=je.UboBatch,t.GpuColorMaskSystem=Ke.GpuColorMaskSystem,t.GpuDeviceSystem=Ze.GpuDeviceSystem,t.GpuEncoderSystem=Qe.GpuEncoderSystem,t.GpuStencilSystem=Je.GpuStencilSystem,t.GpuUboSystem=et.GpuUboSystem,t.GpuUniformBatchPipe=tt.GpuUniformBatchPipe,t.PipelineSystem=rt.PipelineSystem,t.calculateProjection=nt.calculateProjection,t.GpuRenderTarget=it.GpuRenderTarget,t.GpuRenderTargetAdaptor=st.GpuRenderTargetAdaptor,t.GpuRenderTargetSystem=ot.GpuRenderTargetSystem,t.BindGroup=at.BindGroup,t.GpuProgram=ut.GpuProgram,t.GpuShaderSystem=lt.GpuShaderSystem,t.WGSL_ALIGN_SIZE_DATA=ct.WGSL_ALIGN_SIZE_DATA,t.createUboElementsWGSL=ct.createUboElementsWGSL,t.createUboSyncFunctionWGSL=ht.createUboSyncFunctionWGSL,t.extractAttributesFromGpuProgram=dt.extractAttributesFromGpuProgram,t.extractStructAndGroups=pt.extractStructAndGroups,t.generateArraySyncWGSL=ft.generateArraySyncWGSL,t.generateGpuLayoutGroups=mt.generateGpuLayoutGroups,t.generateLayoutHash=gt.generateLayoutHash,t.removeStructAndGroupDuplicates=_t.removeStructAndGroupDuplicates,t.GpuBlendModesToPixi=xt.GpuBlendModesToPixi,t.GpuStateSystem=bt.GpuStateSystem,t.GpuStencilModesToPixi=yt.GpuStencilModesToPixi,t.GpuTextureSystem=vt.GpuTextureSystem,t.gpuUploadBufferImageResource=Tt.gpuUploadBufferImageResource,t.blockDataMap=St.blockDataMap,t.gpuUploadCompressedTextureResource=St.gpuUploadCompressedTextureResource,t.gpuUploadImageResource=Et.gpuUploadImageResource,t.gpuUploadVideoResource=At.gpuUploadVideoResource,t.getSupportedGPUCompressedTextureFormats=Pt.getSupportedGPUCompressedTextureFormats,t.GpuMipmapGenerator=Mt.GpuMipmapGenerator,t.WebGPURenderer=Rt.WebGPURenderer,t.BackgroundSystem=wt.BackgroundSystem,t.BlendModePipe=Bt.BlendModePipe,t.Buffer=Gt.Buffer,t.BufferResource=Ct.BufferResource,t.BufferUsage=Ft.BufferUsage,t.fastCopy=Dt.fastCopy,t.ExtractSystem=Ot.ExtractSystem,t.GenerateTextureSystem=It.GenerateTextureSystem,t.DRAW_MODES=Ut.DRAW_MODES,t.Geometry=Lt.Geometry,t.buildSimpleUvs=kt.buildSimpleUvs,t.buildUvs=kt.buildUvs,t.ensureIsBuffer=Nt.ensureIsBuffer,t.getAttributeInfoFromFormat=Xt.getAttributeInfoFromFormat,t.getGeometryBounds=Ht.getGeometryBounds,t.transformVertices=zt.transformVertices,t.InstructionSet=Vt.InstructionSet,t.GlobalUniformSystem=Wt.GlobalUniformSystem,t.isRenderingToScreen=Yt.isRenderingToScreen,t.RenderTarget=qt.RenderTarget,t.RenderTargetSystem=$t.RenderTargetSystem,t.viewportFromFrame=jt.viewportFromFrame,t.ShaderStage=Kt.ShaderStage,t.Shader=Zt.Shader,t.UboSystem=Qt.UboSystem,t.UniformGroup=Jt.UniformGroup,t.createUboSyncFunction=er.createUboSyncFunction,t.getDefaultUniformValue=tr.getDefaultUniformValue,t.uboSyncFunctionsSTD40=rr.uboSyncFunctionsSTD40,t.uboSyncFunctionsWGSL=rr.uboSyncFunctionsWGSL,t.uniformParsers=nr.uniformParsers,t.HelloSystem=ir.HelloSystem,t.BLEND_TO_NPM=sr.BLEND_TO_NPM,t.STENCIL_MODES=sr.STENCIL_MODES,t.getAdjustedBlendModeBlend=or.getAdjustedBlendModeBlend,t.State=ar.State,t.AbstractRenderer=ur.AbstractRenderer,t.SharedRenderPipes=lr.SharedRenderPipes,t.SharedSystems=lr.SharedSystems,t.SystemRunner=cr.SystemRunner,t.CanvasPool=hr.CanvasPool,t.CanvasPoolClass=hr.CanvasPoolClass,t.DEPRECATED_SCALE_MODES=dr.DEPRECATED_SCALE_MODES,t.DEPRECATED_WRAP_MODES=dr.DEPRECATED_WRAP_MODES,t.MSAA_QUALITY=dr.MSAA_QUALITY,t.SCALE_MODES=dr.SCALE_MODES,t.WRAP_MODES=dr.WRAP_MODES,t.RenderTexture=pr.RenderTexture,t.BufferImageSource=fr.BufferImageSource,t.CanvasSource=mr.CanvasSource,t.CompressedSource=gr.CompressedSource,t.ImageSource=_r.ImageSource,t.TextureSource=xr.TextureSource,t.VideoSource=br.VideoSource,t.Texture=yr.Texture,t.TextureGCSystem=vr.TextureGCSystem,t.TextureMatrix=Tr.TextureMatrix,t.TexturePool=Sr.TexturePool,t.TexturePoolClass=Sr.TexturePoolClass,t.TextureStyle=Er.TextureStyle,t.TextureUvs=Ar.TextureUvs,t.generateUID=Pr.generateUID,t.getCanvasTexture=Mr.getCanvasTexture,t.hasCachedCanvasTexture=Mr.hasCachedCanvasTexture,t.getSupportedCompressedTextureFormats=Rr.getSupportedCompressedTextureFormats,t.getSupportedTextureFormats=wr.getSupportedTextureFormats,t.nonCompressedFormats=wr.nonCompressedFormats,t.autoDetectSource=Br.autoDetectSource,t.resourceToTexture=Br.resourceToTexture,t.textureFrom=Br.textureFrom,t.createIdFromString=Gr.createIdFromString,t.parseFunctionBody=Cr.parseFunctionBody,t.ViewSystem=Fr.ViewSystem,t.RendererType=Dr.RendererType},55063:function(e,t,r){"use strict";var n=r(17073),i=r(48718),s=r(50020),o=r(99022),a=r(7634),u=r(91525),l=r(75813),c=r(62480);r(39394),r(81480),n.extensions.add(i.AlphaMask,s.ColorMask,o.StencilMask,c.VideoSource,l.ImageSource,u.CanvasSource,a.BufferImageSource)},81480:function(e,t,r){"use strict";var n=r(17073),i=r(86169);class s{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach((e=>{this.add({test:e.test,maskClass:e})})))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t{t!==e.preference&&u.push(t)}))):u=a.slice(),await n.autoDetectEnvironment(e.manageImports??!0);let l={};for(let n=0;n=e.data.byteLength)t.bufferSubData(r.type,0,n,0,e._updateSize/n.BYTES_PER_ELEMENT);else{const s=e.descriptor.usage&i.BufferUsage.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;r.byteLength=n.byteLength,t.bufferData(r.type,n,s)}return r}destroyAll(){const e=this._gl;for(const t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){const r=this._gpuBuffers[e.uid],n=this._gl;t||n.deleteBuffer(r.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){const{_gl:t}=this;let r=s.BUFFER_TYPE.ARRAY_BUFFER;e.descriptor.usage&i.BufferUsage.INDEX?r=s.BUFFER_TYPE.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&i.BufferUsage.UNIFORM&&(r=s.BUFFER_TYPE.UNIFORM_BUFFER);const n=new o.GlBuffer(t.createBuffer(),r);return this._gpuBuffers[e.uid]=n,e.on("destroy",this.onBufferDestroy,this),n}}a.extension={type:[n.ExtensionType.WebGLSystem],name:"buffer"},t.GlBufferSystem=a},85520:function(e,t){"use strict";var r=(e=>(e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e))(r||{});t.BUFFER_TYPE=r},32985:function(e,t){"use strict";var r=(e=>(e[e.NONE=0]="NONE",e[e.COLOR=16384]="COLOR",e[e.STENCIL=1024]="STENCIL",e[e.DEPTH=256]="DEPTH",e[e.COLOR_DEPTH=16640]="COLOR_DEPTH",e[e.COLOR_STENCIL=17408]="COLOR_STENCIL",e[e.DEPTH_STENCIL=1280]="DEPTH_STENCIL",e[e.ALL=17664]="ALL",e))(r||{});t.CLEAR=r},36351:function(e,t,r){"use strict";var n=r(17073),i=r(95190);const s=class e{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(t){if((t={...e.defaultOptions,...t}).context)this.initFromContext(t.context);else{const e=this._renderer.background.alpha<1,r=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:e,premultipliedAlpha:r,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof WebGL2RenderingContext?2:1,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);const t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r;const n=this._renderer.view.canvas;if(2===e&&(r=n.getContext("webgl2",t)),!r&&(r=n.getContext("webgl",t),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){const{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};1===this.webGLVersion?this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")}:this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout((()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()}),0))}handleContextRestored(){this._renderer.runners.contextChange.emit(this.gl)}destroy(){const e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){const t=e.getContextAttributes();t&&!t.stencil&&i.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");const r=this.supports,n=2===this.webGLVersion,s=this.extensions;r.uint32Indices=n||!!s.uint32ElementIndex,r.uniformBufferObject=n,r.vertexArrayObject=n||!!s.vertexArrayObject,r.srgbTextures=n||!!s.srgb,r.nonPowOf2wrapping=n,r.nonPowOf2mipmaps=n,r.msaa=n,r.uint32Indices||i.warn("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};s.extension={type:[n.ExtensionType.WebGLSystem],name:"context"},s.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2};let o=s;t.GlContextSystem=o},39711:function(){},39996:function(){},96307:function(e,t,r){"use strict";var n=r(17073),i=r(52783),s=r(71820),o=r(90493);const a={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class u{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0}contextChange(){const e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");const t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=e=>t.bindVertexArrayOES(e),e.deleteVertexArray=e=>t.deleteVertexArrayOES(e));const r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(e,t,n,i)=>{r.drawArraysInstancedANGLE(e,t,n,i)},e.drawElementsInstanced=(e,t,n,i,s)=>{r.drawElementsInstancedANGLE(e,t,n,i,s)},e.vertexAttribDivisor=(e,t)=>r.vertexAttribDivisorANGLE(e,t)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){const r=this.gl;this._activeGeometry=e;const n=this.getVao(e,t);this._activeVao!==n&&(this._activeVao=n,r.bindVertexArray(n)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){const e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r1?i.drawElementsInstanced(o,t||s.indexBuffer.data.length,a,(r||0)*e,n):i.drawElements(o,t||s.indexBuffer.data.length,a,(r||0)*e)}else n>1?i.drawArraysInstanced(o,r||0,t||s.getSize(),n):i.drawArrays(o,r||0,t||s.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}u.extension={type:[n.ExtensionType.WebGLSystem],name:"geometry"},t.GlGeometrySystem=u},90493:function(e,t,r){"use strict";var n=r(30290);const i={uint8x2:n.GL_TYPES.UNSIGNED_BYTE,uint8x4:n.GL_TYPES.UNSIGNED_BYTE,sint8x2:n.GL_TYPES.BYTE,sint8x4:n.GL_TYPES.BYTE,unorm8x2:n.GL_TYPES.UNSIGNED_BYTE,unorm8x4:n.GL_TYPES.UNSIGNED_BYTE,snorm8x2:n.GL_TYPES.BYTE,snorm8x4:n.GL_TYPES.BYTE,uint16x2:n.GL_TYPES.UNSIGNED_SHORT,uint16x4:n.GL_TYPES.UNSIGNED_SHORT,sint16x2:n.GL_TYPES.SHORT,sint16x4:n.GL_TYPES.SHORT,unorm16x2:n.GL_TYPES.UNSIGNED_SHORT,unorm16x4:n.GL_TYPES.UNSIGNED_SHORT,snorm16x2:n.GL_TYPES.SHORT,snorm16x4:n.GL_TYPES.SHORT,float16x2:n.GL_TYPES.HALF_FLOAT,float16x4:n.GL_TYPES.HALF_FLOAT,float32:n.GL_TYPES.FLOAT,float32x2:n.GL_TYPES.FLOAT,float32x3:n.GL_TYPES.FLOAT,float32x4:n.GL_TYPES.FLOAT,uint32:n.GL_TYPES.UNSIGNED_INT,uint32x2:n.GL_TYPES.UNSIGNED_INT,uint32x3:n.GL_TYPES.UNSIGNED_INT,uint32x4:n.GL_TYPES.UNSIGNED_INT,sint32:n.GL_TYPES.INT,sint32x2:n.GL_TYPES.INT,sint32x3:n.GL_TYPES.INT,sint32x4:n.GL_TYPES.INT};t.getGlTypeFromFormat=function(e){return i[e]??i.float32}},9779:function(e,t,r){"use strict";var n=r(42181),i=r(95190),s=r(91525),o=r(32985),a=r(45769);t.GlRenderTargetAdaptor=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new n.Rectangle}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new n.Rectangle}copyToTexture(e,t,r,n,i){const s=this._renderTargetSystem,o=this._renderer,a=s.getGpuRenderTarget(e),u=o.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,a.resolveTargetFramebuffer),o.texture.bind(t,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,i.x,i.y,r.x,r.y,n.width,n.height),t}startRenderPass(e,t=!0,r,n){const i=this._renderTargetSystem,s=e.colorTexture,o=i.getGpuRenderTarget(e);let a=n.y;e.isRoot&&(a=s.pixelHeight-n.height),e.colorTextures.forEach((e=>{this._renderer.texture.unbind(e)}));const u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,o.framebuffer);const l=this._viewPortCache;l.x===n.x&&l.y===a&&l.width===n.width&&l.height===n.height||(l.x=n.x,l.y=a,l.width=n.width,l.height=n.height,u.viewport(n.x,a,n.width,n.height)),o.depthStencilRenderBuffer||!e.stencil&&!e.depth||this._initStencil(o),this.clear(e,t,r)}finishRenderPass(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);if(!t.msaa)return;const r=this._renderer.gl;r.bindFramebuffer(r.FRAMEBUFFER,t.resolveTargetFramebuffer),r.bindFramebuffer(r.READ_FRAMEBUFFER,t.framebuffer),r.blitFramebuffer(0,0,t.width,t.height,0,0,t.width,t.height,r.COLOR_BUFFER_BIT,r.NEAREST),r.bindFramebuffer(r.FRAMEBUFFER,t.framebuffer)}initGpuRenderTarget(e){const t=this._renderer.gl,r=new a.GlRenderTarget;return s.CanvasSource.test(e.colorTexture.resource)?(r.framebuffer=null,r):(this._initColor(e,r),t.bindFramebuffer(t.FRAMEBUFFER,null),r)}clear(e,t,r){if(!t)return;const n=this._renderTargetSystem;"boolean"==typeof t&&(t=t?o.CLEAR.ALL:o.CLEAR.NONE);const i=this._renderer.gl;if(t&o.CLEAR.COLOR){r??(r=n.defaultClearColor);const e=this._clearColorCache,t=r;e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]||(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],i.clearColor(t[0],t[1],t[2],t[3]))}i.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;const t=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,t),e.stencil&&this._resizeStencil(t)}_initColor(e,t){const r=this._renderer,n=r.gl,s=n.createFramebuffer();if(t.resolveTargetFramebuffer=s,n.bindFramebuffer(n.FRAMEBUFFER,s),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach(((e,s)=>{const o=e.source;o.antialias&&(r.context.supports.msaa?t.msaa=!0:i.warn("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(o,0);const a=r.texture.getGlSource(o).texture;n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+s,3553,a,0)})),t.msaa){const r=n.createFramebuffer();t.framebuffer=r,n.bindFramebuffer(n.FRAMEBUFFER,r),e.colorTextures.forEach(((e,r)=>{const i=n.createRenderbuffer();t.msaaRenderBuffer[r]=i}))}else t.framebuffer=s;this._resizeColor(e,t)}_resizeColor(e,t){const r=e.colorTexture.source;if(t.width=r.pixelWidth,t.height=r.pixelHeight,e.colorTextures.forEach(((e,t)=>{0!==t&&e.source.resize(r.width,r.height,r._resolution)})),t.msaa){const r=this._renderer,n=r.gl,i=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,i),e.colorTextures.forEach(((e,i)=>{const s=e.source;r.texture.bindSource(s,0);const o=r.texture.getGlSource(s).internalFormat,a=t.msaaRenderBuffer[i];n.bindRenderbuffer(n.RENDERBUFFER,a),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,o,s.pixelWidth,s.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+i,n.RENDERBUFFER,a)}))}}_initStencil(e){if(null===e.framebuffer)return;const t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){const t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,2===this._renderer.context.webGLVersion?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}}},54346:function(e,t,r){"use strict";var n=r(17073),i=r(16952),s=r(9779);class o extends i.RenderTargetSystem{constructor(e){super(e),this.adaptor=new s.GlRenderTargetAdaptor,this.adaptor.init(e,this)}}o.extension={type:[n.ExtensionType.WebGLSystem],name:"renderTarget"},t.GlRenderTargetSystem=o},65706:function(e,t,r){"use strict";var n=r(1793),i=r(65518),s=r(27666);t.generateShaderSyncCode=function(e,t){const r=[],o=["\n var g = s.groups;\n var sS = r.shader;\n var p = s.glProgram;\n var ugS = r.uniformGroup;\n var resources;\n "];let a=!1,u=0,l=0;const c=t._getProgramData(e.glProgram);for(const h in e.groups){const d=e.groups[h];r.push(`\n resources = g[${h}].resources;\n `);for(const p in d.resources){const f=d.resources[p];if(f instanceof i.UniformGroup)f.ubo?r.push(`\n sS.bindUniformBlock(\n resources[${p}],\n sS._uniformBindMap[${h}[${p}],\n ${u++}\n );\n `):r.push(`\n ugS.updateUniformGroup(resources[${p}], p, sD);\n `);else if(f instanceof n.BufferResource)r.push(`\n sS.bindUniformBlock(\n resources[${p}],\n sS._uniformBindMap[${h}[${p}],\n ${u++}\n );\n `);else if(f instanceof s.TextureSource){const n=e._uniformBindMap[h][p],i=c.uniformData[n];i&&(a||(a=!0,o.push("\n var tS = r.texture;\n ")),t._gl.uniform1i(i.location,l),r.push(`\n tS.bind(resources[${p}], ${l});\n `),l++)}}}const h=[...o,...r].join("\n");return new Function("r","s","sD",h)}},62991:function(e,t,r){"use strict";var n=r(6066),i=r(3871),s=r(9778),o=r(4023),a=r(77944),u=r(48142);const l={stripVersion:r(3553).stripVersion,ensurePrecision:o.ensurePrecision,addProgramDefines:s.addProgramDefines,setProgramName:u.setProgramName,insertVersion:a.insertVersion},c=Object.create(null),h=class e{constructor(t){const r=-1!==(t={...e.defaultOptions,...t}).fragment.indexOf("#version 300 es"),s={stripVersion:r,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:i.getMaxFragmentPrecision()},setProgramName:{name:t.name},addProgramDefines:r,insertVersion:r};let o=t.fragment,a=t.vertex;Object.keys(l).forEach((e=>{const t=s[e];o=l[e](o,t,!0),a=l[e](a,t,!1)})),this.fragment=o,this.vertex=a,this._key=n.createIdFromString(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(t){const r=`${t.vertex}:${t.fragment}`;return c[r]||(c[r]=new e(t)),c[r]}};h.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};let d=h;t.GlProgram=d},94230:function(e,t){"use strict";t.GlProgramData=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}},t.IGLUniformData=class{}},2071:function(e,t,r){"use strict";var n=r(17073),i=r(65706),s=r(3480);const o={textureCount:0,blockIndex:0};class a{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._nextIndex=0,this._boundUniformsIdsToIndexHash=Object.create(null),this._boundIndexToUniformsHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e}contextChange(e){this._gl=e,this._maxBindings=e.MAX_UNIFORM_BUFFER_BINDINGS?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0,this._programDataHash=Object.create(null),this._boundUniformsIdsToIndexHash=Object.create(null),this._boundIndexToUniformsHash=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;o.textureCount=0,o.blockIndex=0;let r=this._shaderSyncFunctions[e.glProgram._key];r||(r=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),r(this._renderer,e,o)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,o)}bindUniformBlock(e,t,r=0){const n=this._renderer.buffer,i=this._getProgramData(this._activeProgram),s=e._bufferResource;s&&this._renderer.ubo.updateUniformGroup(e),n.updateBuffer(e.buffer);let o=this._boundUniformsIdsToIndexHash[e.uid];if(void 0===o){const t=this._nextIndex++%this._maxBindings,r=this._boundIndexToUniformsHash[t];r&&(this._boundUniformsIdsToIndexHash[r.uid]=void 0),o=this._boundUniformsIdsToIndexHash[e.uid]=t,this._boundIndexToUniformsHash[t]=e,s?n.bindBufferRange(e.buffer,t,e.offset):n.bindBufferBase(e.buffer,t)}const a=this._gl,u=this._activeProgram._uniformBlockData[t].index;i.uniformBlockBindings[r]!==o&&(i.uniformBlockBindings[r]=o,a.uniformBlockBinding(i.program,u,o))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;const t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){const t=e._key;return this._programDataHash[t]=s.generateProgram(this._gl,e),this._programDataHash[t]}destroy(){for(const e of Object.keys(this._programDataHash)){this._programDataHash[e].destroy(),this._programDataHash[e]=null}this._programDataHash=null,this._boundUniformsIdsToIndexHash=null}_generateShaderSync(e,t){return i.generateShaderSyncCode(e,t)}}a.extension={type:[n.ExtensionType.WebGLSystem],name:"shader"},t.GlShaderSystem=a},53864:function(e,t,r){"use strict";var n=r(17073),i=r(66171);class s{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,r){const n=this._renderer.shader._getProgramData(t);if(!e.isStatic||e._dirtyId!==n.uniformDirtyGroups[e.uid]){n.uniformDirtyGroups[e.uid]=e._dirtyId;this._getUniformSyncFunction(e,t)(n.uniformData,e.uniforms,this._renderer,r)}}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){const r=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),n=this._getSignature(e,t._uniformData,"u");return this._cache[n]||(this._cache[n]=this._generateUniformsSync(e,t._uniformData)),r[t._key]=this._cache[n],r[t._key]}_generateUniformsSync(e,t){return i.generateUniformsSync(e,t)}_getSignature(e,t,r){const n=e.uniforms,i=[`${r}-`];for(const e in n)i.push(e),t[e]&&i.push(t[e].type);return i.join("-")}destroy(){this._renderer=null,this._cache=null}}s.extension={type:[n.ExtensionType.WebGLSystem],name:"uniformGroup"},t.GlUniformGroupSystem=s},62998:function(e,t,r){"use strict";var n=r(11909),i=r(65518);const s=new Int32Array(n.MAX_TEXTURES);for(let e=0;ee>t?1:-1));for(let r=0;r`${t}: ${e}`)),n=e.getShaderInfoLog(t),i=n.split("\n"),s={},o=i.map((e=>parseFloat(e.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1")))).filter((e=>!(!e||s[e])&&(s[e]=!0,!0))),a=[""];o.forEach((e=>{r[e-1]=`%c${r[e-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")}));const u=r.join("\n");a[0]=u,console.error(n),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}t.logProgramError=function(e,t,n,i){e.getProgramParameter(t,e.LINK_STATUS)||(e.getShaderParameter(n,e.COMPILE_STATUS)||r(e,n),e.getShaderParameter(i,e.COMPILE_STATUS)||r(e,i),console.error("PixiJS Error: Could not initialize shader."),""!==e.getProgramInfoLog(t)&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",e.getProgramInfoLog(t)))}},86380:function(e,t){"use strict";const r={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};t.mapSize=function(e){return r[e]}},44135:function(e,t){"use strict";let r=null;const n={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},i={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"};function s(e,t){if(!r){const t=Object.keys(n);r={};for(let i=0;i":8,"vec3":12,"vec4":16,"mat2x2":32,"mat3x3":48,"mat4x4":64};t.WGSL_TO_STD40_SIZE=r,t.createUboElementsSTD40=function(e){const t=e.map((e=>({data:e,offset:0,size:0})));let n=0,i=0,s=0;for(let e=0;e1&&(n=Math.max(n,16)*o.data.size),o.size=n,i%n!=0&&i<16){const e=i%n%16;i+=e,s+=e}i+n>16?(s=16*Math.ceil(s/16),o.offset=s,s+=n,i=n):(o.offset=s,i+=n,s+=n)}return s=16*Math.ceil(s/16),{uboElements:t,size:s}}},90708:function(e,t,r){"use strict";var n=r(1021),i=r(63981),s=r(40074);t.createUboSyncFunctionSTD40=function(e){return n.createUboSyncFunction(e,"uboStd40",s.generateArraySyncSTD40,i.uboSyncFunctionsSTD40)}},40074:function(e,t,r){"use strict";var n=r(98121);t.generateArraySyncSTD40=function(e,t){const r=Math.max(n.WGSL_TO_STD40_SIZE[e.data.type]/16,1),i=e.data.value.length/e.data.size,s=(4-i%4)%4;return`\n v = uv.${e.data.name};\n offset += ${t};\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${e.data.size*r}; i++)\n {\n for(var j = 0; j < ${i}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${0!==s?`arrayOffset += ${s};`:""}\n }\n `}},66171:function(e,t,r){"use strict";var n=r(1793),i=r(65518),s=r(46876),o=r(8279);t.generateUniformsSync=function(e,t){const r=["\n var v = null;\n var cv = null;\n var cu = null;\n var t = 0;\n var gl = renderer.gl;\n var name = null;\n "];for(const a in e.uniforms){if(!t[a]){e.uniforms[a]instanceof i.UniformGroup?e.uniforms[a].ubo?r.push(`\n renderer.shader.bindUniformBlock(uv.${a}, "${a}");\n `):r.push(`\n renderer.shader.updateUniformGroup(uv.${a});\n `):e.uniforms[a]instanceof n.BufferResource&&r.push(`\n renderer.shader.bindBufferResource(uv.${a}, "${a}");\n `);continue}const u=e.uniformStructures[a];let l=!1;for(let e=0;e":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3f(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4f(location, v[0], v[1], v[2], v[3]);\n }",i32:"if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }",u32:"if (cv !== v) {\n cu.value = v;\n gl.uniform1ui(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2ui(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3ui(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4ui(location, v[0], v[1], v[2], v[3]);\n }",bool:"if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }","vec2":"if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }","vec3":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }","vec4":"if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }","mat2x2":"gl.uniformMatrix2fv(location, false, v);","mat3x3":"gl.uniformMatrix3fv(location, false, v);","mat4x4":"gl.uniformMatrix4fv(location, false, v);"},n={f32:"gl.uniform1fv(location, v);","vec2":"gl.uniform2fv(location, v);","vec3":"gl.uniform3fv(location, v);","vec4":"gl.uniform4fv(location, v);","mat2x2":"gl.uniformMatrix2fv(location, false, v);","mat3x3":"gl.uniformMatrix3fv(location, false, v);","mat4x4":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2":"gl.uniform2iv(location, v);","vec3":"gl.uniform3iv(location, v);","vec4":"gl.uniform4iv(location, v);"};t.UNIFORM_TO_ARRAY_SETTERS=n,t.UNIFORM_TO_SINGLE_SETTERS=r},93199:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(40655);const o=class e{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[0]=this.setBlend,this.map[1]=this.setOffset,this.map[2]=this.setCullFace,this.map[3]=this.setDepthTest,this.map[4]=this.setFrontFace,this.map[5]=this.setDepthMask,this.checks=[],this.defaultState=i.State.for2d()}contextChange(e){this.gl=e,this.blendModesMap=s.mapWebGLBlendModesToPixi(e),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)1&t&&this.map[r].call(this,!!(e.data&1<>=1,r++;this.stateId=e.data}for(let t=0;t1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",t.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo)}onSourceUnload(e){const t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){const t=this._gl,r=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,r.texture),this._boundTextures[this._activeTextureLocation]=e,this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);const r=this.getGlSource(e);this._gl.generateMipmap(r.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){const t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,h.applyStyleParams(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){const{pixels:t,width:r,height:i}=this.getPixels(e),s=n.DOMAdapter.get().createCanvas();s.width=r,s.height=i;const o=s.getContext("2d");if(o){const e=o.createImageData(r,i);e.data.set(t),o.putImageData(e,0,0)}return s}getPixels(e){const t=e.source.resolution,r=e.frame,n=Math.max(Math.round(r.width*t),1),i=Math.max(Math.round(r.height*t),1),s=new Uint8Array(4*n*i),o=this._renderer,a=o.renderTarget.getRenderTarget(e),u=o.renderTarget.getGpuRenderTarget(a),l=o.gl;return l.bindFramebuffer(l.FRAMEBUFFER,u.resolveTargetFramebuffer),l.readPixels(Math.round(r.x*t),Math.round(r.y*t),n,i,l.RGBA,l.UNSIGNED_BYTE,s),{pixels:new Uint8ClampedArray(s.buffer),width:n,height:i}}destroy(){this.managedTextures.slice().forEach((e=>this.onSourceDestroy(e))),this.managedTextures=null,this._renderer=null}}m.extension={type:[i.ExtensionType.WebGLSystem],name:"texture"},t.GlTextureSystem=m},30290:function(e,t){"use strict";var r=(e=>(e[e.RGBA=6408]="RGBA",e[e.RGB=6407]="RGB",e[e.RG=33319]="RG",e[e.RED=6403]="RED",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.ALPHA=6406]="ALPHA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e))(r||{}),n=(e=>(e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e))(n||{}),i=(e=>(e[e.CLAMP=33071]="CLAMP",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e))(i||{}),s=(e=>(e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.BYTE=5120]="BYTE",e[e.SHORT=5122]="SHORT",e[e.INT=5124]="INT",e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.HALF_FLOAT=36193]="HALF_FLOAT",e))(s||{});t.GL_FORMATS=r,t.GL_TARGETS=n,t.GL_TYPES=s,t.GL_WRAP_MODES=i},96157:function(){},35416:function(e,t){"use strict";const r={id:"image",upload(e,t,r){t.width===e.width||t.height===e.height?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,e.width,e.height,0,t.format,t.type,e.resource),t.width=e.width,t.height=e.height}};t.glUploadBufferImageResource=r},82953:function(e,t){"use strict";const r={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},n={id:"compressed",upload(e,t,n){n.pixelStorei(n.UNPACK_ALIGNMENT,4);let i=e.pixelWidth,s=e.pixelHeight;const o=!!r[e.format];for(let r=0;r>1,1),s=Math.max(s>>1,1)}}};t.glUploadCompressedTextureResource=n},75705:function(e,t){"use strict";const r={id:"image",upload(e,t,r,n){const i="premultiply-alpha-on-upload"===e.alphaMode;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i);const s=t.width,o=t.height,a=e.pixelWidth,u=e.pixelHeight,l=e.resourceWidth,c=e.resourceHeight;l1){const r=Math.min(e.maxAnisotropy,t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](u,i.TEXTURE_MAX_ANISOTROPY_EXT,r)}e.compare&&t[s](u,t.TEXTURE_COMPARE_FUNC,n.compareModeToGlCompare[e.compare])}},84157:function(e,t){"use strict";let r;t.getSupportedGlCompressedTextureFormats=function(){if(r)return r;const e=document.createElement("canvas").getContext("webgl");return e?(r=[...e.getExtension("EXT_texture_compression_bptc")?["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"]:[],...e.getExtension("WEBGL_compressed_texture_s3tc")?["bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"]:[],...e.getExtension("WEBGL_compressed_texture_s3tc_srgb")?["bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"]:[],...e.getExtension("EXT_texture_compression_rgtc")?["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"]:[],...e.getExtension("WEBGL_compressed_texture_etc")?["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","eac-r11unorm","eac-rg11unorm"]:[],...e.getExtension("WEBGL_compressed_texture_astc")?["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]:[]],r):[]}},5020:function(e,t){"use strict";t.mapFormatToGlFormat=function(e){return{r8unorm:e.RED,r8snorm:e.RED,r8uint:e.RED,r8sint:e.RED,r16uint:e.RED,r16sint:e.RED,r16float:e.RED,rg8unorm:e.RG,rg8snorm:e.RG,rg8uint:e.RG,rg8sint:e.RG,r32uint:e.RED,r32sint:e.RED,r32float:e.RED,rg16uint:e.RG,rg16sint:e.RG,rg16float:e.RG,rgba8unorm:e.RGBA,"rgba8unorm-srgb":e.RGBA,rgba8snorm:e.RGBA,rgba8uint:e.RGBA,rgba8sint:e.RGBA,bgra8unorm:e.RGBA,"bgra8unorm-srgb":e.RGBA,rgb9e5ufloat:e.RGB,rgb10a2unorm:e.RGBA,rg11b10ufloat:e.RGB,rg32uint:e.RG,rg32sint:e.RG,rg32float:e.RG,rgba16uint:e.RGBA,rgba16sint:e.RGBA,rgba16float:e.RGBA,rgba32uint:e.RGBA,rgba32sint:e.RGBA,rgba32float:e.RGBA,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT,depth24plus:e.DEPTH_COMPONENT,"depth24plus-stencil8":e.DEPTH_STENCIL,depth32float:e.DEPTH_COMPONENT,"depth32float-stencil8":e.DEPTH_STENCIL}}},51727:function(e,t){"use strict";t.mapFormatToGlInternalFormat=function(e,t){let r={},n=e.RGBA;return e instanceof WebGL2RenderingContext?(r={"rgba8unorm-srgb":e.SRGB8_ALPHA8,"bgra8unorm-srgb":e.SRGB8_ALPHA8},n=e.RGBA8):t.srgb&&(r={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}),{r8unorm:e.R8,r8snorm:e.R8_SNORM,r8uint:e.R8UI,r8sint:e.R8I,r16uint:e.R16UI,r16sint:e.R16I,r16float:e.R16F,rg8unorm:e.RG8,rg8snorm:e.RG8_SNORM,rg8uint:e.RG8UI,rg8sint:e.RG8I,r32uint:e.R32UI,r32sint:e.R32I,r32float:e.R32F,rg16uint:e.RG16UI,rg16sint:e.RG16I,rg16float:e.RG16F,rgba8unorm:e.RGBA,...r,rgba8snorm:e.RGBA8_SNORM,rgba8uint:e.RGBA8UI,rgba8sint:e.RGBA8I,bgra8unorm:n,rgb9e5ufloat:e.RGB9_E5,rgb10a2unorm:e.RGB10_A2,rg11b10ufloat:e.R11F_G11F_B10F,rg32uint:e.RG32UI,rg32sint:e.RG32I,rg32float:e.RG32F,rgba16uint:e.RGBA16UI,rgba16sint:e.RGBA16I,rgba16float:e.RGBA16F,rgba32uint:e.RGBA32UI,rgba32sint:e.RGBA32I,rgba32float:e.RGBA32F,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT16,depth24plus:e.DEPTH_COMPONENT24,"depth24plus-stencil8":e.DEPTH24_STENCIL8,depth32float:e.DEPTH_COMPONENT32F,"depth32float-stencil8":e.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}},16310:function(e,t){"use strict";t.mapFormatToGlType=function(e){return{r8unorm:e.UNSIGNED_BYTE,r8snorm:e.BYTE,r8uint:e.UNSIGNED_BYTE,r8sint:e.BYTE,r16uint:e.UNSIGNED_SHORT,r16sint:e.SHORT,r16float:e.HALF_FLOAT,rg8unorm:e.UNSIGNED_BYTE,rg8snorm:e.BYTE,rg8uint:e.UNSIGNED_BYTE,rg8sint:e.BYTE,r32uint:e.UNSIGNED_INT,r32sint:e.INT,r32float:e.FLOAT,rg16uint:e.UNSIGNED_SHORT,rg16sint:e.SHORT,rg16float:e.HALF_FLOAT,rgba8unorm:e.UNSIGNED_BYTE,"rgba8unorm-srgb":e.UNSIGNED_BYTE,rgba8snorm:e.BYTE,rgba8uint:e.UNSIGNED_BYTE,rgba8sint:e.BYTE,bgra8unorm:e.UNSIGNED_BYTE,"bgra8unorm-srgb":e.UNSIGNED_BYTE,rgb9e5ufloat:e.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:e.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:e.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:e.UNSIGNED_INT,rg32sint:e.INT,rg32float:e.FLOAT,rgba16uint:e.UNSIGNED_SHORT,rgba16sint:e.SHORT,rgba16float:e.HALF_FLOAT,rgba32uint:e.UNSIGNED_INT,rgba32sint:e.INT,rgba32float:e.FLOAT,stencil8:e.UNSIGNED_BYTE,depth16unorm:e.UNSIGNED_SHORT,depth24plus:e.UNSIGNED_INT,"depth24plus-stencil8":e.UNSIGNED_INT_24_8,depth32float:e.FLOAT,"depth32float-stencil8":e.FLOAT_32_UNSIGNED_INT_24_8_REV}}},59758:function(e,t){"use strict";t.compareModeToGlCompare={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519},t.mipmapScaleModeToGlFilter={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},t.scaleModeToGlFilter={linear:9729,nearest:9728},t.wrapModeToGlAddress={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648}},7358:function(e,t){"use strict";t.unpremultiplyAlpha=function(e){e instanceof Uint8ClampedArray&&(e=new Uint8Array(e.buffer));const t=e.length;for(let r=0;r{this.gpu=e,this._renderer.runners.contextChange.emit(this.gpu)}))),this._initPromise}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){const t=await navigator.gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter((e=>t.features.has(e))),n=await t.requestDevice({requiredFeatures:r});return{adapter:t,device:n}}destroy(){this.gpu=null,this._renderer=null}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"device"},i.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1},t.GpuDeviceSystem=i},32920:function(e,t,r){"use strict";var n=r(17073);class i{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise((e=>{this._resolveCommandFinished=e})),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,r,n){const i=this._renderer.pipeline.getPipeline(e,t,r,n);this.setPipeline(i)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;const t=2===e.data.BYTES_PER_ELEMENT?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,r){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.textureGC.count);const n=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,n)}setGeometry(e){for(const t in e.attributes){const r=e.attributes[t];this._setVertexBuffer(r.location,r.buffer)}e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(const r in e.groups){const n=e.groups[r];t||this._syncBindGroup(n),this.setBindGroup(r,n,e.gpuProgram)}}_syncBindGroup(e){for(const t in e.resources){const r=e.resources[t];r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){const{geometry:t,shader:r,state:n,topology:i,size:s,start:o,instanceCount:a,skipSync:u}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,n,i),this.setGeometry(t),this._setShaderBindGroups(r,u),t.indexBuffer?this.renderPassEncoder.drawIndexed(s||t.indexBuffer.data.length,a||t.instanceCount,o||0):this.renderPassEncoder.draw(s||t.getSize(),a||t.instanceCount,o||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){const e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1]);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);const t=this._boundPipeline,r={...this._boundVertexBuffer},n=this._boundIndexBuffer,i={...this._boundBindGroup};this._clearCache();const s=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(s.x,s.y,s.width,s.height,0,1),this.setPipeline(t);for(const e in r)this._setVertexBuffer(e,r[e]);for(const e in i)this.setBindGroup(e,i[e],null);this._setIndexBuffer(n)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"encoder",priority:1},t.GpuEncoderSystem=i},96150:function(e,t,r){"use strict";var n=r(17073),i=r(56445);class s{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:i.STENCIL_MODES.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){const r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;const n=this._renderer;n.pipeline.setStencilMode(e),n.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}}s.extension={type:[n.ExtensionType.WebGPUSystem],name:"stencil"},t.GpuStencilSystem=s},4812:function(e,t,r){"use strict";var n=r(17073),i=r(6864),s=r(41036),o=r(84214);class a extends i.UboSystem{constructor(){super({createUboElements:s.createUboElementsWGSL,generateUboSync:o.createUboSyncFunctionWGSL})}}a.extension={type:[n.ExtensionType.WebGPUSystem],name:"ubo"},t.GpuUboSystem=a},93812:function(e,t,r){"use strict";var n=r(17073),i=r(21839),s=r(1793),o=r(18919),a=r(30679),u=r(83582);const l=128;class c{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new a.UboBatch({minUniformOffsetAlignment:l});for(let e=0;e<2;e++){let t=o.BufferUsage.UNIFORM|o.BufferUsage.COPY_DST;0===e&&(t|=o.BufferUsage.COPY_SRC),this._buffers.push(new i.Buffer({data:this._batchBuffer.data,usage:t}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){for(const e in this._bindGroupHash)this._bindGroupHash[e]=null;this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);const r=e.buffer.data,n=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,n/4),this._bindGroupHash[e.uid]=this._getBindGroup(n/l),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);const t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/l)}getArrayBindGroup(e){const t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/l)}getArrayBufferResource(e){const t=this._batchBuffer.addGroup(e)/l;return this._getBufferResource(t)}_getBufferResource(e){if(!this._bufferResources[e]){const t=this._buffers[e%2];this._bufferResources[e]=new s.BufferResource({buffer:t,offset:256*(e/2|0),size:l})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){const t=new u.BindGroup({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){const e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);const r=this._renderer.gpu.device.createCommandEncoder();for(let n=1;nthis.onBufferDestroy(e))),this._managedBuffers=null,this._gpuBuffers=null}}s.extension={type:[n.ExtensionType.WebGPUSystem],name:"buffer"},t.GpuBufferSystem=s},40736:function(e,t,r){"use strict";var n=r(21839),i=r(18919);t.GpuReadBuffer=function(e,t){const r=e.descriptor.size,s=t.gpu.device,o=new n.Buffer({data:new Float32Array(24e5),usage:i.BufferUsage.MAP_READ|i.BufferUsage.COPY_DST}),a=t.buffer.createGPUBuffer(o),u=s.createCommandEncoder();u.copyBufferToBuffer(t.buffer.getGPUBuffer(e),0,a,0,r),s.queue.submit([u.finish()]),a.mapAsync(GPUMapMode.READ,0,r).then((()=>{a.getMappedRange(0,r),a.unmap()}))}},30679:function(e,t){"use strict";t.UboBatch=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error("UniformBufferBatch: array is too large: "+4*e);const t=this.byteIndex;let r=t+4*e;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>4*this.data.length)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){const t=this.addEmptyGroup(e.length);for(let r=0;r{const n={arrayStride:0,stepMode:"vertex",attributes:[]},i=n.attributes;for(const t in e.attributes){const s=e.attributes[t];s.buffer===r&&(n.arrayStride=s.stride,n.stepMode=s.instance?"instance":"vertex",i.push({shaderLocation:s.location,offset:s.offset,format:s.format}))}i.length&&t.push(n)})),this._bufferLayoutsCache[e._layoutKey]=t,t}_updatePipeHash(){const e=(t=this._stencilMode,r=this._multisampleCount,n=this._colorMask,i=this._depthStencilAttachment,n<<6|t<<3|i<<1|r);var t,r,n,i;this._pipeStateCaches[e]||(this._pipeStateCaches[e]=Object.create(null)),this._pipeCache=this._pipeStateCaches[e]}destroy(){this._renderer=null,this._bufferLayoutsCache=null}}l.extension={type:[n.ExtensionType.WebGPUSystem],name:"pipeline"},t.PipelineSystem=l},86136:function(e,t){"use strict";t.GpuRenderTarget=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}},9143:function(e,t,r){"use strict";var n=r(32985),i=r(91525),s=r(27666),o=r(86136);t.GpuRenderTargetAdaptor=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,n,i){const s=this._renderer,o=this._getGpuColorTexture(e),a=s.texture.getGpuSource(t.source);return s.encoder.commandEncoder.copyTextureToTexture({texture:o,origin:r},{texture:a,origin:i},n),t}startRenderPass(e,t=!0,r,n){const i=this._renderTargetSystem.getGpuRenderTarget(e),s=this.getDescriptor(e,t,r);i.descriptor=s,this._renderer.pipeline.setRenderTarget(i),this._renderer.encoder.beginRenderPass(i),this._renderer.encoder.setViewport(n)}finishRenderPass(){this._renderer.encoder.endRenderPass()}_getGpuColorTexture(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);return t.contexts[0]?t.contexts[0].getCurrentTexture():this._renderer.texture.getGpuSource(e.colorTextures[0].source)}getDescriptor(e,t,r){"boolean"==typeof t&&(t=t?n.CLEAR.ALL:n.CLEAR.NONE);const i=this._renderTargetSystem,s=i.getGpuRenderTarget(e),o=e.colorTextures.map(((e,o)=>{const a=s.contexts[o];let u,l;if(a){u=a.getCurrentTexture().createView()}else u=this._renderer.texture.getGpuSource(e).createView({mipLevelCount:1});s.msaaTextures[o]&&(l=u,u=this._renderer.texture.getTextureView(s.msaaTextures[o]));const c=t&n.CLEAR.COLOR?"clear":"load";return r??(r=i.defaultClearColor),{view:u,resolveTarget:l,clearValue:r,storeOp:"store",loadOp:c}}));let a;if(!e.stencil&&!e.depth||e.depthStencilTexture||(e.ensureDepthStencilTexture(),e.depthStencilTexture.source.sampleCount=s.msaa?4:1),e.depthStencilTexture){const r=t&n.CLEAR.STENCIL?"clear":"load",i=t&n.CLEAR.DEPTH?"clear":"load";a={view:this._renderer.texture.getGpuSource(e.depthStencilTexture.source).createView(),stencilStoreOp:"store",stencilLoadOp:r,depthClearValue:1,depthLoadOp:i,depthStoreOp:"store"}}return{colorAttachments:o,depthStencilAttachment:a}}clear(e,t=!0,r,n){if(!t)return;const{gpu:i,encoder:s}=this._renderer,o=i.device;if(null===s.commandEncoder){const i=o.createCommandEncoder(),s=this.getDescriptor(e,t,r),a=i.beginRenderPass(s);a.setViewport(n.x,n.y,n.width,n.height,0,1),a.end();const u=i.finish();o.queue.submit([u])}else this.startRenderPass(e,t,r,n)}initGpuRenderTarget(e){e.isRoot=!0;const t=new o.GpuRenderTarget;return e.colorTextures.forEach(((e,r)=>{if(i.CanvasSource.test(e.resource)){const n=e.resource.getContext("webgpu"),i=e.transparent?"premultiplied":"opaque";try{n.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:"bgra8unorm",alphaMode:i})}catch(e){console.error(e)}t.contexts[r]=n}if(t.msaa=e.source.antialias,e.source.antialias){const e=new s.TextureSource({width:0,height:0,sampleCount:4});t.msaaTextures[r]=e}})),t.msaa&&(t.msaaSamples=4,e.depthStencilTexture&&(e.depthStencilTexture.source.sampleCount=4)),t}ensureDepthStencilTexture(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilTexture&&t.msaa&&(e.depthStencilTexture.source.sampleCount=4)}resizeGpuRenderTarget(e){const t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorTextures.forEach(((e,r)=>{const n=t.msaaTextures[r];n?.resize(e.source.width,e.source.height,e.source._resolution)}))}}},24628:function(e,t,r){"use strict";var n=r(17073),i=r(16952),s=r(9143);class o extends i.RenderTargetSystem{constructor(e){super(e),this.adaptor=new s.GpuRenderTargetAdaptor,this.adaptor.init(e,this)}}o.extension={type:[n.ExtensionType.WebGPUSystem],name:"renderTarget"},t.GpuRenderTargetSystem=o},91428:function(e,t){"use strict";t.calculateProjection=function(e,t,r,n,i,s){const o=s?1:-1;return e.identity(),e.a=1/n*2,e.d=o*(1/i*2),e.tx=-1-t*e.a,e.ty=-o-r*e.d,e}},83582:function(e,t){"use strict";t.BindGroup=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(const r in e){const n=e[r];this.setResource(n,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;const e=[];let t=0;for(const r in this.resources)e[t++]=this.resources[r]._resourceId;this._key=e.join("|")}setResource(e,t){const r=this.resources[t];e!==r&&(r&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){const t=this.resources;for(const r in t)t[r]._touched=e}destroy(){const e=this.resources;for(const t in e){const r=e[t];r.off?.("change",this.onResourceChange,this)}this.resources=null}onResourceChange(){this._dirty=!0,this._updateKey()}}},1805:function(){},50543:function(e,t,r){"use strict";var n=r(6066),i=r(29926),s=r(16126),o=r(80863),a=r(47242),u=r(79320);const l=Object.create(null);class c{constructor(e){this._layoutKey=0;const{fragment:t,vertex:r,layout:n,gpuLayout:i,name:l}=e;if(this.name=l,this.fragment=t,this.vertex=r,t.source===r.source){const e=s.extractStructAndGroups(t.source);this.structsAndGroups=e}else{const e=s.extractStructAndGroups(r.source),n=s.extractStructAndGroups(t.source);this.structsAndGroups=u.removeStructAndGroupDuplicates(e,n)}this.layout=n??a.generateLayoutHash(this.structsAndGroups),this.gpuLayout=i??o.generateGpuLayoutGroups(this.structsAndGroups),this.autoAssignGlobalUniforms=!(void 0===this.layout[0]?.globalUniforms),this.autoAssignLocalUniforms=!(void 0===this.layout[1]?.localUniforms),this._generateProgramKey()}_generateProgramKey(){const{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=n.createIdFromString(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=i.extractAttributesFromGpuProgram(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){const t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return l[t]||(l[t]=new c(e)),l[t]}}t.GpuProgram=c},25947:function(e,t,r){"use strict";var n=r(17073);class i{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){const t=this._gpu.device,r=e.gpuLayout.map((e=>t.createBindGroupLayout({entries:e}))),n={bindGroupLayouts:r};return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout(n)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}}i.extension={type:[n.ExtensionType.WebGPUSystem],name:"shader"},t.GpuShaderSystem=i},41036:function(e,t){"use strict";const r={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2":{align:8,size:8},"vec2":{align:8,size:8},"vec2":{align:8,size:8},"vec2":{align:4,size:4},"vec3":{align:16,size:12},"vec3":{align:16,size:12},"vec3":{align:16,size:12},"vec3":{align:8,size:6},"vec4":{align:16,size:16},"vec4":{align:16,size:16},"vec4":{align:16,size:16},"vec4":{align:8,size:8},"mat2x2":{align:8,size:16},"mat2x2":{align:4,size:8},"mat3x2":{align:8,size:24},"mat3x2":{align:4,size:12},"mat4x2":{align:8,size:32},"mat4x2":{align:4,size:16},"mat2x3":{align:16,size:32},"mat2x3":{align:8,size:16},"mat3x3":{align:16,size:48},"mat3x3":{align:8,size:24},"mat4x3":{align:16,size:64},"mat4x3":{align:8,size:32},"mat2x4":{align:16,size:32},"mat2x4":{align:8,size:16},"mat3x4":{align:16,size:48},"mat3x4":{align:8,size:24},"mat4x4":{align:16,size:64},"mat4x4":{align:8,size:32}};t.WGSL_ALIGN_SIZE_DATA=r,t.createUboElementsWGSL=function(e){const t=e.map((e=>({data:e,offset:0,size:0})));let n=0;for(let e=0;e1&&(s=Math.max(s,o)*i.data.size),n=Math.ceil(n/o)*o,i.size=s,i.offset=n,n+=s}return n=16*Math.ceil(n/16),{uboElements:t,size:n}}},84214:function(e,t,r){"use strict";var n=r(1021),i=r(63981),s=r(1513);t.createUboSyncFunctionWGSL=function(e){return n.createUboSyncFunction(e,"uboWgsl",s.generateArraySyncWGSL,i.uboSyncFunctionsWGSL)}},29926:function(e,t,r){"use strict";var n=r(52783);const i={f32:"float32","vec2":"float32x2","vec3":"float32x3","vec4":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2":"sint32x2","vec3":"sint32x3","vec4":"sint32x4",u32:"uint32","vec2":"uint32x2","vec3":"uint32x3","vec4":"uint32x4",bool:"uint32","vec2":"uint32x2","vec3":"uint32x3","vec4":"uint32x4"};t.extractAttributesFromGpuProgram=function({source:e,entryPoint:t}){const r={},s=e.indexOf(`fn ${t}`);if(-1!==s){const t=e.indexOf("->",s);if(-1!==t){const o=e.substring(s,t),a=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g;let u;for(;null!==(u=a.exec(o));){const e=i[u[3]]??"float32";r[u[2]]={location:parseInt(u[1],10),format:e,stride:n.getAttributeInfoFromFormat(e).stride,offset:0,instance:!1,start:0}}}}return r}},16126:function(e,t){"use strict";t.extractStructAndGroups=function(e){const t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,n=/var(<[^>]+>)? (\w+)/,i=/:\s*(\w+)/,s=/(\w+)\s*:\s*([\w\<\>]+)/g,o=/struct\s+(\w+)/,a=e.match(/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g)?.map((e=>({group:parseInt(e.match(t)[1],10),binding:parseInt(e.match(r)[1],10),name:e.match(n)[2],isUniform:""===e.match(n)[1],type:e.match(i)[1]})));if(!a)return{groups:[],structs:[]};const u=e.match(/struct\s+(\w+)\s*{([^}]+)}/g)?.map((e=>{const t=e.match(o)[1],r=e.match(s).reduce(((e,t)=>{const[r,n]=t.split(":");return e[r.trim()]=n.trim(),e}),{});return r?{name:t,members:r}:null})).filter((({name:e})=>a.some((t=>t.type===e))))??[];return{groups:a,structs:u}}},1513:function(e,t,r){"use strict";var n=r(41036);t.generateArraySyncWGSL=function(e,t){const{size:r,align:i}=n.WGSL_ALIGN_SIZE_DATA[e.data.type],s=(i-r)/4;return`\n v = uv.${e.data.name};\n ${0!==t?`offset += ${t};`:""}\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${e.data.size*(r/4)}; i++)\n {\n for(var j = 0; j < ${r/4}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${0!==s?`arrayOffset += ${s};`:""}\n }\n `}},80863:function(e,t,r){"use strict";var n=r(19450);t.generateGpuLayoutGroups=function({groups:e}){const t=[];for(let r=0;r!r.has(e.name)&&(r.add(e.name),!0))),groups:[...e.groups,...t.groups].filter((e=>{const t=`${e.name}-${e.binding}`;return!n.has(t)&&(n.add(t),!0)}))}}},53299:function(e,t){"use strict";const r={normal:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},add:{alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},multiply:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},screen:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},overlay:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},none:{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},"normal-npm":{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},"add-npm":{alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},"screen-npm":{alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},erase:{alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}}};t.GpuBlendModesToPixi=r},81242:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(53299);class o{constructor(){this.defaultState=new i.State,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e){return[{format:"bgra8unorm",writeMask:0,blend:s.GpuBlendModesToPixi[e.blendMode]||s.GpuBlendModesToPixi.normal}]}destroy(){this.gpu=null}}o.extension={type:[n.ExtensionType.WebGPUSystem],name:"state"},t.GpuStateSystem=o},36826:function(e,t,r){"use strict";var n=r(56445);const i=[];i[n.STENCIL_MODES.NONE]=void 0,i[n.STENCIL_MODES.DISABLED]={stencilWriteMask:0,stencilReadMask:0},i[n.STENCIL_MODES.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},i[n.STENCIL_MODES.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},i[n.STENCIL_MODES.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}},t.GpuStencilModesToPixi=i},56042:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(60932),o=r(83582),a=r(97394),u=r(1956),l=r(37135),c=r(2766),h=r(87929);class d{constructor(e){this.managedTextures=[],this._gpuSources=Object.create(null),this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._textureViewHash=Object.create(null),this._uploads={image:l.gpuUploadImageResource,buffer:a.gpuUploadBufferImageResource,video:c.gpuUploadVideoResource,compressed:u.gpuUploadCompressedTextureResource},this._renderer=e}contextChange(e){this._gpu=e}initSource(e){if(e.autoGenerateMipmaps){const t=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(t))+1}let t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST;"compressed"!==e.uploadMethodId&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC);const r=u.blockDataMap[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},n=Math.ceil(e.pixelWidth/r.blockWidth)*r.blockWidth,i=Math.ceil(e.pixelHeight/r.blockHeight)*r.blockHeight,s={label:e.label,size:{width:n,height:i},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},o=this._gpu.device.createTexture(s);return this._gpuSources[e.uid]=o,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),o}onSourceUpdate(e){const t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onSourceUnload(e){const t=this._gpuSources[e.uid];t&&(this._gpuSources[e.uid]=null,t.destroy())}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new h.GpuMipmapGenerator(this._gpu.device));const t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceDestroy(e){e.off("update",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("destroy",this.onSourceDestroy,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}onSourceResize(e){const t=this._gpuSources[e.uid];t?t.width===e.pixelWidth&&t.height===e.pixelHeight||(this._textureViewHash[e.uid]=null,this._bindGroupHash[e.uid]=null,this.onSourceUnload(e),this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return this._gpuSources[e.uid]||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]??this._createTextureBindGroup(e)}_createTextureBindGroup(e){const t=e.source,r=t.uid;return this._bindGroupHash[r]=new o.BindGroup({0:t,1:t.style}),this._bindGroupHash[r]}getTextureView(e){const t=e.source;return this._textureViewHash[t.uid]??this._createTextureView(t)}_createTextureView(e){return this._textureViewHash[e.uid]=this.getGpuSource(e).createView(),this._textureViewHash[e.uid]}generateCanvas(e){const t=this._renderer,r=t.gpu.device.createCommandEncoder(),i=n.DOMAdapter.get().createCanvas();i.width=e.source.pixelWidth,i.height=e.source.pixelHeight;const s=i.getContext("webgpu");return s.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:navigator.gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:s.getCurrentTexture()},{width:i.width,height:i.height}),t.gpu.device.queue.submit([r.finish()]),i}getPixels(e){const t=this.generateCanvas(e),r=s.CanvasPool.getOptimalCanvasAndContext(t.width,t.height),n=r.context;n.drawImage(t,0,0);const{width:i,height:o}=t,a=n.getImageData(0,0,i,o),u=new Uint8ClampedArray(a.data.buffer);return s.CanvasPool.returnCanvasAndContext(r),{pixels:u,width:i,height:o}}destroy(){this.managedTextures.slice().forEach((e=>this.onSourceDestroy(e))),this.managedTextures=null;for(const e of Object.keys(this._bindGroupHash)){const t=Number(e),r=this._bindGroupHash[t];r?.destroy(),this._bindGroupHash[t]=null}this._gpu=null,this._mipmapGenerator=null,this._gpuSources=null,this._bindGroupHash=null,this._textureViewHash=null,this._gpuSamplers=null}}d.extension={type:[i.ExtensionType.WebGPUSystem],name:"texture"},t.GpuTextureSystem=d},83040:function(){},97394:function(e,t){"use strict";const r={type:"image",upload(e,t,r){const n=e.resource,i=(0|e.pixelWidth)*(0|e.pixelHeight),s=n.byteLength/i;r.device.queue.writeTexture({texture:t},n,{offset:0,rowsPerImage:e.pixelHeight,bytesPerRow:e.pixelHeight*s},{width:e.pixelWidth,height:e.pixelHeight,depthOrArrayLayers:1})}};t.gpuUploadBufferImageResource=r},1956:function(e,t){"use strict";const r={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},n={blockBytes:4,blockWidth:1,blockHeight:1},i={type:"compressed",upload(e,t,i){let s=e.pixelWidth,o=e.pixelHeight;const a=r[e.format]||n;for(let r=0;r>1,1),o=Math.max(o>>1,1)}}};t.blockDataMap=r,t.gpuUploadCompressedTextureResource=i},37135:function(e,t){"use strict";const r={type:"image",upload(e,t,r){const n=e.resource;if(!n)return;const i=Math.min(t.width,e.resourceWidth||e.pixelWidth),s=Math.min(t.height,e.resourceHeight||e.pixelHeight),o="premultiply-alpha-on-upload"===e.alphaMode;r.device.queue.copyExternalImageToTexture({source:n},{texture:t,premultipliedAlpha:o},{width:i,height:s})}};t.gpuUploadImageResource=r},2766:function(e,t,r){"use strict";var n=r(37135);const i={type:"video",upload(e,t,r){n.gpuUploadImageResource.upload(e,t,r)}};t.gpuUploadVideoResource=i},87929:function(e,t){"use strict";t.GpuMipmapGenerator=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:"\n var pos : array, 3> = array, 3>(\n vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));\n\n struct VertexOutput {\n @builtin(position) position : vec4,\n @location(0) texCoord : vec2,\n };\n\n @vertex\n fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {\n var output : VertexOutput;\n output.texCoord = pos[vertexIndex] * vec2(0.5, -0.5) + vec2(0.5);\n output.position = vec4(pos[vertexIndex], 0.0, 1.0);\n return output;\n }\n\n @group(0) @binding(0) var imgSampler : sampler;\n @group(0) @binding(1) var img : texture_2d;\n\n @fragment\n fn fragmentMain(@location(0) texCoord : vec2) -> @location(0) vec4 {\n return textureSample(img, imgSampler, texCoord);\n }\n "})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){const t=this._getMipmapPipeline(e.format);if("3d"===e.dimension||"1d"===e.dimension)throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=e;const n=e.depthOrArrayLayers||1,i=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!i){const t={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:n},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this.device.createTexture(t)}const s=this.device.createCommandEncoder({}),o=t.getBindGroupLayout(0);for(let a=0;a{if(!e.name)throw new Error("BlendMode extension must have a name property");o[e.name]=e.ref}),(e=>{delete o[e.name]}));class a{constructor(e){this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e}setBlendMode(e,t,r){this._activeBlendMode!==t?(this._activeBlendMode=t,this._isAdvanced&&this._endAdvancedBlendMode(r),this._isAdvanced=!!o[t],this._isAdvanced&&(this._beginAdvancedBlendMode(r),this._renderableList.push(e))):this._isAdvanced&&this._renderableList.push(e)}_beginAdvancedBlendMode(e){this._renderer.renderPipes.batch.break(e);const t=this._activeBlendMode;if(!o[t])return void s.warn(`Unable to assign BlendMode: '${t}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);this._filterHash[t]||(this._filterHash[t]=new i.FilterEffect({filters:[new o[t]]}));const r={renderPipeId:"filter",action:"pushFilter",renderables:[],filterEffect:this._filterHash[t],canBundle:!1};this._renderableList=r.renderables,e.add(r)}_endAdvancedBlendMode(e){this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(const e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"blendMode"},t.BlendModePipe=a},21839:function(e,t,r){"use strict";var n=r(5323),i=r(78739),s=r(18919);t.Buffer=class extends n{constructor(e){let{data:t,size:r}=e;const{usage:n,label:s,shrinkToFit:o}=e;super(),this.uid=i.uid("buffer"),this._resourceType="buffer",this._resourceId=i.uid("resource"),this._touched=0,this._updateID=1,this.shrinkToFit=!0,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r=r??t?.byteLength;const a=!!t;this.descriptor={size:r,usage:n,mappedAtCreation:a,label:s},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get static(){return!!(this.descriptor.usage&s.BufferUsage.STATIC)}set static(e){e?this.descriptor.usage|=s.BufferUsage.STATIC:this.descriptor.usage&=~s.BufferUsage.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e)return void(r&&this.emit("update",this));const n=this._data;this._data=e,n.length===e.length||!this.shrinkToFit&&e.byteLength(e[e.MAP_READ=1]="MAP_READ",e[e.MAP_WRITE=2]="MAP_WRITE",e[e.COPY_SRC=4]="COPY_SRC",e[e.COPY_DST=8]="COPY_DST",e[e.INDEX=16]="INDEX",e[e.VERTEX=32]="VERTEX",e[e.UNIFORM=64]="UNIFORM",e[e.STORAGE=128]="STORAGE",e[e.INDIRECT=256]="INDIRECT",e[e.QUERY_RESOLVE=512]="QUERY_RESOLVE",e[e.STATIC=1024]="STATIC",e))(r||{});t.BufferUsage=r},70766:function(e,t){"use strict";t.fastCopy=function(e,t){const r=e.byteLength/8|0,n=new Float64Array(e,0,r);new Float64Array(t,0,r).set(n);const i=e.byteLength-8*r;if(i>0){const n=new Uint8Array(e,8*r,i);new Uint8Array(t,8*r,i).set(n)}}},95041:function(e,t,r){"use strict";var n=r(17073),i=r(74599),s=r(84463);const o=class e{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof i.Container||e instanceof s.Texture?{target:e,...t}:{...t,...e}}async image(e){const t=new Image;return t.src=await this.base64(e),t}async base64(t){t=this._normalizeOptions(t,e.defaultImageOptions);const{format:r,quality:n}=t,i=this.canvas(t);if(void 0!==i.toBlob)return new Promise(((e,t)=>{i.toBlob((r=>{if(!r)return void t(new Error("ICanvas.toBlob failed!"));const n=new FileReader;n.onload=()=>e(n.result),n.onerror=t,n.readAsDataURL(r)}),r,n)}));if(void 0!==i.toDataURL)return i.toDataURL(r,n);if(void 0!==i.convertToBlob){const e=await i.convertToBlob({type:r,quality:n});return new Promise(((t,r)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=r,n.readAsDataURL(e)}))}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){const t=(e=this._normalizeOptions(e)).target,r=this._renderer;if(t instanceof s.Texture)return r.texture.generateCanvas(t);const n=r.textureGenerator.generateTexture(e),i=r.texture.generateCanvas(n);return n.destroy(),i}pixels(e){const t=(e=this._normalizeOptions(e)).target,r=this._renderer,n=t instanceof s.Texture?t:r.textureGenerator.generateTexture(e),o=r.texture.getPixels(n);return t instanceof i.Container&&n.destroy(),o}texture(e){return(e=this._normalizeOptions(e)).target instanceof s.Texture?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);const t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){const t=e.width??200;e=this._normalizeOptions(e);const r=this.canvas(e),n=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);const i=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${n}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",i)}destroy(){this._renderer=null}};o.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"extract"},o.defaultImageOptions={format:"png",quality:1};let a=o;t.ExtractSystem=a},42310:function(e,t,r){"use strict";var n=r(58778),i=r(17073),s=r(15685),o=r(42181),a=r(14786),u=r(19025),l=r(74599),c=r(32064);const h=new o.Rectangle,d=new a.Bounds,p=[0,0,0,0];class f{constructor(e){this._renderer=e}generateTexture(e){e instanceof l.Container&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});const t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,i=e.target;let o=e.clearColor;if(o){o=Array.isArray(o)&&4===o.length?o:n.Color.shared.setValue(o).toArray()}else o=p;const a=e.frame?.copyTo(h)||u.getLocalBounds(i,d).rectangle;a.width=0|Math.max(a.width,1/t),a.height=0|Math.max(a.height,1/t);const f=c.RenderTexture.create({...e.textureSourceOptions,width:a.width,height:a.height,resolution:t,antialias:r}),m=s.Matrix.shared.translate(-a.x,-a.y);return this._renderer.render({container:i,transform:m,target:f,clearColor:o}),f}destroy(){this._renderer=null}}f.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem],name:"textureGenerator"},t.GenerateTextureSystem=f},33829:function(e,t,r){"use strict";var n=r(5323),i=r(14786),s=r(78739),o=r(21839),a=r(84026),u=r(14740);function l(e){return(e instanceof o.Buffer||Array.isArray(e)||e.BYTES_PER_ELEMENT)&&(e={buffer:e}),e.buffer=a.ensureIsBuffer(e.buffer,!1),e}t.Geometry=class extends n{constructor(e){const{attributes:t,indexBuffer:r,topology:n}=e;super(),this.uid=s.uid("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new i.Bounds,this._boundsDirty=!0,this.attributes=t,this.buffers=[],this.instanceCount=e.instanceCount||1;for(const e in t){const r=t[e]=l(t[e]);-1===this.buffers.indexOf(r.buffer)&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this))}r&&(this.indexBuffer=a.ensureIsBuffer(r,!0),this.buffers.push(this.indexBuffer)),this.topology=n||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(const e in this.attributes){const t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,u.getGeometryBounds(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach((e=>e.destroy())),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}},80163:function(e,t,r){"use strict";var n=r(60094);const i={POINTS:"point-list",LINES:"line-list",LINE_STRIP:"line-strip",TRIANGLES:"triangle-list",TRIANGLE_STRIP:"triangle-strip"},s=new Proxy(i,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${i[t]}' instead`),e[t]}});t.DRAW_MODES=s},44307:function(e,t){"use strict";t.buildSimpleUvs=function(e,t,r,n){let i=0;for(t*=r;ia&&(a=t),r>u&&(u=r),t"},uWorldTransformMatrix:{value:new i.Matrix,type:"mat3x3"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4"},uResolution:{value:[0,0],type:"vec2"}},{isStatic:!0})}destroy(){this._renderer=null}}c.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"globalUniforms"},t.GlobalUniformSystem=c},33764:function(e,t,r){"use strict";var n=r(78739),i=r(27666),s=r(84463);const o=class e{constructor(t={}){if(this.uid=n.uid("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),t={...e.defaultOptions,...t},this.stencil=t.stencil,this.depth=t.depth,this.isRoot=t.isRoot,"number"==typeof t.colorTextures)for(let e=0;ee.source))];const e=this.colorTexture.source;this.resize(e.width,e.height,e._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(t.depthStencilTexture||this.stencil)&&(t.depthStencilTexture instanceof s.Texture||t.depthStencilTexture instanceof i.TextureSource?this.depthStencilTexture=t.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){const e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new i.TextureSource({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,r=this.resolution,n=!1){this.dirtyId++,this.colorTextures.forEach(((i,s)=>{n&&0===s||i.source.resize(e,t,r)})),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,r)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};o.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};let a=o;t.RenderTarget=a},16952:function(e,t,r){"use strict";var n=r(15685),i=r(42181),s=r(32985),o=r(91428),a=r(17627),u=r(91525),l=r(27666),c=r(84463),h=r(40190),d=r(11987),p=r(33764);t.RenderTargetSystem=class{constructor(e){this.rootViewPort=new i.Rectangle,this.viewport=new i.Rectangle,this.onRenderTargetChange=new a.SystemRunner("onRenderTargetChange"),this.projectionMatrix=new n.Matrix,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:r,frame:n}){this._renderTargetStack.length=0,this.push(e,t,r,n),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=d.isRenderingToScreen(this.rootRenderTarget)}bind(e,t=!0,r,n){const i=this.getRenderTarget(e),s=this.renderTarget!==i;this.renderTarget=i,this.renderSurface=e;const a=this.getGpuRenderTarget(i);i.pixelWidth===a.width&&i.pixelHeight===a.height||(this.adaptor.resizeGpuRenderTarget(i),a.width=i.pixelWidth,a.height=i.pixelHeight);const u=i.colorTexture,l=this.viewport,h=u.pixelWidth,d=u.pixelHeight;if(!n&&e instanceof c.Texture&&(n=e.frame),n){const e=u._resolution;l.x=n.x*e+.5|0,l.y=n.y*e+.5|0,l.width=n.width*e+.5|0,l.height=n.height*e+.5|0}else l.x=0,l.y=0,l.width=h,l.height=d;return o.calculateProjection(this.projectionMatrix,0,0,l.width/u.resolution,l.height/u.resolution,!i.isRoot),this.adaptor.startRenderPass(i,t,r,l),s&&this.onRenderTargetChange.emit(i),i}clear(e,t=s.CLEAR.ALL,r){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=s.CLEAR.ALL,r,n){const i=this.bind(e,t,r,n);return this._renderTargetStack.push({renderTarget:i,frame:n}),i}pop(){this._renderTargetStack.pop();const e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,n,i){r.x<0&&(n.width+=r.x,i.x-=r.x,r.x=0),r.y<0&&(n.height+=r.y,i.y-=r.y,r.y=0);const{pixelWidth:s,pixelHeight:o}=e;return n.width=Math.min(n.width,s-r.x),n.height=Math.min(n.height,o-r.y),this.adaptor.copyToTexture(e,t,r,n,i)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach(((e,t)=>{e!==t&&e.destroy()})),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return u.CanvasSource.test(e)&&(e=h.getCanvasTexture(e)),e instanceof p.RenderTarget?t=e:e instanceof l.TextureSource&&(t=new p.RenderTarget({colorTextures:[e]}),u.CanvasSource.test(e.source.resource)&&(t.isRoot=!0),e.on("destroy",(()=>{t.destroy()}))),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}}},11987:function(e,t){"use strict";t.isRenderingToScreen=function(e){const t=e.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}},3695:function(e,t,r){"use strict";const n=new(r(42181).Rectangle)(0,0,1,1);t.viewportFromFrame=function(e,t,r){r||(r=n);const i=t.pixelWidth,s=t.pixelHeight;return e.x=r.x*i|0,e.y=r.y*s|0,e.width=r.width*i|0,e.height=r.height*s|0,e}},97505:function(e,t,r){"use strict";var n=r(5323),i=r(62991),s=r(83582),o=r(50543),a=r(2559),u=r(65518);class l extends n{constructor(e){super(),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:r,groups:n,resources:i,compatibleRenderers:o,groupMap:l}=e;this.gpuProgram=t,this.glProgram=r,void 0===o&&(o=0,t&&(o|=a.RendererType.WEBGPU),r&&(o|=a.RendererType.WEBGL)),this.compatibleRenderers=o;const c={};if(i||n||(i={}),i&&n)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&n&&!l)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&n&&l)for(const e in l)for(const t in l[e]){const r=l[e][t];c[r]={group:e,binding:t,name:r}}else if(t&&n&&!l){const e=t.structsAndGroups.groups;l={},e.forEach((e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,c[e.name]=e}))}else if(i){if(t){const e=t.structsAndGroups.groups;l={},e.forEach((e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,c[e.name]=e}))}else{l={},n={99:new s.BindGroup},this._ownedBindGroups.push(n[99]);let e=0;for(const t in i)c[t]={group:99,binding:e,name:t},l[99]=l[99]||{},l[99][e]=t,e++}n={};for(const e in i){const t=e;let r=i[e];r.source||r._resourceType||(r=new u.UniformGroup(r));const o=c[t];o&&(n[o.group]||(n[o.group]=new s.BindGroup,this._ownedBindGroups.push(n[o.group])),n[o.group].setResource(r,o.binding))}}this.groups=n,this._uniformBindMap=l,this.resources=this._buildResourceAccessor(n,c)}addResource(e,t,r){var n,i;(n=this._uniformBindMap)[t]||(n[t]={}),(i=this._uniformBindMap[t])[r]||(i[r]=e),this.groups[t]||(this.groups[t]=new s.BindGroup,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){const r={};for(const n in t){const i=t[n];Object.defineProperty(r,i.name,{get(){return e[i.group].getResource(i.binding)},set(t){e[i.group].setResource(t,i.binding)}})}return r}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach((e=>{e.destroy()})),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){const{gpu:t,gl:r,...n}=e;let s,a;return t&&(s=o.GpuProgram.from(t)),r&&(a=i.GlProgram.from(r)),new l({gpuProgram:s,glProgram:a,...n})}}t.Shader=l},6864:function(e,t,r){"use strict";var n=r(4037),i=r(21839),s=r(18919);t.UboSystem=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!n.unsafeEvalSupported())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){const t=this.getUniformGroupData(e);e.buffer||(e.buffer=new i.Buffer({data:new Float32Array(t.layout.size/4),usage:s.BufferUsage.UNIFORM|s.BufferUsage.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){const t=e._signature;let r=this._syncFunctionHash[t];if(!r){const n=Object.keys(e.uniformStructures).map((t=>e.uniformStructures[t])),i=this._adaptor.createUboElements(n),s=this._generateUboSync(i.uboElements);r=this._syncFunctionHash[t]={layout:i,syncFunction:s}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){const n=this.getUniformGroupData(e);return e.buffer||(e.buffer=new i.Buffer({data:new Float32Array(n.layout.size/4),usage:s.BufferUsage.UNIFORM|s.BufferUsage.COPY_DST})),t||(t=e.buffer.data),r||(r=0),n.syncFunction(e.uniforms,t,r),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;const t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}},65518:function(e,t,r){"use strict";var n=r(78739),i=r(6066),s=r(90887);const o=class e{constructor(t,r){this._touched=0,this.uid=n.uid("uniform"),this._resourceType="uniformGroup",this._resourceId=n.uid("resource"),this.isUniformGroup=!0,this._dirtyId=0,r={...e.defaultOptions,...r},this.uniformStructures=t;const o={};for(const e in t){const r=t[e];r.name=e,r.size=r.size??1,r.value??(r.value=s.getDefaultUniformValue(r.type,r.size)),o[e]=r.value}this.uniforms=o,this._dirtyId=1,this.ubo=r.ubo,this.isStatic=r.isStatic,this._signature=i.createIdFromString(Object.keys(o).map((e=>`${e}-${t[e].type}`)).join("-"),"uniform-group")}update(){this._dirtyId++}};o.defaultOptions={ubo:!1,isStatic:!1};let a=o;t.UniformGroup=a},19450:function(e,t){"use strict";var r=(e=>(e[e.VERTEX=1]="VERTEX",e[e.FRAGMENT=2]="FRAGMENT",e[e.COMPUTE=4]="COMPUTE",e))(r||{});t.ShaderStage=r},21384:function(){},1021:function(e,t,r){"use strict";var n=r(46876);t.createUboSyncFunction=function(e,t,r,i){const s=["\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n "];let o=0;for(let a=0;a1)h=u.offset/4,s.push(r(u,h-o));else{const e=i[u.data.type];h=u.offset/4,s.push(`\n v = uv.${l};\n offset += ${h-o};\n ${e};\n `)}o=h}const a=s.join("\n");return new Function("uv","data","offset",a)}},90887:function(e,t){"use strict";t.getDefaultUniformValue=function(e,t){switch(e){case"f32":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"mat2x2":return new Float32Array([1,0,0,1]);case"mat3x3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}},63981:function(e,t){"use strict";function r(e,t){return`\n for (let i = 0; i < ${e*t}; i++) {\n data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i];\n }\n `}const n={f32:"\n data[offset] = v;",i32:"\n data[offset] = v;","vec2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];","vec3":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];","vec4":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];","mat2x2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];","mat3x3":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];","mat4x4":"\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }","mat3x2":r(3,2),"mat4x2":r(4,2),"mat2x3":r(2,3),"mat4x3":r(4,3),"mat2x4":r(2,4),"mat3x4":r(3,4)},i={...n,"mat2x2":"\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n "};t.uboSyncFunctionsSTD40=n,t.uboSyncFunctionsWGSL=i},46876:function(e,t){"use strict";const r=[{type:"mat3x3",test:e=>void 0!==e.value.a,ubo:"\n var matrix = uv[name].toArray(true);\n data[offset] = matrix[0];\n data[offset + 1] = matrix[1];\n data[offset + 2] = matrix[2];\n data[offset + 4] = matrix[3];\n data[offset + 5] = matrix[4];\n data[offset + 6] = matrix[5];\n data[offset + 8] = matrix[6];\n data[offset + 9] = matrix[7];\n data[offset + 10] = matrix[8];\n ",uniform:" \n gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));\n "},{type:"vec4",test:e=>"vec4"===e.type&&1===e.size&&void 0!==e.value.width,ubo:"\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n data[offset + 2] = v.width;\n data[offset + 3] = v.height;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);\n }\n "},{type:"vec2",test:e=>"vec2"===e.type&&1===e.size&&void 0!==e.value.x,ubo:"\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y) {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[name].location, v.x, v.y);\n }\n "},{type:"vec4",test:e=>"vec4"===e.type&&1===e.size&&void 0!==e.value.red,ubo:"\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n data[offset + 3] = v.alpha;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);\n }\n "},{type:"vec3",test:e=>"vec3"===e.type&&1===e.size&&void 0!==e.value.red,ubo:"\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n ",uniform:"\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n gl.uniform3f(ud[name].location, v.red, v.green, v.blue);\n }\n "}];t.uniformParsers=r},22334:function(e,t,r){"use strict";var n=r(17073),i=r(37087),s=r(2559);class o{constructor(e){this._renderer=e}init(e){if(e.hello){let e=this._renderer.name;this._renderer.type===s.RendererType.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),i.sayHello(e)}}}o.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"hello",priority:-2},o.defaultOptions={hello:!1},t.HelloSystem=o},55141:function(e,t){"use strict";const r={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8},n=class e{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(1&this.data)}set blend(e){!!(1&this.data)!==e&&(this.data^=1)}get offsets(){return!!(2&this.data)}set offsets(e){!!(2&this.data)!==e&&(this.data^=2)}set cullMode(e){"none"!==e?(this.culling=!0,this.clockwiseFrontFace="front"===e):this.culling=!1}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(4&this.data)}set culling(e){!!(4&this.data)!==e&&(this.data^=4)}get depthTest(){return!!(8&this.data)}set depthTest(e){!!(8&this.data)!==e&&(this.data^=8)}get depthMask(){return!!(32&this.data)}set depthMask(e){!!(32&this.data)!==e&&(this.data^=32)}get clockwiseFrontFace(){return!!(16&this.data)}set clockwiseFrontFace(e){!!(16&this.data)!==e&&(this.data^=16)}get blendMode(){return this._blendMode}set blendMode(e){this.blend="none"!==e,this._blendMode=e,this._blendModeId=r[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){const t=new e;return t.depthTest=!1,t.blend=!0,t}};n.default2d=n.for2d();let i=n;t.State=i},56445:function(e,t){"use strict";var r=(e=>(e[e.DISABLED=0]="DISABLED",e[e.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",e[e.MASK_ACTIVE=2]="MASK_ACTIVE",e[e.RENDERING_MASK_REMOVE=3]="RENDERING_MASK_REMOVE",e[e.NONE=4]="NONE",e))(r||{});t.BLEND_TO_NPM={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},t.STENCIL_MODES=r},254:function(e,t,r){"use strict";var n=r(56445);t.getAdjustedBlendModeBlend=function(e,t){return"no-premultiply-alpha"===t.alphaMode&&n.BLEND_TO_NPM[e]||e}},95931:function(e,t,r){"use strict";var n=r(58778),i=r(74599),s=r(4037),o=r(60094);r(59121);var a=r(32985),u=r(17627),l=r(5323);const c=["init","destroy","contextChange","resolutionChange","reset","renderEnd","renderStart","render","update","postrender","prerender"],h=class e extends l{constructor(e){super(),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name;const t=[...c,...e.runners??[]];this._addRunners(...t),this._addSystems(e.systems),this._addPipes(e.renderPipes,e.renderPipeAdaptors),this._unsafeEvalCheck()}async init(t={}){for(const e in this._systemsHash){t={...this._systemsHash[e].constructor.defaultOptions,...t}}t={...e.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let e=0;e{this.runners[e]=new u.SystemRunner(e)}))}_addSystems(e){let t;for(t in e){const r=e[t];this._addSystem(r.value,r.name)}}_addSystem(e,t){const r=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=r,this._systemsHash[t]=r;for(const e in this.runners)this.runners[e].add(r);return this}_addPipes(e,t){const r=t.reduce(((e,t)=>(e[t.name]=t.value,e)),{});e.forEach((e=>{const t=e.value,n=e.name,i=r[n];this.renderPipes[n]=new t(this,i?new i:null)}))}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),Object.values(this.runners).forEach((e=>{e.destroy()})),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!s.unsafeEvalSupported())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}};h.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};let d=h;t.AbstractRenderer=d},62856:function(e,t,r){"use strict";var n=r(2934),i=r(9176),s=r(13056),o=r(1894),a=r(33961),u=r(14673),l=r(62579),c=r(33648),h=r(6852),d=r(69862),p=r(95041),f=r(42310),m=r(54572),g=r(22334),_=r(95224),x=r(80177);const b=[h.BackgroundSystem,m.GlobalUniformSystem,g.HelloSystem,x.ViewSystem,s.RenderGroupSystem,_.TextureGCSystem,f.GenerateTextureSystem,p.ExtractSystem],y=[d.BlendModePipe,a.BatcherPipe,o.SpritePipe,i.RenderGroupPipe,u.AlphaMaskPipe,c.StencilMaskPipe,l.ColorMaskPipe,n.CustomRenderPipe];t.SharedRenderPipes=y,t.SharedSystems=b},79480:function(){},17627:function(e,t){"use strict";t.SystemRunner=class{constructor(e){this.items=[],this._name=e}emit(e,t,r,n,i,s,o,a){const{name:u,items:l}=this;for(let c=0,h=l.length;cthis.checkCountMax&&(this.checkCount=0,this.run())))}run(){const e=this._renderer.texture.managedTextures;for(let t=0;t-1&&this.count-r._touched>this.maxIdle&&(r._touched=-1,r.unload())}}destroy(){this._renderer=null}};i.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem],name:"textureGC"},i.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:3600,textureGCCheckCountMax:600};let s=i;n.extensions.add(s),t.TextureGCSystem=s},94058:function(e,t,r){"use strict";var n=r(15685);const i=new n.Matrix;t.TextureMatrix=class{constructor(e,t){this.mapCoord=new n.Matrix,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,this.clampMargin=void 0===t?e.width<10?0:.5:t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){void 0===t&&(t=e);const r=this.mapCoord;for(let n=0;n1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){const e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=function(e){const t=o[e];return void 0===t&&(o[e]=i.uid("resource")),t}(e),this._resourceId}destroy(){this.emit("destroy",this),this.removeAllListeners()}};a.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};let u=a;t.TextureStyle=u},92756:function(e,t,r){"use strict";var n=r(81955);t.TextureUvs=class{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,r){const i=t.width,s=t.height;if(r){const t=e.width/2/i,o=e.height/2/s,a=e.x/i+t,u=e.y/s+o;r=n.groupD8.add(r,n.groupD8.NW),this.x0=a+t*n.groupD8.uX(r),this.y0=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x1=a+t*n.groupD8.uX(r),this.y1=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x2=a+t*n.groupD8.uX(r),this.y2=u+o*n.groupD8.uY(r),r=n.groupD8.add(r,2),this.x3=a+t*n.groupD8.uX(r),this.y3=u+o*n.groupD8.uY(r)}else this.x0=e.x/i,this.y0=e.y/s,this.x1=(e.x+e.width)/i,this.y1=e.y/s,this.x2=(e.x+e.width)/i,this.y2=(e.y+e.height)/s,this.x3=e.x/i,this.y3=(e.y+e.height)/s;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}toString(){return`[pixi.js/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`}}},6121:function(e,t,r){"use strict";var n=r(60094),i=(e=>(e[e.NONE=0]="NONE",e[e.LOW=2]="LOW",e[e.MEDIUM=4]="MEDIUM",e[e.HIGH=8]="HIGH",e))(i||{}),s=(e=>(e.CLAMP="clamp-to-edge",e.REPEAT="repeat",e.MIRRORED_REPEAT="mirror-repeat",e))(s||{});const o=new Proxy(s,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${s[t]}' instead`),e[t]}});var a=(e=>(e.NEAREST="nearest",e.LINEAR="linear",e))(a||{});const u=new Proxy(a,{get(e,t){return n.deprecation(n.v8_0_0,`DRAW_MODES.${t} is deprecated, use '${a[t]}' instead`),e[t]}});t.DEPRECATED_SCALE_MODES=a,t.DEPRECATED_WRAP_MODES=s,t.MSAA_QUALITY=i,t.SCALE_MODES=u,t.WRAP_MODES=o},7634:function(e,t,r){"use strict";var n=r(17073),i=r(27666);class s extends i.TextureSource{constructor(e){const t=e.resource||new Float32Array(e.width*e.height*4);let r=e.format;r||(r=t instanceof Float32Array?"rgba32float":t instanceof Int32Array||t instanceof Uint32Array?"rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?"rgba16uint":(Int8Array,"bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}}s.extension=n.ExtensionType.TextureSource,t.BufferImageSource=s},91525:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(27666);class o extends s.TextureSource{constructor(e){e.resource||(e.resource=n.DOMAdapter.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity;const t=e.resource;this.pixelWidth===t.width&&this.pixelWidth===t.height||this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),this.resource.width===this.pixelWidth&&this.resource.height===this.pixelHeight||(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,r=this._resolution){const n=super.resize(e,t,r);return n&&this.resizeCanvas(),n}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}}o.extension=i.ExtensionType.TextureSource,t.CanvasSource=o},68651:function(e,t,r){"use strict";var n=r(27666);class i extends n.TextureSource{constructor(e){super(e),this.uploadMethodId="compressed",this.resource=e.resource,this.mipLevelCount=this.resource.length}}t.CompressedSource=i},75813:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(95190),o=r(27666);class a extends o.TextureSource{constructor(e){if(e.resource&&globalThis.HTMLImageElement&&e.resource instanceof HTMLImageElement){const t=n.DOMAdapter.get().createCanvas(e.resource.width,e.resource.height);t.getContext("2d").drawImage(e.resource,0,0),e.resource=t,s.warn("ImageSource: Image element passed, converting to canvas. Use CanvasSource instead.")}super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap}}a.extension=i.ExtensionType.TextureSource,t.ImageSource=a},27666:function(e,t,r){"use strict";var n=r(5323),i=r(39018),s=r(6877),o=r(78739),a=r(44174);const u=class e extends n{constructor(t={}){super(),this.options=t,this.uid=o.uid("textureSource"),this._resourceType="textureSource",this._resourceId=o.uid("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...e.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=t.format,this.dimension=t.dimensions,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.alphaMode=t.alphaMode,this.style=new a.TextureStyle(s.definedProps(t)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){const e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=o.uid("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){const{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){const{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r=r||this._resolution,e=e||this.width,t=t||this.height;const n=Math.round(e*r),i=Math.round(t*r);return this.width=n/r,this.height=i/r,this._resolution=r,(this.pixelWidth!==n||this.pixelHeight!==i)&&(this._refreshPOT(),this.pixelWidth=n,this.pixelHeight=i,this.emit("resize",this),this._resourceId=o.uid("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=i.isPow2(this.pixelWidth)&&i.isPow2(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};u.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};let l=u;t.TextureSource=l},62480:function(e,t,r){"use strict";var n=r(17073),i=r(63983),s=r(86105),o=r(27666);const a=class e extends o.TextureSource{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...e.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=!1!==t.autoPlay,this.alphaMode=t.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),!1!==t.autoLoad&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){const e=i.Ticker.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;const e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await s.detectVideoAlphaMode(),this._load=new Promise(((r,n)=>{this.isValid?r(this):(this._resolve=r,this._reject=n,void 0!==t.preloadTimeoutMs&&(this._preloadTimeout=setTimeout((()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))}))),e.load())})),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){const e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){const e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();const e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.source.requestVideoFrameCallback?(this._isConnectedToTicker&&(i.Ticker.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),null===this._videoFrameRequestCallbackHandle&&(this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(null!==this._videoFrameRequestCallbackHandle&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(i.Ticker.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(null!==this._videoFrameRequestCallbackHandle&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(i.Ticker.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||globalThis.VideoFrame&&e instanceof VideoFrame}};a.extension=n.ExtensionType.TextureSource,a.defaultOptions={...o.TextureSource.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1},a.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};let u=a;t.VideoSource=u},95026:function(e,t){"use strict";let r=0;t.generateUID=function(){return r++}},40190:function(e,t,r){"use strict";var n=r(91525),i=r(84463);const s=new Map;t.getCanvasTexture=function(e,t){if(!s.has(e)){const r=new i.Texture({source:new n.CanvasSource({resource:e,...t})}),o=()=>{s.get(e)===r&&s.delete(e)};r.once("destroy",o),r.source.once("destroy",o),s.set(e,r)}return s.get(e)},t.hasCachedCanvasTexture=function(e){return s.has(e)}},34155:function(e,t,r){"use strict";var n=r(58050),i=r(73533),s=r(84157),o=r(43213);let a;t.getSupportedCompressedTextureFormats=async function(){return void 0!==a||(a=await(async()=>{const e=await i.isWebGPUSupported(),t=n.isWebGLSupported();if(e&&t){const e=await o.getSupportedGPUCompressedTextureFormats(),t=s.getSupportedGlCompressedTextureFormats();return e.filter((e=>t.includes(e)))}return e?await o.getSupportedGPUCompressedTextureFormats():t?s.getSupportedGlCompressedTextureFormats():[]})()),a}},55484:function(e,t,r){"use strict";var n=r(34155);const i=["r8unorm","r8snorm","r8uint","r8sint","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32uint","r32sint","r32float","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb9e5ufloat","rgb10a2unorm","rg11b10ufloat","rg32uint","rg32sint","rg32float","rgba16uint","rgba16sint","rgba16float","rgba32uint","rgba32sint","rgba32float","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8"];let s;t.getSupportedTextureFormats=async function(){if(void 0!==s)return s;const e=await n.getSupportedCompressedTextureFormats();return s=[...i,...e],s},t.nonCompressedFormats=i},39394:function(e,t,r){"use strict";var n=r(56509),i=r(17073),s=r(27666),o=r(84463);const a=[];function u(e={}){const t=e&&e.resource,r=t?e.resource:e,n=t?e:{resource:e};for(let e=0;e{n.Cache.has(i)&&n.Cache.remove(i)})),t||n.Cache.set(i,a),a}function c(e,t=!1){return"string"==typeof e?n.Cache.get(e):e instanceof s.TextureSource?new o.Texture({source:e}):l(e,t)}i.extensions.handleByList(i.ExtensionType.TextureSource,a),o.Texture.from=c,t.autoDetectSource=u,t.resourceToTexture=l,t.textureFrom=c},6066:function(e,t){"use strict";const r=Object.create(null),n=Object.create(null);t.createIdFromString=function(e,t){let i=n[e];return void 0===i&&(void 0===r[t]&&(r[t]=1),n[e]=i=r[t]++),i}},60527:function(e,t){"use strict";t.parseFunctionBody=function(e){const t=e.toString(),r=t.indexOf("{"),n=t.lastIndexOf("}");if(-1===r||-1===n)throw new Error("getFunctionBody: No body found in function definition");return t.slice(r+1,n).trim()}},27571:function(){},80177:function(e,t,r){"use strict";var n=r(42932),i=r(17073),s=r(42181),o=r(60094),a=r(33764),u=r(40190);const l=class e{get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(t){(t={...e.defaultOptions,...t}).view&&(o.deprecation(o.v8_0_0,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new s.Rectangle(0,0,t.width,t.height),this.canvas=t.canvas||n.DOMAdapter.get().createCanvas(),this.antialias=!!t.antialias,this.texture=u.getCanvasTexture(this.canvas,t),this.renderTarget=new a.RenderTarget({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.multiView=!!t.multiView,this.autoDensity&&(this.canvas.style.width=`${this.texture.width}px`,this.canvas.style.height=`${this.texture.height}px`),this.resolution=t.resolution}resize(e,t,r){this.texture.source.resize(e,t,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height,this.autoDensity&&(this.canvas.style.width=`${e}px`,this.canvas.style.height=`${t}px`)}destroy(e=!1){("boolean"==typeof e?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}};l.extension={type:[i.ExtensionType.WebGLSystem,i.ExtensionType.WebGPUSystem,i.ExtensionType.CanvasSystem],name:"view",priority:0},l.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};let c=l;t.ViewSystem=c},2559:function(e,t){"use strict";var r=(e=>(e[e.WEBGL=1]="WEBGL",e[e.WEBGPU=2]="WEBGPU",e[e.BOTH=3]="BOTH",e))(r||{});t.RendererType=r},74599:function(e,t,r){"use strict";var n=r(5323),i=r(58778),s=r(10051),o=r(15685),a=r(29705),u=r(62792),l=r(78739),c=r(60094),h=r(5408),d=r(25136),p=r(36695),f=r(59009),m=r(8125),g=r(36422),_=r(84748),x=r(49341),b=r(15486);const y=new u.ObservablePoint(null),v=new u.ObservablePoint(null),T=new u.ObservablePoint(null,1,1);class S extends n{constructor(e={}){super(),this.uid=l.uid("renderable"),this._updateFlags=15,this.isRenderGroupRoot=!1,this.renderGroup=null,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new o.Matrix,this.relativeGroupTransform=new o.Matrix,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new u.ObservablePoint(this,0,0),this._scale=T,this._pivot=v,this._skew=y,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didChangeId=0,this._didLocalTransformChangeId=-1,b.assignWithIgnore(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach((e=>this.addChild(e))),this.effects=[],e.parent?.addChild(this)}static mixin(e){Object.defineProperties(S.prototype,Object.getOwnPropertyDescriptors(e))}addChild(...e){if(this.allowChildren||c.deprecation(c.v8_0_0,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let t=0;t1){for(let t=0;t-1&&(this.children.splice(r,1),this.renderGroup&&this.renderGroup.removeChild(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){if(e&&e===this._skew&&this._updateSkew(),this._didChangeId++,!this.didChange)if(this.didChange=!0,this.isRenderGroupRoot){const e=this.renderGroup.renderGroupParent;e&&e.onChildUpdate(this)}else this.renderGroup&&this.renderGroup.onChildUpdate(this)}set isRenderGroup(e){if(this.isRenderGroupRoot&&!1===e)throw new Error("[Pixi] cannot undo a render group just yet");e&&this.enableRenderGroup()}get isRenderGroup(){return this.isRenderGroupRoot}enableRenderGroup(){if(this.renderGroup&&this.renderGroup.root===this)return;this.isRenderGroupRoot=!0;const e=this.renderGroup;if(e&&e.removeChild(this),this.renderGroup=new x.RenderGroup(this),e){for(let t=0;t>16&255)}set blendMode(e){this.localBlendMode!==e&&(this.renderGroup&&!this.isRenderGroupRoot&&(this.renderGroup.structureDidChange=!0),this._updateFlags|=2,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(2&this.localDisplayStatus)}set visible(e){const t=e?1:0;(2&this.localDisplayStatus)>>1!==t&&(this.renderGroup&&!this.isRenderGroupRoot&&(this.renderGroup.structureDidChange=!0),this._updateFlags|=4,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(4&this.localDisplayStatus)}set culled(e){const t=e?1:0;(4&this.localDisplayStatus)>>2!==t&&(this.renderGroup&&!this.isRenderGroupRoot&&(this.renderGroup.structureDidChange=!0),this._updateFlags|=4,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(1&this.localDisplayStatus)}set renderable(e){const t=e?1:0;(1&this.localDisplayStatus)!==t&&(this._updateFlags|=4,this.localDisplayStatus^=1,this.renderGroup&&!this.isRenderGroupRoot&&(this.renderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return 7===this.localDisplayStatus&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0,this.removeFromParent(),this.parent=null,this._mask=null,this._filters=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners();const t="boolean"==typeof e?e:e?.children,r=this.removeChildren(0,this.children.length);if(t)for(let t=0;t!1),this.addBounds=e.addBounds??(()=>!1)}render(e){}}t.RenderContainer=s},49341:function(e,t,r){"use strict";var n=r(15685),i=r(31540);t.RenderGroup=class{constructor(e){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this._children=[],this.worldTransform=new n.Matrix,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new i.InstructionSet,this._onRenderContainers=[],this.root=e,this.addChild(e)}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.onChildUpdate(e.root),this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){e.root.didChange&&this._removeChildFromUpdate(e.root);const t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e!==this.root&&(this._children.push(e),e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e._onRender&&this.addOnRender(e)),e.renderGroup){if(e.renderGroup.root===e)return void this.addRenderGroupChild(e.renderGroup)}else e.renderGroup=this,e.didChange=!0;const t=e.children;e.isRenderGroupRoot||this.onChildUpdate(e);for(let e=0;e-1&&this._children.splice(t,1)}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(e.didViewUpdate=!1,this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e))}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}_removeChildFromUpdate(e){const t=this.childrenToUpdate[e.relativeRenderGroupDepth];if(!t)return;const r=t.list.indexOf(e);r>-1&&t.list.splice(r,1),t.index--}get isRenderable(){return 7===this.root.localDisplayStatus&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(){for(let e=0;ethis.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new i.Rectangle);const e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=s,this}set(e,t,r,n){this.minX=e,this.minY=t,this.maxX=r,this.maxY=n}addFrame(e,t,r,n,i){i||(i=this.matrix);const s=i.a,o=i.b,a=i.c,u=i.d,l=i.tx,c=i.ty;let h=this.minX,d=this.minY,p=this.maxX,f=this.maxY,m=s*e+a*t+l,g=o*e+u*t+c;mp&&(p=m),g>f&&(f=g),m=s*r+a*t+l,g=o*r+u*t+c,mp&&(p=m),g>f&&(f=g),m=s*e+a*n+l,g=o*e+u*n+c,mp&&(p=m),g>f&&(f=g),m=s*r+a*n+l,g=o*r+u*n+c,mp&&(p=m),g>f&&(f=g),this.minX=h,this.minY=d,this.maxX=p,this.maxY=f}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxXthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY,h=s*t+a*i+l,d=o*t+u*i+c,this.minX=hthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY,h=s*n+a*i+l,d=o*n+u*i+c,this.minX=hthis.maxX?h:this.maxX,this.maxY=d>this.maxY?d:this.maxY}fit(e){return this.minXe.right&&(this.maxX=e.right),this.minYe.bottom&&(this.maxY=e.bottom),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new o(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){const t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){const t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,r,n){let i=this.minX,s=this.minY,o=this.maxX,a=this.maxY;n||(n=this.matrix);const u=n.a,l=n.b,c=n.c,h=n.d,d=n.tx,p=n.ty;for(let n=t;no?f:o,a=m>a?m:a}this.minX=i,this.minY=s,this.maxX=o,this.maxY=a}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}}t.Bounds=o},91858:function(e,t,r){"use strict";var n=r(15685),i=r(29541);const s=new n.Matrix;function o(e,t){if(7!==e.localDisplayStatus||!e.measurable)return;const r=!!e.effects.length;let n=t;if((e.isRenderGroupRoot||r)&&(n=i.boundsPool.get().clear()),e.boundsArea)t.addRect(e.boundsArea,e.worldTransform);else{if(e.renderPipeId){const t=e.bounds;n.addFrame(t.minX,t.minY,t.maxX,t.maxY,e.groupTransform)}const t=e.children;for(let e=0;e0&&i<=r){for(let t=r-1;t>=e;t--){const e=this.children[t];e&&(this.renderGroup&&this.renderGroup.removeChild(e),s.push(e),e.parent=null)}n.removeItems(this.children,e,r);for(let e=0;e=this.children.length)throw new Error(`getChildAt: Index (${e}) does not exist.`);return this.children[e]},setChildIndex(e,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(e),this.addChildAt(e,t)},getChildIndex(e){const t=this.children.indexOf(e);if(-1===t)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(e,t){this.allowChildren||i.deprecation(i.v8_0_0,"addChildAt: Only Containers will be allowed to add children in v8.0.0");const{children:r}=this;if(t<0||t>r.length)throw new Error(`${e}addChildAt: The index ${t} supplied is out of bounds ${r.length}`);if(e.parent){const r=e.parent.children.indexOf(e);if(e.parent===this&&r===t)return e;-1!==r&&e.parent.children.splice(r,1)}return t===r.length?r.push(e):r.splice(t,0,e),e.parent=this,e.didChange=!0,e.didViewUpdate=!1,e._updateFlags=15,this.renderGroup&&this.renderGroup.addChild(e),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",e,this,t),e.emit("added",this),e},swapChildren(e,t){if(e===t)return;const r=this.getChildIndex(e),n=this.getChildIndex(t);this.children[r]=t,this.children[n]=e},removeFromParent(){this.parent?.removeChild(this)}};t.childrenHelperMixin=s},25136:function(e,t,r){"use strict";var n=r(71210),i=r(81480),s=r(86169);const o={_mask:null,_filters:null,effects:[],addEffect(e){-1===this.effects.indexOf(e)&&(this.effects.push(e),this.effects.sort(((e,t)=>e.priority-t.priority)),this.renderGroup&&(this.renderGroup.structureDidChange=!0),this._updateIsSimple())},removeEffect(e){const t=this.effects.indexOf(e);-1!==t&&(this.effects.splice(t,1),!this.isRenderGroupRoot&&this.renderGroup&&(this.renderGroup.structureDidChange=!0),this._updateIsSimple())},set mask(e){if(this._mask||(this._mask={mask:null,effect:null}),this._mask.mask===e)return;if(this._mask.effect&&(this.removeEffect(this._mask.effect),i.MaskEffectManager.returnMaskEffect(this._mask.effect),this._mask.effect=null),this._mask.mask=e,null==e)return;const t=i.MaskEffectManager.getMaskEffect(e);this._mask.effect=t,this.addEffect(t)},get mask(){return this._mask?.mask},set filters(e){!Array.isArray(e)&&e&&(e=[e]),this._filters||(this._filters={filters:null,effect:null,filterArea:null});const t=e?.length>0,r=this._filters.effect&&!t||!this._filters.effect&&t;if(e=Array.isArray(e)?e.slice(0):e,this._filters.filters=Object.freeze(e),r)if(t){const e=s.BigPool.get(n.FilterEffect);this._filters.effect=e,this.addEffect(e)}else{const e=this._filters.effect;this.removeEffect(e),e.filterArea=null,e.filters=null,this._filters.effect=null,s.BigPool.return(e)}t&&(this._filters.effect.filters=e,this._filters.effect.filterArea=this.filterArea)},get filters(){return this._filters?.filters},set filterArea(e){this._filters||(this._filters={filters:null,effect:null,filterArea:null}),this._filters.filterArea=e},get filterArea(){return this._filters?.filterArea}};t.effectsMixin=o},36695:function(e,t,r){"use strict";var n=r(60094);const i={label:null,get name(){return n.deprecation(n.v8_0_0,"Container.name property has been removed, use Container.label instead"),this.label},set name(e){n.deprecation(n.v8_0_0,"Container.name property has been removed, use Container.label instead"),this.label=e},getChildByName(e,t=!1){return this.getChildByLabel(e,t)},getChildByLabel(e,t=!1){const r=this.children;for(let t=0;t>12&&(e.didChange=!0,e.data[0]=this._didChangeId>>12),a.checkChildrenDidChange(this,e),e.didChange&&o.getLocalBounds(this,e.localBounds,u),e.localBounds},getBounds(e,t){return s.getGlobalBounds(this,e,t||new i.Bounds)}};t.measureMixin=l},8125:function(e,t){"use strict";const r={_onRender:null,set onRender(e){const t=this.renderGroup;if(!e)return this._onRender&&t?.removeOnRender(this),void(this._onRender=null);this._onRender||t?.addOnRender(this),this._onRender=e},get onRender(){return this._onRender}};t.onRenderMixin=r},36422:function(e,t){"use strict";const r={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(e){this._zIndex!==e&&(this._zIndex=e,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.renderGroup&&!this.isRenderGroupRoot&&(this.renderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(n))}};function n(e,t){return e._zIndex-t._zIndex}t.sortMixin=r},84748:function(e,t,r){"use strict";var n=r(15685),i=r(26553),s=r(9565);const o={getGlobalPosition(e=new i.Point,t=!1){return this.parent?this.parent.toGlobal(this._position,e,t):(e.x=this._position.x,e.y=this._position.y),e},toGlobal(e,t,r=!1){if(!r){this.updateLocalTransform();const r=s.updateTransformBackwards(this,new n.Matrix);return r.append(this.localTransform),r.apply(e,t)}return this.worldTransform.apply(e,t)},toLocal(e,t,r,i){if(t&&(e=t.toGlobal(e,r,i)),!i){this.updateLocalTransform();const t=s.updateTransformBackwards(this,new n.Matrix);return t.append(this.localTransform),t.applyInverse(e,r)}return this.worldTransform.applyInverse(e,r)}};t.toLocalGlobalMixin=o},5290:function(){},15486:function(e,t){"use strict";t.assignWithIgnore=function(e,t,r={}){for(const n in t)r[n]||void 0===t[n]||(e[n]=t[n])}},58216:function(e,t){"use strict";function r(e,t,i){e.globalDisplayStatus<7||!e.includeInBuild||(e.sortableChildren&&e.sortChildren(),e.isSimple?function(e,t,n){if(e.renderPipeId){n.blendMode.setBlendMode(e,e.groupBlendMode,t),e.didViewUpdate=!1;n[e.renderPipeId].addRenderable(e,t)}if(!e.isRenderGroupRoot){const i=e.children,s=i.length;for(let e=0;e=0;r--){const i=e.effects[r];n[i.pipe].pop(i,e,t)}}}t.buildInstructions=function(e,t){const r=e.root,i=e.instructionSet;i.reset(),t.batch.buildStart(i),t.blendMode.buildStart(),t.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),n(r,i,t,!0),t.batch.buildEnd(i),t.blendMode.buildEnd(i)},t.collectAllRenderables=r},12057:function(e,t){"use strict";t.checkChildrenDidChange=function e(t,r){const n=t.children;for(let t=0;t>24&255)/255)*255,o=((255&e)<<16)+(65280&e)+(e>>16&255),a=16777215&r;let u=16777215;return o+(a<<32)!==i&&(u=16777215===o?a:16777215===a?o:n.mixHexColors(o,a,.5)),u+(s<<24)}},55747:function(e,t){"use strict";t.mixHexColors=function(e,t,r){const n=e>>16&255,i=e>>8&255,s=255&e;return(n+((t>>16&255)-n)*r<<16)+(i+((t>>8&255)-i)*r<<8)+(s+((255&t)-s)*r)}},89358:function(e,t){"use strict";t.multiplyHexColors=function(e,t){return 16777215!==e&&t?16777215!==t&&e?((e>>16&255)*(t>>16&255)/255<<16)+((e>>8&255)*(t>>8&255)/255<<8)+(255&e)*(255&t)/255:e:t}},24417:function(e,t){"use strict";t.updateLocalTransform=function(e,t){const r=t._scale,n=t._pivot,i=t._position,s=r._x,o=r._y,a=n._x,u=n._y;e.a=t._cx*s,e.b=t._sx*s,e.c=t._cy*o,e.d=t._sy*o,e.tx=i._x-(a*e.a+u*e.c),e.ty=i._y-(a*e.b+u*e.d)}},48496:function(e,t,r){"use strict";var n=r(74599),i=r(82397);const s=new n.Container;function o(e){const t=e.root;let r;if(e.renderGroupParent){const n=e.renderGroupParent;e.worldTransform.appendFrom(t.relativeGroupTransform,n.worldTransform),e.worldColor=i.mixColors(t.groupColor,n.worldColor),r=t.groupAlpha*n.worldAlpha}else e.worldTransform.copyFrom(t.localTransform),e.worldColor=t.localColor,r=t.localAlpha;r=r<0?0:r>1?1:r,e.worldAlpha=r,e.worldColorAlpha=e.worldColor+((255*r|0)<<24)}function a(e,t,r){if(t===e.updateTick)return;e.updateTick=t,e.didChange=!1;const n=e.localTransform;e.updateLocalTransform();const i=e.parent;if(i&&!i.isRenderGroupRoot?(r|=e._updateFlags,e.relativeGroupTransform.appendFrom(n,i.relativeGroupTransform),r&&u(e,i,r)):(r=e._updateFlags,e.relativeGroupTransform.copyFrom(n),r&&u(e,s,r)),!e.isRenderGroupRoot){const n=e.children,i=n.length;for(let e=0;e1?1:r,e.groupAlpha=r,e.groupColorAlpha=e.groupColor+((255*r|0)<<24)}r&n.UPDATE_BLEND&&(e.groupBlendMode="inherit"===e.localBlendMode?t.groupBlendMode:e.localBlendMode),r&n.UPDATE_VISIBLE&&(e.globalDisplayStatus=e.localDisplayStatus&t.globalDisplayStatus),e._updateFlags=0}t.updateRenderGroupTransform=o,t.updateRenderGroupTransforms=function e(t,r=!1){o(t);const n=t.childrenToUpdate,i=t.updateTick;t.updateTick++;for(const e in n){const t=n[e],r=t.list,s=t.index;for(let e=0;e"},uTransformMatrix:{value:new i.Matrix,type:"mat3x3"},uRound:{value:0,type:"f32"}}),t=o.compileHighShaderGlProgram({name:"graphics",bits:[a.colorBitGl,u.generateTextureBatchBitGl(s.MAX_TEXTURES),l.localUniformBitGl,c.roundPixelsBitGl]});this.shader=new d.Shader({glProgram:t,resources:{localUniforms:e,batchSamplers:h.batchSamplersUniformGroup}})}execute(e,t){const r=t.context,n=r.customShader||this.shader,i=e.renderer,s=i.graphicsContext,{geometry:o,instructions:a}=s.getContextRenderData(r);n.groups[0]=i.globalUniforms.bindGroup,i.shader.bind(n),i.geometry.bind(o,n.glProgram);const u=a.instructions;for(let e=0;e"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),t=a.compileHighShaderGpuProgram({name:"graphics",bits:[u.colorBit,l.generateTextureBatchBit(o.MAX_TEXTURES),c.localUniformBitGroup2,h.roundPixelsBit]});this.shader=new d.Shader({gpuProgram:t,resources:{localUniforms:e}})}execute(e,t){const r=t.context,n=r.customShader||this.shader,i=e.renderer,o=i.graphicsContext,{geometry:a,instructions:u}=o.getContextRenderData(r),l=i.encoder;l.setPipelineFromGeometryProgramAndState(a,n.gpuProgram,e.state),l.setGeometry(a);const c=i.globalUniforms.bindGroup;l.setBindGroup(0,c,n.gpuProgram);const h=i.renderPipes.uniformBatch.getUniformBindGroup(n.resources.localUniforms,!0);l.setBindGroup(2,h,n.gpuProgram);const d=u.instructions;for(let e=0;e>24&255)/255;t[r++]=(255&e)/255*n,t[r++]=(e>>8&255)/255*n,t[r++]=(e>>16&255)/255*n,t[r++]=n},t.colorToUniform=function(e,t,r,n){r[n++]=(e>>16&255)/255,r[n++]=(e>>8&255)/255,r[n++]=(255&e)/255,r[n++]=t}},83016:function(e,t,r){"use strict";var n=r(17073),i=r(2608),s=r(20832);n.extensions.add(s.GraphicsPipe),n.extensions.add(i.GraphicsContextSystem)},46141:function(e,t,r){"use strict";var n=r(82397);t.BatchableGraphics=class{constructor(){this.batcher=null,this.batch=null,this.applyTransform=!0,this.roundPixels=0}get blendMode(){return this.applyTransform?this.renderable.groupBlendMode:"normal"}packIndex(e,t,r){const n=this.geometryData.indices;for(let i=0;i>16|65280&h|(255&h)<<16;if(this.applyTransform){const s=n.mixColors(d,o.groupColor)+(this.alpha*o.groupAlpha*255<<24),h=o.groupTransform,p=i<<16|65535&this.roundPixels,f=h.a,m=h.b,g=h.c,_=h.d,x=h.tx,b=h.ty;for(let n=l;n{u.BigPool.return(e)}))}destroy(){for(const e of this._needsContextNeedsRebuild)this._gpuContextHash[e.uid]&&this.onGraphicsContextDestroy(e);this._needsContextNeedsRebuild.length=0}};d.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"graphicsContext"},d.defaultOptions={bezierSmoothness:.5};let p=d;t.GpuGraphicsContext=c,t.GraphicsContextRenderData=h,t.GraphicsContextSystem=p},20832:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(86169),o=r(76818),a=r(46141);class u{constructor(e,t){this.state=i.State.for2d(),this._graphicsBatchesHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){const t=e.context,r=!!this._graphicsBatchesHash[e.uid],n=this.renderer.graphicsContext.updateGpuContext(t);return!(!n.isBatchable&&r===n.isBatchable)}addRenderable(e,t){const r=this.renderer.graphicsContext.updateGpuContext(e.context);e._didGraphicsUpdate&&(e._didGraphicsUpdate=!1,this._rebuild(e)),r.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){const t=this._graphicsBatchesHash[e.uid];if(t)for(let e=0;e{const r=s.BigPool.get(a.BatchableGraphics);return t.copyTo(r),r.renderable=e,r.roundPixels=n,r}));return this._graphicsBatchesHash[e.uid]=i,e.on("destroyed",(()=>{this.destroyRenderable(e)})),i}_removeBatchForRenderable(e){this._graphicsBatchesHash[e].forEach((e=>{s.BigPool.return(e)})),this._graphicsBatchesHash[e]=null}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null;for(const e in this._graphicsBatchesHash)this._removeBatchForRenderable(e);this._graphicsBatchesHash=null}}u.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"graphics"},t.GraphicsPipe=u},50071:function(){},76393:function(e,t,r){"use strict";var n=r(2608);const i=8,s=1.1920929e-7,o=.01,a=0,u=0;function l(e,t,r,n,c,h,d,p,f,m,g){if(g>i)return;const _=Math.PI,x=(e+r)/2,b=(t+n)/2,y=(r+c)/2,v=(n+h)/2,T=(c+d)/2,S=(h+p)/2,E=(x+y)/2,A=(b+v)/2,P=(y+T)/2,M=(v+S)/2,R=(E+P)/2,w=(A+M)/2;if(g>0){let i=d-e,l=p-t;const g=Math.abs((r-d)*l-(n-p)*i),x=Math.abs((c-d)*l-(h-p)*i);let b,y;if(g>s&&x>s){if((g+x)*(g+x)<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),y>=_&&(y=2*_-y),b+yu)return void f.push(r,n);if(y>u)return void f.push(c,h)}}}else if(g>s){if(g*g<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),bu)return void f.push(r,n)}}else if(x>s){if(x*x<=m*(i*i+l*l)){if(a=_&&(b=2*_-b),bu)return void f.push(c,h)}}else if(i=R-(e+d)/2,l=w-(t+p)/2,i*i+l*l<=m)return void f.push(R,w)}l(e,t,x,b,E,A,R,w,f,m,g+1),l(R,w,P,M,T,S,d,p,f,m,g+1)}t.buildAdaptiveBezier=function(e,t,r,i,s,o,a,u,c,h){let d=(1-Math.min(.99,Math.max(0,h??n.GraphicsContextSystem.defaultOptions.bezierSmoothness)))/1;return d*=d,function(e,t,r,n,i,s,o,a,u,c){l(e,t,r,n,i,s,o,a,u,c,0),u.push(o,a)}(t,r,i,s,o,a,u,c,e,d),e}},69169:function(e,t,r){"use strict";var n=r(2608);const i=8,s=1.1920929e-7,o=.01,a=0;function u(e,t,r,n,l,c,h,d,p){if(p>i)return;const f=Math.PI,m=(t+n)/2,g=(r+l)/2,_=(n+c)/2,x=(l+h)/2,b=(m+_)/2,y=(g+x)/2;let v=c-t,T=h-r;const S=Math.abs((n-c)*T-(l-h)*v);if(S>s){if(S*S<=d*(v*v+T*T)){if(a=f&&(i=2*f-i),is||o&&s>i)&&(u=2*Math.PI-u),a=a||Math.max(6,Math.floor(6*Math.pow(n,1/3)*(u/Math.PI)));let l=u/(a=Math.max(a,3)),c=i;l*=o?-1:1;for(let i=0;ih*u)}},67563:function(e,t,r){"use strict";var n=r(76393);const i=2*Math.PI,s={centerX:0,centerY:0,ang1:0,ang2:0},o=({x:e,y:t},r,n,i,s,o,a,u)=>{const l=i*(e*=r)-s*(t*=n),c=s*e+i*t;return u.x=l+o,u.y=c+a,u};function a(e,t){const r=-1.5707963267948966===t?-.551915024494:4/3*Math.tan(t/4),n=1.5707963267948966===t?.551915024494:r,i=Math.cos(e),s=Math.sin(e),o=Math.cos(e+t),a=Math.sin(e+t);return[{x:i-s*n,y:s+i*n},{x:o+a*n,y:a-o*n},{x:o,y:a}]}const u=(e,t,r,n)=>{let i=e*r+t*n;return i>1&&(i=1),i<-1&&(i=-1),(e*n-t*r<0?-1:1)*Math.acos(i)};t.buildArcToSvg=function(e,t,r,l,c,h,d,p=0,f=0,m=0){if(0===h||0===d)return;const g=Math.sin(p*i/360),_=Math.cos(p*i/360),x=_*(t-l)/2+g*(r-c)/2,b=-g*(t-l)/2+_*(r-c)/2;if(0===x&&0===b)return;h=Math.abs(h),d=Math.abs(d);const y=Math.pow(x,2)/Math.pow(h,2)+Math.pow(b,2)/Math.pow(d,2);y>1&&(h*=Math.sqrt(y),d*=Math.sqrt(y)),((e,t,r,n,s,o,a,l,c,h,d,p,f)=>{const m=Math.pow(s,2),g=Math.pow(o,2),_=Math.pow(d,2),x=Math.pow(p,2);let b=m*g-m*x-g*_;b<0&&(b=0),b/=m*x+g*_,b=Math.sqrt(b)*(a===l?-1:1);const y=b*s/o*p,v=b*-o/s*d,T=h*y-c*v+(e+r)/2,S=c*y+h*v+(t+n)/2,E=(d-y)/s,A=(p-v)/o,P=(-d-y)/s,M=(-p-v)/o,R=u(1,0,E,A);let w=u(E,A,P,M);0===l&&w>0&&(w-=i),1===l&&w<0&&(w+=i),f.centerX=T,f.centerY=S,f.ang1=R,f.ang2=w})(t,r,l,c,h,d,f,m,g,_,x,b,s);let{ang1:v,ang2:T}=s;const{centerX:S,centerY:E}=s;let A=Math.abs(T)/(i/4);Math.abs(1-A)<1e-7&&(A=1);const P=Math.max(Math.ceil(A),1);T/=P;let M=e[e.length-2],R=e[e.length-1];const w={x:0,y:0};for(let t=0;t=0&&a>=0&&i>=0&&s>=0))return t;const u=Math.ceil(2.3*Math.sqrt(o+a)),l=8*u+(i?4:0)+(s?4:0);if(0===l)return t;if(0===u)return t[0]=t[6]=r+i,t[1]=t[3]=n+s,t[2]=t[4]=r-i,t[5]=t[7]=n-s,t;let c=0,h=4*u+(i?2:0)+2,d=h,p=l,f=i+o,m=s,g=r+f,_=r-f,x=n+m;if(t[c++]=g,t[c++]=x,t[--h]=x,t[--h]=_,s){const e=n-m;t[d++]=_,t[d++]=e,t[--p]=e,t[--p]=g}for(let e=1;e0&&(i[s++]=u,i[s++]=l,i[s++]=u-1),u++;i[s++]=l+1,i[s++]=l,i[s++]=u-1}};t.buildCircle=r},968:function(e,t,r){"use strict";var n=r(26553),i=r(88365),s=r(20593);function o(e,t,r,n,i,s,o,a){let u,l;o?(u=n,l=-r):(u=-n,l=r);const c=e-r*i+u,h=t-n*i+l,d=e+r*s+u,p=t+n*s+l;return a.push(c,h),a.push(d,p),2}function a(e,t,r,n,i,s,o,a){const u=r-e,l=n-t;let c=Math.atan2(u,l),h=Math.atan2(i-e,s-t);a&&ch&&(h+=2*Math.PI);let d=c;const p=h-c,f=Math.abs(p),m=Math.sqrt(u*u+l*l),g=1+(15*f*Math.sqrt(m)/Math.PI>>0),_=p/g;if(d+=_,a){o.push(e,t),o.push(r,n);for(let r=1,n=d;r=0&&("round"===m.join?S+=a(B,G,B-D*k,G-O*k,B-I*k,G-U*k,v,!1)+4:S+=2,v.push(B-I*N,G-U*N),v.push(B+I*k,G+U*k));continue}const c=(-D+R)*(-O+G)-(-D+B)*(-O+w),h=(-I+C)*(-U+G)-(-I+B)*(-U+F),d=(r*h-i*c)/u,p=(s*c-n*h)/u,f=(d-B)*(d-B)+(p-G)*(p-G),g=B+(d-B)*k,_=G+(p-G)*k,x=B-(d-B)*N,b=G-(p-G)*N,y=l?k:N;f<=Math.min(r*r+n*n,i*i+s*s)+y*y*P?"bevel"===m.join||f/P>M?(l?(v.push(g,_),v.push(B+D*N,G+O*N),v.push(g,_),v.push(B+I*N,G+U*N)):(v.push(B-D*k,G-O*k),v.push(x,b),v.push(B-I*k,G-U*k),v.push(x,b)),S+=2):"round"===m.join?l?(v.push(g,_),v.push(B+D*N,G+O*N),S+=a(B,G,B+D*N,G+O*N,B+I*N,G+U*N,v,!0)+4,v.push(g,_),v.push(B+I*N,G+U*N)):(v.push(B-D*k,G-O*k),v.push(x,b),S+=a(B,G,B-D*k,G-O*k,B-I*k,G-U*k,v,!1)+4,v.push(B-I*k,G-U*k),v.push(x,b)):(v.push(g,_),v.push(x,b)):(v.push(B-D*k,G-O*k),v.push(B+D*N,G+O*N),"round"===m.join?S+=l?a(B,G,B+D*N,G+O*N,B+I*N,G+U*N,v,!0)+2:a(B,G,B-D*k,G-O*k,B-I*k,G-U*k,v,!1)+2:"miter"===m.join&&f/P<=M&&(l?(v.push(x,b),v.push(x,b)):(v.push(g,_),v.push(g,_)),S+=2),v.push(B-I*k,G-U*k),v.push(B+I*N,G+U*N),S+=2)}R=e[2*(T-2)],w=e[2*(T-2)+1],B=e[2*(T-1)],G=e[2*(T-1)+1],D=-(w-G),O=R-B,L=Math.sqrt(D*D+O*O),D/=L,O/=L,D*=A,O*=A,v.push(B-D*k,G-O*k),v.push(B+D*N,G+O*N),b||("round"===m.cap?S+=a(B-D*(k-N)*.5,G-O*(k-N)*.5,B-D*k,G-O*k,B+D*N,G+O*N,v,!1)+2:"square"===m.cap&&(S+=o(B,G,D,O,k,N,!1,v)));const X=i.curveEps*i.curveEps;for(let e=E;e=0&&o>=0?(t[0]=n,t[1]=i,t[2]=n+s,t[3]=i,t[4]=n+s,t[5]=i+o,t[6]=n,t[7]=i+o,t):t},triangulate(e,t,r,n,i,s){let o=0;t[(n*=r)+o]=e[0],t[n+o+1]=e[1],o+=r,t[n+o]=e[2],t[n+o+1]=e[3],o+=r,t[n+o]=e[6],t[n+o+1]=e[7],o+=r,t[n+o]=e[4],t[n+o+1]=e[5],o+=r;const a=n/r;i[s++]=a,i[s++]=a+1,i[s++]=a+2,i[s++]=a+1,i[s++]=a+3,i[s++]=a+2}};t.buildRectangle=r},64778:function(e,t){"use strict";const r={build(e,t){return t[0]=e.x,t[1]=e.y,t[2]=e.x2,t[3]=e.y2,t[4]=e.x3,t[5]=e.y3,t},triangulate(e,t,r,n,i,s){let o=0;t[(n*=r)+o]=e[0],t[n+o+1]=e[1],o+=r,t[n+o]=e[2],t[n+o+1]=e[3],o+=r,t[n+o]=e[4],t[n+o+1]=e[5];const a=n/r;i[s++]=a,i[s++]=a+1,i[s++]=a+2}};t.buildTriangle=r},88365:function(e,t){"use strict";t.closePointEps=1e-4,t.curveEps=1e-4},37553:function(e,t,r){"use strict";var n=r(58778),i=r(42932),s=r(15685),o=r(75813),a=r(84463),u=r(78739);const l=class e{constructor(e,t,r,n){this.uid=u.uid("fillGradient"),this.type="linear",this.gradientStops=[],this.x0=e,this.y0=t,this.x1=r,this.y1=n}addColorStop(e,t){return this.gradientStops.push({offset:e,color:n.Color.shared.setValue(t).toHex()}),this}buildLinearGradient(){const t=e.defaultTextureSize,{gradientStops:r}=this,n=i.DOMAdapter.get().createCanvas();n.width=t,n.height=t;const u=n.getContext("2d"),l=u.createLinearGradient(0,0,e.defaultTextureSize,1);for(let e=0;e=2;e-=2)l[e]===l[e-2]&&l[e-1]===l[e-3]&&l.splice(e-1,2);return this.poly(l,!0,s)}ellipse(e,t,r,n,s){return this.drawShape(new i.Ellipse(e,t,r,n),s),this}roundRect(e,t,r,n,i,s){return this.drawShape(new a.RoundedRectangle(e,t,r,n,i),s),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new s.Polygon,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){const t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new s.Polygon,e)){const e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let t=e.shape.x,r=e.shape.y;if(!e.transform.isIdentity()){const n=e.transform,i=t;t=n.a*t+n.c*r+n.tx,r=n.b*i+n.d*r+n.ty}this._currentPoly.points.push(t,r)}else this._currentPoly.points.push(0,0)}}buildPath(){const e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t{const r=t.x-e.x,n=t.y-e.y,i=Math.sqrt(r*r+n*n);return{len:i,nx:r/i,ny:n/i}},i=(t,r)=>{0===t?e.moveTo(r.x,r.y):e.lineTo(r.x,r.y)};let s=t[t.length-1];for(let o=0;o0&&(p=-1,f=!0);const m=d/2;let g,_=Math.abs(Math.cos(m)*u/Math.sin(m));_>Math.min(c.len/2,h.len/2)?(_=Math.min(c.len/2,h.len/2),g=Math.abs(_*Math.sin(m)/Math.cos(m))):g=u;const x=a.x+h.nx*_+-h.ny*g*p,b=a.y+h.ny*_+h.nx*g*p,y=Math.atan2(c.ny,c.nx)+Math.PI/2*p,v=Math.atan2(h.ny,h.nx)-Math.PI/2*p;0===o&&e.moveTo(x+Math.cos(y)*g,b+Math.sin(y)*g),e.arc(x,b,g,y,v,f),s=a}},t.roundedShapeQuadraticCurve=function(e,t,r,n){const i=(e,t)=>Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2),s=(e,t,r)=>({x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r}),o=t.length;for(let a=0;aparseInt(e,10))),t.context.poly(T,!0),r&&t.context.fill(),a&&t.context.stroke();break;case"polyline":S=e.getAttribute("points"),T=S.match(/\d+/g).map((e=>parseInt(e,10))),t.context.poly(T,!1),a&&t.context.stroke();break;case"g":case"svg":break;default:console.info(`[SVG parser] <${e.nodeName}> elements unsupported`)}for(let e=0;e0&&(o=s.pop(),o?(a=o.startX,u=o.startY):(a=0,u=0)),o=null;break;default:i.warn(`Unknown SVG path command: ${l}`)}"Z"!==l&&"z"!==l&&null===o&&(o={startX:a,startY:u},s.push(o))}return t}},42892:function(e,t,r){"use strict";var n=r(42181),i=r(44307),s=r(54132),o=r(84463),a=r(86169),u=r(46141),l=r(76788),c=r(968),h=r(57469),d=r(53976),p=r(64778),f=r(47464);const m={rectangle:d.buildRectangle,polygon:h.buildPolygon,triangle:p.buildTriangle,circle:l.buildCircle,ellipse:l.buildCircle,roundedRectangle:l.buildCircle},g=new n.Rectangle;function _(e,t,r){const{vertices:n,uvs:i,indices:o}=r,l=o.length,c=n.length/2,h=[],d=m.rectangle,p=g,f=e.image;p.x=e.dx,p.y=e.dy,p.width=e.dw,p.height=e.dh;const _=e.transform;d.build(p,h),_&&s.transformVertices(h,_),d.triangulate(h,n,2,c,o,l);const x=f.uvs;i.push(x.x0,x.y0,x.x1,x.y1,x.x3,x.y3,x.x2,x.y2);const b=a.BigPool.get(u.BatchableGraphics);b.indexOffset=l,b.indexSize=o.length-l,b.vertexOffset=c,b.vertexSize=n.length/2-c,b.color=e.style,b.alpha=e.alpha,b.texture=f,b.geometryData=r,t.push(b)}function x(e,t,r,n,l,h){const{vertices:d,uvs:p,indices:g}=h,_=e.shapePrimitives.length-1;e.shapePrimitives.forEach((({shape:e,transform:x},b)=>{const y=g.length,v=d.length/2,T=[],S=m[e.type];if(S.build(e,T),x&&s.transformVertices(T,x),n){const r=e.closePath??!0,n=t;c.buildLine(T,n,!1,r,d,2,v,g,y)}else if(r&&_===b){0!==_&&console.warn("[Pixi Graphics] only the last shape have be cut out");const e=[],t=T.slice(),n=function(e){if(!e)return[];const t=e.shapePrimitives,r=[];for(let e=0;e{e.push(t.length/2),t.push(...r)})),f.triangulateWithHoles(t,e,d,2,v,g,y)}else S.triangulate(T,d,2,v,g,y);const E=p.length/2,A=t.texture;if(A!==o.Texture.WHITE){const e=t.matrix;x&&e.append(x.clone().invert()),i.buildUvs(d,2,v,p,E,2,d.length/2-v,e)}else i.buildSimpleUvs(p,E,2,d.length/2-v);const P=a.BigPool.get(u.BatchableGraphics);P.indexOffset=y,P.indexSize=g.length-y,P.vertexOffset=v,P.vertexSize=d.length/2-v,P.color=t.color,P.alpha=t.alpha,P.texture=A,P.geometryData=h,l.push(P)}))}t.buildContextBatches=function(e,t){const{geometryData:r,batches:n}=t;n.length=0,r.indices.length=0,r.vertices.length=0,r.uvs.length=0;for(let t=0;t{const a=o.length,l=t.length/2,c=[],d=h[e.type];d.build(e,c),s&&i.transformVertices(c,s),d.triangulate(c,t,2,l,o,a);const p=r.length/2;u?(s&&u.append(s.clone().invert()),n.buildUvs(t,2,l,r,p,2,t.length/2-l,u)):n.buildSimpleUvs(r,p,2,t.length/2-l)}));const l=e.out;return l?(l.positions=new Float32Array(t),l.uvs=new Float32Array(r),l.indices=new Uint32Array(o),l):new s.MeshGeometry({positions:new Float32Array(t),uvs:new Float32Array(r),indices:new Uint32Array(o)})}},97886:function(e,t,r){"use strict";var n=r(58778),i=r(15685),s=r(84463),o=r(37553),a=r(16315);t.convertFillInputToFillStyle=function(e,t){if(null==e)return null;let r,u;if(e?.fill?(u=e.fill,r={...t,...e}):(u=e,r=t),n.Color.isColorLike(u)){const e=n.Color.shared.setValue(u??0);return{...r,color:e.toNumber(),alpha:1===e.alpha?r.alpha:e.alpha,texture:s.Texture.WHITE}}if(u instanceof a.FillPattern){const e=u;return{...r,color:16777215,texture:e.texture,matrix:e.transform,fill:r.fill??null}}if(u instanceof o.FillGradient){const e=u;return e.buildLinearGradient(),{...r,color:16777215,texture:e.texture,matrix:e.transform}}const l={...t,...e};if(l.texture){if(l.texture!==s.Texture.WHITE){const e=l.matrix?.invert()||new i.Matrix;e.scale(1/l.texture.frame.width,1/l.texture.frame.height),l.matrix=e}const e=l.texture.source.style;"clamp-to-edge"===e.addressMode&&(e.addressMode="repeat")}const c=n.Color.shared.setValue(l.color);return l.alpha*=c.alpha,l.color=c.toNumber(),l.matrix=l.matrix?l.matrix.clone():null,l}},20593:function(e,t){"use strict";t.getOrientationOfPoints=function(e){const t=e.length;if(t<6)return 1;let r=0;for(let n=0,i=e[t-2],s=e[t-1];n0&&(r.source.style.addressMode="repeat"),super(n.definedProps({...a,texture:r,geometry:u})),this.autoUpdate=!0,this.onRender=this._render}_render(){const e=this.geometry;(this.autoUpdate||e._width!==this.texture.height)&&(e._width=this.texture.height,e.update())}};o.defaultOptions={textureScale:0};let a=o;t.MeshRope=a},14749:function(e,t,r){"use strict";var n=r(6877),i=r(37086),s=r(46525);class o extends i.Mesh{constructor(e){const{texture:t,vertices:r,uvs:i,indices:o,topology:a,...u}=e,l=new s.MeshGeometry(n.definedProps({positions:r,uvs:i,indices:o,topology:a}));super(n.definedProps({...u,texture:t,geometry:l})),this.autoUpdate=!0,this.onRender=this._render}get vertices(){return this.geometry.getBuffer("aPosition").data}set vertices(e){this.geometry.getBuffer("aPosition").data=e}_render(){this.autoUpdate&&this.geometry.getBuffer("aPosition").update()}}t.MeshSimple=o},11291:function(e,t,r){"use strict";var n=r(46525);const i=class e extends n.MeshGeometry{constructor(t){const{width:r,points:n,textureScale:i}={...e.defaultOptions,...t};super({positions:new Float32Array(4*n.length),uvs:new Float32Array(4*n.length),indices:new Uint32Array(6*(n.length-1))}),this.points=n,this._width=r,this.textureScale=i,this._build()}get width(){return this._width}_build(){const e=this.points;if(!e)return;const t=this.getBuffer("aPosition"),r=this.getBuffer("aUV"),n=this.getIndex();if(e.length<1)return;t.data.length/4!==e.length&&(t.data=new Float32Array(4*e.length),r.data=new Float32Array(4*e.length),n.data=new Uint16Array(6*(e.length-1)));const i=r.data,s=n.data;i[0]=0,i[1]=0,i[2]=0,i[3]=1;let o=0,a=e[0];const u=this._width*this.textureScale,l=e.length;for(let t=0;t0){const r=a.x-e[t].x,n=a.y-e[t].y,i=Math.sqrt(r*r+n*n);a=e[t],o+=i/u}else o=t/(l-1);i[r]=o,i[r+1]=0,i[r+2]=o,i[r+3]=1}let c=0;for(let e=0;e0?this.textureScale*this._width/2:this._width/2;for(let u=0;u1&&(h=1);const d=Math.sqrt(n*n+i*i);d<1e-6?(n=0,i=0):(n/=d,i/=d,n*=a,i*=a),s[c]=l.x+n,s[c+1]=l.y+i,s[c+2]=l.x-n,s[c+3]=l.y-i,r=l}this.buffers[0].update()}update(){this.textureScale>0?this._build():this.updateVertices()}};i.defaultOptions={width:200,points:[],textureScale:0};let s=i;t.RopeGeometry=s},65935:function(e,t,r){"use strict";var n=r(17073),i=r(15685),s=r(21380),o=r(74813),a=r(4116),u=r(36114),l=r(97505),c=r(84463),h=r(95190);class d{init(){const e=s.compileHighShaderGlProgram({name:"mesh",bits:[o.localUniformBitGl,u.textureBitGl,a.roundPixelsBitGl]});this._shader=new l.Shader({glProgram:e,resources:{uTexture:c.Texture.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3",value:new i.Matrix}}}})}execute(e,t){const r=e.renderer;let n=t._shader;if(n){if(!n.glProgram)return void h.warn("Mesh shader has no glProgram",t.shader)}else{n=this._shader;const e=t.texture,r=e.source;n.resources.uTexture=r,n.resources.uSampler=r.style,n.resources.textureUniforms.uniforms.uTextureMatrix=e.textureMatrix.mapCoord}n.groups[100]=r.globalUniforms.bindGroup,n.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:n,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}d.extension={type:[n.ExtensionType.WebGLPipesAdaptor],name:"mesh"},t.GlMeshAdaptor=d},45136:function(e,t,r){"use strict";var n=r(17073),i=r(15685),s=r(21380),o=r(74813),a=r(4116),u=r(36114),l=r(97505),c=r(84463),h=r(95190);class d{init(){const e=s.compileHighShaderGpuProgram({name:"mesh",bits:[o.localUniformBit,u.textureBit,a.roundPixelsBit]});this._shader=new l.Shader({gpuProgram:e,resources:{uTexture:c.Texture.EMPTY._source,uSampler:c.Texture.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3",value:new i.Matrix}}}})}execute(e,t){const r=e.renderer;let n=t._shader;if(n){if(!n.gpuProgram)return void h.warn("Mesh shader has no gpuProgram",t.shader)}else n=this._shader,n.resources.uTexture=t.texture.source,n.resources.uSampler=t.texture.source.style,n.resources.textureUniforms.uniforms.uTextureMatrix=t.texture.textureMatrix.mapCoord;const i=n.gpuProgram;if(i.autoAssignGlobalUniforms&&(n.groups[0]=r.globalUniforms.bindGroup),i.autoAssignLocalUniforms){const t=e.localUniforms;n.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(t,!0)}r.encoder.draw({geometry:t._geometry,shader:n,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}d.extension={type:[n.ExtensionType.WebGPUPipesAdaptor],name:"mesh"},t.GpuMeshAdapter=d},60862:function(e,t,r){"use strict";var n=r(17073),i=r(25784);n.extensions.add(i.MeshPipe)},58507:function(e,t,r){"use strict";var n=r(15685);t.BatchableMesh=class{constructor(){this.batcher=null,this.batch=null,this.roundPixels=0,this._uvMatrix=new n.Matrix}get blendMode(){return this.mesh.groupBlendMode}reset(){this.mesh=null,this.texture=null,this.batcher=null,this.batch=null}packIndex(e,t,r){const n=this.geometry.indices;for(let i=0;i"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new s.BindGroup({0:this.localUniforms}),this._meshDataHash=Object.create(null),this._gpuBatchableMeshHash=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){const t=this._getMeshData(e),r=t.batched,n=e.batched;if(t.batched=n,r!==n)return!0;if(n){const r=e._geometry;if(r.indices.length!==t.indexSize||r.positions.length!==t.vertexSize)return t.indexSize=r.indices.length,t.vertexSize=r.positions.length,!0;const n=this._getBatchableMesh(e),i=e.texture;if(n.texture._source!==i._source&&n.texture._source!==i._source)return!n.batcher.checkAndUpdateTexture(n,i)}return!1}addRenderable(e,t){const r=this.renderer.renderPipes.batch,{batched:n}=this._getMeshData(e);if(n){const t=this._getBatchableMesh(e);t.texture=e._texture,t.geometry=e._geometry,r.addToBatch(t)}else r.break(t),t.add({renderPipeId:"mesh",mesh:e})}updateRenderable(e){if(e.batched){const t=this._gpuBatchableMeshHash[e.uid];t.texture=e._texture,t.geometry=e._geometry,t.batcher.updateElement(t)}}destroyRenderable(e){this._meshDataHash[e.uid]=null;const t=this._gpuBatchableMeshHash[e.uid];a.BigPool.return(t),this._gpuBatchableMeshHash[e.uid]=null}execute({mesh:e}){if(!e.isRenderable)return;e.state.blendMode=e.groupBlendMode;const t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),u.color32BitToUniform(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){return this._meshDataHash[e.uid]||this._initMeshData(e)}_initMeshData(e){return this._meshDataHash[e.uid]={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e.on("destroyed",(()=>{this.destroyRenderable(e)})),this._meshDataHash[e.uid]}_getBatchableMesh(e){return this._gpuBatchableMeshHash[e.uid]||this._initBatchableMesh(e)}_initBatchableMesh(e){const t=a.BigPool.get(l.BatchableMesh);return t.mesh=e,t.texture=e._texture,t.roundPixels=this.renderer._roundPixels|e._roundPixels,this._gpuBatchableMeshHash[e.uid]=t,t.mesh=e,t}destroy(){for(const e in this._gpuBatchableMeshHash)this._gpuBatchableMeshHash[e]&&a.BigPool.return(this._gpuBatchableMeshHash[e]);this._gpuBatchableMeshHash=null,this._meshDataHash=null,this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}}c.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"mesh"},t.MeshPipe=c},86957:function(e,t){"use strict";t.getTextureDefaultMatrix=function(e,t){const{width:r,height:n}=e.frame;return t.scale(1/r,1/n),t}},2600:function(e,t,r){"use strict";var n=r(84463),i=r(35292),s=r(63983),o=r(10701);class a extends o.Sprite{constructor(e,t=!0){super(e[0]instanceof n.Texture?e[0]:e[0].texture),this._textures=null,this._durations=null,this._autoUpdate=t,this._isConnectedToTicker=!1,this.animationSpeed=1,this.loop=!0,this.updateAnchor=!1,this.onComplete=null,this.onFrameChange=null,this.onLoop=null,this._currentTime=0,this._playing=!1,this._previousFrame=null,this.textures=e}stop(){this._playing&&(this._playing=!1,this._autoUpdate&&this._isConnectedToTicker&&(s.Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1))}play(){this._playing||(this._playing=!0,this._autoUpdate&&!this._isConnectedToTicker&&(s.Ticker.shared.add(this.update,this,i.UPDATE_PRIORITY.HIGH),this._isConnectedToTicker=!0))}gotoAndStop(e){this.stop(),this.currentFrame=e}gotoAndPlay(e){this.currentFrame=e,this.play()}update(e){if(!this._playing)return;const t=e.deltaTime,r=this.animationSpeed*t,n=this.currentFrame;if(null!==this._durations){let e=this._currentTime%1*this._durations[this.currentFrame];for(e+=r/60*1e3;e<0;)this._currentTime--,e+=this._durations[this.currentFrame];const n=Math.sign(this.animationSpeed*t);for(this._currentTime=Math.floor(this._currentTime);e>=this._durations[this.currentFrame];)e-=this._durations[this.currentFrame]*n,this._currentTime+=n;this._currentTime+=e/this._durations[this.currentFrame]}else this._currentTime+=r;this._currentTime<0&&!this.loop?(this.gotoAndStop(0),this.onComplete&&this.onComplete()):this._currentTime>=this._textures.length&&!this.loop?(this.gotoAndStop(this._textures.length-1),this.onComplete&&this.onComplete()):n!==this.currentFrame&&(this.loop&&this.onLoop&&(this.animationSpeed>0&&this.currentFramen)&&this.onLoop(),this._updateTexture())}_updateTexture(){const e=this.currentFrame;this._previousFrame!==e&&(this._previousFrame=e,this.texture=this._textures[e],this.updateAnchor&&this.anchor.copyFrom(this.texture.defaultAnchor),this.onFrameChange&&this.onFrameChange(this.currentFrame))}destroy(){this.stop(),super.destroy(),this.onComplete=null,this.onFrameChange=null,this.onLoop=null}static fromFrames(e){const t=[];for(let r=0;rthis.totalFrames-1)throw new Error(`[AnimatedSprite]: Invalid frame index value ${e}, expected to be between 0 and totalFrames ${this.totalFrames}.`);const t=this.currentFrame;this._currentTime=e,t!==this.currentFrame&&this._updateTexture()}get playing(){return this._playing}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,!this._autoUpdate&&this._isConnectedToTicker?(s.Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._playing&&(s.Ticker.shared.add(this.update,this),this._isConnectedToTicker=!0))}}t.AnimatedSprite=a},76596:function(e,t,r){"use strict";var n=r(15685),i=r(27574);const s=class e extends i.PlaneGeometry{constructor(t={}){super({width:(t={...e.defaultOptions,...t}).width,height:t.height,verticesX:4,verticesY:4}),this._textureMatrix=new n.Matrix,this.update(t)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,e.textureMatrix&&this._textureMatrix.copyFrom(e.textureMatrix),this.updateUvs(),this.updatePositions()}updatePositions(){const e=this.positions,t=this._leftWidth+this._rightWidth,r=this.width>t?1:this.width/t,n=this._topHeight+this._bottomHeight,i=this.height>n?1:this.height/n,s=Math.min(r,i);e[9]=e[11]=e[13]=e[15]=this._topHeight*s,e[17]=e[19]=e[21]=e[23]=this.height-this._bottomHeight*s,e[25]=e[27]=e[29]=e[31]=this.height,e[2]=e[10]=e[18]=e[26]=this._leftWidth*s,e[4]=e[12]=e[20]=e[28]=this.width-this._rightWidth*s,e[6]=e[14]=e[22]=e[30]=this.width,this.getBuffer("aPosition").update()}updateUvs(){const e=this._textureMatrix,t=this.uvs;t[0]=t[8]=t[16]=t[24]=0,t[1]=t[3]=t[5]=t[7]=0,t[6]=t[14]=t[22]=t[30]=1,t[25]=t[27]=t[29]=t[31]=1;const r=1/this._originalWidth,n=1/this._originalHeight;t[2]=t[10]=t[18]=t[26]=r*this._leftWidth,t[9]=t[11]=t[13]=t[15]=n*this._topHeight,t[4]=t[12]=t[20]=t[28]=1-r*this._rightWidth,t[17]=t[19]=t[21]=t[23]=1-n*this._bottomHeight,function(e,t,r){r??(r=t);const n=e.a,i=e.b,s=e.c,o=e.d,a=e.tx,u=e.ty;for(let e=0;e=t.minX&&e.x<=t.maxX&&e.y>=t.minY&&e.y<=t.maxY}destroy(e){super.destroy(e);if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null,this.bounds=null}}o.defaultOptions={texture:n.Texture.EMPTY,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10};t.NineSlicePlane=class extends o{constructor(...e){let t=e[0];t instanceof n.Texture&&(i.deprecation(i.v8_0_0,"NineSlicePlane now uses the options object {texture, leftWidth, rightWidth, topHeight, bottomHeight}"),t={texture:t,leftWidth:e[1],topHeight:e[2],rightWidth:e[3],bottomHeight:e[4]}),i.deprecation(i.v8_0_0,"NineSlicePlane is deprecated. Use NineSliceSprite instead."),super(t)}},t.NineSliceSprite=o},87577:function(e,t,r){"use strict";var n=r(17073),i=r(86169),s=r(58507),o=r(76596);class a{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){const r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){const t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){const t=this._gpuSpriteHash[e.uid];i.BigPool.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.geometry.update(e),t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){const t=new s.BatchableMesh;return t.geometry=new o.NineSliceGeometry,t.mesh=e,t.texture=e._texture,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuSpriteHash){this._gpuSpriteHash[e].geometry.destroy()}this._gpuSpriteHash=null,this._renderer=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"nineSliceSprite"},t.NineSliceSpritePipe=a},58537:function(e,t,r){"use strict";var n=r(17073),i=r(87577);n.extensions.add(i.NineSliceSpritePipe)},74839:function(e,t,r){"use strict";var n=r(56509),i=r(62792),s=r(84463),o=r(60094),a=r(23522),u=r(74599);const l=class e extends u.Container{constructor(...t){let r=t[0]||{};r instanceof s.Texture&&(r={texture:r}),t.length>1&&(o.deprecation(o.v8_0_0,"use new TilingSprite({ texture, width:100, height:100 }) instead"),r.width=t[1],r.height=t[2]),r={...e.defaultOptions,...r};const{texture:n,anchor:u,tilePosition:l,tileScale:c,tileRotation:h,width:d,height:p,applyAnchorToTexture:f,roundPixels:m,...g}=r??{};super({label:"TilingSprite",...g}),this.renderPipeId="tilingSprite",this.canBundle=!0,this.batched=!0,this._roundPixels=0,this._bounds={minX:0,maxX:1,minY:0,maxY:0},this._boundsDirty=!0,this.allowChildren=!1,this._anchor=new i.ObservablePoint(this),this._applyAnchorToTexture=f,this.texture=n,this._width=d??n.width,this._height=p??n.height,this._tileTransform=new a.Transform({observer:{_onUpdate:()=>this._onTilingSpriteUpdate()}}),u&&(this.anchor=u),this.tilePosition=l,this.tileScale=c,this.tileRotation=h,this.roundPixels=m??!1}static from(t,r={}){return new e("string"==typeof t?{texture:n.Cache.get(t),...r}:{texture:t,...r})}get clampMargin(){return this._texture.textureMatrix.clampMargin}set clampMargin(e){this._texture.textureMatrix.clampMargin=e}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get tilePosition(){return this._tileTransform.position}set tilePosition(e){this._tileTransform.position.copyFrom(e)}get tileScale(){return this._tileTransform.scale}set tileScale(e){"number"==typeof e?this._tileTransform.scale.set(e):this._tileTransform.scale.copyFrom(e)}set tileRotation(e){this._tileTransform.rotation=e}get tileRotation(){return this._tileTransform.rotation}get tileTransform(){return this._tileTransform}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}set texture(e){this._texture!==e&&(this._texture=e,this._onTilingSpriteUpdate())}get texture(){return this._texture}set width(e){this._width=e,this._onTilingSpriteUpdate()}get width(){return this._width}set height(e){this._height=e,this._onTilingSpriteUpdate()}get height(){return this._height}_updateBounds(){const e=this._bounds,t=this._anchor,r=this._width,n=this._height;e.maxX=-t._x*r,e.minX=e.maxX+r,e.maxY=-t._y*n,e.minY=e.maxY+n}addBounds(e){const t=this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}containsPoint(e){const t=this.bounds.minX,r=this.bounds.minY,n=-t*this._anchor._x;let i=0;return e.x>=n&&e.x<=n+t&&(i=-r*this._anchor._y,e.y>=i&&e.y<=i+r)}_onTilingSpriteUpdate(){this._boundsDirty=!0,this._didTilingSpriteUpdate=!0,this._didChangeId+=4096,this.didViewUpdate||(this.didViewUpdate=!0,this.renderGroup&&this.renderGroup.onChildViewUpdate(this))}destroy(e=!1){super.destroy(e),this._anchor=null,this._tileTransform=null,this._bounds=null;if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null}};l.defaultOptions={texture:s.Texture.EMPTY,anchor:{x:0,y:0},tilePosition:{x:0,y:0},tileScale:{x:1,y:1},tileRotation:0,applyAnchorToTexture:!1};let c=l;t.TilingSprite=c},3857:function(e,t,r){"use strict";var n=r(17073),i=r(55141),s=r(2559),o=r(76818),a=r(58507),u=r(46525),l=r(67919),c=r(20872),h=r(44260),d=r(50426);const p=new c.QuadGeometry;class f{constructor(e){this._tilingSpriteDataHash=Object.create(null),this._renderer=e}validateRenderable(e){const t=this._getTilingSpriteData(e),r=t.canBatch;this._updateCanBatch(e);const n=t.canBatch;if(n&&n===r){const{batchableMesh:r}=t;if(r.texture._source!==e.texture._source)return!r.batcher.checkAndUpdateTexture(r,e.texture)}return r!==n}addRenderable(e,t){const r=this._renderer.renderPipes.batch;this._updateCanBatch(e);const n=this._getTilingSpriteData(e),{geometry:i,canBatch:s}=n;if(s){n.batchableMesh||(n.batchableMesh=new a.BatchableMesh);const t=n.batchableMesh;e._didTilingSpriteUpdate&&(e._didTilingSpriteUpdate=!1,this._updateBatchableMesh(e),t.geometry=i,t.mesh=e,t.texture=e._texture),t.roundPixels=this._renderer._roundPixels|e._roundPixels,r.addToBatch(t)}else r.break(t),n.shader||(n.shader=new l.TilingSpriteShader),this.updateRenderable(e),t.add(e)}execute(e){const{shader:t}=this._tilingSpriteDataHash[e.uid];t.groups[0]=this._renderer.globalUniforms.bindGroup;const r=t.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=this._renderer._roundPixels|e._roundPixels,o.color32BitToUniform(e.groupColorAlpha,r.uColor,0),this._renderer.encoder.draw({geometry:p,shader:t,state:i.State.default2d})}updateRenderable(e){const t=this._getTilingSpriteData(e),{canBatch:r}=t;if(r){const{batchableMesh:r}=t;e._didTilingSpriteUpdate&&this._updateBatchableMesh(e),r.batcher.updateElement(r)}else if(e._didTilingSpriteUpdate){const{shader:r}=t;r.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}e._didTilingSpriteUpdate=!1}destroyRenderable(e){const t=this._getTilingSpriteData(e);t.batchableMesh=null,t.shader?.destroy(),this._tilingSpriteDataHash[e.uid]=null}_getTilingSpriteData(e){return this._tilingSpriteDataHash[e.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){const t=new u.MeshGeometry({indices:p.indices,positions:p.positions.slice(),uvs:p.uvs.slice()});return this._tilingSpriteDataHash[e.uid]={canBatch:!0,renderable:e,geometry:t},e.on("destroyed",(()=>{this.destroyRenderable(e)})),this._tilingSpriteDataHash[e.uid]}_updateBatchableMesh(e){const t=this._getTilingSpriteData(e),{geometry:r}=t,n=e.texture.source.style;"repeat"!==n.addressMode&&(n.addressMode="repeat",n.update()),d.setUvs(e,r.uvs),h.setPositions(e,r.positions)}destroy(){for(const e in this._tilingSpriteDataHash)this.destroyRenderable(this._tilingSpriteDataHash[e].renderable);this._tilingSpriteDataHash=null,this._renderer=null}_updateCanBatch(e){const t=this._getTilingSpriteData(e),r=e.texture;let n=!0;return this._renderer.type===s.RendererType.WEBGL&&(n=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(n||r.source.isPowerOfTwo),t.canBatch}}f.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"tilingSprite"},t.TilingSpritePipe=f},51654:function(e,t,r){"use strict";var n=r(17073),i=r(3857);n.extensions.add(i.TilingSpritePipe)},67919:function(e,t,r){"use strict";var n=r(15685),i=r(21380),s=r(74813),o=r(4116),a=r(97505),u=r(65518),l=r(84463),c=r(63522);let h,d;class p extends a.Shader{constructor(){h??(h=i.compileHighShaderGpuProgram({name:"tiling-sprite-shader",bits:[s.localUniformBit,c.tilingBit,o.roundPixelsBit]})),d??(d=i.compileHighShaderGlProgram({name:"tiling-sprite-shader",bits:[s.localUniformBitGl,c.tilingBitGl,o.roundPixelsBitGl]}));const e=new u.UniformGroup({uMapCoord:{value:new n.Matrix,type:"mat3x3"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2"},uTextureTransform:{value:new n.Matrix,type:"mat3x3"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4"}});super({glProgram:d,gpuProgram:h,resources:{localUniforms:new u.UniformGroup({uTransformMatrix:{value:new n.Matrix,type:"mat3x3"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:l.Texture.EMPTY.source,uSampler:l.Texture.EMPTY.source.style}})}updateUniforms(e,t,r,n,i,s){const o=this.resources.tilingUniforms,a=s.width,u=s.height,l=s.textureMatrix,c=o.uniforms.uTextureTransform;c.set(r.a*a/e,r.b*a/t,r.c*u/e,r.d*u/t,r.tx/e,r.ty/t),c.invert(),o.uniforms.uMapCoord=l.mapCoord,o.uniforms.uClampFrame=l.uClampFrame,o.uniforms.uClampOffset=l.uClampOffset,o.uniforms.uTextureTransform=c,o.uniforms.uSizeAnchor[0]=e,o.uniforms.uSizeAnchor[1]=t,o.uniforms.uSizeAnchor[2]=n,o.uniforms.uSizeAnchor[3]=i,s&&(this.resources.uTexture=s.source,this.resources.uSampler=s.source.style)}}t.TilingSpriteShader=p},63522:function(e,t){"use strict";const r={name:"tiling-bit",vertex:{header:"\n struct TilingUniforms {\n uMapCoord:mat3x3,\n uClampFrame:vec4,\n uClampOffset:vec2,\n uTextureTransform:mat3x3,\n uSizeAnchor:vec4\n };\n\n @group(2) @binding(0) var tilingUniforms: TilingUniforms;\n @group(2) @binding(1) var uTexture: texture_2d;\n @group(2) @binding(2) var uSampler: sampler;\n ",main:"\n uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;\n\n position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;\n "},fragment:{header:"\n struct TilingUniforms {\n uMapCoord:mat3x3,\n uClampFrame:vec4,\n uClampOffset:vec2,\n uTextureTransform:mat3x3,\n uSizeAnchor:vec4\n };\n\n @group(2) @binding(0) var tilingUniforms: TilingUniforms;\n @group(2) @binding(1) var uTexture: texture_2d;\n @group(2) @binding(2) var uSampler: sampler;\n ",main:"\n\n var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);\n coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;\n var unclamped = coord;\n coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);\n\n var bias = 0.;\n\n if(unclamped.x == coord.x && unclamped.y == coord.y)\n {\n bias = -32.;\n } \n\n outColor = textureSampleBias(uTexture, uSampler, coord, bias);\n "}},n={name:"tiling-bit",vertex:{header:"\n uniform mat3 uTextureTransform;\n uniform vec4 uSizeAnchor;\n \n ",main:"\n uv = (uTextureTransform * vec3(aUV, 1.0)).xy;\n\n position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;\n "},fragment:{header:"\n uniform sampler2D uTexture;\n uniform mat3 uMapCoord;\n uniform vec4 uClampFrame;\n uniform vec2 uClampOffset;\n ",main:"\n\n vec2 coord = vUV + ceil(uClampOffset - vUV);\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n vec2 unclamped = coord;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n \n outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0\n \n "}};t.tilingBit=r,t.tilingBitGl=n},20872:function(e,t,r){"use strict";var n=r(46525);class i extends n.MeshGeometry{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}t.QuadGeometry=i},42598:function(e,t){"use strict";t.applyMatrix=function(e,t,r,n){let i=0;const s=e.length/(t||2),o=n.a,a=n.b,u=n.c,l=n.d,c=n.tx,h=n.ty;for(r*=t;i{this.onViewUpdate()}}),r&&(this.anchor=r),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,o&&(this.width=o),a&&(this.height=a)}static from(e,t=!1){return e instanceof i.Texture?new a(e):new a(i.Texture.from(e,t))}set texture(e){e||(e=i.Texture.EMPTY),this._texture!==e&&(this._texture=e,this.onViewUpdate())}get texture(){return this._texture}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}get sourceBounds(){return this._sourceBoundsDirty&&(this._updateSourceBounds(),this._sourceBoundsDirty=!1),this._sourceBounds}containsPoint(e){const t=this.sourceBounds;return e.x>=t.maxX&&e.x<=t.minX&&e.y>=t.maxY&&e.y<=t.minY}addBounds(e){const t=this._texture.trim?this.sourceBounds:this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}onViewUpdate(){this._didChangeId+=4096,this._didSpriteUpdate=!0,this._sourceBoundsDirty=this._boundsDirty=!0,this.didViewUpdate||(this.didViewUpdate=!0,this.renderGroup&&this.renderGroup.onChildViewUpdate(this))}_updateBounds(){s.updateQuadBounds(this._bounds,this._anchor,this._texture,0)}_updateSourceBounds(){const e=this._anchor,t=this._texture,r=this._sourceBounds,{width:n,height:i}=t.orig;r.maxX=-e._x*n,r.minX=r.maxX+n,r.maxY=-e._y*i,r.minY=r.maxY+i}destroy(e=!1){super.destroy(e);if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._texture.destroy(t)}this._texture=null,this._bounds=null,this._sourceBounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width)}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){let r,n;"object"!=typeof e?(r=e,n=t??e):(r=e.width,n=e.height??e.width),void 0!==r&&this._setWidth(r,this._texture.orig.width),void 0!==n&&this._setHeight(n,this._texture.orig.height)}}t.Sprite=a},1894:function(e,t,r){"use strict";var n=r(17073),i=r(86169),s=r(22972);class o{constructor(e){this._gpuSpriteHash=Object.create(null),this._renderer=e}addRenderable(e,t){const r=this._getGpuSprite(e);e._didSpriteUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._gpuSpriteHash[e.uid];e._didSpriteUpdate&&this._updateBatchableSprite(e,t),t.batcher.updateElement(t)}validateRenderable(e){const t=e._texture,r=this._getGpuSprite(e);return r.texture._source!==t._source&&!r.batcher.checkAndUpdateTexture(r,t)}destroyRenderable(e){const t=this._gpuSpriteHash[e.uid];i.BigPool.return(t),this._gpuSpriteHash[e.uid]=null}_updateBatchableSprite(e,t){e._didSpriteUpdate=!1,t.bounds=e.bounds,t.texture=e._texture}_getGpuSprite(e){return this._gpuSpriteHash[e.uid]||this._initGPUSprite(e)}_initGPUSprite(e){const t=i.BigPool.get(s.BatchableSprite);return t.renderable=e,t.texture=e._texture,t.bounds=e.bounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuSpriteHash[e.uid]=t,e._didSpriteUpdate=!1,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuSpriteHash)i.BigPool.return(this._gpuSpriteHash[e]);this._gpuSpriteHash=null,this._renderer=null}}o.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"sprite"},t.SpritePipe=o},76887:function(e,t,r){"use strict";var n=r(5323),i=r(60094);t.AbstractBitmapFont=class extends n{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return i.deprecation(i.v8_0_0,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return i.deprecation(i.v8_0_0,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return i.deprecation(i.v8_0_0,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return i.deprecation(i.v8_0_0,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return i.deprecation(i.v8_0_0,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(const e in this.chars)this.chars[e].texture.destroy();this.chars=null,e&&(this.pages.forEach((e=>e.texture.destroy(!0))),this.pages=null)}}},10476:function(e,t,r){"use strict";var n=r(42181),i=r(84463),s=r(76887),o=r(91195);class a extends s.AbstractBitmapFont{constructor(e,t){super();const{textures:r,data:s}=e;Object.keys(s.pages).forEach((e=>{const t=s.pages[parseInt(e,10)],n=r[t.id];this.pages.push({texture:n})})),Object.keys(s.chars).forEach((e=>{const t=s.chars[e],o=r[t.page].source,a=new n.Rectangle(t.x,t.y,t.width,t.height),u=new i.Texture({source:o,frame:a});this.chars[e]={id:e.codePointAt(0),xOffset:t.xOffset,yOffset:t.yOffset,xAdvance:t.xAdvance,kerning:t.kerning??{},texture:u}})),this.baseRenderedFontSize=s.fontSize,this.baseMeasurementFontSize=s.fontSize,this.fontMetrics={ascent:0,descent:0,fontSize:s.fontSize},this.baseLineOffset=s.baseLineOffset,this.lineHeight=s.lineHeight,this.fontFamily=s.fontFamily,this.distanceField=s.distanceField??{type:"none",range:0},this.url=t}destroy(){super.destroy();for(let e=0;en.Cache.remove(r))),n.Cache.set(r,e)}const s=n.Cache.get(r);return s.ensureCharacters?.(e),s}getLayout(e,t){const r=this.getFont(e,t);return a.getBitmapTextLayout(e.split(""),t,r)}measureText(e,t){return this.getLayout(e,t)}install(...e){let t=e[0];"string"==typeof t&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},i.deprecation(i.v8_0_0,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));const r=t?.name;if(!r)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};const a=t.style,l=a instanceof s.TextStyle?a:new s.TextStyle(a),c=null!==l._fill.fill&&void 0!==l._fill.fill,h=new o.DynamicBitmapFont({style:l,overrideFill:c,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1}),d=u.resolveCharacters(t.chars);return h.ensureCharacters(d.join("")),n.Cache.set(`${r}-bitmap`,h),h.once("destroy",(()=>n.Cache.remove(`${r}-bitmap`))),h}uninstall(e){const t=`${e}-bitmap`,r=n.Cache.get(t);r&&(n.Cache.remove(t),r.destroy())}};t.BitmapFontManager=l},80265:function(e,t,r){"use strict";var n=r(89523),i=r(79517),s=r(91195);class o extends n.AbstractText{constructor(...e){var t;const r=n.ensureOptions(e,"BitmapText");r.style??(r.style=r.style||{}),(t=r.style).fill??(t.fill=16777215),super(r,i.TextStyle),this.renderPipeId="bitmapText"}_updateBounds(){const e=this._bounds,t=this._style.padding,r=this._anchor,n=s.BitmapFontManager.measureText(this.text,this._style),i=n.scale,o=n.offsetY*i,a=n.width*i,u=n.height*i;e.minX=-r._x*a-t,e.maxX=e.minX+a,e.minY=-r._y*(u+o)-t,e.maxY=e.minY+u}}t.BitmapText=o},43969:function(e,t,r){"use strict";var n=r(56509),i=r(17073),s=r(86169),o=r(69639),a=r(34988),u=r(91195),l=r(30610);class c{constructor(e){this._gpuBitmapText={},this._renderer=e}validateRenderable(e){const t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){const r=this._getGpuBitmapText(e);h(e,r),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,r)),this._renderer.renderPipes.graphics.addRenderable(r,t),r.context.customShader&&this._updateDistanceField(e)}destroyRenderable(e){this._destroyRenderableByUid(e.uid)}_destroyRenderableByUid(e){s.BigPool.return(this._gpuBitmapText[e]),this._gpuBitmapText[e]=null}updateRenderable(e){const t=this._getGpuBitmapText(e);h(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){const{context:r}=t,n=u.BitmapFontManager.getFont(e.text,e._style);r.clear(),"none"!==n.distanceField.type&&(r.customShader||(this._sdfShader||(this._sdfShader=new a.SdfShader),r.customShader=this._sdfShader));const i=Array.from(e.text),s=e._style;let o=(s._stroke?.width||0)/2;o+=n.baseLineOffset;const c=l.getBitmapTextLayout(i,s,n);let h=0;const d=s.padding,p=c.scale;r.translate(-e._anchor._x*c.width-d,-e._anchor._y*(c.height+c.offsetY)-d).scale(p,p);const f=s._fill.color;for(let e=0;e{this.destroyRenderable(e)})),this._gpuBitmapText[e.uid]}_updateDistanceField(e){const t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,i=n.Cache.get(`${r}-bitmap`),{a:s,b:o,c:a,d:u}=e.groupTransform,l=Math.sqrt(s*s+o*o),c=Math.sqrt(a*a+u*u),h=(Math.abs(l)+Math.abs(c))/2,d=i.baseRenderedFontSize/e._style.fontSize,p=e.resolution??this._renderer.resolution,f=h*i.distanceField.range*(1/d)*p;t.customShader.resources.localUniforms.uniforms.uDistance=f}destroy(){for(const e in this._gpuBitmapText)this._destroyRenderableByUid(e);this._gpuBitmapText=null,this._sdfShader?.destroy(!0),this._sdfShader=null,this._renderer=null}}function h(e,t){t.groupTransform=e.groupTransform,t.groupColorAlpha=e.groupColorAlpha,t.groupColor=e.groupColor,t.groupBlendMode=e.groupBlendMode,t.globalDisplayStatus=e.globalDisplayStatus,t.groupTransform=e.groupTransform,t.localDisplayStatus=e.localDisplayStatus,t.groupAlpha=e.groupAlpha,t._roundPixels=e._roundPixels}c.extension={type:[i.ExtensionType.WebGLPipes,i.ExtensionType.WebGPUPipes,i.ExtensionType.CanvasPipes],name:"bitmapText"},t.BitmapTextPipe=c},22082:function(e,t,r){"use strict";var n=r(58778),i=r(42181),s=r(60932),o=r(75813),a=r(84463),u=r(60094),l=r(31030),c=r(61868),h=r(73602),d=r(76887),p=r(38513);class f extends d.AbstractBitmapFont{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=4,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentPageIndex=-1,this._skipKerning=!1;const t=e,r=t.style.clone();t.overrideFill&&(r._fill.color=16777215,r._fill.alpha=1,r._fill.texture=a.Texture.WHITE,r._fill.fill=null);const n=r.fontSize;r.fontSize=this.baseMeasurementFontSize;const i=c.fontStringFromTextStyle(r);t.overrideSize?r._stroke&&(r._stroke.width*=this.baseRenderedFontSize/n):r.fontSize=this.baseRenderedFontSize=n,this._style=r,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,this.fontMetrics=l.CanvasTextMetrics.measureFont(i),this.lineHeight=r.lineHeight||this.fontMetrics.fontSize||r.fontSize}ensureCharacters(e){const t=p.resolveCharacters(e).filter((e=>!this._currentChars.includes(e))).filter(((e,t,r)=>r.indexOf(e)===t));if(!t.length)return;let r;this._currentChars=[...this._currentChars,...t],r=-1===this._currentPageIndex?this._nextPage():this.pages[this._currentPageIndex];let{canvas:n,context:s}=r.canvasAndContext,o=r.texture.source;const u=this._style;let c=this._currentX,h=this._currentY;const d=this.baseRenderedFontSize/this.baseMeasurementFontSize,f=this._padding*d,m="italic"===u.fontStyle?2:1;let g=0,_=!1;for(let e=0;e512&&(h+=g,g=y,c=0,h+g>512)){o.update();const e=this._nextPage();n=e.canvasAndContext.canvas,s=e.canvasAndContext.context,o=e.texture.source,h=0}const v=x/d-(u.dropShadow?.distance??0)-(u._stroke?.width??0);if(this.chars[r]={id:r.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:v,kerning:{}},_){this._drawGlyph(s,p,c+f,h+f,d,u);const e=o.width*d,t=o.height*d,n=new i.Rectangle(c/e*o.width,h/t*o.height,b/e*o.width,y/t*o.height);this.chars[r].texture=new a.Texture({source:o,frame:n}),c+=Math.ceil(b)}}o.update(),this._currentX=c,this._currentY=h,this._skipKerning&&this._applyKerning(t,s)}get pageTextures(){return u.deprecation(u.v8_0_0,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){const r=this._measureCache;for(let n=0;n"))&&i.bitmapFontXMLParser.test(n.DOMAdapter.get().parseXML(e))},parse(e){return i.bitmapFontXMLParser.parse(n.DOMAdapter.get().parseXML(e))}};t.bitmapFontXMLStringParser=s},45847:function(e,t,r){"use strict";var n=r(8774),i=r(90973),s=r(42932),o=r(17073),a=r(36491),u=r(10476),l=r(82556),c=r(17668);const h=[".xml",".fnt"],d={extension:o.ExtensionType.CacheParser,test:e=>e instanceof u.BitmapFont,getCacheableAssets(e,t){const r={};return e.forEach((e=>{r[e]=t})),r[`${t.fontFamily}-bitmap`]=t,r}},p={extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.Normal},test(e){return h.includes(a.path.extname(e).toLowerCase())},async testParse(e){return l.bitmapFontTextParser.test(e)||c.bitmapFontXMLStringParser.test(e)},async parse(e,t,r){const n=l.bitmapFontTextParser.test(e)?l.bitmapFontTextParser.parse(e):c.bitmapFontXMLStringParser.parse(e),{src:s}=t,{pages:o}=n,h=[];for(let e=0;ed[e]));return new u.BitmapFont({data:n,textures:p},s)},async load(e,t){const r=await s.DOMAdapter.get().fetch(e);return await r.text()},async unload(e,t,r){await Promise.all(e.pages.map((e=>r.unload(e.texture.source._sourceOrigin)))),e.destroy()}};t.bitmapFontCachePlugin=d,t.loadBitmapFont=p},4862:function(e,t,r){"use strict";var n=r(17073),i=r(45847),s=r(43969);n.extensions.add(s.BitmapTextPipe,i.loadBitmapFont,i.bitmapFontCachePlugin)},30610:function(e,t){"use strict";t.getBitmapTextLayout=function(e,t,r){const n={width:0,height:0,offsetY:0,scale:t.fontSize/r.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};n.offsetY=r.baseLineOffset;let i=n.lines[0],s=null,o=!0;const a={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},u=e=>{const t=i.width;for(let r=0;r{let e=i.chars.length-1,t=i.chars[e];for(;" "===t;)i.width-=r.chars[t].xAdvance,t=i.chars[--e];n.width=Math.max(n.width,i.width),i={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},o=!0,n.lines.push(i),n.height+=r.lineHeight},c=r.baseMeasurementFontSize/t.fontSize,h=t.letterSpacing*c,d=t.wordWrapWidth*c;for(let n=0;nd?(l(),u(a),p||i.charPositions.push(0)):(a.start=i.width,u(a),p||i.charPositions.push(0)),"\r"===c||"\n"===c)0!==i.width&&l();else if(!p){const e=f.xAdvance+(f.kerning[s]||0)+h;i.width+=e,i.spaceWidth=e,i.spacesIndex.push(i.charPositions.length),i.chars.push(c)}}else{const e=f.kerning[s]||0,t=f.xAdvance+e+h;a.positions[a.index++]=a.width+e,a.chars.push(c),a.width+=t}s=c}return l(),"center"===t.align?function(e){for(let t=0;t{console.error(e)})),e._didTextUpdate=!1;const i=e._style.padding;s.updateQuadBounds(n.bounds,e._anchor,n.texture,i)}async _updateGpuText(e){e._didTextUpdate=!1;const t=this._getGpuText(e);if(t.generatingTexture)return;const r=e._getKey();this._renderer.htmlText.decreaseReferenceCount(t.currentKey),t.generatingTexture=!0,t.currentKey=r;const n=e.resolution??this._renderer.resolution,i=await this._renderer.htmlText.getManagedTexture(e.text,n,e._style,e._getKey()),o=t.batchableSprite;o.texture=t.texture=i,t.generatingTexture=!1,t.textureNeedsUploading=!0,e.onViewUpdate();const a=e._style.padding;s.updateQuadBounds(o.bounds,e._anchor,o.texture,a)}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){const t={texture:i.Texture.EMPTY,currentKey:"--",batchableSprite:o.BigPool.get(a.BatchableSprite),textureNeedsUploading:!1,generatingTexture:!1},r=t.batchableSprite;return r.renderable=e,r.texture=i.Texture.EMPTY,r.bounds={minX:0,maxX:1,minY:0,maxY:0},r.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuText[e.uid]=t,e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}u.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"htmlText"},t.HTMLTextPipe=u},2668:function(e,t){"use strict";const r="http://www.w3.org/2000/svg",n="http://www.w3.org/1999/xhtml";t.HTMLTextRenderData=class{constructor(){this.svgRoot=document.createElementNS(r,"svg"),this.foreignObject=document.createElementNS(r,"foreignObject"),this.domElement=document.createElementNS(n,"div"),this.styleElement=document.createElementNS(n,"style"),this.image=new Image;const{foreignObject:e,svgRoot:t,styleElement:i,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(i),e.appendChild(s)}},t.nssvg=r,t.nsxhtml=n},73543:function(e,t,r){"use strict";var n=r(17073),i=r(38759),s=r(2559),o=r(57296),a=r(95190),u=r(86169),l=r(30705),c=r(2668),h=r(47308),d=r(62074),p=r(46242),f=r(27252),m=r(20628),g=r(85669),_=r(11296);class x{constructor(e){this._activeTextures={},this._renderer=e,this._createCanvas=e.type===s.RendererType.WEBGPU}getTexture(e){return this._buildTexturePromise(e.text,e.resolution,e.style)}getManagedTexture(e,t,r,n){if(this._activeTextures[n])return this._increaseReferenceCount(n),this._activeTextures[n].promise;const i=this._buildTexturePromise(e,t,r).then((e=>(this._activeTextures[n].texture=e,e)));return this._activeTextures[n]={texture:null,promise:i,usageCount:1},i}async _buildTexturePromise(e,t,r){const n=u.BigPool.get(c.HTMLTextRenderData),i=d.extractFontFamilies(e,r),s=await p.getFontCss(i,r,h.HTMLTextStyle.defaultTextStyle),a=_.measureHtmlText(e,r,s,n),x=Math.ceil(Math.ceil(Math.max(1,a.width)+2*r.padding)*t),b=Math.ceil(Math.ceil(Math.max(1,a.height)+2*r.padding)*t),y=n.image;y.width=0|x,y.height=0|b;const v=f.getSVGUrl(e,r,t,s,n);await g.loadSVGImage(y,v,o.isSafari()&&i.length>0);let T=y;this._createCanvas&&(T=m.getTemporaryCanvasFromImage(y,t));const S=l.getPo2TextureFromSource(T,y.width,y.height,t);return this._createCanvas&&this._renderer.texture.initSource(S.source),u.BigPool.return(n),S}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){const t=this._activeTextures[e];t&&(t.usageCount--,0===t.usageCount&&(t.texture?this._cleanUp(t):t.promise.then((e=>{t.texture=e,this._cleanUp(t)})).catch((()=>{a.warn("HTMLTextSystem: Failed to clean texture")})),this._activeTextures[e]=null))}_cleanUp(e){i.TexturePool.returnTexture(e.texture),e.texture.source.resource=null,e.texture.source.uploadMethodId="unknown"}getReferenceCount(e){return this._activeTextures[e].usageCount}destroy(){this._activeTextures=null}}x.extension={type:[n.ExtensionType.WebGLSystem,n.ExtensionType.WebGPUSystem,n.ExtensionType.CanvasSystem],name:"htmlText"},x.defaultFontOptions={fontFamily:"Arial",fontStyle:"normal",fontWeight:"normal"},t.HTMLTextSystem=x},47308:function(e,t,r){"use strict";var n=r(95190),i=r(79517),s=r(64597),o=r(19790);class a extends i.TextStyle{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides??(this.cssOverrides=e.cssOverrides),this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}_generateKey(){return this._styleKey=s.generateTextStyleKey(this)+this._cssOverrides.join("-"),this._styleKey}update(){this._cssStyle=null,super.update()}clone(){return new a({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides})}get cssStyle(){return this._cssStyle||(this._cssStyle=o.textStyleToCSS(this)),this._cssStyle}addOverride(...e){const t=e.filter((e=>!this.cssOverrides.includes(e)));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){const t=e.filter((e=>this.cssOverrides.includes(e)));t.length>0&&(this.cssOverrides=this.cssOverrides.filter((e=>!t.includes(e))),this.update())}set fill(e){"string"!=typeof e&&"number"!=typeof e&&n.warn("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&"string"!=typeof e&&"number"!=typeof e&&n.warn("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}t.HTMLTextStyle=a},38717:function(e,t,r){"use strict";var n=r(17073),i=r(93968),s=r(73543);n.extensions.add(s.HTMLTextSystem),n.extensions.add(i.HTMLTextPipe)},62074:function(e,t){"use strict";t.extractFontFamilies=function(e,t){const r=t.fontFamily,n=[],i={},s=e.match(/font-family:([^;"\s]+)/g);function o(e){i[e]||(n.push(e),i[e]=!0)}if(Array.isArray(r))for(let e=0;e{o(e.split(":")[1].trim())}));for(const e in t.tagStyles){o(t.tagStyles[e].fontFamily)}return n}},46242:function(e,t,r){"use strict";var n=r(56509),i=r(75761);const s=new Map;t.FontStylePromiseCache=s,t.getFontCss=async function(e,t,r){const o=e.filter((e=>n.Cache.has(e))).map(((e,o)=>{if(!s.has(e)){const{url:a}=n.Cache.get(e);0===o?s.set(e,i.loadFontCSS(t,a)):s.set(e,i.loadFontCSS({fontWeight:r.fontWeight,fontStyle:r.fontStyle,fontFamily:e},a))}return s.get(e)}));return(await Promise.all(o)).join("\n")}},27252:function(e,t){"use strict";t.getSVGUrl=function(e,t,r,n,i){const{domElement:s,styleElement:o,svgRoot:a}=i;s.innerHTML=`
${e}
`,s.setAttribute("style",`transform: scale(${r});transform-origin: top left; display: inline-block`),o.textContent=n;const{width:u,height:l}=i.image;return a.setAttribute("width",u.toString()),a.setAttribute("height",l.toString()),(new XMLSerializer).serializeToString(a)}},20628:function(e,t,r){"use strict";var n=r(60932);t.getTemporaryCanvasFromImage=function(e,t){const r=n.CanvasPool.getOptimalCanvasAndContext(e.width,e.height,t),{context:i}=r;return i.clearRect(0,0,e.width,e.height),i.drawImage(e,0,0),n.CanvasPool.returnCanvasAndContext(r),r.canvas}},23026:function(e,t,r){"use strict";var n=r(42932);t.loadFontAsBase64=async function(e){const t=await n.DOMAdapter.get().fetch(e),r=await t.blob(),i=new FileReader;return await new Promise(((e,t)=>{i.onloadend=()=>e(i.result),i.onerror=t,i.readAsDataURL(r)}))}},75761:function(e,t,r){"use strict";var n=r(23026);t.loadFontCSS=async function(e,t){const r=await n.loadFontAsBase64(t);return`@font-face {\n font-family: "${e.fontFamily}";\n src: url('${r}');\n font-weight: ${e.fontWeight};\n font-style: ${e.fontStyle};\n }`}},85669:function(e,t){"use strict";t.loadSVGImage=function(e,t,r){return new Promise((async n=>{r&&await new Promise((e=>setTimeout(e,100))),e.onload=()=>{n()},e.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(t)}`,e.crossOrigin="anonymous"}))}},11296:function(e,t,r){"use strict";var n=r(31030),i=r(2668);let s;t.measureHtmlText=function(e,t,r,o){o=o||s||(s=new i.HTMLTextRenderData);const{domElement:a,styleElement:u,svgRoot:l}=o;a.innerHTML=`
${e}
`,a.setAttribute("style","transform-origin: top left; display: inline-block"),r&&(u.textContent=r),document.body.appendChild(l);const c=a.getBoundingClientRect();l.remove();const h=n.CanvasTextMetrics.measureFont(t.fontStyle).descent;return{width:c.width,height:c.height+h}}},19790:function(e,t,r){"use strict";var n=r(58778);function i(e){const t=n.Color.shared.setValue(e.color).setAlpha(e.alpha).toHexa(),r=`${Math.round(Math.cos(e.angle)*e.distance)}px ${Math.round(Math.sin(e.angle)*e.distance)}px`;return e.blur>0?`text-shadow: ${r} ${e.blur}px ${t}`:`text-shadow: ${r} ${t}`}function s(e){return[`-webkit-text-stroke-width: ${e.width}px`,`-webkit-text-stroke-color: ${n.Color.shared.setValue(e.color).toHex()}`,`text-stroke-width: ${e.width}px`,`text-stroke-color: ${n.Color.shared.setValue(e.color).toHex()}`,"paint-order: stroke"].join(";")}const o={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},a={fill:e=>`color: ${n.Color.shared.setValue(e).toHex()}`,breakWords:e=>"word-wrap: "+(e?"break-all":"break-word"),stroke:s,dropShadow:i};t.textStyleToCSS=function(e){const t=e._stroke,r=e._fill,u=[`div { ${[`color: ${n.Color.shared.setValue(r.color).toHex()}`,`font-size: ${e.fontSize}px`,`font-family: ${e.fontFamily}`,`font-weight: ${e.fontWeight}`,`font-style: ${e.fontStyle}`,`font-variant: ${e.fontVariant}`,`letter-spacing: ${e.letterSpacing}px`,`text-align: ${e.align}`,`padding: ${e.padding}px`,`white-space: ${"pre"===e.whiteSpace&&e.wordWrap?"pre-wrap":e.whiteSpace}`,...e.lineHeight?[`line-height: ${e.lineHeight}px`]:[],...e.wordWrap?["word-wrap: "+(e.breakWords?"break-all":"break-word"),`max-width: ${e.wordWrapWidth}px`]:[],...t?[s(t)]:[],...e.dropShadow?[i(e.dropShadow)]:[],...e.cssOverrides].join(";")} }`];return function(e,t){for(const r in e){const n=e[r],i=[];for(const e in n)a[e]?i.push(a[e](n[e])):o[e]&&i.push(o[e].replace("{{VALUE}}",n[e]));t.push(`${r} { ${i.join(";")} }`)}}(e.tagStyles,u),u.join(" ")}},89523:function(e,t,r){"use strict";var n=r(62792),i=r(60094),s=r(14786),o=r(74599);class a extends o.Container{constructor(e,t){const{text:r,resolution:i,style:o,anchor:a,width:u,height:l,roundPixels:c,...h}=e;super({...h}),this.batched=!0,this.resolution=null,this._didTextUpdate=!0,this._roundPixels=0,this._bounds=new s.Bounds,this._boundsDirty=!0,this._styleClass=t,this.text=r??"",this.style=o,this.resolution=i??null,this.allowChildren=!1,this._anchor=new n.ObservablePoint({_onUpdate:()=>{this.onViewUpdate()}}),a&&(this.anchor=a),this.roundPixels=c??!1,u&&(this.width=u),l&&(this.height=l)}get anchor(){return this._anchor}set anchor(e){"number"==typeof e?this._anchor.set(e):this._anchor.copyFrom(e)}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}get style(){return this._style}set style(e){e=e||{},this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get bounds(){return this._boundsDirty&&(this._updateBounds(),this._boundsDirty=!1),this._bounds}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){let r,n;"object"!=typeof e?(r=e,n=t??e):(r=e.width,n=e.height??e.width),void 0!==r&&this._setWidth(r,this.bounds.width),void 0!==n&&this._setHeight(n,this.bounds.height)}addBounds(e){const t=this.bounds;e.addFrame(t.minX,t.minY,t.maxX,t.maxY)}containsPoint(e){const t=this.bounds.maxX,r=this.bounds.maxY,n=-t*this.anchor.x;let i=0;return e.x>=n&&e.x<=n+t&&(i=-r*this.anchor.y,e.y>=i&&e.y<=i+r)}onViewUpdate(){this._didChangeId+=4096,this._boundsDirty=!0,this.didViewUpdate||(this.didViewUpdate=!0,this._didTextUpdate=!0,this.renderGroup&&this.renderGroup.onChildViewUpdate(this))}_getKey(){return`${this.text}:${this._style.styleKey}`}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,this._style.destroy(e),this._style=null,this._text=null}}t.AbstractText=a,t.ensureOptions=function(e,t){let r=e[0]??{};return("string"==typeof r||e[1])&&(i.deprecation(i.v8_0_0,`use new ${t}({ text: "hi!", style }) instead`),r={text:r,style:e[1]}),r}},62434:function(e,t,r){"use strict";var n=r(89523),i=r(31030),s=r(79517);class o extends n.AbstractText{constructor(...e){super(n.ensureOptions(e,"Text"),s.TextStyle),this.renderPipeId="text"}_updateBounds(){const e=this._bounds,t=this._style.padding,r=this._anchor,n=i.CanvasTextMetrics.measureText(this._text,this._style),{width:s,height:o}=n;e.minX=-r._x*s-t,e.maxX=e.minX+s,e.minY=-r._y*o-t,e.maxY=e.minY+o}}t.Text=o},79517:function(e,t,r){"use strict";var n=r(5323),i=r(58778),s=r(60094),o=r(37553),a=r(90537),u=r(97886),l=r(64597);const c=class e extends n{constructor(t={}){super(),function(e){const t=e;if("boolean"==typeof t.dropShadow&&t.dropShadow){const r=h.defaultDropShadow;e.dropShadow={alpha:t.dropShadowAlpha??r.alpha,angle:t.dropShadowAngle??r.angle,blur:t.dropShadowBlur??r.blur,color:t.dropShadowColor??r.color,distance:t.dropShadowDistance??r.distance}}if(t.strokeThickness){s.deprecation(s.v8_0_0,"strokeThickness is now a part of stroke");const r=t.stroke;e.stroke={color:r,width:t.strokeThickness}}if(Array.isArray(t.fill)){s.deprecation(s.v8_0_0,"gradient fill is now a fill pattern: `new FillGradient(...)`");const r=new o.FillGradient(0,0,0,1.7*e.fontSize),n=t.fill.map((e=>i.Color.shared.setValue(e).toNumber()));n.forEach(((e,i)=>{const s=t.fillGradientStops[i]??i/n.length;r.addColorStop(s,e)})),e.fill={fill:r}}}(t);const r={...e.defaultTextStyle,...t};for(const e in r){this[e]=r[e]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow=null!==t&&"object"==typeof t?{...e.defaultDropShadow,...t}:t?{...e.defaultDropShadow}:null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){this._fontSize="string"==typeof e?parseInt(e,10):e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e,this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._fill=u.convertFillInputToFillStyle(0===e?"black":e,a.GraphicsContext.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._stroke=u.convertFillInputToFillStyle(e,a.GraphicsContext.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=l.generateTextStyleKey(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){const t=e.defaultTextStyle;for(const e in t)this[e]=t[e]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new e({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth})}destroy(e=!1){this.removeAllListeners();if("boolean"==typeof e?e:e?.texture){const t="boolean"==typeof e?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(t),this._originalFill?.texture&&this._originalFill.texture.destroy(t),this._stroke?.texture&&this._stroke.texture.destroy(t),this._originalStroke?.texture&&this._originalStroke.texture.destroy(t)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}};c.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5},c.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};let h=c;t.TextStyle=h},31030:function(e,t,r){"use strict";var n=r(42932),i=r(61868);const s={willReadFrequently:!0},o=class e{static get experimentalLetterSpacingSupported(){let t=e._experimentalLetterSpacingSupported;if(void 0!==t){const r=n.DOMAdapter.get().getCanvasRenderingContext2D().prototype;t=e._experimentalLetterSpacingSupported="letterSpacing"in r||"textLetterSpacing"in r}return t}constructor(e,t,r,n,i,s,o,a,u){this.text=e,this.style=t,this.width=r,this.height=n,this.lines=i,this.lineWidths=s,this.lineHeight=o,this.maxLineWidth=a,this.fontProperties=u}static measureText(t=" ",r,n=e._canvas,s=r.wordWrap){const o=`${t}:${r.styleKey}`;if(e._measurementCache[o])return e._measurementCache[o];const a=i.fontStringFromTextStyle(r),u=e.measureFont(a);0===u.fontSize&&(u.fontSize=r.fontSize,u.ascent=r.fontSize);const l=e.__context;l.font=a;const c=(s?e._wordWrap(t,r,n):t).split(/(?:\r\n|\r|\n)/),h=new Array(c.length);let d=0;for(let t=0;t0&&(i?s-=r:s+=(e.graphemeSegmenter(t).length-1)*r),s}static _wordWrap(t,r,n=e._canvas){const i=n.getContext("2d",s);let o=0,a="",u="";const l=Object.create(null),{letterSpacing:c,whiteSpace:h}=r,d=e._collapseSpaces(h),p=e._collapseNewlines(h);let f=!d;const m=r.wordWrapWidth+c,g=e._tokenize(t);for(let t=0;tm)if(""!==a&&(u+=e._addLine(a),a="",o=0),e.canBreakWords(n,r.breakWords)){const t=e.wordWrapSplit(n);for(let s=0;sm&&(u+=e._addLine(a),f=!1,a="",o=0),a+=h,o+=g}}else{a.length>0&&(u+=e._addLine(a),a="",o=0);const r=t===g.length-1;u+=e._addLine(n,!r),f=!1,a="",o=0}else s+o>m&&(f=!1,u+=e._addLine(a),a="",o=0),(a.length>0||!e.isBreakingSpace(n)||f)&&(a+=n,o+=s)}return u+=e._addLine(a,!1),u}static _addLine(t,r=!0){return t=e._trimRight(t),t=r?`${t}\n`:t}static _getFromCache(t,r,n,i){let s=n[t];return"number"!=typeof s&&(s=e._measureText(t,r,i)+r,n[t]=s),s}static _collapseSpaces(e){return"normal"===e||"pre-line"===e}static _collapseNewlines(e){return"normal"===e}static _trimRight(t){if("string"!=typeof t)return"";for(let r=t.length-1;r>=0;r--){const n=t[r];if(!e.isBreakingSpace(n))break;t=t.slice(0,-1)}return t}static _isNewline(t){return"string"==typeof t&&e._newlines.includes(t.charCodeAt(0))}static isBreakingSpace(t,r){return"string"==typeof t&&e._breakingSpaces.includes(t.charCodeAt(0))}static _tokenize(t){const r=[];let n="";if("string"!=typeof t)return r;for(let i=0;i{if("function"==typeof Intl?.Segmenter){const e=new Intl.Segmenter;return t=>[...e.segment(t)].map((e=>e.segment))}return e=>[...e]})(),o.experimentalLetterSpacing=!1,o._fonts={},o._newlines=[10,13],o._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],o._measurementCache={};let a=o;t.CanvasTextMetrics=a},76869:function(e,t,r){"use strict";var n=r(17073),i=r(64293),s=r(86169),o=r(22972);class a{constructor(e){this._gpuText=Object.create(null),this._renderer=e}validateRenderable(e){const t=this._getGpuText(e),r=e._getKey();if(t.currentKey!==r){const r=e.resolution??this._renderer.resolution,{width:n,height:i}=this._renderer.canvasText.getTextureSize(e.text,r,e._style);return 1!==this._renderer.canvasText.getReferenceCount(t.currentKey)||n!==t.texture._source.width||i!==t.texture._source.height}return!1}addRenderable(e,t){const r=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),this._renderer.renderPipes.batch.addToBatch(r)}updateRenderable(e){const t=this._getGpuText(e).batchableSprite;e._didTextUpdate&&this._updateText(e),t.batcher.updateElement(t)}destroyRenderable(e){this._destroyRenderableById(e.uid)}_destroyRenderableById(e){const t=this._gpuText[e];this._renderer.canvasText.decreaseReferenceCount(t.currentKey),s.BigPool.return(t.batchableSprite),this._gpuText[e]=null}_updateText(e){const t=e._getKey(),r=this._getGpuText(e),n=r.batchableSprite;r.currentKey!==t&&this._updateGpuText(e),e._didTextUpdate=!1;const s=e._style.padding;i.updateQuadBounds(n.bounds,e._anchor,n.texture,s)}_updateGpuText(e){const t=this._getGpuText(e),r=t.batchableSprite;t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey);const n=e.resolution??this._renderer.resolution;t.texture=r.texture=this._renderer.canvasText.getTexture(e.text,n,e._style,e._getKey()),t.currentKey=e._getKey(),r.texture=t.texture}_getGpuText(e){return this._gpuText[e.uid]||this.initGpuText(e)}initGpuText(e){const t={texture:null,currentKey:"--",batchableSprite:s.BigPool.get(o.BatchableSprite)};return t.batchableSprite.renderable=e,t.batchableSprite.bounds={minX:0,maxX:1,minY:0,maxY:0},t.batchableSprite.roundPixels=this._renderer._roundPixels|e._roundPixels,this._gpuText[e.uid]=t,this._updateText(e),e.on("destroyed",(()=>{this.destroyRenderable(e)})),t}destroy(){for(const e in this._gpuText)this._destroyRenderableById(e);this._gpuText=null,this._renderer=null}}a.extension={type:[n.ExtensionType.WebGLPipes,n.ExtensionType.WebGPUPipes,n.ExtensionType.CanvasPipes],name:"text"},t.CanvasTextPipe=a},58054:function(e,t,r){"use strict";var n=r(58778),i=r(17073),s=r(39018),o=r(60932),a=r(38759),u=r(50034),l=r(30705),c=r(31030),h=r(61868),d=r(73602);class p{constructor(){this._activeTextures={}}getTextureSize(e,t,r){const n=c.CanvasTextMetrics.measureText(e||" ",r);let i=Math.ceil(Math.ceil(Math.max(1,n.width)+2*r.padding)*t),o=Math.ceil(Math.ceil(Math.max(1,n.height)+2*r.padding)*t);return i=Math.ceil(i-1e-6),o=Math.ceil(o-1e-6),i=s.nextPow2(i),o=s.nextPow2(o),{width:i,height:o}}getTexture(e,t,r,n){if(this._activeTextures[n])return this._increaseReferenceCount(n),this._activeTextures[n].texture;const i=c.CanvasTextMetrics.measureText(e||" ",r),s=Math.ceil(Math.ceil(Math.max(1,i.width)+2*r.padding)*t),a=Math.ceil(Math.ceil(Math.max(1,i.height)+2*r.padding)*t),h=o.CanvasPool.getOptimalCanvasAndContext(s,a),{canvas:d}=h;this.renderTextToCanvas(e,r,t,h);const p=l.getPo2TextureFromSource(d,s,a,t);if(r.trim){const e=u.getCanvasBoundingBox(d,t);p.frame.copyFrom(e),p.updateUvs()}return this._activeTextures[n]={canvasAndContext:h,texture:p,usageCount:1},p}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}decreaseReferenceCount(e){const t=this._activeTextures[e];if(t.usageCount--,0===t.usageCount){o.CanvasPool.returnCanvasAndContext(t.canvasAndContext),a.TexturePool.returnTexture(t.texture);const r=t.texture.source;r.resource=null,r.uploadMethodId="unknown",r.alphaMode="no-premultiply-alpha",this._activeTextures[e]=null}}getReferenceCount(e){return this._activeTextures[e].usageCount}renderTextToCanvas(e,t,r,i){const{canvas:s,context:o}=i,a=h.fontStringFromTextStyle(t),u=c.CanvasTextMetrics.measureText(e||" ",t),l=u.lines,p=u.lineHeight,f=u.lineWidths,m=u.maxLineWidth,g=u.fontProperties,_=s.height;if(o.resetTransform(),o.scale(r,r),o.clearRect(0,0,u.width+4,u.height+4),t._stroke?.width){const e=t._stroke;o.lineWidth=e.width,o.miterLimit=e.miterLimit,o.lineJoin=e.join,o.lineCap=e.cap}let x,b;o.font=a;const y=t.dropShadow?2:1;for(let e=0;e=0;e--){let t=n[e].trim();/([\"\'])[^\'\"]+\1/.test(t)||r.includes(t)||(t=`"${t}"`),n[e]=t}return`${e.fontStyle} ${e.fontVariant} ${e.fontWeight} ${t} ${n.join(",")}`}},73602:function(e,t,r){"use strict";var n=r(58778),i=r(15685),s=r(84463),o=r(95190),a=r(37553),u=r(16315);t.getCanvasFillStyle=function(e,t){if(e.texture===s.Texture.WHITE&&!e.fill)return n.Color.shared.setValue(e.color).toHex();if(!e.fill){const r=t.createPattern(e.texture.source.resource,"repeat"),n=e.matrix.copyTo(i.Matrix.shared);return n.scale(e.texture.frame.width,e.texture.frame.height),r.setTransform(n),r}if(e.fill instanceof u.FillPattern){const r=e.fill,n=t.createPattern(r.texture.source.resource,"repeat"),s=r.transform.copyTo(i.Matrix.shared);return s.scale(r.texture.frame.width,r.texture.frame.height),n.setTransform(s),n}if(e.fill instanceof a.FillGradient){const r=e.fill;if("linear"===r.type){const e=t.createLinearGradient(r.x0,r.y0,r.x1,r.y1);return r.gradientStops.forEach((t=>{e.addColorStop(t.offset,n.Color.shared.setValue(t.color).toHex())})),e}}return o.warn("FillStyle not recognised",e),"red"}},34266:function(e,t,r){"use strict";var n=r(17073),i=r(76869),s=r(58054);n.extensions.add(s.CanvasTextSystem),n.extensions.add(i.CanvasTextPipe)},34988:function(e,t,r){"use strict";var n=r(15685),i=r(11909),s=r(21380),o=r(84215),a=r(19209),u=r(4116),l=r(62998),c=r(97505),h=r(65518),d=r(40206),p=r(71424);class f extends c.Shader{constructor(){const e=new h.UniformGroup({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4"},uTransformMatrix:{value:new n.Matrix,type:"mat3x3"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}}),t=s.compileHighShaderGpuProgram({name:"sdf-shader",bits:[o.colorBit,a.generateTextureBatchBit(i.MAX_TEXTURES),d.localUniformMSDFBit,p.mSDFBit,u.roundPixelsBit]});super({glProgram:s.compileHighShaderGlProgram({name:"sdf-shader",bits:[o.colorBitGl,a.generateTextureBatchBitGl(i.MAX_TEXTURES),d.localUniformMSDFBitGl,p.mSDFBitGl,u.roundPixelsBitGl]}),gpuProgram:t,resources:{localUniforms:e,batchSamplers:l.batchSamplersUniformGroup}})}}t.SdfShader=f},40206:function(e,t){"use strict";const r={name:"local-uniform-msdf-bit",vertex:{header:"\n struct LocalUniforms {\n uColor:vec4,\n uTransformMatrix:mat3x3,\n uDistance: f32,\n uRound:f32,\n }\n\n @group(2) @binding(0) var localUniforms : LocalUniforms;\n ",main:"\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n ",end:"\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n "},fragment:{header:"\n struct LocalUniforms {\n uColor:vec4,\n uTransformMatrix:mat3x3,\n uDistance: f32\n }\n\n @group(2) @binding(0) var localUniforms : LocalUniforms;\n ",main:" \n outColor = vColor * calculateMSDFAlpha(outColor, localUniforms.uDistance);\n "}},n={name:"local-uniform-msdf-bit",vertex:{header:"\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n ",main:"\n vColor *= uColor;\n modelMatrix *= uTransformMatrix;\n ",end:"\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n "},fragment:{header:"\n uniform float uDistance;\n ",main:" \n outColor = vColor * calculateMSDFAlpha(outColor, uDistance);\n "}};t.localUniformMSDFBit=r,t.localUniformMSDFBitGl=n},71424:function(e,t){"use strict";const r={name:"msdf-bit",fragment:{header:"\n fn calculateMSDFAlpha(msdfColor:vec4, distance:f32) -> f32 {\n \n // MSDF\n var median = msdfColor.r + msdfColor.g + msdfColor.b -\n min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -\n max(msdfColor.r, max(msdfColor.g, msdfColor.b));\n \n // SDF\n median = min(median, msdfColor.a);\n\n var screenPxDistance = distance * (median - 0.5);\n var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n if (median < 0.01) {\n alpha = 0.0;\n } else if (median > 0.99) {\n alpha = 1.0;\n }\n\n return alpha;\n }\n "}},n={name:"msdf-bit",fragment:{header:"\n float calculateMSDFAlpha(vec4 msdfColor, float distance) {\n \n // MSDF\n float median = msdfColor.r + msdfColor.g + msdfColor.b -\n min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -\n max(msdfColor.r, max(msdfColor.g, msdfColor.b));\n \n // SDF\n median = min(median, msdfColor.a);\n \n float screenPxDistance = distance * (median - 0.5);\n float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n \n if (median < 0.01) {\n alpha = 0.0;\n } else if (median > 0.99) {\n alpha = 1.0;\n }\n\n return alpha;\n }\n "}};t.mSDFBit=r,t.mSDFBitGl=n},24328:function(e,t,r){"use strict";var n=r(47308),i=r(79517);t.ensureTextStyle=function(e,t){return t instanceof i.TextStyle||t instanceof n.HTMLTextStyle?t:"html"===e?new n.HTMLTextStyle(t):new i.TextStyle(t)}},64597:function(e,t){"use strict";const r=["_fontFamily","_fontStyle","_fontSize","_fontVariant","_fontWeight","_breakWords","_align","_leading","_letterSpacing","_lineHeight","_textBaseline","_whiteSpace","_wordWrap","_wordWrapWidth","_padding","_cssOverrides","_trim"];function n(e,t,r){return e?(t[r++]=e.color,t[r++]=e.alpha,t[r++]=e.fill?.uid,r):r}t.generateTextStyleKey=function(e){const t=[];let i=0;for(let n=0;n{this._callback=t,this._batchIndex=0,this._frameKeys.length<=e.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()}))}_processFrames(t){let r=t;const s=e.BATCH_SIZE;for(;r-t{this._batchIndex*e.BATCH_SIZE{n[e]=t})),Object.keys(t.textures).forEach((e=>{n[e]=t.textures[e]})),!r){const r=u.path.dirname(e[0]);t.linkedSheets.forEach(((e,i)=>{const s=h([`${r}/${t.data.meta.related_multi_packs[i]}`],e,!0);Object.assign(n,s)}))}return n}const d={extension:o.ExtensionType.Asset,cache:{test:e=>e instanceof l.Spritesheet,getCacheableAssets:(e,t)=>h(e,t,!1)},resolver:{test:e=>{const t=e.split("?")[0].split("."),r=t.pop(),n=t.pop();return"json"===r&&c.includes(n)},parse:e=>{const t=e.split(".");return{resolution:parseFloat(i.Resolver.RETINA_PREFIX.exec(e)?.[1]??"1"),format:t[t.length-2],src:e}}},loader:{name:"spritesheetLoader",extension:{type:o.ExtensionType.LoadParser,priority:n.LoaderParserPriority.Normal},async testParse(e,t){return".json"===u.path.extname(t.src).toLowerCase()&&!!e.frames},async parse(e,t,r){const{texture:n,imageFilename:i}=t?.data??{};let o,c=u.path.dirname(t.src);if(c&&c.lastIndexOf("/")!==c.length-1&&(c+="/"),n instanceof a.Texture)o=n;else{const n=s.copySearchParams(c+(i??e.meta.image),t.src);o=(await r.load([n]))[n]}const h=new l.Spritesheet(o.source,e);await h.parse();const d=e?.meta?.related_multi_packs;if(Array.isArray(d)){const e=[];for(const n of d){if("string"!=typeof n)continue;let i=c+n;t.data?.ignoreMultiPack||(i=s.copySearchParams(i,t.src),e.push(r.load({src:i,data:{ignoreMultiPack:!0}})))}const n=await Promise.all(e);h.linkedSheets=n,n.forEach((e=>{e.linkedSheets=[h].concat(h.linkedSheets.filter((t=>t!==e)))}))}return h},async unload(e,t,r){await r.unload(e.textureSource._sourceOrigin),e.destroy(!1)}}};t.spritesheetAsset=d},63983:function(e,t,r){"use strict";var n=r(35292),i=r(31137);const s=class e{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new i.TickerListener(null,null,1/0),this.deltaMS=1/e.targetFPMS,this.elapsedMS=1/e.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&null===this._requestId&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){null===this._requestId&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){null!==this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,r=n.UPDATE_PRIORITY.NORMAL){return this._addListener(new i.TickerListener(e,t,r))}addOnce(e,t,r=n.UPDATE_PRIORITY.NORMAL){return this._addListener(new i.TickerListener(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(t){for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}else e.connect(r);return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r=r.match(e,t)?r.destroy():r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(t=performance.now()){let r;if(t>this.lastTime){if(r=this.elapsedMS=t-this.lastTime,r>this._maxElapsedMS&&(r=this._maxElapsedMS),r*=this.speed,this._minElapsedMS){const e=t-this._lastFrame|0;if(e(e[e.INTERACTION=50]="INTERACTION",e[e.HIGH=25]="HIGH",e[e.NORMAL=0]="NORMAL",e[e.LOW=-25]="LOW",e[e.UTILITY=-50]="UTILITY",e))(r||{});t.UPDATE_PRIORITY=r},42508:function(e,t,r){"use strict";var n=r(35292),i=r(63983),s=r(31137);t.UPDATE_PRIORITY=n.UPDATE_PRIORITY,t.Ticker=i.Ticker,t.TickerListener=s.TickerListener},86105:function(e,t){"use strict";let r;t.detectVideoAlphaMode=async function(){return r??(r=(async()=>{const e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";const t=await new Promise((e=>{const t=document.createElement("video");t.onloadeddata=()=>e(t),t.onerror=()=>e(null),t.autoplay=!1,t.crossOrigin="anonymous",t.preload="auto",t.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",t.load()}));if(!t)return"premultiply-alpha-on-upload";const r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);const n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);const i=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,i),e.deleteFramebuffer(n),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),i[0]<=i[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),r}},2636:function(e,t,r){"use strict";var n=r(90891);const i=(n.default??n)(globalThis.navigator);t.isMobile=i},57296:function(e,t,r){"use strict";var n=r(42932);t.isSafari=function(){const{userAgent:e}=n.DOMAdapter.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}},58050:function(e,t,r){"use strict";var n=r(42932),i=r(95931);let s;t.isWebGLSupported=function(e){return void 0!==s||(s=(()=>{const t={stencil:!0,failIfMajorPerformanceCaveat:e??i.AbstractRenderer.defaultOptions.failIfMajorPerformanceCaveat};try{if(!n.DOMAdapter.get().getWebGLRenderingContext())return!1;let e=n.DOMAdapter.get().createCanvas().getContext("webgl",t);const r=!!e?.getContextAttributes()?.stencil;if(e){const t=e.getExtension("WEBGL_lose_context");t&&t.loseContext()}return e=null,r}catch(e){return!1}})()),s}},73533:function(e,t,r){"use strict";var n=r(42932);let i;t.isWebGPUSupported=async function(e={}){return void 0!==i||(i=await(async()=>{if(!n.DOMAdapter.get().getNavigator().gpu)return!1;try{const t=await navigator.gpu.requestAdapter(e);return await t.requestDevice(),!0}catch(e){return!1}})()),i}},4037:function(e,t){"use strict";let r;t.unsafeEvalSupported=function(){if("boolean"==typeof r)return r;try{const e=new Function("param1","param2","param3","return param1[param2] === param3;");r=!0===e({a:"b"},"a","b")}catch(e){r=!1}return r}},50034:function(e,t,r){"use strict";var n=r(42181);function i(e,t,r){for(let n=0,i=4*r*t;n=n||0===r)return;const s=n-(r=t+r>n?n-t:r);for(i=t;i{}},23522:function(e,t,r){"use strict";var n=r(15685),i=r(62792);t.Transform=class{constructor({matrix:e,observer:t}={}){this.dirty=!0,this._matrix=e??new n.Matrix,this.observer=t,this.position=new i.ObservablePoint(this,0,0),this.scale=new i.ObservablePoint(this,1,1),this.pivot=new i.ObservablePoint(this,0,0),this.skew=new i.ObservablePoint(this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1}get matrix(){const e=this._matrix;return this.dirty?(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this.dirty=!1,e):e}_onUpdate(e){this.dirty=!0,e===this.skew&&this.updateSkew(),this.observer?._onUpdate(this)}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this.dirty=!0}toString(){return`[pixi.js/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}setFromMatrix(e){e.decompose(this),this.dirty=!0}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this.updateSkew())}}},87876:function(e,t,r){"use strict";var n=r(95997);t.getResolutionOfUrl=function(e,t=1){const r=n.Resolver.RETINA_PREFIX?.exec(e);return r?parseFloat(r[1]):t}},36491:function(e,t,r){"use strict";var n=r(42932);function i(e){if("string"!=typeof e)throw new TypeError(`Path must be a string. Received ${JSON.stringify(e)}`)}function s(e){return e.split("?")[0].split("#")[0]}const o={toPosix(e){return t="\\",r="/",e.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r);var t,r},isUrl(e){return/^https?:/.test(this.toPosix(e))},isDataUrl(e){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(e)},isBlobUrl(e){return e.startsWith("blob:")},hasProtocol(e){return/^[^/:]+:/.test(this.toPosix(e))},getProtocol(e){i(e),e=this.toPosix(e);const t=/^file:\/\/\//.exec(e);if(t)return t[0];const r=/^[^/:]+:\/{0,2}/.exec(e);return r?r[0]:""},toAbsolute(e,t,r){if(i(e),this.isDataUrl(e)||this.isBlobUrl(e))return e;const a=s(this.toPosix(t??n.DOMAdapter.get().getBaseUrl())),u=s(this.toPosix(r??this.rootname(a)));if((e=this.toPosix(e)).startsWith("/"))return o.join(u,e.slice(1));return this.isAbsolute(e)?e:this.join(a,e)},normalize(e){if(i(e),0===e.length)return".";if(this.isDataUrl(e)||this.isBlobUrl(e))return e;let t="";const r=(e=this.toPosix(e)).startsWith("/");this.hasProtocol(e)&&(t=this.rootname(e),e=e.slice(t.length));const n=e.endsWith("/");return(e=function(e,t){let r="",n=0,i=-1,s=0,o=-1;for(let a=0;a<=e.length;++a){if(a2){const e=r.lastIndexOf("/");if(e!==r.length-1){-1===e?(r="",n=0):(r=r.slice(0,e),n=r.length-1-r.lastIndexOf("/")),i=a,s=0;continue}}else if(2===r.length||1===r.length){r="",n=0,i=a,s=0;continue}t&&(r.length>0?r+="/..":r="..",n=2)}else r.length>0?r+=`/${e.slice(i+1,a)}`:r=e.slice(i+1,a),n=a-i-1;i=a,s=0}else 46===o&&-1!==s?++s:s=-1}return r}(e,!1)).length>0&&n&&(e+="/"),r?`/${e}`:t+e},isAbsolute(e){return i(e),e=this.toPosix(e),!!this.hasProtocol(e)||e.startsWith("/")},join(...e){if(0===e.length)return".";let t;for(let r=0;r0)if(void 0===t)t=n;else{const i=e[r-1]??"";this.joinExtensions.includes(this.extname(i).toLowerCase())?t+=`/../${n}`:t+=`/${n}`}}return void 0===t?".":this.normalize(t)},dirname(e){if(i(e),0===e.length)return".";let t=(e=this.toPosix(e)).charCodeAt(0);const r=47===t;let n=-1,s=!0;const o=this.getProtocol(e),a=e;for(let r=(e=e.slice(o.length)).length-1;r>=1;--r)if(t=e.charCodeAt(r),47===t){if(!s){n=r;break}}else s=!1;return-1===n?r?"/":this.isUrl(a)?o+e:o:r&&1===n?"//":o+e.slice(0,n)},rootname(e){i(e);let t="";if(t=(e=this.toPosix(e)).startsWith("/")?"/":this.getProtocol(e),this.isUrl(e)){const r=e.indexOf("/",t.length);t=-1!==r?e.slice(0,r):e,t.endsWith("/")||(t+="/")}return t},basename(e,t){i(e),t&&i(t),e=s(this.toPosix(e));let r,n=0,o=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";let i=t.length-1,s=-1;for(r=e.length-1;r>=0;--r){const u=e.charCodeAt(r);if(47===u){if(!a){n=r+1;break}}else-1===s&&(a=!1,s=r+1),i>=0&&(u===t.charCodeAt(i)?-1==--i&&(o=r):(i=-1,o=s))}return n===o?o=s:-1===o&&(o=e.length),e.slice(n,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){n=r+1;break}}else-1===o&&(a=!1,o=r+1);return-1===o?"":e.slice(n,o)},extname(e){i(e);let t=-1,r=0,n=-1,o=!0,a=0;for(let i=(e=s(this.toPosix(e))).length-1;i>=0;--i){const s=e.charCodeAt(i);if(47!==s)-1===n&&(o=!1,n=i+1),46===s?-1===t?t=i:1!==a&&(a=1):-1!==t&&(a=-1);else if(!o){r=i+1;break}}return-1===t||-1===n||0===a||1===a&&t===n-1&&t===r+1?"":e.slice(t,n)},parse(e){i(e);const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;let r=(e=s(this.toPosix(e))).charCodeAt(0);const n=this.isAbsolute(e);let o;t.root=this.rootname(e),o=n||this.hasProtocol(e)?1:0;let a=-1,u=0,l=-1,c=!0,h=e.length-1,d=0;for(;h>=o;--h)if(r=e.charCodeAt(h),47!==r)-1===l&&(c=!1,l=h+1),46===r?-1===a?a=h:1!==d&&(d=1):-1!==a&&(d=-1);else if(!c){u=h+1;break}return-1===a||-1===l||0===d||1===d&&a===l-1&&a===u+1?-1!==l&&(t.base=t.name=0===u&&n?e.slice(1,l):e.slice(u,l)):(0===u&&n?(t.name=e.slice(1,a),t.base=e.slice(1,l)):(t.name=e.slice(u,a),t.base=e.slice(u,l)),t.ext=e.slice(a,l)),t.dir=this.dirname(e),t},sep:"/",delimiter:":",joinExtensions:[".html"]};t.path=o},82568:function(e,t){"use strict";t.Pool=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t0?this._pool[--this._index]:new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}}},86169:function(e,t,r){"use strict";var n=r(82568);class i{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new n.Pool(e)),this._poolsByClass.get(e)}stats(){const e={};return this._poolsByClass.forEach((t=>{const r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}})),e}}const s=new i;t.BigPool=s,t.PoolGroupClass=i},37087:function(e,t,r){"use strict";var n=r(42932);let i=!1;const s="8.0.2";t.VERSION=s,t.sayHello=function(e){if(!i){if(n.DOMAdapter.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){const t=[`%c %c %c %c %c PixiJS %c v${s} (${e}) http://www.pixijs.com/\n\n`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${s} - ${e} - http://www.pixijs.com/`);i=!0}}},65863:function(){},59121:function(e,t,r){"use strict";var n=r(5323),i=r(9187);t.EventEmitter=n,t.earcut=i},5323:function(e){"use strict";var t=Object.prototype.hasOwnProperty,r="~";function n(){}function i(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new i(n,s||e,o),u=r?r+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],a]:e._events[u].push(a):(e._events[u]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,n,i=[];if(0===this._eventsCount)return i;for(n in e=this._events)t.call(e,n)&&i.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},a.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i{const n=new FileReader;n.addEventListener("loadend",(()=>{t(n.result)})),n.addEventListener("error",r),n.readAsArrayBuffer(e)}))}async function i(e){const t=await n(e);return new Uint8Array(t)}function s(e){return"undefined"!=typeof Blob&&e instanceof Blob}function o(e){return"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer}r.r(t),r.d(t,{HTTPRangeReader:function(){return c},cleanup:function(){return ue},setOptions:function(){return se},unzip:function(){return ae},unzipRaw:function(){return oe}}),e=r.hmd(e);const a="undefined"!=typeof process&&process.versions&&void 0!==process.versions.node&&void 0===process.versions.electron;class u{constructor(e){this.typedArray=e instanceof ArrayBuffer||o(e)?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}async getLength(){return this.typedArray.byteLength}async read(e,t){return new Uint8Array(this.typedArray.buffer,this.typedArray.byteOffset+e,t)}}class l{constructor(e){this.blob=e}async getLength(){return this.blob.size}async read(e,t){const r=this.blob.slice(e,e+t),i=await n(r);return new Uint8Array(i)}async sliceAsBlob(e,t,r=""){return this.blob.slice(e,e+t,r)}}class c{constructor(e){this.url=e}async getLength(){if(void 0===this.length){const e=await fetch(this.url,{method:"HEAD"});if(!e.ok)throw new Error(`failed http request ${this.url}, status: ${e.status}: ${e.statusText}`);if(this.length=parseInt(e.headers.get("content-length")),Number.isNaN(this.length))throw Error("could not get length")}return this.length}async read(e,t){if(0===t)return new Uint8Array(0);const r=await fetch(this.url,{headers:{Range:`bytes=${e}-${e+t-1}`}});if(!r.ok)throw new Error(`failed http request ${this.url}, status: ${r.status} offset: ${e} size: ${t}: ${r.statusText}`);const n=await r.arrayBuffer();return new Uint8Array(n)}}function h(e,t){var r=e.length;if(t<=r)return e;var n=new Uint8Array(Math.max(r<<1,t));return n.set(e,0),n}function d(e,t,r,n,i,s){for(var o=_,a=b,u=0;u>>4;if(c<=15)s[u]=c,u++;else{var h=0,d=0;16==c?(d=3+o(n,i,2),i+=2,h=s[u-1]):17==c?(d=3+o(n,i,3),i+=3):18==c&&(d=11+o(n,i,7),i+=7);for(var p=u+d;u>>1;si&&(i=a),s++}for(;s>1,a=e[s+1],u=o<<4|a,l=t-a,c=e[s]<>>15-t]=u,c++}}function g(e,t){for(var r=y.rev15,n=15-t,i=0;i>>n}}function _(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)}const y=(v=Uint16Array,T=Uint32Array,{next_code:new v(16),bl_count:new v(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new v(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new T(32),flmap:new v(512),fltree:[],fdmap:new v(32),fdtree:[],lmap:new v(32768),ltree:[],ttree:[],dmap:new v(32768),dtree:[],imap:new v(512),itree:[],rev15:new v(32768),lhst:new T(286),dhst:new T(30),ihst:new T(19),lits:new T(15e3),strt:new v(65536),prev:new v(32768)});var v,T;!function(){for(var e=0;e<32768;e++){var t=e;t=(4278255360&(t=(4042322160&(t=(3435973836&(t=(2863311530&t)>>>1|(1431655765&t)<<1))>>>2|(858993459&t)<<2))>>>4|(252645135&t)<<4))>>>8|(16711935&t)<<8,y.rev15[e]=(t>>>16|t<<16)>>>17}function r(e,t,r){for(;0!=t--;)e.push(0,r)}for(e=0;e<32;e++)y.ldef[e]=y.of0[e]<<3|y.exb[e],y.ddef[e]=y.df0[e]<<4|y.dxb[e];r(y.fltree,144,8),r(y.fltree,112,9),r(y.fltree,24,7),r(y.fltree,8,8),f(y.fltree,9),m(y.fltree,9,y.flmap),g(y.fltree,9),r(y.fdtree,32,5),f(y.fdtree,5),m(y.fdtree,5,y.fdmap),g(y.fdtree,5),r(y.itree,19,0),r(y.ltree,286,0),r(y.dtree,30,0),r(y.ttree,320,0)}();const S={table:function(){for(var e=new Uint32Array(256),t=0;t<256;t++){for(var r=t,n=0;n<8;n++)1&r?r=3988292384^r>>>1:r>>>=1;e[t]=r}return e}(),update:function(e,t,r,n){for(var i=0;i>>8;return e},crc:function(e,t,r){return 4294967295^S.update(4294967295,e,t,r)}};function E(e,t){return function(e,t){var r=Uint8Array;if(3==e[0]&&0==e[1])return t||new r(0);var n=x,i=_,s=d,o=b,a=null==t;a&&(t=new r(e.length>>>2<<3));for(var u,l,c=0,g=0,v=0,T=0,S=0,E=0,A=0,P=0,M=0;0==c;)if(c=n(e,M,1),g=n(e,M+1,2),M+=3,0!=g){if(a&&(t=h(t,P+(1<<17))),1==g&&(u=y.flmap,l=y.fdmap,E=511,A=31),2==g){v=i(e,M,5)+257,T=i(e,M+5,5)+1,S=i(e,M+10,4)+4,M+=14;for(var R=0;R<38;R+=2)y.itree[R]=0,y.itree[R+1]=0;var w=1;for(R=0;Rw&&(w=B)}M+=3*S,f(y.itree,w),m(y.itree,w,y.imap),u=y.lmap,l=y.dmap,M=s(y.imap,(1<>>4;if(D>>>8==0)t[P++]=D;else{if(256==D)break;var O=P+D-254;if(D>264){var I=y.ldef[D-257];O=P+(I>>>3)+i(e,M,7&I),M+=7&I}var U=l[o(e,M)&A];M+=15&U;var L=U>>>4,k=y.ddef[L],N=(k>>>4)+n(e,M,15&k);for(M+=15&k,a&&(t=h(t,P+(1<<17)));P>>3),H=e[X-4]|e[X-3]<<8;a&&(t=h(t,P+H)),t.set(new r(e.buffer,e.byteOffset+X,H),P),M=X+H<<3,P+=H}return t.length==P?t:t.slice(0,P)}(e,t)}const A={numWorkers:1,workerURL:"",useWorkers:!1};let P=0,M=0,R=!0;const w=[],B=[],G=[],C=new Map;function F(e){I(e.target);const{id:t,error:r,data:n}=e.data,i=C.get(t);C.delete(t),r?i.reject(r):i.resolve(n)}function D(e){return new Promise(((t,r)=>{const n=new Worker(e);n.onmessage=e=>{"start"===e.data?(n.onerror=void 0,n.onmessage=void 0,t(n)):r(new Error(`unexpected message: ${e.data}`))},n.onerror=r}))}const O=function(){if(a){const{Worker:n}=(r="worker_threads",(t=e).require?t.require(r):{});return{async createWorker(e){return new n(e)},addEventListener(e,t){e.on("message",(r=>{t({target:e,data:r})}))},async terminate(e){await e.terminate()}}}return{async createWorker(e){try{return await D(e)}catch(t){console.warn("could not load worker:",e)}let t;try{const r=await fetch(e,{mode:"cors"});if(!r.ok)throw new Error(`could not load: ${e}`);t=await r.text(),e=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));const n=await D(e);return A.workerURL=e,n}catch(t){console.warn("could not load worker via fetch:",e)}if(void 0!==t)try{e=`data:application/javascript;base64,${btoa(t)}`;const r=await D(e);return A.workerURL=e,r}catch(e){console.warn("could not load worker via dataURI")}throw console.warn("workers will not be used"),new Error("can not start workers")},addEventListener(e,t){e.addEventListener("message",t)},async terminate(e){e.terminate()}};var t,r}();function I(e){B.push(e),L()}function U(e,t,r,n){const i=new Uint8Array(t);E(e,i),n(r?new Blob([i],{type:r}):i.buffer)}async function L(){if(0!==G.length){if(A.useWorkers&&R){const e=await async function(){if(0===B.length&&M{G.push({src:e,uncompressedSize:t,type:r,resolve:n,reject:i,id:P++}),L()}))}function N(e){e.splice(0,e.length)}class X{constructor(e,t){var r,n;this._reader=e,this._rawEntry=t,this.name=t.name,this.nameBytes=t.nameBytes,this.size=t.uncompressedSize,this.compressedSize=t.compressedSize,this.comment=t.comment,this.commentBytes=t.commentBytes,this.compressionMethod=t.compressionMethod,this.lastModDate=(r=t.lastModFileDate,n=t.lastModFileTime,new Date(1980+(r>>9&127),(r>>5&15)-1,31&r,n>>11&31,n>>5&63,2*(31&n),0)),this.isDirectory=0===t.uncompressedSize&&t.name.endsWith("/"),this.encrypted=!!(1&t.generalPurposeBitFlag),this.externalFileAttributes=t.externalFileAttributes,this.versionMadeBy=t.versionMadeBy}async blob(e="application/octet-stream"){return await async function(e,t,r){const{decompress:n,fileDataStart:i}=await ie(e,t);if(!n){const n=await q(e,i,t.compressedSize,r);return s(n)?n:new Blob([o(n.buffer)?new Uint8Array(n):n],{type:r})}const a=await q(e,i,t.compressedSize),u=await k(a,t.uncompressedSize,r);return u}(this._reader,this._rawEntry,e)}async arrayBuffer(){return await async function(e,t){const{decompress:r,fileDataStart:n}=await ie(e,t);if(!r){const r=await Y(e,n,t.compressedSize);return 0===(i=r).byteOffset&&i.byteLength===i.buffer.byteLength?r.buffer:r.slice().buffer}var i;const s=await q(e,n,t.compressedSize);return await k(s,t.uncompressedSize)}(this._reader,this._rawEntry)}async text(){const e=await this.arrayBuffer();return J(new Uint8Array(e))}async json(){const e=await this.text();return JSON.parse(e)}}const H=22,z=65535,V=101010256,W=101075792;async function Y(e,t,r){return await e.read(t,r)}async function q(e,t,r,n){return e.sliceAsBlob?await e.sliceAsBlob(t,r,n):await e.read(t,r)}const $={unsigned(){return 0}};function j(e,t){return e[t]+256*e[t+1]}function K(e,t){return e[t]+256*e[t+1]+65536*e[t+2]+16777216*e[t+3]}function Z(e,t){return K(e,t)+4294967296*K(e,t+4)}const Q=new TextDecoder;function J(e,t){return o(e.buffer)&&(e=new Uint8Array(e)),Q.decode(e)}const ee=117853008;async function te(e,t,r,n){const i=t-20,s=await Y(e,i,20);if(K(s,0)!==ee)throw new Error("invalid zip64 end of central directory locator signature");const o=Z(s,8),a=await Y(e,o,56);if(K(a,0)!==W)throw new Error("invalid zip64 end of central directory record signature");const u=Z(a,32),l=Z(a,40);return ne(e,Z(a,48),l,u,r,n)}const re=33639248;async function ne(e,t,r,n,i,s){let o=0;const a=await Y(e,t,r),u=[];for(let e=0;es.length)throw new Error("extra field length exceeds extra field buffer size");r.extraFields.push({id:e,data:s.slice(t,n)}),l=n}if(r.commentBytes=n.slice(i,i+r.fileCommentLength),r.comment=J(r.commentBytes),o+=n.length,4294967295===r.uncompressedSize||4294967295===r.compressedSize||4294967295===r.relativeOffsetOfLocalHeader){const e=r.extraFields.find((e=>1===e.id));if(!e)throw new Error("expected zip64 extended information extra field");const t=e.data;let n=0;if(4294967295===r.uncompressedSize){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include uncompressed size");r.uncompressedSize=Z(t,n),n+=8}if(4294967295===r.compressedSize){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include compressed size");r.compressedSize=Z(t,n),n+=8}if(4294967295===r.relativeOffsetOfLocalHeader){if(n+8>t.length)throw new Error("zip64 extended information extra field does not include relative header offset");r.relativeOffsetOfLocalHeader=Z(t,n),n+=8}}const c=r.extraFields.find((e=>28789===e.id&&e.data.length>=6&&1===e.data[0]&&K(e.data,1)),$.unsigned(r.nameBytes));if(c&&(r.fileName=J(c.data.slice(5))),0===r.compressionMethod){let e=r.uncompressedSize;if(0!=(1&r.generalPurposeBitFlag)&&(e+=12),r.compressedSize!==e)throw new Error(`compressed size mismatch for stored file: ${r.compressedSize} != ${e}`)}u.push(r)}return{zip:{comment:i,commentBytes:s},entries:u.map((t=>new X(e,t)))}}async function ie(e,t){if(1&t.generalPurposeBitFlag)throw new Error("encrypted entries not supported");const r=await Y(e,t.relativeOffsetOfLocalHeader,30),n=await e.getLength(),i=K(r,0);if(67324752!==i)throw new Error(`invalid local file header signature: 0x${i.toString(16)}`);const s=j(r,26),o=j(r,28),a=t.relativeOffsetOfLocalHeader+r.length+s+o;let u;if(0===t.compressionMethod)u=!1;else{if(8!==t.compressionMethod)throw new Error(`unsupported compression method: ${t.compressionMethod}`);u=!0}const l=a,c=l+t.compressedSize;if(0!==t.compressedSize&&c>n)throw new Error(`file data overflows file bounds: ${l} + ${t.compressedSize} > ${n}`);return{decompress:u,fileDataStart:l}}function se(e){!function(e){A.workerURL=e.workerURL||A.workerURL,e.workerURL&&(A.useWorkers=!0),A.useWorkers=void 0!==e.useWorkers?e.useWorkers:A.useWorkers,A.numWorkers=e.numWorkers||A.numWorkers}(e)}async function oe(e){let t;if("undefined"!=typeof Blob&&e instanceof Blob)t=new l(e);else if(e instanceof ArrayBuffer||e&&e.buffer&&e.buffer instanceof ArrayBuffer)t=new u(e);else if(o(e)||o(e.buffer))t=new u(e);else if("string"==typeof e){const r=await fetch(e);if(!r.ok)throw new Error(`failed http request ${e}, status: ${r.status}: ${r.statusText}`);const n=await r.blob();t=new l(n)}else{if("function"!=typeof e.getLength||"function"!=typeof e.read)throw new Error("unsupported source type");t=e}const r=await t.getLength();if(r>Number.MAX_SAFE_INTEGER)throw new Error(`file too large. size: ${r}. Only file sizes up 4503599627370496 bytes are supported`);return await async function(e,t){const r=Math.min(H+z,t),n=t-r,i=await Y(e,n,r);for(let t=r-H;t>=0;--t){if(K(i,t)!==V)continue;const r=new Uint8Array(i.buffer,i.byteOffset+t,i.byteLength-t),s=j(r,4);if(0!==s)throw new Error(`multi-volume zip files are not supported. This is volume: ${s}`);const o=j(r,10),a=K(r,12),u=K(r,16),l=j(r,20),c=r.length-H;if(l!==c)throw new Error(`invalid comment length. expected: ${c}, actual: ${l}`);const h=new Uint8Array(r.buffer,r.byteOffset+22,l),d=J(h);return 65535===o||4294967295===u?await te(e,n+t,d,h):await ne(e,u,a,o,d,h)}throw new Error("could not find end of central directory. maybe not zip file")}(t,r)}async function ae(e){const{zip:t,entries:r}=await oe(e);return{zip:t,entries:Object.fromEntries(r.map((e=>[e.name,e])))}}function ue(){!async function(){for(const e of w)await O.terminate(e);N(w),N(B),N(G),C.clear(),M=0,R=!0}()}}}]); \ No newline at end of file diff --git a/dist/game.c0878c832dc12a5a8f5e.js b/dist/game.c0878c832dc12a5a8f5e.js new file mode 100644 index 00000000..5ff752af --- /dev/null +++ b/dist/game.c0878c832dc12a5a8f5e.js @@ -0,0 +1 @@ +!function(){"use strict";var e,t={9082:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AudioPlayer=void 0;t.AudioPlayer=class{static playingAudios=[];static audioChangeListeners=[];static musicQueue=[];static autoPlay=!0;static play(e){if(this.playingAudios.length>0){let e;e=setInterval((()=>{let t=this.playingAudios[0].audio.volume;if(t-=.01,t<0)return t=0,clearInterval(e),this.playingAudios[0].audio.pause(),void this.playingAudios.splice(0,1);t>1&&(t=1),this.playingAudios[0].audio.volume=t}),10)}let t=URL.createObjectURL(e);return this.playingAudios.push({audio:new Audio(t),startTime:0}),new Promise((e=>{this.playingAudios[this.playingAudios.length-1].audio.play().then((()=>{e(),this.audioChangeListeners.forEach((e=>{e(this.playingAudios[this.playingAudios.length-1])})),this.playingAudios[this.playingAudios.length-1].startTime=Date.now()}))}))}static addToQueue(e){let t=URL.createObjectURL(e);this.musicQueue.push({audio:new Audio(t),startTime:0,beatmapID:0})}static playFromQueue(){}static setAutoPlay(e){this.autoPlay=e}static isAutoPlayOn(){return this.autoPlay}static onAudioChange(e){this.audioChangeListeners.push(e)}static removeOnAudioChange(e){this.audioChangeListeners=this.audioChangeListeners.filter((t=>t!==e))}static playSoundEffect(e,t){let i=URL.createObjectURL(e),n=new AudioContext;if(t)fetch(i).then((e=>e.arrayBuffer())).then((e=>n.decodeAudioData(e))).then((e=>{URL.revokeObjectURL(i);const s=n.createBufferSource();s.buffer=e,s.playbackRate.value=t,s.connect(n.destination),s.start(0)}));else{let e=new Audio(i);e.play(),e.onended=()=>{URL.revokeObjectURL(i)}}}}},49323:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LoadAnim=void 0;const o=a(i(58687)),r=i(23360);class l extends o.Container{bg;arc;arcContainer;animInterval;container;bgContainer;bgRotation=0;constructor(e,t){super(),this.pivot.set(.5,.5),this.container=new o.Container,this.container.alpha=0,this.rotation=2.5*Math.PI,this.bgContainer=new o.Container,this.bg=new o.Graphics,this.bg.roundRect(-50,-50,100,100,25),this.bg.fill(e),this.arcContainer=new o.Container,this.arc=new o.Graphics,this.arc.arc(0,0,27,Math.PI+.26,2.92*Math.PI),this.arc.stroke({width:8,color:t,cap:"round"}),this.arc.scale.set(-1,1),this.container.scale.set(.5,.5),this.bgContainer.addChild(this.bg),this.arcContainer.addChild(this.arc),this.bgContainer.addChild(this.arcContainer),this.container.addChild(this.bgContainer),this.addChild(this.container),r.ease.add(this.container,{alpha:1,scale:1},{duration:400,ease:"easeInOutQuad"}),this.doAnims(),this.animInterval=setInterval((()=>{this.doAnims()}),800)}doAnims(){this.bgRotation+=90,r.ease.add(this.bgContainer,{angle:this.bgRotation},{duration:600,ease:"easeInOutQuad"})}getWidth(){return 100*this.scale.x}getHeight(){return 100*this.scale.y}draw(e){this.arcContainer.angle+=3*e.deltaTime}destroy(e){r.ease.add(this.container,{alpha:0,scale:.5},{duration:400,ease:"easeInOutQuad"}),setTimeout((()=>{clearInterval(this.animInterval),super.destroy(e)}),400)}}t.LoadAnim=l},16982:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Menu=void 0;const o=a(i(58687)),r=i(23360);class l extends o.Container{menuBG=new o.Graphics;isOpened=!1;openAnim;constructor(){super(),this.menuBG.rect(0,-62.5,1,125),this.menuBG.fill({color:"rgb(50,50,50)"}),this.menuBG.scale.set(1,0),this.menuBG.alpha=0,this.addChild(this.menuBG)}Open(){this.isOpened=!0,this.openAnim=r.ease.add(this.menuBG,{scaleY:1,alpha:1},{duration:400,ease:"easeOutQuint"})}Close(){this.isOpened=!1,this.openAnim&&this.openAnim.remove(),r.ease.add(this.menuBG,{scaleY:0,alpha:0},{duration:300,ease:"easeInSine"})}isOpen(){return this.isOpened}onResize(){this.position.set(-window.innerWidth,0),this.menuBG.width=2*window.innerWidth}}t.Menu=l},54349:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OsuCircle=void 0;const o=a(i(58687)),r=i(44961),l=i(23360),u=i(20825),d=i(12235),h=i(16982),c=i(9082);class g extends o.Container{outline;triangles=new r.Triangles;beatContainer=new o.Container;hoverContainer=new o.Container;moveContainer=new o.Container;parallaxContainer=new o.Container;menu=new h.Menu;isBeingHovered=!1;constructor(){super(),this.outline=o.Sprite.from("mainMenu.logoOutline"),this.outline.anchor.set(.5,.5);let e=.6,t=o.Sprite.from("mainMenu.logoMask");t.anchor.set(.5,.5),t.scale=e;let i=o.Sprite.from("mainMenu.logoMask");i.anchor.set(.5,.5),i.scale=e,i.blendMode="add",i.alpha=0,this.outline.scale.set(e),this.triangles.scale.set(e),this.triangles.position.set(-this.outline.width/2,-this.outline.height/2),this.triangles.mask=t,this.parallaxContainer.addChild(this.menu),this.beatContainer.addChild(this.triangles),this.beatContainer.addChild(t),this.beatContainer.addChild(i),this.beatContainer.addChild(this.outline),this.hoverContainer.addChild(this.beatContainer),this.moveContainer.addChild(this.hoverContainer),this.parallaxContainer.addChild(this.moveContainer),this.addChild(this.parallaxContainer),this.hoverContainer.eventMode="dynamic",this.hoverContainer.hitArea=new o.Circle(0,0,300);let n=d.Loader.Get("mainMenu.osuLogo.select"),s=d.Loader.Get("mainMenu.osuLogo.backToLogo");const a=()=>{this.isBeingHovered=!0,l.ease.add(this.hoverContainer,{scale:1.1},{duration:500,ease:"easeOutElastic"})};let r;this.hoverContainer.hitArea.contains(u.Main.mousePos.x,u.Main.mousePos.y)&&a(),this.hoverContainer.addEventListener("mouseenter",(()=>{a()})),this.hoverContainer.addEventListener("mouseleave",(()=>{this.isBeingHovered=!1,l.ease.add(this.hoverContainer,{scale:1},{duration:500,ease:"easeOutElastic"})})),this.hoverContainer.addEventListener("mousedown",(()=>{r=l.ease.add(this.hoverContainer,{scale:.9},{duration:1e3,ease:"easeOutSine"})}));const h=()=>{r&&r.remove(),l.ease.add(this.hoverContainer,{scale:this.isBeingHovered?1.1:1},{duration:500,ease:"easeOutElastic"})};let g,p,m,f;this.hoverContainer.addEventListener("mouseup",(()=>{h()})),this.hoverContainer.addEventListener("click",(()=>{this.menu.isOpen()||(this.isBeingHovered=!1),h(),this.menu.isOpen()||(m&&m.remove(),f&&f.remove()),i.alpha=.4,l.ease.add(i,{alpha:0},{duration:1500,ease:"easeOutExpo"}),this.menu.isOpen()||(c.AudioPlayer.playSoundEffect(n),g=l.ease.add(this.moveContainer,{position:{x:-250,y:0}},{duration:200,ease:"easeInSine"}).once("complete",(()=>{this.menu.Open()})),p=l.ease.add(this.moveContainer,{scale:.5},{duration:200,ease:"easeInSine"}))})),window.addEventListener("keyup",(e=>{"Escape"!=e.key&&"`"!=e.key||this.menu.isOpen()&&(g.remove(),p.remove(),c.AudioPlayer.playSoundEffect(s),this.menu.Close(),m=l.ease.add(this.moveContainer,{position:{x:0,y:0}},{duration:800,ease:"easeOutExpo"}),f=l.ease.add(this.moveContainer,{scale:1},{duration:800,ease:"easeOutExpo"}))}))}onResize(){this.menu.onResize()}draw(e){this.triangles.draw(e),this.menu.isOpen()?this.parallaxContainer.position.set(u.Main.mousePos.x/120,u.Main.mousePos.y/120):this.parallaxContainer.position.set(0,0)}}t.OsuCircle=g},44961:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.EaseOutSine=t.Triangles=void 0;const o=a(i(58687)),r=i(9082);class l extends o.Container{bgGradient;triangles=[];triangleGenInterval;graphics=new o.Graphics;pulseAnimation;pulseAnimationFlash;flash;constructor(){super();let e=[16737963,13390473];function t(e,t){return Math.random()*(t-e)+e}function i(){let e=1-t(0,1),i=1-t(0,1),n=Math.sqrt(-2*Math.log(e))*Math.sin(2*Math.PI*i);return Math.max(.5+.16*n,.1)}this.bgGradient=new o.FillGradient(0,0,0,1024),e.forEach(((t,i)=>{const n=i/e.length;this.bgGradient.addColorStop(n,t)}));for(let e=0;e<15;e++)this.triangles.push({x:t(0,1024),y:t(0,1024),velocity:i()});this.triangleGenInterval=setInterval((()=>{document.hasFocus()&&this.triangles.push({x:t(0,1024),y:974,velocity:i()})}),800),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.addChild(this.graphics),this.flash=o.Sprite.from("mainMenu.logoMask"),this.flash.alpha=0,this.flash.blendMode="add",this.addChild(this.flash);let n=r.AudioPlayer.playingAudios[r.AudioPlayer.playingAudios.length-1];this.pulseAnimation=new u(375,!0,n.startTime),this.pulseAnimationFlash=new u(375,!0,n.startTime)}destroy(e){super.destroy(e)}draw(e){this.pulseAnimation.update(),this.pulseAnimationFlash.update(),this.destroyed||(this.flash.alpha=this.pulseAnimationFlash.getValue()/7,document.hasFocus()&&(this.graphics.clear(),this.graphics.rect(0,0,1024,1024),this.graphics.fill(this.bgGradient),this.triangles.forEach(((t,i)=>{t.y-=e.deltaTime*t.velocity*4,this.graphics.moveTo(t.x,t.y),this.graphics.lineTo(t.x-250,t.y+400),this.graphics.lineTo(t.x+250,t.y+400),this.graphics.lineTo(t.x,t.y);let n=1;t.y+50<300&&(n=(t.y+50)/300),n=Math.min(Math.max(n,0),1),this.graphics.stroke({color:new o.Color("rgba(182, 52, 111, "+n.toFixed(6)+")"),width:4}),t.y+400<0&&this.triangles.splice(i,1)}))))}}t.Triangles=l;class u{startTime;duration;elapsedMS=0;reverse=!1;doReverse;constructor(e,t,i){this.startTime=i||Date.now(),this.doReverse=t,this.duration=this.doReverse?e/2:e}update(){this.elapsedMS=Date.now()-this.startTime,this.elapsedMS>this.duration&&(this.reset(),this.update())}getValue(){return this.reverse?this.func(1-this.elapsedMS/this.duration):this.func(this.elapsedMS/this.duration)}reset(){this.startTime=Date.now(),this.elapsedMS=0,this.doReverse&&(this.reverse=!this.reverse)}func(e){return Math.sin(e*Math.PI/2)}}t.EaseOutSine=u},55686:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuCursor=void 0;const o=a(i(58687)),r=i(20825),l=i(23360),u=i(9082),d=i(12235);class h extends o.Container{mouseCursor=o.Sprite.from("menu.cursor");mouseCursorAdditive=o.Sprite.from("menu.cursor.additive");mouseContainer=new o.Container;animContainer=new o.Container;animRotationContainer=new o.Container;mouseDownScaleAnim;mouseDownAdditiveAnim;mouseUpScaleAnim;mouseUpAdditiveAnim;mouseRotationAnim;dragRotationState=c.NotDragging;mouseHideContainer=new o.Container;hideScaleAnim;hideAlphaAnim;posMouseDown={x:0,y:0};mouseIsDown=!1;cursorTapSample=d.Loader.Get("menu.cursor.sample.tap");constructor(){super(),this.updateMouse(),this.mouseContainer.scale.set(.07),this.mouseCursorAdditive.alpha=0,this.mouseCursorAdditive.blendMode="add",this.mouseContainer.addChild(this.mouseCursor),this.mouseContainer.addChild(this.mouseCursorAdditive),this.animContainer.addChild(this.mouseContainer),this.animRotationContainer.addChild(this.animContainer),this.mouseHideContainer.addChild(this.animRotationContainer),this.addChild(this.mouseHideContainer),this.zIndex=999999,this.eventMode="none",r.Main.app.stage.addChild(this),this.addEventListeners()}addEventListeners(){r.Main.app.stage.addEventListener("mousedown",(()=>{this.visible&&(this.posMouseDown={x:r.Main.mousePos.x,y:r.Main.mousePos.y},this.mouseIsDown=!0,this.dragRotationState=c.DragStarted,this.mouseUpScaleAnim&&this.mouseUpAdditiveAnim&&(this.mouseUpScaleAnim.remove(),this.mouseUpAdditiveAnim.remove()),this.mouseDownScaleAnim=l.ease.add(this.animContainer,{scale:.9},{ease:"easeOutQuint",duration:800}),this.mouseDownAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:1},{ease:"easeOutQuint",duration:800}),u.AudioPlayer.playSoundEffect(this.cursorTapSample))})),r.Main.app.stage.addEventListener("mouseup",(()=>{this.visible&&(this.mouseIsDown=!1,this.mouseDownScaleAnim&&this.mouseDownAdditiveAnim&&(this.mouseDownAdditiveAnim.remove(),this.mouseDownScaleAnim.remove()),this.mouseUpScaleAnim=l.ease.add(this.animContainer,{scale:1},{ease:"easeOutElastic",duration:500}),this.mouseUpAdditiveAnim=l.ease.add(this.mouseCursorAdditive,{alpha:0},{ease:"easeOutQuint",duration:500}),this.dragRotationState!=c.NotDragging&&(this.dragRotationState==c.Rotating&&(this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{ease:"easeOutElastic",duration:2e3*(.5+Math.abs(this.animRotationContainer.angle/960))})),this.dragRotationState=c.NotDragging),u.AudioPlayer.playSoundEffect(this.cursorTapSample,.8))}))}PopIn(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.visible=!0,this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:1},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:1},{duration:400,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.dragRotationState=c.NotDragging}PopOut(){this.mouseRotationAnim&&this.mouseRotationAnim.remove(),this.hideAlphaAnim&&this.hideScaleAnim&&(this.hideAlphaAnim.remove(),this.hideScaleAnim.remove()),this.hideAlphaAnim=l.ease.add(this.mouseHideContainer,{alpha:0},{duration:250,ease:"easeOutQuint"}),this.hideScaleAnim=l.ease.add(this.mouseHideContainer,{scale:.6},{duration:250,ease:"easeOutQuint"}),this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:0},{duration:400,ease:"easeOutQuint"}),this.hideAlphaAnim.once("complete",(()=>{this.visible=!1})),this.dragRotationState=c.NotDragging}updateMouse(){if(this.position.set(r.Main.mousePos.x,r.Main.mousePos.y),this.dragRotationState!=c.NotDragging&&this.visible){let e=Math.sqrt((2^Math.abs(this.posMouseDown.x-r.Main.mousePos.x))+(2^Math.abs(this.posMouseDown.y-r.Main.mousePos.y)));if(console.log(e),this.dragRotationState==c.DragStarted&&e>8&&(this.dragRotationState=c.Rotating),this.dragRotationState==c.Rotating&&e>0){this.mouseRotationAnim&&this.mouseRotationAnim.remove();let e=r.Main.mousePos.x-this.posMouseDown.x,t=r.Main.mousePos.y-this.posMouseDown.y,i=h.RadiansToDegrees(Math.atan2(-e,t))+24.3,n=(i-this.animRotationContainer.angle)%360;n<-180&&(n+=360),n>180&&(n-=360),i=this.animRotationContainer.angle+n,this.mouseRotationAnim=l.ease.add(this.animRotationContainer,{angle:i},{duration:120,ease:"easeOutQuint"})}}}static RadiansToDegrees(e){return 180*e/Math.PI}}var c;t.MenuCursor=h,function(e){e[e.NotDragging=0]="NotDragging",e[e.DragStarted=1]="DragStarted",e[e.Rotating=2]="Rotating"}(c||(c={}))},36721:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomBackground=void 0;const o=a(i(58687)),r=i(12235),l=i(84283),u=i(23360),d=i(20825);class h extends l.Screen{bgContainer=new o.Container;parallaxMultiplier=60;start(){let e=r.Loader.seasonalBackgroundsNum>0,t=(i=1,n=e?r.Loader.seasonalBackgroundsNum:r.Loader.defaultBackgroundsNum,Math.round(Math.random()*(n-i)+i));var i,n;this.bgContainer.pivot.set(.5,.5),this.bgContainer.position.set((d.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(d.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier),this.addChild(this.bgContainer),this.setBG(o.Sprite.from((e?"seasonal_bg":"default_bg")+t))}setBG(e){if(0==this.bgContainer.children?.length)this.bgContainer.addChild(e);else{let t=this.bgContainer.children[0];e.zIndex=-1,this.bgContainer.addChild(e),u.ease.add(t,{alpha:0},{duration:800,ease:"linear"}).once("complete",(()=>{e.zIndex=0,t.destroy()}))}e.anchor.set(.5,.5),this.onResize()}newRandomBG(){let e=(t=1,i=r.Loader.defaultBackgroundsNum,Math.round(Math.random()*(i-t)+t));var t,i;this.setBG(o.Sprite.from("default_bg"+e))}draw(e){this.bgContainer.position.set((d.Main.mousePos.x-this.getScreenWidth()/2)/this.parallaxMultiplier,(d.Main.mousePos.y-this.getScreenHeight()/2)/this.parallaxMultiplier)}onClose(){return Promise.resolve(this)}onResize(){this.bgContainer.children.forEach((e=>{if(e instanceof o.Sprite){let t,i=e.texture.width,n=e.texture.height;t=window.innerWidth>window.innerHeight?window.innerWidth/i:window.innerHeight/n,n*t{i.id==e&&(t=i.data)})),!t)throw new Error("Asset not found!");return t}static GetString(e){let t;if(this.loadedList.forEach((i=>{i.id==e&&(t=i.dataString)})),!t)throw new Error("Asset not found or is not a string!");return t}static addBackgrounds(){return new Promise((e=>{for(let e=1;ee.json())).then((t=>{t.backgrounds.forEach(((e,t)=>{this.loadList.push({id:"seasonal_bg"+(t+1),url:"https://corsproxy.io/?"+encodeURIComponent(e.url),pixiBundleName:"textures",loadParser:"loadTextures"}),this.seasonalBackgroundsNum=t+1})),e()})).catch((t=>{console.warn("Could not fetch seasonal backgrounds.",t),e()}))}))}static Load(){return this.addToLoadList(),new Promise((e=>{this.addBackgrounds().then((()=>{let t=[],i=[],n=[],s=0,a=0;this.loadList.forEach((e=>{e.pixiBundleName?i.push(e):t.push(e)})),i.forEach((e=>{let t=!1;n.forEach((i=>{i.length>0&&i[0].pixiBundleName==e.pixiBundleName&&(i.push(e),t=!0)})),t||n.push([e])}));const r=t=>{t?a++:s++,a+s>=this.loadList.length&&e()};t.forEach((e=>{fetch(e.url).then((e=>e.blob())).then((t=>{e.isText?t.text().then((i=>{r(),this.loadedList.push({id:e.id,data:t,dataString:i})})):(r(),this.loadedList.push({id:e.id,data:t}))})).catch((t=>{r(!0),console.warn("Asset '"+e.id+"' failed to load: "+t)}))})),n.forEach((e=>{if(e.length>0){if(!e[0].pixiBundleName)throw new Error("wtf????");let t=[];e.forEach((e=>{e.loadParser?t.push({alias:e.id,src:e.url,loadParser:e.loadParser}):t.push({alias:e.id,src:e.url})})),o.Assets.addBundle(e[0].pixiBundleName,t),o.Assets.loadBundle(e[0].pixiBundleName).then((()=>{e.forEach((()=>{r()}))}))}}))}))}))}}},25373:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.InteractScreen=void 0;const o=i(84283),r=a(i(58687)),l=i(20825),u=i(94433),d=i(23360),h=i(9082);class c extends o.Screen{text;introTrack;clickSound;clickArea=new r.Graphics;constructor(e,t){super(),this.introTrack=e,this.clickSound=t,this.text=new r.Text({text:"Click anywhere to play!",style:{fontFamily:"TorusRegular",fontSize:36,fill:"white"}})}start(){this.text.anchor.set(.5,.5),this.text.scale.set(.5,.5),this.text.alpha=0,this.text.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.text),this.clickArea.rect(0,0,1,1),this.clickArea.fill("rgba(0,0,0,0)"),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0),this.addChild(this.clickArea),this.clickArea.eventMode="static",this.clickArea.cursor="pointer";const e=()=>{this.clickArea.eventMode="none",h.AudioPlayer.playSoundEffect(this.clickSound),l.Main.switchScreen(new u.IntroScreen(this.introTrack)),l.Main.pointerLock(),l.Main.cursor.PopIn()};this.clickArea.onclick=()=>{e()},this.clickArea.ontap=()=>{e()},d.ease.add(this.text,{alpha:1,scale:1},{duration:400,ease:"easeOutQuad"})}onClose(){return new Promise((e=>{d.ease.add(this.text,{alpha:0,scale:.5},{duration:200,ease:"easeInOutQuad"}),setTimeout((()=>{e(this)}),200)}))}draw(e){}onResize(){this.text.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.clickArea.width=this.getScreenWidth(),this.clickArea.height=this.getScreenHeight(),this.clickArea.position.set(0,0)}}t.InteractScreen=c},88662:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.GlitchingTriangles=void 0;const o=a(i(58687)),r=i(23360);class l extends o.Container{constructor(e){super();let t=new o.Graphics,i=n(.2,1.2);function n(e,t){return Math.random()*(t-e)+e}t.moveTo(0,0),t.lineTo(-50*i,100*i),t.lineTo(50*i,100*i),t.lineTo(0,0),Math.random()<.5?t.fill("white"):t.stroke({color:"white",width:1});let s=n(e.x1,e.x2),a=n(e.y1,e.y2);t.position.set(s,a),r.ease.add(t,{alpha:0},{duration:200,ease:"linear"}),setTimeout((()=>{this.destroy()}),200),this.addChild(t)}}t.GlitchingTriangles=l},94433:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.IntroScreen=void 0;const o=i(84283),r=i(53931),l=i(20825),u=a(i(58687)),d=i(88662),h=i(23360),c=i(58940),g=i(9082),p=i(55402),m=i(9752);class f extends o.Screen{introTrackUrl;doTextSpacingAnim=!1;triangles=new u.Container;ruleSetContainer=new u.Container;flash=new u.Graphics;logoContainerContainer=new u.Container;logoContainer=new u.Container;lazerLogo=new p.LazerLogo;flashed=!1;mainMenu;welcomeText=new u.Text({text:"",style:{fontFamily:"TorusThin",fontSize:42,fill:"white",letterSpacing:5}});constructor(e){super(),this.introTrackUrl=URL.createObjectURL(e)}start(){this.logoContainer.addChild(this.lazerLogo),this.logoContainer.scale.set(1.2),this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.logoContainerContainer.pivot.set(.5,.5),this.logoContainerContainer.addChild(this.logoContainer),this.flash.rect(0,0,1,1),this.flash.fill("white"),this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight(),this.flash.blendMode="add",this.welcomeText.anchor.set(.5,.5),this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),setTimeout((async()=>{const{entries:e}=await(0,r.unzip)(this.introTrackUrl);for(const[t,i]of Object.entries(e))"audio.mp3"==t&&i.blob().then((e=>{g.AudioPlayer.play(e).then((()=>{this.afterAudioPlay(),this.mainMenu=new c.MainMenu}))})),t.endsWith(".osu")&&i.text().then((e=>{let t=m.BeatmapParser.parse(e);console.log(t)}))}),500)}afterAudioPlay(){let e;this.addChild(this.welcomeText),setTimeout((()=>{this.welcomeText.text="wel",this.onResize()}),200),setTimeout((()=>{this.welcomeText.text="welcome",this.onResize()}),400),setTimeout((()=>{this.welcomeText.text="welcome to",this.onResize()}),700),this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.triangles),setTimeout((()=>{this.welcomeText.text="welcome to kosu!",this.doTextSpacingAnim=!0,e=setInterval((()=>{let e=new d.GlitchingTriangles({x1:-this.welcomeText.width/2-100,x2:this.welcomeText.width/2+100,y1:-this.welcomeText.height/2-150,y2:this.welcomeText.height/2+100});this.triangles.addChild(e)}),30),this.onResize()}),900);let t=u.Sprite.from("icon_ruleset_std"),i=u.Sprite.from("icon_ruleset_taiko"),n=u.Sprite.from("icon_ruleset_ctb"),s=u.Sprite.from("icon_ruleset_mania");t.anchor.set(.5,.5),t.scale.set(.4),this.ruleSetContainer.addChild(t),i.anchor.set(.5,.5),i.scale.set(.4),this.ruleSetContainer.addChild(i),n.anchor.set(.5,.5),n.scale.set(.4),this.ruleSetContainer.addChild(n),s.anchor.set(.5,.5),s.scale.set(.4),this.ruleSetContainer.addChild(s),setTimeout((()=>{this.doTextSpacingAnim=!1,this.onResize(),clearInterval(e),this.welcomeText.destroy(),this.triangles.destroy(),this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.addChild(this.ruleSetContainer);t.position.set(-375,0),i.position.set(-125,0),n.position.set(125,0),s.position.set(375,0),h.ease.add(this.ruleSetContainer,{scale:.8},{duration:1e3,ease:"linear"})}),1450),setTimeout((()=>{t.position.set(-240,0),i.position.set(-75,0),n.position.set(75,0),s.position.set(240,0),t.scale.set(1),i.scale.set(1),n.scale.set(1),s.scale.set(1)}),1650),setTimeout((()=>{t.position.set(-350,0),i.position.set(-120,0),n.position.set(120,0),s.position.set(350,0),t.scale.set(2),i.scale.set(2),n.scale.set(2),s.scale.set(2),h.ease.add(this.ruleSetContainer,{scale:1.3},{duration:1e3,ease:"linear"})}),1850),setTimeout((()=>{this.ruleSetContainer.visible=!1,this.lazerLogo.start(),this.addChild(this.logoContainerContainer),this.logoContainerContainer.scale.set(1.2),h.ease.add(this.logoContainerContainer,{scale:1},{duration:920,ease:"easeInQuad"}),setTimeout((()=>{h.ease.add(this.logoContainer,{scale:1.2-.8},{duration:276,ease:"easeInQuint"})}),644)}),2080),setTimeout((()=>{this.addChild(this.flash),this.flashed=!0,this.logoContainerContainer.visible=!1,h.ease.add(this.flash,{alpha:0},{duration:1e3,ease:"easeOutQuad"}),null==this.mainMenu&&(this.mainMenu=new c.MainMenu),l.Main.switchScreen(this.mainMenu)}),3e3)}draw(e){this.doTextSpacingAnim&&(this.welcomeText.style.letterSpacing+=.15*e.deltaTime,this.onResize())}onClose(){return new Promise((e=>{setTimeout((()=>{e(this)}),1e3)}))}onResize(){this.welcomeText.destroyed||this.welcomeText.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.triangles.destroyed||this.triangles.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.ruleSetContainer.destroyed||this.ruleSetContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),!this.flash.destroyed&&this.flashed&&(this.flash.position.set(0,0),this.flash.width=this.getScreenWidth(),this.flash.height=this.getScreenHeight()),this.logoContainerContainer.destroyed||this.logoContainerContainer.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2)}}t.IntroScreen=f},55402:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LazerLogo=void 0;const o=a(i(58687)),r=i(12235),l=i(23360);class u extends o.Container{shaderHighlight;shaderBackground;textureHighlight=o.Texture.from("intro_triangles_osuLogo_anim_highlight");textureBackground=o.Texture.from("intro_triangles_osuLogo_anim_background");constructor(){super();const e=r.Loader.GetString("webgl:shaders/logoAnimation.frag"),t=r.Loader.GetString("webgl:shaders/logoAnimation.vert");this.shaderHighlight=o.Shader.from({gl:{vertex:t,fragment:e},resources:{uTexture:this.textureHighlight.source,uProgress:{progress:{value:0,type:"f32"}}}}),this.shaderBackground=o.Shader.from({gl:{vertex:t,fragment:e},resources:{uTexture:this.textureBackground.source,uProgress:{progress:{value:0,type:"f32"}}}})}start(){const e=new o.Geometry({attributes:{aPosition:[-this.textureHighlight.width/2,-this.textureHighlight.height/2,this.textureHighlight.width/2,-this.textureHighlight.height/2,this.textureHighlight.width/2,this.textureHighlight.width/2,-this.textureHighlight.width/2,this.textureHighlight.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},indexBuffer:[0,1,2,0,2,3]}),t=new o.Mesh({geometry:e,shader:this.shaderHighlight});this.addChild(t);const i=new o.Geometry({attributes:{aPosition:[-this.textureBackground.width/2,-this.textureBackground.height/2,this.textureBackground.width/2,-this.textureBackground.height/2,this.textureBackground.width/2,this.textureBackground.width/2,-this.textureBackground.width/2,this.textureBackground.width/2],aUV:[0,0,1,0,1,1,0,1],aColor:[.5,.5,.5,1,.5,.5,.5,1,.5,.5,.5,1,.5,.5,.5,1]},indexBuffer:[0,1,2,0,2,3]}),n=new o.Mesh({geometry:i,shader:this.shaderBackground});this.addChild(n);let s=new o.Container;s.scale.set(0,0),l.ease.add(s,{scale:1},{duration:920,ease:"linear"}).on("each",(()=>{this.shaderHighlight.resources.uProgress.uniforms.progress=s.scale.x,this.shaderBackground.resources.uProgress.uniforms.progress=s.scale.x}))}}t.LazerLogo=u},76969:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.LoadScreen=void 0;const n=i(84283),s=i(49323),a=i(58293);class o extends n.Screen{loadAnim;start(){this.loadAnim=new s.LoadAnim("rgba(255,255,255,0.7)","black");let e=a.Settings.getRangeSetting("UI scaling").getValue();this.loadAnim.scale.set(.8*e,.8*e),this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-15,this.getScreenHeight()-this.loadAnim.getHeight()-15),this.addChild(this.loadAnim)}draw(e){this.loadAnim?.draw(e)}onClose(){return new Promise((e=>{null!=this.loadAnim&&this.loadAnim.destroy(),setTimeout((()=>{e(this)}),400)}))}onResize(){null!=this.loadAnim?.position&&this.loadAnim.position.set(this.getScreenWidth()-this.loadAnim.getWidth()-20,this.getScreenHeight()-this.loadAnim.getHeight()-20)}}t.LoadScreen=o},58940:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.MainMenu=void 0;const n=i(84283),s=i(36721),a=i(54349);class o extends n.Screen{bg=new s.RandomBackground;osuCircle=new a.OsuCircle;start(){this.bg.start(),this.addChild(this.bg),this.addChild(this.osuCircle)}draw(e){this.bg.draw(e),this.osuCircle.draw(e)}onClose(){return new Promise((e=>{this.bg.onClose().then((()=>{e(this)}))}))}onResize(){this.osuCircle.position.set(this.getScreenWidth()/2,this.getScreenHeight()/2),this.bg.onResize(),this.osuCircle.onResize()}}t.MainMenu=o},84283:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Screen=void 0;const o=a(i(58687));class r extends o.Container{constructor(){super()}getScreenWidth(){return window.innerWidth}getScreenHeight(){return window.innerHeight}}t.Screen=r},75341:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsCategory=t.Setting=void 0;const n=i(58293);var s;t.Setting=class{constructor(e){n.Settings.register({setting:this,data:e})}},function(e){e.General="General",e.Skin="Skin",e.Input="Input",e.UserInterface="User Interface",e.Gameplay="Gameplay",e.Rulesets="Rulesets",e.Audio="Audio",e.Graphics="Graphics",e.Online="Online",e.Maintenance="Maintenance",e.Debug="Debug"}(s||(t.SettingsCategory=s={}))},74975:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.DropdownSetting=void 0;const n=i(75341);class s extends n.Setting{value;getValue(){if(!this.value)throw new Error("Value is undefined!");return this.value}setValue(e){this.value=e}}t.DropdownSetting=s},78642:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.RangeSetting=void 0;const n=i(75341);class s extends n.Setting{value=0;getValue(){return this.value}setValue(e){this.value=e}}t.RangeSetting=s},58293:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Settings=void 0;const n=i(64681),s=i(78642),a=i(44256),o=i(74975);t.Settings=class{static settingsList=[];constructor(){new a.Renderer,new n.UIScale}static register(e){this.settingsList.push(e)}static getRangeSetting(e){let t=!1;if(this.settingsList.forEach((i=>{if(i.data.name==e&&i.setting instanceof s.RangeSetting)return t=!0,i.setting})),!t)throw new Error("Invalid Setting Name!");return new n.UIScale}static getDropDownSetting(e){let t=!1;if(this.settingsList.forEach((i=>{if(i.data.name==e&&i.setting instanceof o.DropdownSetting)return t=!0,i.setting})),!t)throw new Error("Invalid Setting Name!");return new a.Renderer}static getList(){return this.settingsList}}},44256:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.Renderer=void 0;const n=i(75341),s=i(74975);class a extends s.DropdownSetting{list=[];webglOption={displayName:"WebGL",value:"webgl"};defaultValue=this.webglOption;constructor(){super({name:"Renderer",category:n.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.Renderer=a},64681:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.UIScale=void 0;const n=i(78642),s=i(75341);class a extends n.RangeSetting{maxValue=.8;minValue=1.6;increment=.1;defaultValue=1;constructor(){super({name:"UI scaling",category:s.SettingsCategory.Graphics}),this.value=this.defaultValue}}t.UIScale=a},17898:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapData=void 0;const n=i(85932),s=i(20352),a=i(32007),o=i(78878),r=i(54611);t.BeatmapData=class{General=new n.GeneralData;Editor=new s.EditorData;Metadata=new a.Metadata;Difficulty=new o.DifficultyData;Events=new r.EventsData}},78878:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.DifficultyData=void 0;t.DifficultyData=class{HPDrainRate;CircleSize;OverallDifficulty;ApproachRate;SliderMultiplier;SliderTickRate}},20352:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EditorData=void 0;t.EditorData=class{Bookmarks=[];DistanceSpacing;BeatDivisor;GridSize;TimelineZoom}},54611:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.EventsData=void 0;t.EventsData=class{Events=[]}},37940:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Countdown=void 0,function(e){e[e.NoCountdown=0]="NoCountdown",e[e.Normal=1]="Normal",e[e.Half=2]="Half",e[e.Double=3]="Double"}(i||(t.Countdown=i={}))},85932:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.GeneralData=void 0;const n=i(37940),s=i(41080),a=i(90857),o=i(45274);t.GeneralData=class{AudioFileName;AudioLeadIn=0;AudioHash;PreviewTime=-1;Countdown=n.Countdown.Normal;SampleSet=s.SampleSet.Normal;StackLeniency=.7;Mode=a.Mode.OSU;LetterboxInBreaks=!1;StoryFireInFront=!0;UseSkinSprites=!1;AlwaysShowPlayfield=!1;OverlayPosition=o.OverlayPosition.NoChange;SkinPreference;EpilepsyWarning=!1;CountdownOffset=0;SpecialStyle=!1;WidescreenStoryboard=!1;SamplesMatchPlaybackRate=!1}},90857:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.Mode=void 0,function(e){e[e.OSU=0]="OSU",e[e.TAIKO=1]="TAIKO",e[e.CATCH=2]="CATCH",e[e.MANIA=3]="MANIA"}(i||(t.Mode=i={}))},45274:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.OverlayPosition=void 0,function(e){e.NoChange="NoChange",e.Below="Below",e.Above="Above"}(i||(t.OverlayPosition=i={}))},41080:function(e,t){var i;Object.defineProperty(t,"__esModule",{value:!0}),t.SampleSet=void 0,function(e){e.Normal="Normal",e.Soft="Soft",e.Drum="Drum"}(i||(t.SampleSet=i={}))},32007:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;t.Metadata=class{Title;TitleUnicode;Artist;ArtistUnicode;Creator;Version;Source;Tags;BeatmapID;BeatmapSetID}},9752:function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0}),t.BeatmapParser=void 0;const n=i(17898);t.BeatmapParser=class{static parse(e,t){return new n.BeatmapData}}},29820:function(e,t,i){i(11307);const n=i(58687),s=i(20825),a=i(58293),o=window.innerWidth,r=window.innerHeight,l=new n.Application;window.onload=async()=>{new a.Settings;let e=a.Settings.getDropDownSetting("Renderer").getValue().value;l.init({backgroundColor:"black",width:o,height:r,antialias:!0,preference:e,resolution:window.devicePixelRatio,autoDensity:!0}).then((()=>{new s.Main(l)}))}},20825:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,s)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&n(t,e,i);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Main=void 0;const o=i(76969),r=a(i(58687)),l=i(25373),u=i(12235),d=i(55686);class h{static app;static currentScreen;static allScreens=[];static clickArea=new r.Graphics;static mousePos={x:0,y:0};static pointerLockExitTime;static doPointerLock=!1;static cursor;constructor(e){h.app=e,document.body.appendChild(h.app.canvas),this.doResize(),window.addEventListener("resize",this.doResize),h.app.stage.eventMode="static",h.app.stage.addEventListener("mousemove",(e=>{h.mousePos.x=e.clientX,h.mousePos.y=e.clientY,h.cursor&&h.cursor.updateMouse()})),document.addEventListener("pointerlockchange",this.pointerLockChanged,!1),h.switchScreen(new o.LoadScreen),navigator.mediaSession.setActionHandler("play",(function(){})),navigator.mediaSession.setActionHandler("pause",(function(){})),navigator.mediaSession.setActionHandler("stop",(function(){})),navigator.mediaSession.setActionHandler("seekbackward",(function(){})),navigator.mediaSession.setActionHandler("seekforward",(function(){})),navigator.mediaSession.setActionHandler("previoustrack",(function(){})),navigator.mediaSession.setActionHandler("nexttrack",(function(){})),u.Loader.Load().then((()=>{h.cursor=new d.MenuCursor,h.cursor.PopOut();let e=u.Loader.Get("sample_dialog_ok"),t=u.Loader.Get("introTrianglesTrack");h.switchScreen(new l.InteractScreen(t,e))}))}doResize(){h.app.renderer.resize(window.innerWidth,window.innerHeight),h.app.stage.scale.x=1,h.app.stage.scale.y=1,h.clickArea.destroyed||(h.clickArea.width=window.innerWidth,h.clickArea.height=window.innerHeight,h.clickArea.position.set(0,0)),h.allScreens.forEach((e=>{e.onResize()}))}pointerLockChanged(){!document.pointerLockElement&&h.doPointerLock?(r.EventSystem.isPointerLocked=!1,h.pointerLockExitTime=Date.now(),h.clickArea=new r.Graphics,h.clickArea.rect(0,0,1,1),h.clickArea.fill("rgba(0,0,0,0.1)"),h.clickArea.width=window.innerWidth,h.clickArea.height=window.innerHeight,h.clickArea.position.set(0,0),h.app.stage.addChild(h.clickArea),h.clickArea.eventMode="static",h.clickArea.cursor="pointer",h.cursor.PopOut(),h.clickArea.zIndex=9999999,h.clickArea.onclick=()=>{Date.now()-h.pointerLockExitTime<1500||(h.clickArea.removeFromParent(),h.clickArea.destroy(),h.pointerLock(),h.cursor.PopIn())}):r.EventSystem.isPointerLocked=!0}static pointerLock(){this.doPointerLock=!0,h.app.canvas.requestPointerLock({unadjustedMovement:!0})}static exitPointerLock(){this.doPointerLock=!1,h.app.canvas.exitPointerLock()}static switchScreen(e){null!=this.currentScreen&&(this.currentScreen.zIndex=1,this.currentScreen.onClose().then((e=>{for(let t=0;t=a)&&Object.keys(n.O).every((function(e){return n.O[e](i[l])}))?i.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[i,s,a]},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var s,a,o=i[0],r=i[1],l=i[2],u=0;if(o.some((function(t){return 0!==e[t]}))){for(s in r)n.o(r,s)&&(n.m[s]=r[s]);if(l)var d=l(n)}for(t&&t(i);ukosu! \ No newline at end of file +kosu! \ No newline at end of file