diff --git a/docs/.vitepress/config/navbar.ts b/docs/.vitepress/config/navbar.ts index 19d7ca2..4631ab4 100644 --- a/docs/.vitepress/config/navbar.ts +++ b/docs/.vitepress/config/navbar.ts @@ -1,5 +1,6 @@ export default [ { text: 'Guide', link: '/guide/' }, + { text: 'Demo', link: '/guide/demo/' }, // { text: '接口', link: '/api/' }, // { text: '模块中心', link: '/modules/' }, { text: 'Log', link: 'https://github.com/biyuehu/misakura/blob/master/CHANGELOG.md' } diff --git a/docs/src/guide/demo.md b/docs/src/guide/demo.md index 02f7fb3..96b3ad7 100644 --- a/docs/src/guide/demo.md +++ b/docs/src/guide/demo.md @@ -1,4 +1,4 @@ # Demo -Demo +Misakura ~ Demo diff --git a/docs/src/public/.gitattributes b/docs/src/public/.gitattributes new file mode 100644 index 0000000..05ff665 --- /dev/null +++ b/docs/src/public/.gitattributes @@ -0,0 +1 @@ +./**/* linguist-detectable=false \ No newline at end of file diff --git a/docs/src/public/assets/index-BMcJ6zOx.js b/docs/src/public/assets/index-BMcJ6zOx.js new file mode 100644 index 0000000..7ec819c --- /dev/null +++ b/docs/src/public/assets/index-BMcJ6zOx.js @@ -0,0 +1,1249 @@ +var fr=Object.defineProperty;var pr=(Z,_,Y)=>_ in Z?fr(Z,_,{enumerable:!0,configurable:!0,writable:!0,value:Y}):Z[_]=Y;var be=(Z,_,Y)=>pr(Z,typeof _!="symbol"?_+"":_,Y);(function(){const _=document.createElement("link").relList;if(_&&_.supports&&_.supports("modulepreload"))return;for(const te of document.querySelectorAll('link[rel="modulepreload"]'))ee(te);new MutationObserver(te=>{for(const re of te)if(re.type==="childList")for(const ne of re.addedNodes)ne.tagName==="LINK"&&ne.rel==="modulepreload"&&ee(ne)}).observe(document,{childList:!0,subtree:!0});function Y(te){const re={};return te.integrity&&(re.integrity=te.integrity),te.referrerPolicy&&(re.referrerPolicy=te.referrerPolicy),te.crossOrigin==="use-credentials"?re.credentials="include":te.crossOrigin==="anonymous"?re.credentials="omit":re.credentials="same-origin",re}function ee(te){if(te.ep)return;te.ep=!0;const re=Y(te);fetch(te.href,re)}})();var ENV=(Z=>(Z[Z.WEBGL_LEGACY=0]="WEBGL_LEGACY",Z[Z.WEBGL=1]="WEBGL",Z[Z.WEBGL2=2]="WEBGL2",Z))(ENV||{}),RENDERER_TYPE=(Z=>(Z[Z.UNKNOWN=0]="UNKNOWN",Z[Z.WEBGL=1]="WEBGL",Z[Z.CANVAS=2]="CANVAS",Z))(RENDERER_TYPE||{}),BUFFER_BITS=(Z=>(Z[Z.COLOR=16384]="COLOR",Z[Z.DEPTH=256]="DEPTH",Z[Z.STENCIL=1024]="STENCIL",Z))(BUFFER_BITS||{}),BLEND_MODES=(Z=>(Z[Z.NORMAL=0]="NORMAL",Z[Z.ADD=1]="ADD",Z[Z.MULTIPLY=2]="MULTIPLY",Z[Z.SCREEN=3]="SCREEN",Z[Z.OVERLAY=4]="OVERLAY",Z[Z.DARKEN=5]="DARKEN",Z[Z.LIGHTEN=6]="LIGHTEN",Z[Z.COLOR_DODGE=7]="COLOR_DODGE",Z[Z.COLOR_BURN=8]="COLOR_BURN",Z[Z.HARD_LIGHT=9]="HARD_LIGHT",Z[Z.SOFT_LIGHT=10]="SOFT_LIGHT",Z[Z.DIFFERENCE=11]="DIFFERENCE",Z[Z.EXCLUSION=12]="EXCLUSION",Z[Z.HUE=13]="HUE",Z[Z.SATURATION=14]="SATURATION",Z[Z.COLOR=15]="COLOR",Z[Z.LUMINOSITY=16]="LUMINOSITY",Z[Z.NORMAL_NPM=17]="NORMAL_NPM",Z[Z.ADD_NPM=18]="ADD_NPM",Z[Z.SCREEN_NPM=19]="SCREEN_NPM",Z[Z.NONE=20]="NONE",Z[Z.SRC_OVER=0]="SRC_OVER",Z[Z.SRC_IN=21]="SRC_IN",Z[Z.SRC_OUT=22]="SRC_OUT",Z[Z.SRC_ATOP=23]="SRC_ATOP",Z[Z.DST_OVER=24]="DST_OVER",Z[Z.DST_IN=25]="DST_IN",Z[Z.DST_OUT=26]="DST_OUT",Z[Z.DST_ATOP=27]="DST_ATOP",Z[Z.ERASE=26]="ERASE",Z[Z.SUBTRACT=28]="SUBTRACT",Z[Z.XOR=29]="XOR",Z))(BLEND_MODES||{}),DRAW_MODES=(Z=>(Z[Z.POINTS=0]="POINTS",Z[Z.LINES=1]="LINES",Z[Z.LINE_LOOP=2]="LINE_LOOP",Z[Z.LINE_STRIP=3]="LINE_STRIP",Z[Z.TRIANGLES=4]="TRIANGLES",Z[Z.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",Z[Z.TRIANGLE_FAN=6]="TRIANGLE_FAN",Z))(DRAW_MODES||{}),FORMATS=(Z=>(Z[Z.RGBA=6408]="RGBA",Z[Z.RGB=6407]="RGB",Z[Z.RG=33319]="RG",Z[Z.RED=6403]="RED",Z[Z.RGBA_INTEGER=36249]="RGBA_INTEGER",Z[Z.RGB_INTEGER=36248]="RGB_INTEGER",Z[Z.RG_INTEGER=33320]="RG_INTEGER",Z[Z.RED_INTEGER=36244]="RED_INTEGER",Z[Z.ALPHA=6406]="ALPHA",Z[Z.LUMINANCE=6409]="LUMINANCE",Z[Z.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",Z[Z.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",Z[Z.DEPTH_STENCIL=34041]="DEPTH_STENCIL",Z))(FORMATS||{}),TARGETS=(Z=>(Z[Z.TEXTURE_2D=3553]="TEXTURE_2D",Z[Z.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",Z[Z.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",Z[Z.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",Z[Z.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",Z[Z.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",Z[Z.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",Z[Z.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",Z[Z.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",Z))(TARGETS||{}),TYPES=(Z=>(Z[Z.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",Z[Z.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",Z[Z.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",Z[Z.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",Z[Z.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",Z[Z.UNSIGNED_INT=5125]="UNSIGNED_INT",Z[Z.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",Z[Z.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",Z[Z.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",Z[Z.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",Z[Z.BYTE=5120]="BYTE",Z[Z.SHORT=5122]="SHORT",Z[Z.INT=5124]="INT",Z[Z.FLOAT=5126]="FLOAT",Z[Z.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",Z[Z.HALF_FLOAT=36193]="HALF_FLOAT",Z))(TYPES||{}),SAMPLER_TYPES=(Z=>(Z[Z.FLOAT=0]="FLOAT",Z[Z.INT=1]="INT",Z[Z.UINT=2]="UINT",Z))(SAMPLER_TYPES||{}),SCALE_MODES=(Z=>(Z[Z.NEAREST=0]="NEAREST",Z[Z.LINEAR=1]="LINEAR",Z))(SCALE_MODES||{}),WRAP_MODES=(Z=>(Z[Z.CLAMP=33071]="CLAMP",Z[Z.REPEAT=10497]="REPEAT",Z[Z.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",Z))(WRAP_MODES||{}),MIPMAP_MODES=(Z=>(Z[Z.OFF=0]="OFF",Z[Z.POW2=1]="POW2",Z[Z.ON=2]="ON",Z[Z.ON_MANUAL=3]="ON_MANUAL",Z))(MIPMAP_MODES||{}),ALPHA_MODES=(Z=>(Z[Z.NPM=0]="NPM",Z[Z.UNPACK=1]="UNPACK",Z[Z.PMA=2]="PMA",Z[Z.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",Z[Z.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",Z[Z.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",Z))(ALPHA_MODES||{}),CLEAR_MODES=(Z=>(Z[Z.NO=0]="NO",Z[Z.YES=1]="YES",Z[Z.AUTO=2]="AUTO",Z[Z.BLEND=0]="BLEND",Z[Z.CLEAR=1]="CLEAR",Z[Z.BLIT=2]="BLIT",Z))(CLEAR_MODES||{}),GC_MODES=(Z=>(Z[Z.AUTO=0]="AUTO",Z[Z.MANUAL=1]="MANUAL",Z))(GC_MODES||{}),PRECISION=(Z=>(Z.LOW="lowp",Z.MEDIUM="mediump",Z.HIGH="highp",Z))(PRECISION||{}),MASK_TYPES=(Z=>(Z[Z.NONE=0]="NONE",Z[Z.SCISSOR=1]="SCISSOR",Z[Z.STENCIL=2]="STENCIL",Z[Z.SPRITE=3]="SPRITE",Z[Z.COLOR=4]="COLOR",Z))(MASK_TYPES||{}),MSAA_QUALITY=(Z=>(Z[Z.NONE=0]="NONE",Z[Z.LOW=2]="LOW",Z[Z.MEDIUM=4]="MEDIUM",Z[Z.HIGH=8]="HIGH",Z))(MSAA_QUALITY||{}),BUFFER_TYPE=(Z=>(Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",Z))(BUFFER_TYPE||{});const BrowserAdapter$1={createCanvas:(Z,_)=>{const Y=document.createElement("canvas");return Y.width=Z,Y.height=_,Y},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(Z,_)=>fetch(Z,_),parseXML:Z=>new DOMParser().parseFromString(Z,"text/xml")},settings={ADAPTER:BrowserAdapter$1,RESOLUTION:1,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1};var appleIphone=/iPhone/i,appleIpod=/iPod/i,appleTablet=/iPad/i,appleUniversal=/\biOS-universal(?:.+)Mac\b/i,androidPhone=/\bAndroid(?:.+)Mobile\b/i,androidTablet=/Android/i,amazonPhone=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,amazonTablet=/Silk/i,windowsPhone=/Windows Phone/i,windowsTablet=/\bWindows(?:.+)ARM\b/i,otherBlackBerry=/BlackBerry/i,otherBlackBerry10=/BB10/i,otherOpera=/Opera Mini/i,otherChrome=/\b(CriOS|Chrome)(?:.+)Mobile/i,otherFirefox=/Mobile(?:.+)Firefox\b/i,isAppleTabletOnIos13=function(Z){return typeof Z<"u"&&Z.platform==="MacIntel"&&typeof Z.maxTouchPoints=="number"&&Z.maxTouchPoints>1&&typeof MSStream>"u"};function createMatch(Z){return function(_){return _.test(Z)}}function isMobile$1(Z){var _={userAgent:"",platform:"",maxTouchPoints:0};!Z&&typeof navigator<"u"?_={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof Z=="string"?_.userAgent=Z:Z&&Z.userAgent&&(_={userAgent:Z.userAgent,platform:Z.platform,maxTouchPoints:Z.maxTouchPoints||0});var Y=_.userAgent,ee=Y.split("[FBAN");typeof ee[1]<"u"&&(Y=ee[0]),ee=Y.split("Twitter"),typeof ee[1]<"u"&&(Y=ee[0]);var te=createMatch(Y),re={apple:{phone:te(appleIphone)&&!te(windowsPhone),ipod:te(appleIpod),tablet:!te(appleIphone)&&(te(appleTablet)||isAppleTabletOnIos13(_))&&!te(windowsPhone),universal:te(appleUniversal),device:(te(appleIphone)||te(appleIpod)||te(appleTablet)||te(appleUniversal)||isAppleTabletOnIos13(_))&&!te(windowsPhone)},amazon:{phone:te(amazonPhone),tablet:!te(amazonPhone)&&te(amazonTablet),device:te(amazonPhone)||te(amazonTablet)},android:{phone:!te(windowsPhone)&&te(amazonPhone)||!te(windowsPhone)&&te(androidPhone),tablet:!te(windowsPhone)&&!te(amazonPhone)&&!te(androidPhone)&&(te(amazonTablet)||te(androidTablet)),device:!te(windowsPhone)&&(te(amazonPhone)||te(amazonTablet)||te(androidPhone)||te(androidTablet))||te(/\bokhttp\b/i)},windows:{phone:te(windowsPhone),tablet:te(windowsTablet),device:te(windowsPhone)||te(windowsTablet)},other:{blackberry:te(otherBlackBerry),blackberry10:te(otherBlackBerry10),opera:te(otherOpera),firefox:te(otherFirefox),chrome:te(otherChrome),device:te(otherBlackBerry)||te(otherBlackBerry10)||te(otherOpera)||te(otherFirefox)||te(otherChrome)},any:!1,phone:!1,tablet:!1};return re.any=re.apple.device||re.android.device||re.windows.device||re.other.device,re.phone=re.apple.phone||re.android.phone||re.windows.phone,re.tablet=re.apple.tablet||re.android.tablet||re.windows.tablet,re}const isMobileCall=isMobile$1.default??isMobile$1,isMobile=isMobileCall(globalThis.navigator);settings.RETINA_PREFIX=/@([0-9\.]+)x/;settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(Z){return Z&&Z.__esModule&&Object.prototype.hasOwnProperty.call(Z,"default")?Z.default:Z}function getAugmentedNamespace(Z){if(Z.__esModule)return Z;var _=Z.default;if(typeof _=="function"){var Y=function ee(){return this instanceof ee?Reflect.construct(_,arguments,this.constructor):_.apply(this,arguments)};Y.prototype=_.prototype}else Y={};return Object.defineProperty(Y,"__esModule",{value:!0}),Object.keys(Z).forEach(function(ee){var te=Object.getOwnPropertyDescriptor(Z,ee);Object.defineProperty(Y,ee,te.get?te:{enumerable:!0,get:function(){return Z[ee]}})}),Y}var eventemitter3={exports:{}};(function(Z){var _=Object.prototype.hasOwnProperty,Y="~";function ee(){}Object.create&&(ee.prototype=Object.create(null),new ee().__proto__||(Y=!1));function te(se,ae,ue){this.fn=se,this.context=ae,this.once=ue||!1}function re(se,ae,ue,oe,le){if(typeof ue!="function")throw new TypeError("The listener must be a function");var ce=new te(ue,oe||se,le),he=Y?Y+ae:ae;return se._events[he]?se._events[he].fn?se._events[he]=[se._events[he],ce]:se._events[he].push(ce):(se._events[he]=ce,se._eventsCount++),se}function ne(se,ae){--se._eventsCount===0?se._events=new ee:delete se._events[ae]}function ie(){this._events=new ee,this._eventsCount=0}ie.prototype.eventNames=function(){var ae=[],ue,oe;if(this._eventsCount===0)return ae;for(oe in ue=this._events)_.call(ue,oe)&&ae.push(Y?oe.slice(1):oe);return Object.getOwnPropertySymbols?ae.concat(Object.getOwnPropertySymbols(ue)):ae},ie.prototype.listeners=function(ae){var ue=Y?Y+ae:ae,oe=this._events[ue];if(!oe)return[];if(oe.fn)return[oe.fn];for(var le=0,ce=oe.length,he=new Array(ce);le80*Y){ie=ae=Z[0],se=ue=Z[1];for(var he=Y;heae&&(ae=oe),le>ue&&(ue=le);ce=Math.max(ae-ie,ue-se),ce=ce!==0?32767/ce:0}return earcutLinked(re,ne,Y,ie,se,ce,0),ne}function linkedList(Z,_,Y,ee,te){var re,ne;if(te===signedArea(Z,_,Y,ee)>0)for(re=_;re=_;re-=ee)ne=insertNode(re,Z[re],Z[re+1],ne);return ne&&equals(ne,ne.next)&&(removeNode(ne),ne=ne.next),ne}function filterPoints(Z,_){if(!Z)return Z;_||(_=Z);var Y=Z,ee;do if(ee=!1,!Y.steiner&&(equals(Y,Y.next)||area(Y.prev,Y,Y.next)===0)){if(removeNode(Y),Y=_=Y.prev,Y===Y.next)break;ee=!0}else Y=Y.next;while(ee||Y!==_);return _}function earcutLinked(Z,_,Y,ee,te,re,ne){if(Z){!ne&&re&&indexCurve(Z,ee,te,re);for(var ie=Z,se,ae;Z.prev!==Z.next;){if(se=Z.prev,ae=Z.next,re?isEarHashed(Z,ee,te,re):isEar(Z)){_.push(se.i/Y|0),_.push(Z.i/Y|0),_.push(ae.i/Y|0),removeNode(Z),Z=ae.next,ie=ae.next;continue}if(Z=ae,Z===ie){ne?ne===1?(Z=cureLocalIntersections(filterPoints(Z),_,Y),earcutLinked(Z,_,Y,ee,te,re,2)):ne===2&&splitEarcut(Z,_,Y,ee,te,re):earcutLinked(filterPoints(Z),_,Y,ee,te,re,1);break}}}}function isEar(Z){var _=Z.prev,Y=Z,ee=Z.next;if(area(_,Y,ee)>=0)return!1;for(var te=_.x,re=Y.x,ne=ee.x,ie=_.y,se=Y.y,ae=ee.y,ue=tere?te>ne?te:ne:re>ne?re:ne,ce=ie>se?ie>ae?ie:ae:se>ae?se:ae,he=ee.next;he!==_;){if(he.x>=ue&&he.x<=le&&he.y>=oe&&he.y<=ce&&pointInTriangle(te,ie,re,se,ne,ae,he.x,he.y)&&area(he.prev,he,he.next)>=0)return!1;he=he.next}return!0}function isEarHashed(Z,_,Y,ee){var te=Z.prev,re=Z,ne=Z.next;if(area(te,re,ne)>=0)return!1;for(var ie=te.x,se=re.x,ae=ne.x,ue=te.y,oe=re.y,le=ne.y,ce=iese?ie>ae?ie:ae:se>ae?se:ae,de=ue>oe?ue>le?ue:le:oe>le?oe:le,pe=zOrder(ce,he,_,Y,ee),_e=zOrder(fe,de,_,Y,ee),me=Z.prevZ,ge=Z.nextZ;me&&me.z>=pe&&ge&&ge.z<=_e;){if(me.x>=ce&&me.x<=fe&&me.y>=he&&me.y<=de&&me!==te&&me!==ne&&pointInTriangle(ie,ue,se,oe,ae,le,me.x,me.y)&&area(me.prev,me,me.next)>=0||(me=me.prevZ,ge.x>=ce&&ge.x<=fe&&ge.y>=he&&ge.y<=de&&ge!==te&&ge!==ne&&pointInTriangle(ie,ue,se,oe,ae,le,ge.x,ge.y)&&area(ge.prev,ge,ge.next)>=0))return!1;ge=ge.nextZ}for(;me&&me.z>=pe;){if(me.x>=ce&&me.x<=fe&&me.y>=he&&me.y<=de&&me!==te&&me!==ne&&pointInTriangle(ie,ue,se,oe,ae,le,me.x,me.y)&&area(me.prev,me,me.next)>=0)return!1;me=me.prevZ}for(;ge&&ge.z<=_e;){if(ge.x>=ce&&ge.x<=fe&&ge.y>=he&&ge.y<=de&&ge!==te&&ge!==ne&&pointInTriangle(ie,ue,se,oe,ae,le,ge.x,ge.y)&&area(ge.prev,ge,ge.next)>=0)return!1;ge=ge.nextZ}return!0}function cureLocalIntersections(Z,_,Y){var ee=Z;do{var te=ee.prev,re=ee.next.next;!equals(te,re)&&intersects(te,ee,ee.next,re)&&locallyInside(te,re)&&locallyInside(re,te)&&(_.push(te.i/Y|0),_.push(ee.i/Y|0),_.push(re.i/Y|0),removeNode(ee),removeNode(ee.next),ee=Z=re),ee=ee.next}while(ee!==Z);return filterPoints(ee)}function splitEarcut(Z,_,Y,ee,te,re){var ne=Z;do{for(var ie=ne.next.next;ie!==ne.prev;){if(ne.i!==ie.i&&isValidDiagonal(ne,ie)){var se=splitPolygon(ne,ie);ne=filterPoints(ne,ne.next),se=filterPoints(se,se.next),earcutLinked(ne,_,Y,ee,te,re,0),earcutLinked(se,_,Y,ee,te,re,0);return}ie=ie.next}ne=ne.next}while(ne!==Z)}function eliminateHoles(Z,_,Y,ee){var te=[],re,ne,ie,se,ae;for(re=0,ne=_.length;re=Y.next.y&&Y.next.y!==Y.y){var ie=Y.x+(te-Y.y)*(Y.next.x-Y.x)/(Y.next.y-Y.y);if(ie<=ee&&ie>re&&(re=ie,ne=Y.x=Y.x&&Y.x>=ae&&ee!==Y.x&&pointInTriangle(tene.x||Y.x===ne.x&§orContainsSector(ne,Y)))&&(ne=Y,oe=le)),Y=Y.next;while(Y!==se);return ne}function sectorContainsSector(Z,_){return area(Z.prev,Z,_.prev)<0&&area(_.next,Z,Z.next)<0}function indexCurve(Z,_,Y,ee){var te=Z;do te.z===0&&(te.z=zOrder(te.x,te.y,_,Y,ee)),te.prevZ=te.prev,te.nextZ=te.next,te=te.next;while(te!==Z);te.prevZ.nextZ=null,te.prevZ=null,sortLinked(te)}function sortLinked(Z){var _,Y,ee,te,re,ne,ie,se,ae=1;do{for(Y=Z,Z=null,re=null,ne=0;Y;){for(ne++,ee=Y,ie=0,_=0;_0||se>0&ⅇ)ie!==0&&(se===0||!ee||Y.z<=ee.z)?(te=Y,Y=Y.nextZ,ie--):(te=ee,ee=ee.nextZ,se--),re?re.nextZ=te:Z=te,te.prevZ=re,re=te;Y=ee}re.nextZ=null,ae*=2}while(ne>1);return Z}function zOrder(Z,_,Y,ee,te){return Z=(Z-Y)*te|0,_=(_-ee)*te|0,Z=(Z|Z<<8)&16711935,Z=(Z|Z<<4)&252645135,Z=(Z|Z<<2)&858993459,Z=(Z|Z<<1)&1431655765,_=(_|_<<8)&16711935,_=(_|_<<4)&252645135,_=(_|_<<2)&858993459,_=(_|_<<1)&1431655765,Z|_<<1}function getLeftmost(Z){var _=Z,Y=Z;do(_.x=(Z-ne)*(re-ie)&&(Z-ne)*(ee-ie)>=(Y-ne)*(_-ie)&&(Y-ne)*(re-ie)>=(te-ne)*(ee-ie)}function isValidDiagonal(Z,_){return Z.next.i!==_.i&&Z.prev.i!==_.i&&!intersectsPolygon(Z,_)&&(locallyInside(Z,_)&&locallyInside(_,Z)&&middleInside(Z,_)&&(area(Z.prev,Z,_.prev)||area(Z,_.prev,_))||equals(Z,_)&&area(Z.prev,Z,Z.next)>0&&area(_.prev,_,_.next)>0)}function area(Z,_,Y){return(_.y-Z.y)*(Y.x-_.x)-(_.x-Z.x)*(Y.y-_.y)}function equals(Z,_){return Z.x===_.x&&Z.y===_.y}function intersects(Z,_,Y,ee){var te=sign$1(area(Z,_,Y)),re=sign$1(area(Z,_,ee)),ne=sign$1(area(Y,ee,Z)),ie=sign$1(area(Y,ee,_));return!!(te!==re&&ne!==ie||te===0&&onSegment(Z,Y,_)||re===0&&onSegment(Z,ee,_)||ne===0&&onSegment(Y,Z,ee)||ie===0&&onSegment(Y,_,ee))}function onSegment(Z,_,Y){return _.x<=Math.max(Z.x,Y.x)&&_.x>=Math.min(Z.x,Y.x)&&_.y<=Math.max(Z.y,Y.y)&&_.y>=Math.min(Z.y,Y.y)}function sign$1(Z){return Z>0?1:Z<0?-1:0}function intersectsPolygon(Z,_){var Y=Z;do{if(Y.i!==Z.i&&Y.next.i!==Z.i&&Y.i!==_.i&&Y.next.i!==_.i&&intersects(Y,Y.next,Z,_))return!0;Y=Y.next}while(Y!==Z);return!1}function locallyInside(Z,_){return area(Z.prev,Z,Z.next)<0?area(Z,_,Z.next)>=0&&area(Z,Z.prev,_)>=0:area(Z,_,Z.prev)<0||area(Z,Z.next,_)<0}function middleInside(Z,_){var Y=Z,ee=!1,te=(Z.x+_.x)/2,re=(Z.y+_.y)/2;do Y.y>re!=Y.next.y>re&&Y.next.y!==Y.y&&te<(Y.next.x-Y.x)*(re-Y.y)/(Y.next.y-Y.y)+Y.x&&(ee=!ee),Y=Y.next;while(Y!==Z);return ee}function splitPolygon(Z,_){var Y=new Node(Z.i,Z.x,Z.y),ee=new Node(_.i,_.x,_.y),te=Z.next,re=_.prev;return Z.next=_,_.prev=Z,Y.next=te,te.prev=Y,ee.next=Y,Y.prev=ee,re.next=ee,ee.prev=re,ee}function insertNode(Z,_,Y,ee){var te=new Node(Z,_,Y);return ee?(te.next=ee.next,te.prev=ee,ee.next.prev=te,ee.next=te):(te.prev=te,te.next=te),te}function removeNode(Z){Z.next.prev=Z.prev,Z.prev.next=Z.next,Z.prevZ&&(Z.prevZ.nextZ=Z.nextZ),Z.nextZ&&(Z.nextZ.prevZ=Z.prevZ)}function Node(Z,_,Y){this.i=Z,this.x=_,this.y=Y,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}earcut.deviation=function(Z,_,Y,ee){var te=_&&_.length,re=te?_[0]*Y:Z.length,ne=Math.abs(signedArea(Z,0,re,Y));if(te)for(var ie=0,se=_.length;ie0&&(ee+=Z[te-1].length,Y.holes.push(ee))}return Y};var earcutExports=earcut$2.exports;const earcut$1=getDefaultExportFromCjs(earcutExports);var punycode$1={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */punycode$1.exports;(function(Z,_){(function(Y){var ee=_&&!_.nodeType&&_,te=Z&&!Z.nodeType&&Z,re=typeof commonjsGlobal=="object"&&commonjsGlobal;(re.global===re||re.window===re||re.self===re)&&(Y=re);var ne,ie=2147483647,se=36,ae=1,ue=26,oe=38,le=700,ce=72,he=128,fe="-",de=/^xn--/,pe=/[^\x20-\x7E]/,_e=/[\x2E\u3002\uFF0E\uFF61]/g,me={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},ge=se-ae,ye=Math.floor,Ie=String.fromCharCode,Se;function Pe(Me){throw new RangeError(me[Me])}function Ae(Me,Le){for(var Ne=Me.length,ze=[];Ne--;)ze[Ne]=Le(Me[Ne]);return ze}function De(Me,Le){var Ne=Me.split("@"),ze="";Ne.length>1&&(ze=Ne[0]+"@",Me=Ne[1]),Me=Me.replace(_e,".");var Xe=Me.split("."),Ye=Ae(Xe,Le).join(".");return ze+Ye}function ke(Me){for(var Le=[],Ne=0,ze=Me.length,Xe,Ye;Ne=55296&&Xe<=56319&&Ne65535&&(Le-=65536,Ne+=Ie(Le>>>10&1023|55296),Le=56320|Le&1023),Ne+=Ie(Le),Ne}).join("")}function xe(Me){return Me-48<10?Me-22:Me-65<26?Me-65:Me-97<26?Me-97:se}function ve(Me,Le){return Me+22+75*(Me<26)-((Le!=0)<<5)}function Te(Me,Le,Ne){var ze=0;for(Me=Ne?ye(Me/le):Me>>1,Me+=ye(Me/Le);Me>ge*ue>>1;ze+=se)Me=ye(Me/ge);return ye(ze+(ge+1)*Me/(Me+oe))}function we(Me){var Le=[],Ne=Me.length,ze,Xe=0,Ye=he,tt=ce,rt,it,ot,Ze,Ke,et,nt,dt,ct;for(rt=Me.lastIndexOf(fe),rt<0&&(rt=0),it=0;it=128&&Pe("not-basic"),Le.push(Me.charCodeAt(it));for(ot=rt>0?rt+1:0;ot=Ne&&Pe("invalid-input"),nt=xe(Me.charCodeAt(ot++)),(nt>=se||nt>ye((ie-Xe)/Ke))&&Pe("overflow"),Xe+=nt*Ke,dt=et<=tt?ae:et>=tt+ue?ue:et-tt,!(ntye(ie/ct)&&Pe("overflow"),Ke*=ct;ze=Le.length+1,tt=Te(Xe-Ze,ze,Ze==0),ye(Xe/ze)>ie-Ye&&Pe("overflow"),Ye+=ye(Xe/ze),Xe%=ze,Le.splice(Xe++,0,Ye)}return Ce(Le)}function Re(Me){var Le,Ne,ze,Xe,Ye,tt,rt,it,ot,Ze,Ke,et=[],nt,dt,ct,gt;for(Me=ke(Me),nt=Me.length,Le=he,Ne=0,Ye=ce,tt=0;tt=Le&&Keye((ie-Ne)/dt)&&Pe("overflow"),Ne+=(rt-Le)*dt,Le=rt,tt=0;ttie&&Pe("overflow"),Ke==Le){for(it=Ne,ot=se;Ze=ot<=Ye?ae:ot>=Ye+ue?ue:ot-Ye,!(it"u"||!getProto?undefined$1:getProto(Uint8Array),INTRINSICS={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?undefined$1:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?undefined$1:ArrayBuffer,"%ArrayIteratorPrototype%":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined$1,"%AsyncFromSyncIteratorPrototype%":undefined$1,"%AsyncFunction%":needsEval,"%AsyncGenerator%":needsEval,"%AsyncGeneratorFunction%":needsEval,"%AsyncIteratorPrototype%":needsEval,"%Atomics%":typeof Atomics>"u"?undefined$1:Atomics,"%BigInt%":typeof BigInt>"u"?undefined$1:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?undefined$1:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?undefined$1:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?undefined$1:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":$Error,"%eval%":eval,"%EvalError%":$EvalError,"%Float32Array%":typeof Float32Array>"u"?undefined$1:Float32Array,"%Float64Array%":typeof Float64Array>"u"?undefined$1:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?undefined$1:FinalizationRegistry,"%Function%":$Function,"%GeneratorFunction%":needsEval,"%Int8Array%":typeof Int8Array>"u"?undefined$1:Int8Array,"%Int16Array%":typeof Int16Array>"u"?undefined$1:Int16Array,"%Int32Array%":typeof Int32Array>"u"?undefined$1:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined$1,"%JSON%":typeof JSON=="object"?JSON:undefined$1,"%Map%":typeof Map>"u"?undefined$1:Map,"%MapIteratorPrototype%":typeof Map>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?undefined$1:Promise,"%Proxy%":typeof Proxy>"u"?undefined$1:Proxy,"%RangeError%":$RangeError,"%ReferenceError%":$ReferenceError,"%Reflect%":typeof Reflect>"u"?undefined$1:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?undefined$1:Set,"%SetIteratorPrototype%":typeof Set>"u"||!hasSymbols||!getProto?undefined$1:getProto(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?undefined$1:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":hasSymbols&&getProto?getProto(""[Symbol.iterator]()):undefined$1,"%Symbol%":hasSymbols?Symbol:undefined$1,"%SyntaxError%":$SyntaxError$1,"%ThrowTypeError%":ThrowTypeError,"%TypedArray%":TypedArray,"%TypeError%":$TypeError$3,"%Uint8Array%":typeof Uint8Array>"u"?undefined$1:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?undefined$1:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?undefined$1:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?undefined$1:Uint32Array,"%URIError%":$URIError,"%WeakMap%":typeof WeakMap>"u"?undefined$1:WeakMap,"%WeakRef%":typeof WeakRef>"u"?undefined$1:WeakRef,"%WeakSet%":typeof WeakSet>"u"?undefined$1:WeakSet};if(getProto)try{null.error}catch(Z){var errorProto=getProto(getProto(Z));INTRINSICS["%Error.prototype%"]=errorProto}var doEval=function Z(_){var Y;if(_==="%AsyncFunction%")Y=getEvalledConstructor("async function () {}");else if(_==="%GeneratorFunction%")Y=getEvalledConstructor("function* () {}");else if(_==="%AsyncGeneratorFunction%")Y=getEvalledConstructor("async function* () {}");else if(_==="%AsyncGenerator%"){var ee=Z("%AsyncGeneratorFunction%");ee&&(Y=ee.prototype)}else if(_==="%AsyncIteratorPrototype%"){var te=Z("%AsyncGenerator%");te&&getProto&&(Y=getProto(te.prototype))}return INTRINSICS[_]=Y,Y},LEGACY_ALIASES={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},bind$1=functionBind,hasOwn$1=hasown,$concat$1=bind$1.call(Function.call,Array.prototype.concat),$spliceApply=bind$1.call(Function.apply,Array.prototype.splice),$replace$1=bind$1.call(Function.call,String.prototype.replace),$strSlice=bind$1.call(Function.call,String.prototype.slice),$exec=bind$1.call(Function.call,RegExp.prototype.exec),rePropName=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=function(_){var Y=$strSlice(_,0,1),ee=$strSlice(_,-1);if(Y==="%"&&ee!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected closing `%`");if(ee==="%"&&Y!=="%")throw new $SyntaxError$1("invalid intrinsic syntax, expected opening `%`");var te=[];return $replace$1(_,rePropName,function(re,ne,ie,se){te[te.length]=ie?$replace$1(se,reEscapeChar,"$1"):ne||re}),te},getBaseIntrinsic=function(_,Y){var ee=_,te;if(hasOwn$1(LEGACY_ALIASES,ee)&&(te=LEGACY_ALIASES[ee],ee="%"+te[0]+"%"),hasOwn$1(INTRINSICS,ee)){var re=INTRINSICS[ee];if(re===needsEval&&(re=doEval(ee)),typeof re>"u"&&!Y)throw new $TypeError$3("intrinsic "+_+" exists, but is not available. Please file an issue!");return{alias:te,name:ee,value:re}}throw new $SyntaxError$1("intrinsic "+_+" does not exist!")},getIntrinsic=function(_,Y){if(typeof _!="string"||_.length===0)throw new $TypeError$3("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof Y!="boolean")throw new $TypeError$3('"allowMissing" argument must be a boolean');if($exec(/^%?[^%]*%?$/,_)===null)throw new $SyntaxError$1("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ee=stringToPath(_),te=ee.length>0?ee[0]:"",re=getBaseIntrinsic("%"+te+"%",Y),ne=re.name,ie=re.value,se=!1,ae=re.alias;ae&&(te=ae[0],$spliceApply(ee,$concat$1([0,1],ae)));for(var ue=1,oe=!0;ue=ee.length){var fe=$gOPD$1(ie,le);oe=!!fe,oe&&"get"in fe&&!("originalValue"in fe.get)?ie=fe.get:ie=ie[le]}else oe=hasOwn$1(ie,le),ie=ie[le];oe&&!se&&(INTRINSICS[ne]=ie)}}return ie},callBind$1={exports:{}},esDefineProperty,hasRequiredEsDefineProperty;function requireEsDefineProperty(){if(hasRequiredEsDefineProperty)return esDefineProperty;hasRequiredEsDefineProperty=1;var Z=getIntrinsic,_=Z("%Object.defineProperty%",!0)||!1;if(_)try{_({},"a",{value:1})}catch{_=!1}return esDefineProperty=_,esDefineProperty}var GetIntrinsic$3=getIntrinsic,$gOPD=GetIntrinsic$3("%Object.getOwnPropertyDescriptor%",!0);if($gOPD)try{$gOPD([],"length")}catch{$gOPD=null}var gopd$1=$gOPD,$defineProperty$1=requireEsDefineProperty(),$SyntaxError=syntax,$TypeError$2=type,gopd=gopd$1,defineDataProperty=function(_,Y,ee){if(!_||typeof _!="object"&&typeof _!="function")throw new $TypeError$2("`obj` must be an object or a function`");if(typeof Y!="string"&&typeof Y!="symbol")throw new $TypeError$2("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new $TypeError$2("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new $TypeError$2("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new $TypeError$2("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new $TypeError$2("`loose`, if provided, must be a boolean");var te=arguments.length>3?arguments[3]:null,re=arguments.length>4?arguments[4]:null,ne=arguments.length>5?arguments[5]:null,ie=arguments.length>6?arguments[6]:!1,se=!!gopd&&gopd(_,Y);if($defineProperty$1)$defineProperty$1(_,Y,{configurable:ne===null&&se?se.configurable:!ne,enumerable:te===null&&se?se.enumerable:!te,value:ee,writable:re===null&&se?se.writable:!re});else if(ie||!te&&!re&&!ne)_[Y]=ee;else throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},$defineProperty=requireEsDefineProperty(),hasPropertyDescriptors=function(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function(){if(!$defineProperty)return null;try{return $defineProperty([],"length",{value:1}).length!==1}catch{return!0}};var hasPropertyDescriptors_1=hasPropertyDescriptors,GetIntrinsic$2=getIntrinsic,define=defineDataProperty,hasDescriptors=hasPropertyDescriptors_1(),gOPD=gopd$1,$TypeError$1=type,$floor$1=GetIntrinsic$2("%Math.floor%"),setFunctionLength=function(_,Y){if(typeof _!="function")throw new $TypeError$1("`fn` is not a function");if(typeof Y!="number"||Y<0||Y>4294967295||$floor$1(Y)!==Y)throw new $TypeError$1("`length` must be a positive 32-bit integer");var ee=arguments.length>2&&!!arguments[2],te=!0,re=!0;if("length"in _&&gOPD){var ne=gOPD(_,"length");ne&&!ne.configurable&&(te=!1),ne&&!ne.writable&&(re=!1)}return(te||re||!ee)&&(hasDescriptors?define(_,"length",Y,!0,!0):define(_,"length",Y)),_};(function(Z){var _=functionBind,Y=getIntrinsic,ee=setFunctionLength,te=type,re=Y("%Function.prototype.apply%"),ne=Y("%Function.prototype.call%"),ie=Y("%Reflect.apply%",!0)||_.call(ne,re),se=requireEsDefineProperty(),ae=Y("%Math.max%");Z.exports=function(le){if(typeof le!="function")throw new te("a function is required");var ce=ie(_,ne,arguments);return ee(ce,1+ae(0,le.length-(arguments.length-1)),!0)};var ue=function(){return ie(_,re,arguments)};se?se(Z.exports,"apply",{value:ue}):Z.exports.apply=ue})(callBind$1);var callBindExports=callBind$1.exports,GetIntrinsic$1=getIntrinsic,callBind=callBindExports,$indexOf=callBind(GetIntrinsic$1("String.prototype.indexOf")),callBound$1=function(_,Y){var ee=GetIntrinsic$1(_,!!Y);return typeof ee=="function"&&$indexOf(_,".prototype.")>-1?callBind(ee):ee};const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$3=getAugmentedNamespace(__viteBrowserExternal$1);var hasMap=typeof Map=="function"&&Map.prototype,mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mapSize$1=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get=="function"?mapSizeDescriptor.get:null,mapForEach=hasMap&&Map.prototype.forEach,hasSet=typeof Set=="function"&&Set.prototype,setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get=="function"?setSizeDescriptor.get:null,setForEach=hasSet&&Set.prototype.forEach,hasWeakMap=typeof WeakMap=="function"&&WeakMap.prototype,weakMapHas=hasWeakMap?WeakMap.prototype.has:null,hasWeakSet=typeof WeakSet=="function"&&WeakSet.prototype,weakSetHas=hasWeakSet?WeakSet.prototype.has:null,hasWeakRef=typeof WeakRef=="function"&&WeakRef.prototype,weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null,booleanValueOf=Boolean.prototype.valueOf,objectToString=Object.prototype.toString,functionToString=Function.prototype.toString,$match=String.prototype.match,$slice=String.prototype.slice,$replace=String.prototype.replace,$toUpperCase=String.prototype.toUpperCase,$toLowerCase=String.prototype.toLowerCase,$test=RegExp.prototype.test,$concat=Array.prototype.concat,$join=Array.prototype.join,$arrSlice=Array.prototype.slice,$floor=Math.floor,bigIntValueOf=typeof BigInt=="function"?BigInt.prototype.valueOf:null,gOPS=Object.getOwnPropertySymbols,symToString=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,hasShammedSymbols=typeof Symbol=="function"&&typeof Symbol.iterator=="object",toStringTag=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols||!0)?Symbol.toStringTag:null,isEnumerable=Object.prototype.propertyIsEnumerable,gPO=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(Z){return Z.__proto__}:null);function addNumericSeparator(Z,_){if(Z===1/0||Z===-1/0||Z!==Z||Z&&Z>-1e3&&Z<1e3||$test.call(/e/,_))return _;var Y=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof Z=="number"){var ee=Z<0?-$floor(-Z):$floor(Z);if(ee!==Z){var te=String(ee),re=$slice.call(_,te.length+1);return $replace.call(te,Y,"$&_")+"."+$replace.call($replace.call(re,/([0-9]{3})/g,"$&_"),/_$/,"")}}return $replace.call(_,Y,"$&_")}var utilInspect=require$$3,inspectCustom=utilInspect.custom,inspectSymbol=isSymbol(inspectCustom)?inspectCustom:null,objectInspect=function Z(_,Y,ee,te){var re=Y||{};if(has$3(re,"quoteStyle")&&re.quoteStyle!=="single"&&re.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(has$3(re,"maxStringLength")&&(typeof re.maxStringLength=="number"?re.maxStringLength<0&&re.maxStringLength!==1/0:re.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var ne=has$3(re,"customInspect")?re.customInspect:!0;if(typeof ne!="boolean"&&ne!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(has$3(re,"indent")&&re.indent!==null&&re.indent!==" "&&!(parseInt(re.indent,10)===re.indent&&re.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(has$3(re,"numericSeparator")&&typeof re.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var ie=re.numericSeparator;if(typeof _>"u")return"undefined";if(_===null)return"null";if(typeof _=="boolean")return _?"true":"false";if(typeof _=="string")return inspectString(_,re);if(typeof _=="number"){if(_===0)return 1/0/_>0?"0":"-0";var se=String(_);return ie?addNumericSeparator(_,se):se}if(typeof _=="bigint"){var ae=String(_)+"n";return ie?addNumericSeparator(_,ae):ae}var ue=typeof re.depth>"u"?5:re.depth;if(typeof ee>"u"&&(ee=0),ee>=ue&&ue>0&&typeof _=="object")return isArray$4(_)?"[Array]":"[Object]";var oe=getIndent(re,ee);if(typeof te>"u")te=[];else if(indexOf(te,_)>=0)return"[Circular]";function le(xe,ve,Te){if(ve&&(te=$arrSlice.call(te),te.push(ve)),Te){var we={depth:re.depth};return has$3(re,"quoteStyle")&&(we.quoteStyle=re.quoteStyle),Z(xe,we,ee+1,te)}return Z(xe,re,ee+1,te)}if(typeof _=="function"&&!isRegExp$2(_)){var ce=nameOf(_),he=arrObjKeys(_,le);return"[Function"+(ce?": "+ce:" (anonymous)")+"]"+(he.length>0?" { "+$join.call(he,", ")+" }":"")}if(isSymbol(_)){var fe=hasShammedSymbols?$replace.call(String(_),/^(Symbol\(.*\))_[^)]*$/,"$1"):symToString.call(_);return typeof _=="object"&&!hasShammedSymbols?markBoxed(fe):fe}if(isElement(_)){for(var de="<"+$toLowerCase.call(String(_.nodeName)),pe=_.attributes||[],_e=0;_e",de}if(isArray$4(_)){if(_.length===0)return"[]";var me=arrObjKeys(_,le);return oe&&!singleLineValues(me)?"["+indentedJoin(me,oe)+"]":"[ "+$join.call(me,", ")+" ]"}if(isError(_)){var ge=arrObjKeys(_,le);return!("cause"in Error.prototype)&&"cause"in _&&!isEnumerable.call(_,"cause")?"{ ["+String(_)+"] "+$join.call($concat.call("[cause]: "+le(_.cause),ge),", ")+" }":ge.length===0?"["+String(_)+"]":"{ ["+String(_)+"] "+$join.call(ge,", ")+" }"}if(typeof _=="object"&&ne){if(inspectSymbol&&typeof _[inspectSymbol]=="function"&&utilInspect)return utilInspect(_,{depth:ue-ee});if(ne!=="symbol"&&typeof _.inspect=="function")return _.inspect()}if(isMap(_)){var ye=[];return mapForEach&&mapForEach.call(_,function(xe,ve){ye.push(le(ve,_,!0)+" => "+le(xe,_))}),collectionOf("Map",mapSize$1.call(_),ye,oe)}if(isSet(_)){var Ie=[];return setForEach&&setForEach.call(_,function(xe){Ie.push(le(xe,_))}),collectionOf("Set",setSize.call(_),Ie,oe)}if(isWeakMap(_))return weakCollectionOf("WeakMap");if(isWeakSet(_))return weakCollectionOf("WeakSet");if(isWeakRef(_))return weakCollectionOf("WeakRef");if(isNumber$3(_))return markBoxed(le(Number(_)));if(isBigInt(_))return markBoxed(le(bigIntValueOf.call(_)));if(isBoolean$1(_))return markBoxed(booleanValueOf.call(_));if(isString$2(_))return markBoxed(le(String(_)));if(typeof window<"u"&&_===window)return"{ [object Window] }";if(typeof globalThis<"u"&&_===globalThis||typeof commonjsGlobal<"u"&&_===commonjsGlobal)return"{ [object globalThis] }";if(!isDate$2(_)&&!isRegExp$2(_)){var Se=arrObjKeys(_,le),Pe=gPO?gPO(_)===Object.prototype:_ instanceof Object||_.constructor===Object,Ae=_ instanceof Object?"":"null prototype",De=!Pe&&toStringTag&&Object(_)===_&&toStringTag in _?$slice.call(toStr(_),8,-1):Ae?"Object":"",ke=Pe||typeof _.constructor!="function"?"":_.constructor.name?_.constructor.name+" ":"",Ce=ke+(De||Ae?"["+$join.call($concat.call([],De||[],Ae||[]),": ")+"] ":"");return Se.length===0?Ce+"{}":oe?Ce+"{"+indentedJoin(Se,oe)+"}":Ce+"{ "+$join.call(Se,", ")+" }"}return String(_)};function wrapQuotes(Z,_,Y){var ee=(Y.quoteStyle||_)==="double"?'"':"'";return ee+Z+ee}function quote(Z){return $replace.call(String(Z),/"/g,""")}function isArray$4(Z){return toStr(Z)==="[object Array]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isDate$2(Z){return toStr(Z)==="[object Date]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isRegExp$2(Z){return toStr(Z)==="[object RegExp]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isError(Z){return toStr(Z)==="[object Error]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isString$2(Z){return toStr(Z)==="[object String]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isNumber$3(Z){return toStr(Z)==="[object Number]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isBoolean$1(Z){return toStr(Z)==="[object Boolean]"&&(!toStringTag||!(typeof Z=="object"&&toStringTag in Z))}function isSymbol(Z){if(hasShammedSymbols)return Z&&typeof Z=="object"&&Z instanceof Symbol;if(typeof Z=="symbol")return!0;if(!Z||typeof Z!="object"||!symToString)return!1;try{return symToString.call(Z),!0}catch{}return!1}function isBigInt(Z){if(!Z||typeof Z!="object"||!bigIntValueOf)return!1;try{return bigIntValueOf.call(Z),!0}catch{}return!1}var hasOwn=Object.prototype.hasOwnProperty||function(Z){return Z in this};function has$3(Z,_){return hasOwn.call(Z,_)}function toStr(Z){return objectToString.call(Z)}function nameOf(Z){if(Z.name)return Z.name;var _=$match.call(functionToString.call(Z),/^function\s*([\w$]+)/);return _?_[1]:null}function indexOf(Z,_){if(Z.indexOf)return Z.indexOf(_);for(var Y=0,ee=Z.length;Y_.maxStringLength){var Y=Z.length-_.maxStringLength,ee="... "+Y+" more character"+(Y>1?"s":"");return inspectString($slice.call(Z,0,_.maxStringLength),_)+ee}var te=$replace.call($replace.call(Z,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lowbyte);return wrapQuotes(te,"single",_)}function lowbyte(Z){var _=Z.charCodeAt(0),Y={8:"b",9:"t",10:"n",12:"f",13:"r"}[_];return Y?"\\"+Y:"\\x"+(_<16?"0":"")+$toUpperCase.call(_.toString(16))}function markBoxed(Z){return"Object("+Z+")"}function weakCollectionOf(Z){return Z+" { ? }"}function collectionOf(Z,_,Y,ee){var te=ee?indentedJoin(Y,ee):$join.call(Y,", ");return Z+" ("+_+") {"+te+"}"}function singleLineValues(Z){for(var _=0;_=0)return!1;return!0}function getIndent(Z,_){var Y;if(Z.indent===" ")Y=" ";else if(typeof Z.indent=="number"&&Z.indent>0)Y=$join.call(Array(Z.indent+1)," ");else return null;return{base:Y,prev:$join.call(Array(_+1),Y)}}function indentedJoin(Z,_){if(Z.length===0)return"";var Y=` +`+_.prev+_.base;return Y+$join.call(Z,","+Y)+` +`+_.prev}function arrObjKeys(Z,_){var Y=isArray$4(Z),ee=[];if(Y){ee.length=Z.length;for(var te=0;te1;){var Y=_.pop(),ee=Y.obj[Y.prop];if(isArray$3(ee)){for(var te=[],re=0;re=limit?ne.slice(se,se+limit):ne,ue=[],oe=0;oe=48&&le<=57||le>=65&&le<=90||le>=97&&le<=122||re===formats$3.RFC1738&&(le===40||le===41)){ue[ue.length]=ae.charAt(oe);continue}if(le<128){ue[ue.length]=hexTable[le];continue}if(le<2048){ue[ue.length]=hexTable[192|le>>6]+hexTable[128|le&63];continue}if(le<55296||le>=57344){ue[ue.length]=hexTable[224|le>>12]+hexTable[128|le>>6&63]+hexTable[128|le&63];continue}oe+=1,le=65536+((le&1023)<<10|ae.charCodeAt(oe)&1023),ue[ue.length]=hexTable[240|le>>18]+hexTable[128|le>>12&63]+hexTable[128|le>>6&63]+hexTable[128|le&63]}ie+=ue.join("")}return ie},compact=function(_){for(var Y=[{obj:{o:_},prop:"o"}],ee=[],te=0;te"u"&&(ye=0)}if(typeof ue=="function"?me=ue(Y,me):me instanceof Date?me=ce(me):ee==="comma"&&isArray$2(me)&&(me=utils$5.maybeMap(me,function(Me){return Me instanceof Date?ce(Me):Me})),me===null){if(ne)return ae&&!de?ae(Y,defaults$3.encoder,pe,"key",he):Y;me=""}if(isNonNullishPrimitive(me)||utils$5.isBuffer(me)){if(ae){var Pe=de?Y:ae(Y,defaults$3.encoder,pe,"key",he);return[fe(Pe)+"="+fe(ae(me,defaults$3.encoder,pe,"value",he))]}return[fe(Y)+"="+fe(String(me))]}var Ae=[];if(typeof me>"u")return Ae;var De;if(ee==="comma"&&isArray$2(me))de&&ae&&(me=utils$5.maybeMap(me,ae)),De=[{value:me.length>0?me.join(",")||null:void 0}];else if(isArray$2(ue))De=ue;else{var ke=Object.keys(me);De=oe?ke.sort(oe):ke}var Ce=se?Y.replace(/\./g,"%2E"):Y,xe=te&&isArray$2(me)&&me.length===1?Ce+"[]":Ce;if(re&&isArray$2(me)&&me.length===0)return xe+"[]";for(var ve=0;ve"u"?_.encodeDotInKeys===!0?!0:defaults$3.allowDots:!!_.allowDots;return{addQueryPrefix:typeof _.addQueryPrefix=="boolean"?_.addQueryPrefix:defaults$3.addQueryPrefix,allowDots:ie,allowEmptyArrays:typeof _.allowEmptyArrays=="boolean"?!!_.allowEmptyArrays:defaults$3.allowEmptyArrays,arrayFormat:ne,charset:Y,charsetSentinel:typeof _.charsetSentinel=="boolean"?_.charsetSentinel:defaults$3.charsetSentinel,commaRoundTrip:_.commaRoundTrip,delimiter:typeof _.delimiter>"u"?defaults$3.delimiter:_.delimiter,encode:typeof _.encode=="boolean"?_.encode:defaults$3.encode,encodeDotInKeys:typeof _.encodeDotInKeys=="boolean"?_.encodeDotInKeys:defaults$3.encodeDotInKeys,encoder:typeof _.encoder=="function"?_.encoder:defaults$3.encoder,encodeValuesOnly:typeof _.encodeValuesOnly=="boolean"?_.encodeValuesOnly:defaults$3.encodeValuesOnly,filter:re,format:ee,formatter:te,serializeDate:typeof _.serializeDate=="function"?_.serializeDate:defaults$3.serializeDate,skipNulls:typeof _.skipNulls=="boolean"?_.skipNulls:defaults$3.skipNulls,sort:typeof _.sort=="function"?_.sort:null,strictNullHandling:typeof _.strictNullHandling=="boolean"?_.strictNullHandling:defaults$3.strictNullHandling}},stringify_1=function(Z,_){var Y=Z,ee=normalizeStringifyOptions(_),te,re;typeof ee.filter=="function"?(re=ee.filter,Y=re("",Y)):isArray$2(ee.filter)&&(re=ee.filter,te=re);var ne=[];if(typeof Y!="object"||Y===null)return"";var ie=arrayPrefixGenerators[ee.arrayFormat],se=ie==="comma"&&ee.commaRoundTrip;te||(te=Object.keys(Y)),ee.sort&&te.sort(ee.sort);for(var ae=getSideChannel(),ue=0;ue0?ce+le:""},utils$4=utils$6,has=Object.prototype.hasOwnProperty,isArray$1=Array.isArray,defaults$2={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:utils$4.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},interpretNumericEntities=function(Z){return Z.replace(/&#(\d+);/g,function(_,Y){return String.fromCharCode(parseInt(Y,10))})},parseArrayValue=function(Z,_){return Z&&typeof Z=="string"&&_.comma&&Z.indexOf(",")>-1?Z.split(","):Z},isoSentinel="utf8=%26%2310003%3B",charsetSentinel="utf8=%E2%9C%93",parseValues=function(_,Y){var ee={__proto__:null},te=Y.ignoreQueryPrefix?_.replace(/^\?/,""):_;te=te.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var re=Y.parameterLimit===1/0?void 0:Y.parameterLimit,ne=te.split(Y.delimiter,re),ie=-1,se,ae=Y.charset;if(Y.charsetSentinel)for(se=0;se-1&&(he=isArray$1(he)?[he]:he);var fe=has.call(ee,ce);fe&&Y.duplicates==="combine"?ee[ce]=utils$4.combine(ee[ce],he):(!fe||Y.duplicates==="last")&&(ee[ce]=he)}return ee},parseObject=function(Z,_,Y,ee){for(var te=ee?_:parseArrayValue(_,Y),re=Z.length-1;re>=0;--re){var ne,ie=Z[re];if(ie==="[]"&&Y.parseArrays)ne=Y.allowEmptyArrays&&(te===""||Y.strictNullHandling&&te===null)?[]:[].concat(te);else{ne=Y.plainObjects?Object.create(null):{};var se=ie.charAt(0)==="["&&ie.charAt(ie.length-1)==="]"?ie.slice(1,-1):ie,ae=Y.decodeDotInKeys?se.replace(/%2E/g,"."):se,ue=parseInt(ae,10);!Y.parseArrays&&ae===""?ne={0:te}:!isNaN(ue)&&ie!==ae&&String(ue)===ae&&ue>=0&&Y.parseArrays&&ue<=Y.arrayLimit?(ne=[],ne[ue]=te):ae!=="__proto__"&&(ne[ae]=te)}te=ne}return te},parseKeys=function(_,Y,ee,te){if(_){var re=ee.allowDots?_.replace(/\.([^.[]+)/g,"[$1]"):_,ne=/(\[[^[\]]*])/,ie=/(\[[^[\]]*])/g,se=ee.depth>0&&ne.exec(re),ae=se?re.slice(0,se.index):re,ue=[];if(ae){if(!ee.plainObjects&&has.call(Object.prototype,ae)&&!ee.allowPrototypes)return;ue.push(ae)}for(var oe=0;ee.depth>0&&(se=ie.exec(re))!==null&&oe"u"?defaults$2.charset:_.charset,ee=typeof _.duplicates>"u"?defaults$2.duplicates:_.duplicates;if(ee!=="combine"&&ee!=="first"&&ee!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var te=typeof _.allowDots>"u"?_.decodeDotInKeys===!0?!0:defaults$2.allowDots:!!_.allowDots;return{allowDots:te,allowEmptyArrays:typeof _.allowEmptyArrays=="boolean"?!!_.allowEmptyArrays:defaults$2.allowEmptyArrays,allowPrototypes:typeof _.allowPrototypes=="boolean"?_.allowPrototypes:defaults$2.allowPrototypes,allowSparse:typeof _.allowSparse=="boolean"?_.allowSparse:defaults$2.allowSparse,arrayLimit:typeof _.arrayLimit=="number"?_.arrayLimit:defaults$2.arrayLimit,charset:Y,charsetSentinel:typeof _.charsetSentinel=="boolean"?_.charsetSentinel:defaults$2.charsetSentinel,comma:typeof _.comma=="boolean"?_.comma:defaults$2.comma,decodeDotInKeys:typeof _.decodeDotInKeys=="boolean"?_.decodeDotInKeys:defaults$2.decodeDotInKeys,decoder:typeof _.decoder=="function"?_.decoder:defaults$2.decoder,delimiter:typeof _.delimiter=="string"||utils$4.isRegExp(_.delimiter)?_.delimiter:defaults$2.delimiter,depth:typeof _.depth=="number"||_.depth===!1?+_.depth:defaults$2.depth,duplicates:ee,ignoreQueryPrefix:_.ignoreQueryPrefix===!0,interpretNumericEntities:typeof _.interpretNumericEntities=="boolean"?_.interpretNumericEntities:defaults$2.interpretNumericEntities,parameterLimit:typeof _.parameterLimit=="number"?_.parameterLimit:defaults$2.parameterLimit,parseArrays:_.parseArrays!==!1,plainObjects:typeof _.plainObjects=="boolean"?_.plainObjects:defaults$2.plainObjects,strictDepth:typeof _.strictDepth=="boolean"?!!_.strictDepth:defaults$2.strictDepth,strictNullHandling:typeof _.strictNullHandling=="boolean"?_.strictNullHandling:defaults$2.strictNullHandling}},parse$3=function(Z,_){var Y=normalizeParseOptions(_);if(Z===""||Z===null||typeof Z>"u")return Y.plainObjects?Object.create(null):{};for(var ee=typeof Z=="string"?parseValues(Z,Y):Z,te=Y.plainObjects?Object.create(null):{},re=Object.keys(ee),ne=0;ne",'"',"`"," ","\r",` +`," "],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=255,hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={javascript:!0,"javascript:":!0},hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},querystring=lib$2;function urlParse(Z,_,Y){if(Z&&typeof Z=="object"&&Z instanceof Url)return Z;var ee=new Url;return ee.parse(Z,_,Y),ee}Url.prototype.parse=function(Z,_,Y){if(typeof Z!="string")throw new TypeError("Parameter 'url' must be a string, not "+typeof Z);var ee=Z.indexOf("?"),te=ee!==-1&&ee127?ye+="x":ye+=ge[Ie];if(!ye.match(hostnamePartPattern)){var Pe=_e.slice(0,ce),Ae=_e.slice(ce+1),De=ge.match(hostnamePartStart);De&&(Pe.push(De[1]),Ae.unshift(De[2])),Ae.length&&(ie="/"+Ae.join(".")+ie),this.hostname=Pe.join(".");break}}}this.hostname.length>hostnameMaxLen?this.hostname="":this.hostname=this.hostname.toLowerCase(),pe||(this.hostname=punycode.toASCII(this.hostname));var ke=this.port?":"+this.port:"",Ce=this.hostname||"";this.host=Ce+ke,this.href+=this.host,pe&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),ie[0]!=="/"&&(ie="/"+ie))}if(!unsafeProtocol[ue])for(var ce=0,me=autoEscape.length;ce0?Y.host.split("@"):!1;ye&&(Y.auth=ye.shift(),Y.hostname=ye.shift(),Y.host=Y.hostname)}return Y.search=Z.search,Y.query=Z.query,(Y.pathname!==null||Y.search!==null)&&(Y.path=(Y.pathname?Y.pathname:"")+(Y.search?Y.search:"")),Y.href=Y.format(),Y}if(!_e.length)return Y.pathname=null,Y.search?Y.path="/"+Y.search:Y.path=null,Y.href=Y.format(),Y;for(var Ie=_e.slice(-1)[0],Se=(Y.host||Z.host||_e.length>1)&&(Ie==="."||Ie==="..")||Ie==="",Pe=0,Ae=_e.length;Ae>=0;Ae--)Ie=_e[Ae],Ie==="."?_e.splice(Ae,1):Ie===".."?(_e.splice(Ae,1),Pe++):Pe&&(_e.splice(Ae,1),Pe--);if(!de&&!pe)for(;Pe--;Pe)_e.unshift("..");de&&_e[0]!==""&&(!_e[0]||_e[0].charAt(0)!=="/")&&_e.unshift(""),Se&&_e.join("/").substr(-1)!=="/"&&_e.push("");var De=_e[0]===""||_e[0]&&_e[0].charAt(0)==="/";if(ge){Y.hostname=De?"":_e.length?_e.shift():"",Y.host=Y.hostname;var ye=Y.host&&Y.host.indexOf("@")>0?Y.host.split("@"):!1;ye&&(Y.auth=ye.shift(),Y.hostname=ye.shift(),Y.host=Y.hostname)}return de=de||Y.host&&_e.length,de&&!De&&_e.unshift(""),_e.length>0?Y.pathname=_e.join("/"):(Y.pathname=null,Y.path=null),(Y.pathname!==null||Y.search!==null)&&(Y.path=(Y.pathname?Y.pathname:"")+(Y.search?Y.search:"")),Y.auth=Z.auth||Y.auth,Y.slashes=Y.slashes||Z.slashes,Y.href=Y.format(),Y};Url.prototype.parseHost=function(){var Z=this.host,_=portPattern.exec(Z);_&&(_=_[0],_!==":"&&(this.port=_.substr(1)),Z=Z.substr(0,Z.length-_.length)),Z&&(this.hostname=Z)};const warnings={};function deprecation(Z,_,Y=3){if(warnings[_])return;let ee=new Error().stack;typeof ee>"u"?console.warn("PixiJS Deprecation Warning: ",`${_} +Deprecated since v${Z}`):(ee=ee.split(` +`).splice(Y).join(` +`),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${_} +Deprecated since v${Z}`),console.warn(ee),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${_} +Deprecated since v${Z}`),console.warn(ee))),warnings[_]=!0}function assertPath(Z){if(typeof Z!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(Z)}`)}function removeUrlParams(Z){return Z.split("?")[0].split("#")[0]}function escapeRegExp(Z){return Z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function replaceAll(Z,_,Y){return Z.replace(new RegExp(escapeRegExp(_),"g"),Y)}function normalizeStringPosix(Z,_){let Y="",ee=0,te=-1,re=0,ne=-1;for(let ie=0;ie<=Z.length;++ie){if(ie2){const se=Y.lastIndexOf("/");if(se!==Y.length-1){se===-1?(Y="",ee=0):(Y=Y.slice(0,se),ee=Y.length-1-Y.lastIndexOf("/")),te=ie,re=0;continue}}else if(Y.length===2||Y.length===1){Y="",ee=0,te=ie,re=0;continue}}}else Y.length>0?Y+=`/${Z.slice(te+1,ie)}`:Y=Z.slice(te+1,ie),ee=ie-te-1;te=ie,re=0}else ne===46&&re!==-1?++re:re=-1}return Y}const path$1={toPosix(Z){return replaceAll(Z,"\\","/")},isUrl(Z){return/^https?:/.test(this.toPosix(Z))},isDataUrl(Z){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(Z)},isBlobUrl(Z){return Z.startsWith("blob:")},hasProtocol(Z){return/^[^/:]+:/.test(this.toPosix(Z))},getProtocol(Z){assertPath(Z),Z=this.toPosix(Z);const _=/^file:\/\/\//.exec(Z);if(_)return _[0];const Y=/^[^/:]+:\/{0,2}/.exec(Z);return Y?Y[0]:""},toAbsolute(Z,_,Y){if(assertPath(Z),this.isDataUrl(Z)||this.isBlobUrl(Z))return Z;const ee=removeUrlParams(this.toPosix(_??settings.ADAPTER.getBaseUrl())),te=removeUrlParams(this.toPosix(Y??this.rootname(ee)));return Z=this.toPosix(Z),Z.startsWith("/")?path$1.join(te,Z.slice(1)):this.isAbsolute(Z)?Z:this.join(ee,Z)},normalize(Z){if(assertPath(Z),Z.length===0)return".";if(this.isDataUrl(Z)||this.isBlobUrl(Z))return Z;Z=this.toPosix(Z);let _="";const Y=Z.startsWith("/");this.hasProtocol(Z)&&(_=this.rootname(Z),Z=Z.slice(_.length));const ee=Z.endsWith("/");return Z=normalizeStringPosix(Z),Z.length>0&&ee&&(Z+="/"),Y?`/${Z}`:_+Z},isAbsolute(Z){return assertPath(Z),Z=this.toPosix(Z),this.hasProtocol(Z)?!0:Z.startsWith("/")},join(...Z){if(Z.length===0)return".";let _;for(let Y=0;Y0)if(_===void 0)_=ee;else{const te=Z[Y-1]??"";this.joinExtensions.includes(this.extname(te).toLowerCase())?_+=`/../${ee}`:_+=`/${ee}`}}return _===void 0?".":this.normalize(_)},dirname(Z){if(assertPath(Z),Z.length===0)return".";Z=this.toPosix(Z);let _=Z.charCodeAt(0);const Y=_===47;let ee=-1,te=!0;const re=this.getProtocol(Z),ne=Z;Z=Z.slice(re.length);for(let ie=Z.length-1;ie>=1;--ie)if(_=Z.charCodeAt(ie),_===47){if(!te){ee=ie;break}}else te=!1;return ee===-1?Y?"/":this.isUrl(ne)?re+Z:re:Y&&ee===1?"//":re+Z.slice(0,ee)},rootname(Z){assertPath(Z),Z=this.toPosix(Z);let _="";if(Z.startsWith("/")?_="/":_=this.getProtocol(Z),this.isUrl(Z)){const Y=Z.indexOf("/",_.length);Y!==-1?_=Z.slice(0,Y):_=Z,_.endsWith("/")||(_+="/")}return _},basename(Z,_){assertPath(Z),_&&assertPath(_),Z=removeUrlParams(this.toPosix(Z));let Y=0,ee=-1,te=!0,re;if(_!==void 0&&_.length>0&&_.length<=Z.length){if(_.length===Z.length&&_===Z)return"";let ne=_.length-1,ie=-1;for(re=Z.length-1;re>=0;--re){const se=Z.charCodeAt(re);if(se===47){if(!te){Y=re+1;break}}else ie===-1&&(te=!1,ie=re+1),ne>=0&&(se===_.charCodeAt(ne)?--ne===-1&&(ee=re):(ne=-1,ee=ie))}return Y===ee?ee=ie:ee===-1&&(ee=Z.length),Z.slice(Y,ee)}for(re=Z.length-1;re>=0;--re)if(Z.charCodeAt(re)===47){if(!te){Y=re+1;break}}else ee===-1&&(te=!1,ee=re+1);return ee===-1?"":Z.slice(Y,ee)},extname(Z){assertPath(Z),Z=removeUrlParams(this.toPosix(Z));let _=-1,Y=0,ee=-1,te=!0,re=0;for(let ne=Z.length-1;ne>=0;--ne){const ie=Z.charCodeAt(ne);if(ie===47){if(!te){Y=ne+1;break}continue}ee===-1&&(te=!1,ee=ne+1),ie===46?_===-1?_=ne:re!==1&&(re=1):_!==-1&&(re=-1)}return _===-1||ee===-1||re===0||re===1&&_===ee-1&&_===Y+1?"":Z.slice(_,ee)},parse(Z){assertPath(Z);const _={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return _;Z=removeUrlParams(this.toPosix(Z));let Y=Z.charCodeAt(0);const ee=this.isAbsolute(Z);let te;_.root=this.rootname(Z),ee||this.hasProtocol(Z)?te=1:te=0;let re=-1,ne=0,ie=-1,se=!0,ae=Z.length-1,ue=0;for(;ae>=te;--ae){if(Y=Z.charCodeAt(ae),Y===47){if(!se){ne=ae+1;break}continue}ie===-1&&(se=!1,ie=ae+1),Y===46?re===-1?re=ae:ue!==1&&(ue=1):re!==-1&&(ue=-1)}return re===-1||ie===-1||ue===0||ue===1&&re===ie-1&&re===ne+1?ie!==-1&&(ne===0&&ee?_.base=_.name=Z.slice(1,ie):_.base=_.name=Z.slice(ne,ie)):(ne===0&&ee?(_.name=Z.slice(1,re),_.base=Z.slice(1,ie)):(_.name=Z.slice(ne,re),_.base=Z.slice(ne,ie)),_.ext=Z.slice(re,ie)),_.dir=this.dirname(Z),_},sep:"/",delimiter:":",joinExtensions:[".html"]};let promise;async function detectVideoAlphaMode(){return promise??(promise=(async()=>{var re;const Z=document.createElement("canvas").getContext("webgl");if(!Z)return ALPHA_MODES.UNPACK;const _=await new Promise(ne=>{const ie=document.createElement("video");ie.onloadeddata=()=>ne(ie),ie.onerror=()=>ne(null),ie.autoplay=!1,ie.crossOrigin="anonymous",ie.preload="auto",ie.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",ie.load()});if(!_)return ALPHA_MODES.UNPACK;const Y=Z.createTexture();Z.bindTexture(Z.TEXTURE_2D,Y);const ee=Z.createFramebuffer();Z.bindFramebuffer(Z.FRAMEBUFFER,ee),Z.framebufferTexture2D(Z.FRAMEBUFFER,Z.COLOR_ATTACHMENT0,Z.TEXTURE_2D,Y,0),Z.pixelStorei(Z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),Z.pixelStorei(Z.UNPACK_COLORSPACE_CONVERSION_WEBGL,Z.NONE),Z.texImage2D(Z.TEXTURE_2D,0,Z.RGBA,Z.RGBA,Z.UNSIGNED_BYTE,_);const te=new Uint8Array(4);return Z.readPixels(0,0,1,1,Z.RGBA,Z.UNSIGNED_BYTE,te),Z.deleteFramebuffer(ee),Z.deleteTexture(Y),(re=Z.getExtension("WEBGL_lose_context"))==null||re.loseContext(),te[0]<=te[3]?ALPHA_MODES.PMA:ALPHA_MODES.UNPACK})()),promise}let supported;function isWebGLSupported(){return typeof supported>"u"&&(supported=function(){var _;const Z={stencil:!0,failIfMajorPerformanceCaveat:settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!settings.ADAPTER.getWebGLRenderingContext())return!1;const Y=settings.ADAPTER.createCanvas();let ee=Y.getContext("webgl",Z)||Y.getContext("experimental-webgl",Z);const te=!!((_=ee==null?void 0:ee.getContextAttributes())!=null&&_.stencil);if(ee){const re=ee.getExtension("WEBGL_lose_context");re&&re.loseContext()}return ee=null,te}catch{return!1}}()),supported}var r$3={grad:.9,turn:360,rad:360/(2*Math.PI)},t$3=function(Z){return typeof Z=="string"?Z.length>0:typeof Z=="number"},n$4=function(Z,_,Y){return _===void 0&&(_=0),Y===void 0&&(Y=Math.pow(10,_)),Math.round(Y*Z)/Y+0},e$1=function(Z,_,Y){return _===void 0&&(_=0),Y===void 0&&(Y=1),Z>Y?Y:Z>_?Z:_},u$3=function(Z){return(Z=isFinite(Z)?Z%360:0)>0?Z:Z+360},a=function(Z){return{r:e$1(Z.r,0,255),g:e$1(Z.g,0,255),b:e$1(Z.b,0,255),a:e$1(Z.a)}},o=function(Z){return{r:n$4(Z.r),g:n$4(Z.g),b:n$4(Z.b),a:n$4(Z.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s$1=function(Z){var _=Z.toString(16);return _.length<2?"0"+_:_},h$2=function(Z){var _=Z.r,Y=Z.g,ee=Z.b,te=Z.a,re=Math.max(_,Y,ee),ne=re-Math.min(_,Y,ee),ie=ne?re===_?(Y-ee)/ne:re===Y?2+(ee-_)/ne:4+(_-Y)/ne:0;return{h:60*(ie<0?ie+6:ie),s:re?ne/re*100:0,v:re/255*100,a:te}},b=function(Z){var _=Z.h,Y=Z.s,ee=Z.v,te=Z.a;_=_/360*6,Y/=100,ee/=100;var re=Math.floor(_),ne=ee*(1-Y),ie=ee*(1-(_-re)*Y),se=ee*(1-(1-_+re)*Y),ae=re%6;return{r:255*[ee,ie,ne,ne,se,ee][ae],g:255*[se,ee,ee,ie,ne,ne][ae],b:255*[ne,ne,se,ee,ee,ie][ae],a:te}},g=function(Z){return{h:u$3(Z.h),s:e$1(Z.s,0,100),l:e$1(Z.l,0,100),a:e$1(Z.a)}},d=function(Z){return{h:n$4(Z.h),s:n$4(Z.s),l:n$4(Z.l),a:n$4(Z.a,3)}},f=function(Z){return b((Y=(_=Z).s,{h:_.h,s:(Y*=((ee=_.l)<50?ee:100-ee)/100)>0?2*Y/(ee+Y)*100:0,v:ee+Y,a:_.a}));var _,Y,ee},c=function(Z){return{h:(_=h$2(Z)).h,s:(te=(200-(Y=_.s))*(ee=_.v)/100)>0&&te<200?Y*ee/100/(te<=100?te:200-te)*100:0,l:te/2,a:_.a};var _,Y,ee,te},l$3=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,p$3=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,v$2=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,m$1=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,y$1={string:[[function(Z){var _=i.exec(Z);return _?(Z=_[1]).length<=4?{r:parseInt(Z[0]+Z[0],16),g:parseInt(Z[1]+Z[1],16),b:parseInt(Z[2]+Z[2],16),a:Z.length===4?n$4(parseInt(Z[3]+Z[3],16)/255,2):1}:Z.length===6||Z.length===8?{r:parseInt(Z.substr(0,2),16),g:parseInt(Z.substr(2,2),16),b:parseInt(Z.substr(4,2),16),a:Z.length===8?n$4(parseInt(Z.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(Z){var _=v$2.exec(Z)||m$1.exec(Z);return _?_[2]!==_[4]||_[4]!==_[6]?null:a({r:Number(_[1])/(_[2]?100/255:1),g:Number(_[3])/(_[4]?100/255:1),b:Number(_[5])/(_[6]?100/255:1),a:_[7]===void 0?1:Number(_[7])/(_[8]?100:1)}):null},"rgb"],[function(Z){var _=l$3.exec(Z)||p$3.exec(Z);if(!_)return null;var Y,ee,te=g({h:(Y=_[1],ee=_[2],ee===void 0&&(ee="deg"),Number(Y)*(r$3[ee]||1)),s:Number(_[3]),l:Number(_[4]),a:_[5]===void 0?1:Number(_[5])/(_[6]?100:1)});return f(te)},"hsl"]],object:[[function(Z){var _=Z.r,Y=Z.g,ee=Z.b,te=Z.a,re=te===void 0?1:te;return t$3(_)&&t$3(Y)&&t$3(ee)?a({r:Number(_),g:Number(Y),b:Number(ee),a:Number(re)}):null},"rgb"],[function(Z){var _=Z.h,Y=Z.s,ee=Z.l,te=Z.a,re=te===void 0?1:te;if(!t$3(_)||!t$3(Y)||!t$3(ee))return null;var ne=g({h:Number(_),s:Number(Y),l:Number(ee),a:Number(re)});return f(ne)},"hsl"],[function(Z){var _=Z.h,Y=Z.s,ee=Z.v,te=Z.a,re=te===void 0?1:te;if(!t$3(_)||!t$3(Y)||!t$3(ee))return null;var ne=function(ie){return{h:u$3(ie.h),s:e$1(ie.s,0,100),v:e$1(ie.v,0,100),a:e$1(ie.a)}}({h:Number(_),s:Number(Y),v:Number(ee),a:Number(re)});return b(ne)},"hsv"]]},N$1=function(Z,_){for(var Y=0;Y<_.length;Y++){var ee=_[Y][0](Z);if(ee)return[ee,_[Y][1]]}return[null,void 0]},x$1=function(Z){return typeof Z=="string"?N$1(Z.trim(),y$1.string):typeof Z=="object"&&Z!==null?N$1(Z,y$1.object):[null,void 0]},M$1=function(Z,_){var Y=c(Z);return{h:Y.h,s:e$1(Y.s+100*_,0,100),l:Y.l,a:Y.a}},H$1=function(Z){return(299*Z.r+587*Z.g+114*Z.b)/1e3/255},$=function(Z,_){var Y=c(Z);return{h:Y.h,s:Y.s,l:e$1(Y.l+100*_,0,100),a:Y.a}},j=function(){function Z(_){this.parsed=x$1(_)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return Z.prototype.isValid=function(){return this.parsed!==null},Z.prototype.brightness=function(){return n$4(H$1(this.rgba),2)},Z.prototype.isDark=function(){return H$1(this.rgba)<.5},Z.prototype.isLight=function(){return H$1(this.rgba)>=.5},Z.prototype.toHex=function(){return _=o(this.rgba),Y=_.r,ee=_.g,te=_.b,ne=(re=_.a)<1?s$1(n$4(255*re)):"","#"+s$1(Y)+s$1(ee)+s$1(te)+ne;var _,Y,ee,te,re,ne},Z.prototype.toRgb=function(){return o(this.rgba)},Z.prototype.toRgbString=function(){return _=o(this.rgba),Y=_.r,ee=_.g,te=_.b,(re=_.a)<1?"rgba("+Y+", "+ee+", "+te+", "+re+")":"rgb("+Y+", "+ee+", "+te+")";var _,Y,ee,te,re},Z.prototype.toHsl=function(){return d(c(this.rgba))},Z.prototype.toHslString=function(){return _=d(c(this.rgba)),Y=_.h,ee=_.s,te=_.l,(re=_.a)<1?"hsla("+Y+", "+ee+"%, "+te+"%, "+re+")":"hsl("+Y+", "+ee+"%, "+te+"%)";var _,Y,ee,te,re},Z.prototype.toHsv=function(){return _=h$2(this.rgba),{h:n$4(_.h),s:n$4(_.s),v:n$4(_.v),a:n$4(_.a,3)};var _},Z.prototype.invert=function(){return w$2({r:255-(_=this.rgba).r,g:255-_.g,b:255-_.b,a:_.a});var _},Z.prototype.saturate=function(_){return _===void 0&&(_=.1),w$2(M$1(this.rgba,_))},Z.prototype.desaturate=function(_){return _===void 0&&(_=.1),w$2(M$1(this.rgba,-_))},Z.prototype.grayscale=function(){return w$2(M$1(this.rgba,-1))},Z.prototype.lighten=function(_){return _===void 0&&(_=.1),w$2($(this.rgba,_))},Z.prototype.darken=function(_){return _===void 0&&(_=.1),w$2($(this.rgba,-_))},Z.prototype.rotate=function(_){return _===void 0&&(_=15),this.hue(this.hue()+_)},Z.prototype.alpha=function(_){return typeof _=="number"?w$2({r:(Y=this.rgba).r,g:Y.g,b:Y.b,a:_}):n$4(this.rgba.a,3);var Y},Z.prototype.hue=function(_){var Y=c(this.rgba);return typeof _=="number"?w$2({h:_,s:Y.s,l:Y.l,a:Y.a}):n$4(Y.h)},Z.prototype.isEqual=function(_){return this.toHex()===w$2(_).toHex()},Z}(),w$2=function(Z){return Z instanceof j?Z:new j(Z)},S$1=[],k$1=function(Z){Z.forEach(function(_){S$1.indexOf(_)<0&&(_(j,y$1),S$1.push(_))})};function namesPlugin(Z,_){var Y={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"},ee={};for(var te in Y)ee[Y[te]]=te;var re={};Z.prototype.toName=function(ne){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var ie,se,ae=ee[this.toHex()];if(ae)return ae;if(ne!=null&&ne.closest){var ue=this.toRgb(),oe=1/0,le="black";if(!re.length)for(var ce in Y)re[ce]=new Z(Y[ce]).toRgb();for(var he in Y){var fe=(ie=ue,se=re[he],Math.pow(ie.r-se.r,2)+Math.pow(ie.g-se.g,2)+Math.pow(ie.b-se.b,2));fete===Y[re]);if(_!==null&&Y!==null){const te=Object.keys(_),re=Object.keys(Y);return te.length!==re.length?!1:te.every(ne=>_[ne]===Y[ne])}return _===Y}toRgba(){const[_,Y,ee,te]=this._components;return{r:_,g:Y,b:ee,a:te}}toRgb(){const[_,Y,ee]=this._components;return{r:_,g:Y,b:ee}}toRgbaString(){const[_,Y,ee]=this.toUint8RgbArray();return`rgba(${_},${Y},${ee},${this.alpha})`}toUint8RgbArray(_){const[Y,ee,te]=this._components;return _=_??[],_[0]=Math.round(Y*255),_[1]=Math.round(ee*255),_[2]=Math.round(te*255),_}toRgbArray(_){_=_??[];const[Y,ee,te]=this._components;return _[0]=Y,_[1]=ee,_[2]=te,_}toNumber(){return this._int}toLittleEndianNumber(){const _=this._int;return(_>>16)+(_&65280)+((_&255)<<16)}multiply(_){const[Y,ee,te,re]=Rt.temp.setValue(_)._components;return this._components[0]*=Y,this._components[1]*=ee,this._components[2]*=te,this._components[3]*=re,this.refreshInt(),this._value=null,this}premultiply(_,Y=!0){return Y&&(this._components[0]*=_,this._components[1]*=_,this._components[2]*=_),this._components[3]=_,this.refreshInt(),this._value=null,this}toPremultiplied(_,Y=!0){if(_===1)return(255<<24)+this._int;if(_===0)return Y?0:this._int;let ee=this._int>>16&255,te=this._int>>8&255,re=this._int&255;return Y&&(ee=ee*_+.5|0,te=te*_+.5|0,re=re*_+.5|0),(_*255<<24)+(ee<<16)+(te<<8)+re}toHex(){const _=this._int.toString(16);return`#${"000000".substring(0,6-_.length)+_}`}toHexa(){const _=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-_.length)+_}setAlpha(_){return this._components[3]=this._clamp(_),this}round(_){const[Y,ee,te]=this._components;return this._components[0]=Math.round(Y*_)/_,this._components[1]=Math.round(ee*_)/_,this._components[2]=Math.round(te*_)/_,this.refreshInt(),this._value=null,this}toArray(_){_=_??[];const[Y,ee,te,re]=this._components;return _[0]=Y,_[1]=ee,_[2]=te,_[3]=re,_}normalize(_){let Y,ee,te,re;if((typeof _=="number"||_ instanceof Number)&&_>=0&&_<=16777215){const ne=_;Y=(ne>>16&255)/255,ee=(ne>>8&255)/255,te=(ne&255)/255,re=1}else if((Array.isArray(_)||_ instanceof Float32Array)&&_.length>=3&&_.length<=4)_=this._clamp(_),[Y,ee,te,re=1]=_;else if((_ instanceof Uint8Array||_ instanceof Uint8ClampedArray)&&_.length>=3&&_.length<=4)_=this._clamp(_,0,255),[Y,ee,te,re=255]=_,Y/=255,ee/=255,te/=255,re/=255;else if(typeof _=="string"||typeof _=="object"){if(typeof _=="string"){const ie=Rt.HEX_PATTERN.exec(_);ie&&(_=`#${ie[2]}`)}const ne=w$2(_);ne.isValid()&&({r:Y,g:ee,b:te,a:re}=ne.rgba,Y/=255,ee/=255,te/=255)}if(Y!==void 0)this._components[0]=Y,this._components[1]=ee,this._components[2]=te,this._components[3]=re,this.refreshInt();else throw new Error(`Unable to convert color ${_}`)}refreshInt(){this._clamp(this._components);const[_,Y,ee]=this._components;this._int=(_*255<<16)+(Y*255<<8)+(ee*255|0)}_clamp(_,Y=0,ee=1){return typeof _=="number"?Math.min(Math.max(_,Y),ee):(_.forEach((te,re)=>{_[re]=Math.min(Math.max(te,Y),ee)}),_)}};_Color.shared=new _Color,_Color.temp=new _Color,_Color.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;let Color=_Color;function hex2string(Z){return deprecation("7.2.0","utils.hex2string is deprecated, use Color#toHex instead"),Color.shared.setValue(Z).toHex()}function rgb2hex(Z){return deprecation("7.2.0","utils.rgb2hex is deprecated, use Color#toNumber instead"),Color.shared.setValue(Z).toNumber()}function mapPremultipliedBlendModes(){const Z=[],_=[];for(let ee=0;ee<32;ee++)Z[ee]=ee,_[ee]=ee;Z[BLEND_MODES.NORMAL_NPM]=BLEND_MODES.NORMAL,Z[BLEND_MODES.ADD_NPM]=BLEND_MODES.ADD,Z[BLEND_MODES.SCREEN_NPM]=BLEND_MODES.SCREEN,_[BLEND_MODES.NORMAL]=BLEND_MODES.NORMAL_NPM,_[BLEND_MODES.ADD]=BLEND_MODES.ADD_NPM,_[BLEND_MODES.SCREEN]=BLEND_MODES.SCREEN_NPM;const Y=[];return Y.push(_),Y.push(Z),Y}const premultiplyBlendMode=mapPremultipliedBlendModes();function correctBlendMode(Z,_){return premultiplyBlendMode[_?1:0][Z]}function createIndicesForQuads(Z,_=null){const Y=Z*6;if(_=_||new Uint16Array(Y),_.length!==Y)throw new Error(`Out buffer length is incorrect, got ${_.length} and expected ${Y}`);for(let ee=0,te=0;ee>>1,Z|=Z>>>2,Z|=Z>>>4,Z|=Z>>>8,Z|=Z>>>16,Z+1}function isPow2(Z){return!(Z&Z-1)&&!!Z}function log2(Z){let _=(Z>65535?1:0)<<4;Z>>>=_;let Y=(Z>255?1:0)<<3;return Z>>>=Y,_|=Y,Y=(Z>15?1:0)<<2,Z>>>=Y,_|=Y,Y=(Z>3?1:0)<<1,Z>>>=Y,_|=Y,_|Z>>1}function removeItems(Z,_,Y){const ee=Z.length;let te;if(_>=ee||Y===0)return;Y=_+Y>ee?ee-_:Y;const re=ee-Y;for(te=_;te(Z.Renderer="renderer",Z.Application="application",Z.RendererSystem="renderer-webgl-system",Z.RendererPlugin="renderer-webgl-plugin",Z.CanvasRendererSystem="renderer-canvas-system",Z.CanvasRendererPlugin="renderer-canvas-plugin",Z.Asset="asset",Z.LoadParser="load-parser",Z.ResolveParser="resolve-parser",Z.CacheParser="cache-parser",Z.DetectionParser="detection-parser",Z))(ExtensionType||{});const normalizeExtension=Z=>{if(typeof Z=="function"||typeof Z=="object"&&Z.extension){if(!Z.extension)throw new Error("Extension class must have an extension object");Z={...typeof Z.extension!="object"?{type:Z.extension}:Z.extension,ref:Z}}if(typeof Z=="object")Z={...Z};else throw new Error("Invalid extension type");return typeof Z.type=="string"&&(Z.type=[Z.type]),Z},normalizePriority=(Z,_)=>normalizeExtension(Z).priority??_,extensions$1={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...Z){return Z.map(normalizeExtension).forEach(_=>{_.type.forEach(Y=>{var ee,te;return(te=(ee=this._removeHandlers)[Y])==null?void 0:te.call(ee,_)})}),this},add(...Z){return Z.map(normalizeExtension).forEach(_=>{_.type.forEach(Y=>{var re,ne;const ee=this._addHandlers,te=this._queue;ee[Y]?(re=ee[Y])==null||re.call(ee,_):(te[Y]=te[Y]||[],(ne=te[Y])==null||ne.push(_))})}),this},handle(Z,_,Y){var ne;const ee=this._addHandlers,te=this._removeHandlers;if(ee[Z]||te[Z])throw new Error(`Extension type ${Z} already has a handler`);ee[Z]=_,te[Z]=Y;const re=this._queue;return re[Z]&&((ne=re[Z])==null||ne.forEach(ie=>_(ie)),delete re[Z]),this},handleByMap(Z,_){return this.handle(Z,Y=>{Y.name&&(_[Y.name]=Y.ref)},Y=>{Y.name&&delete _[Y.name]})},handleByList(Z,_,Y=-1){return this.handle(Z,ee=>{_.includes(ee.ref)||(_.push(ee.ref),_.sort((te,re)=>normalizePriority(re,Y)-normalizePriority(te,Y)))},ee=>{const te=_.indexOf(ee.ref);te!==-1&&_.splice(te,1)})}};class ViewableBuffer{constructor(_){typeof _=="number"?this.rawBinaryData=new ArrayBuffer(_):_ instanceof Uint8Array?this.rawBinaryData=_.buffer:this.rawBinaryData=_,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData)}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get uint16View(){return this._uint16View||(this._uint16View=new Uint16Array(this.rawBinaryData)),this._uint16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}view(_){return this[`${_}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(_){switch(_){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${_} isn't a valid view type`)}}}const fragTemplate$1=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(` +`);function generateIfTestSrc(Z){let _="";for(let Y=0;Y0&&(_+=` +else `),Y=0;--ee){const te=INSTALLED[ee];if(te.test&&te.test(Z,Y))return new te(Z,_)}throw new Error("Unrecognized source type to auto-detect Resource")}class Runner{constructor(_){this.items=[],this._name=_,this._aliasCount=0}emit(_,Y,ee,te,re,ne,ie,se){if(arguments.length>8)throw new Error("max arguments reached");const{name:ae,items:ue}=this;this._aliasCount++;for(let oe=0,le=ue.length;oe0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(_){return _[this._name]&&(this.ensureNonAliasedItems(),this.remove(_),this.items.push(_)),this}remove(_){const Y=this.items.indexOf(_);return Y!==-1&&(this.ensureNonAliasedItems(),this.items.splice(Y,1)),this}contains(_){return this.items.includes(_)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items.length=0,this._name=""}get empty(){return this.items.length===0}get name(){return this._name}}Object.defineProperties(Runner.prototype,{dispatch:{value:Runner.prototype.emit},run:{value:Runner.prototype.emit}});class Resource{constructor(_=0,Y=0){this._width=_,this._height=Y,this.destroyed=!1,this.internal=!1,this.onResize=new Runner("setRealSize"),this.onUpdate=new Runner("update"),this.onError=new Runner("onError")}bind(_){this.onResize.add(_),this.onUpdate.add(_),this.onError.add(_),(this._width||this._height)&&this.onResize.emit(this._width,this._height)}unbind(_){this.onResize.remove(_),this.onUpdate.remove(_),this.onError.remove(_)}resize(_,Y){(_!==this._width||Y!==this._height)&&(this._width=_,this._height=Y,this.onResize.emit(_,Y))}get valid(){return!!this._width&&!!this._height}update(){this.destroyed||this.onUpdate.emit()}load(){return Promise.resolve(this)}get width(){return this._width}get height(){return this._height}style(_,Y,ee){return!1}dispose(){}destroy(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)}static test(_,Y){return!1}}class BufferResource extends Resource{constructor(_,Y){const{width:ee,height:te}=Y||{};if(!ee||!te)throw new Error("BufferResource width or height invalid");super(ee,te),this.data=_,this.unpackAlignment=Y.unpackAlignment??4}upload(_,Y,ee){const te=_.gl;te.pixelStorei(te.UNPACK_ALIGNMENT,this.unpackAlignment),te.pixelStorei(te.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Y.alphaMode===ALPHA_MODES.UNPACK);const re=Y.realWidth,ne=Y.realHeight;return ee.width===re&&ee.height===ne?te.texSubImage2D(Y.target,0,0,0,re,ne,Y.format,ee.type,this.data):(ee.width=re,ee.height=ne,te.texImage2D(Y.target,0,ee.internalFormat,re,ne,0,Y.format,ee.type,this.data)),!0}dispose(){this.data=null}static test(_){return _===null||_ instanceof Int8Array||_ instanceof Uint8Array||_ instanceof Uint8ClampedArray||_ instanceof Int16Array||_ instanceof Uint16Array||_ instanceof Int32Array||_ instanceof Uint32Array||_ instanceof Float32Array}}const defaultBufferOptions={scaleMode:SCALE_MODES.NEAREST,alphaMode:ALPHA_MODES.NPM},_BaseTexture=class bt extends EventEmitter{constructor(_=null,Y=null){super(),Y=Object.assign({},bt.defaultOptions,Y);const{alphaMode:ee,mipmap:te,anisotropicLevel:re,scaleMode:ne,width:ie,height:se,wrapMode:ae,format:ue,type:oe,target:le,resolution:ce,resourceOptions:he}=Y;_&&!(_ instanceof Resource)&&(_=autoDetectResource(_,he),_.internal=!0),this.resolution=ce||settings.RESOLUTION,this.width=Math.round((ie||0)*this.resolution)/this.resolution,this.height=Math.round((se||0)*this.resolution)/this.resolution,this._mipmap=te,this.anisotropicLevel=re,this._wrapMode=ae,this._scaleMode=ne,this.format=ue,this.type=oe,this.target=le,this.alphaMode=ee,this.uid=uid$1(),this.touched=0,this.isPowerOfTwo=!1,this._refreshPOT(),this._glTextures={},this.dirtyId=0,this.dirtyStyleId=0,this.cacheId=null,this.valid=ie>0&&se>0,this.textureCacheIds=[],this.destroyed=!1,this.resource=null,this._batchEnabled=0,this._batchLocation=0,this.parentTextureArray=null,this.setResource(_)}get realWidth(){return Math.round(this.width*this.resolution)}get realHeight(){return Math.round(this.height*this.resolution)}get mipmap(){return this._mipmap}set mipmap(_){this._mipmap!==_&&(this._mipmap=_,this.dirtyStyleId++)}get scaleMode(){return this._scaleMode}set scaleMode(_){this._scaleMode!==_&&(this._scaleMode=_,this.dirtyStyleId++)}get wrapMode(){return this._wrapMode}set wrapMode(_){this._wrapMode!==_&&(this._wrapMode=_,this.dirtyStyleId++)}setStyle(_,Y){let ee;return _!==void 0&&_!==this.scaleMode&&(this.scaleMode=_,ee=!0),Y!==void 0&&Y!==this.mipmap&&(this.mipmap=Y,ee=!0),ee&&this.dirtyStyleId++,this}setSize(_,Y,ee){return ee=ee||this.resolution,this.setRealSize(_*ee,Y*ee,ee)}setRealSize(_,Y,ee){return this.resolution=ee||this.resolution,this.width=Math.round(_)/this.resolution,this.height=Math.round(Y)/this.resolution,this._refreshPOT(),this.update(),this}_refreshPOT(){this.isPowerOfTwo=isPow2(this.realWidth)&&isPow2(this.realHeight)}setResolution(_){const Y=this.resolution;return Y===_?this:(this.resolution=_,this.valid&&(this.width=Math.round(this.width*Y)/_,this.height=Math.round(this.height*Y)/_,this.emit("update",this)),this._refreshPOT(),this)}setResource(_){if(this.resource===_)return this;if(this.resource)throw new Error("Resource can be set only once");return _.bind(this),this.resource=_,this}update(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit("update",this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit("loaded",this),this.emit("update",this))}onError(_){this.emit("error",this,_)}destroy(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete BaseTextureCache[this.cacheId],delete TextureCache[this.cacheId],this.cacheId=null),this.valid=!1,this.dispose(),bt.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0,this.emit("destroyed",this),this.removeAllListeners()}dispose(){this.emit("dispose",this)}castToBaseTexture(){return this}static from(_,Y,ee=settings.STRICT_TEXTURE_CACHE){const te=typeof _=="string";let re=null;if(te)re=_;else{if(!_._pixiId){const ie=(Y==null?void 0:Y.pixiIdPrefix)||"pixiid";_._pixiId=`${ie}_${uid$1()}`}re=_._pixiId}let ne=BaseTextureCache[re];if(te&&ee&&!ne)throw new Error(`The cacheId "${re}" does not exist in BaseTextureCache.`);return ne||(ne=new bt(_,Y),ne.cacheId=re,bt.addToCache(ne,re)),ne}static fromBuffer(_,Y,ee,te){_=_||new Float32Array(Y*ee*4);const re=new BufferResource(_,{width:Y,height:ee,...te==null?void 0:te.resourceOptions});let ne,ie;return _ instanceof Float32Array?(ne=FORMATS.RGBA,ie=TYPES.FLOAT):_ instanceof Int32Array?(ne=FORMATS.RGBA_INTEGER,ie=TYPES.INT):_ instanceof Uint32Array?(ne=FORMATS.RGBA_INTEGER,ie=TYPES.UNSIGNED_INT):_ instanceof Int16Array?(ne=FORMATS.RGBA_INTEGER,ie=TYPES.SHORT):_ instanceof Uint16Array?(ne=FORMATS.RGBA_INTEGER,ie=TYPES.UNSIGNED_SHORT):_ instanceof Int8Array?(ne=FORMATS.RGBA,ie=TYPES.BYTE):(ne=FORMATS.RGBA,ie=TYPES.UNSIGNED_BYTE),re.internal=!0,new bt(re,Object.assign({},defaultBufferOptions,{type:ie,format:ne},te))}static addToCache(_,Y){Y&&(_.textureCacheIds.includes(Y)||_.textureCacheIds.push(Y),BaseTextureCache[Y]&&BaseTextureCache[Y]!==_&&console.warn(`BaseTexture added to the cache with an id [${Y}] that already had an entry`),BaseTextureCache[Y]=_)}static removeFromCache(_){if(typeof _=="string"){const Y=BaseTextureCache[_];if(Y){const ee=Y.textureCacheIds.indexOf(_);return ee>-1&&Y.textureCacheIds.splice(ee,1),delete BaseTextureCache[_],Y}}else if(_!=null&&_.textureCacheIds){for(let Y=0;Y<_.textureCacheIds.length;++Y)delete BaseTextureCache[_.textureCacheIds[Y]];return _.textureCacheIds.length=0,_}return null}};_BaseTexture.defaultOptions={mipmap:MIPMAP_MODES.POW2,anisotropicLevel:0,scaleMode:SCALE_MODES.LINEAR,wrapMode:WRAP_MODES.CLAMP,alphaMode:ALPHA_MODES.UNPACK,target:TARGETS.TEXTURE_2D,format:FORMATS.RGBA,type:TYPES.UNSIGNED_BYTE},_BaseTexture._globalBatch=0;let BaseTexture=_BaseTexture;class BatchDrawCall{constructor(){this.texArray=null,this.blend=0,this.type=DRAW_MODES.TRIANGLES,this.start=0,this.size=0,this.data=null}}let UID$4=0,Buffer$1=class Qt{constructor(_,Y=!0,ee=!1){this.data=_||new Float32Array(1),this._glBuffers={},this._updateID=0,this.index=ee,this.static=Y,this.id=UID$4++,this.disposeRunner=new Runner("disposeBuffer")}update(_){_ instanceof Array&&(_=new Float32Array(_)),this.data=_||this.data,this._updateID++}dispose(){this.disposeRunner.emit(this,!1)}destroy(){this.dispose(),this.data=null}set index(_){this.type=_?BUFFER_TYPE.ELEMENT_ARRAY_BUFFER:BUFFER_TYPE.ARRAY_BUFFER}get index(){return this.type===BUFFER_TYPE.ELEMENT_ARRAY_BUFFER}static from(_){return _ instanceof Array&&(_=new Float32Array(_)),new Qt(_)}};class Attribute{constructor(_,Y=0,ee=!1,te=TYPES.FLOAT,re,ne,ie,se=1){this.buffer=_,this.size=Y,this.normalized=ee,this.type=te,this.stride=re,this.start=ne,this.instance=ie,this.divisor=se}destroy(){this.buffer=null}static from(_,Y,ee,te,re){return new Attribute(_,Y,ee,te,re)}}const map$1={Float32Array,Uint32Array,Int32Array,Uint8Array};function interleaveTypedArrays(Z,_){let Y=0,ee=0;const te={};for(let se=0;se1){for(let oe=0;oe(Z[Z.POLY=0]="POLY",Z[Z.RECT=1]="RECT",Z[Z.CIRC=2]="CIRC",Z[Z.ELIP=3]="ELIP",Z[Z.RREC=4]="RREC",Z))(SHAPES||{});class Point{constructor(_=0,Y=0){this.x=0,this.y=0,this.x=_,this.y=Y}clone(){return new Point(this.x,this.y)}copyFrom(_){return this.set(_.x,_.y),this}copyTo(_){return _.set(this.x,this.y),_}equals(_){return _.x===this.x&&_.y===this.y}set(_=0,Y=_){return this.x=_,this.y=Y,this}}Point.prototype.toString=function(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`};const tempPoints$1=[new Point,new Point,new Point,new Point];class Rectangle{constructor(_=0,Y=0,ee=0,te=0){this.x=Number(_),this.y=Number(Y),this.width=Number(ee),this.height=Number(te),this.type=SHAPES.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new Rectangle(0,0,0,0)}clone(){return new Rectangle(this.x,this.y,this.width,this.height)}copyFrom(_){return this.x=_.x,this.y=_.y,this.width=_.width,this.height=_.height,this}copyTo(_){return _.x=this.x,_.y=this.y,_.width=this.width,_.height=this.height,_}contains(_,Y){return this.width<=0||this.height<=0?!1:_>=this.x&&_=this.y&&Y_.right?_.right:this.right)<=Pe)return!1;const Ae=this.y<_.y?_.y:this.y;return(this.bottom>_.bottom?_.bottom:this.bottom)>Ae}const ee=this.left,te=this.right,re=this.top,ne=this.bottom;if(te<=ee||ne<=re)return!1;const ie=tempPoints$1[0].set(_.left,_.top),se=tempPoints$1[1].set(_.left,_.bottom),ae=tempPoints$1[2].set(_.right,_.top),ue=tempPoints$1[3].set(_.right,_.bottom);if(ae.x<=ie.x||se.y<=ie.y)return!1;const oe=Math.sign(Y.a*Y.d-Y.b*Y.c);if(oe===0||(Y.apply(ie,ie),Y.apply(se,se),Y.apply(ae,ae),Y.apply(ue,ue),Math.max(ie.x,se.x,ae.x,ue.x)<=ee||Math.min(ie.x,se.x,ae.x,ue.x)>=te||Math.max(ie.y,se.y,ae.y,ue.y)<=re||Math.min(ie.y,se.y,ae.y,ue.y)>=ne))return!1;const le=oe*(se.y-ie.y),ce=oe*(ie.x-se.x),he=le*ee+ce*re,fe=le*te+ce*re,de=le*ee+ce*ne,pe=le*te+ce*ne;if(Math.max(he,fe,de,pe)<=le*ie.x+ce*ie.y||Math.min(he,fe,de,pe)>=le*ue.x+ce*ue.y)return!1;const _e=oe*(ie.y-ae.y),me=oe*(ae.x-ie.x),ge=_e*ee+me*re,ye=_e*te+me*re,Ie=_e*ee+me*ne,Se=_e*te+me*ne;return!(Math.max(ge,ye,Ie,Se)<=_e*ie.x+me*ie.y||Math.min(ge,ye,Ie,Se)>=_e*ue.x+me*ue.y)}pad(_=0,Y=_){return this.x-=_,this.y-=Y,this.width+=_*2,this.height+=Y*2,this}fit(_){const Y=Math.max(this.x,_.x),ee=Math.min(this.x+this.width,_.x+_.width),te=Math.max(this.y,_.y),re=Math.min(this.y+this.height,_.y+_.height);return this.x=Y,this.width=Math.max(ee-Y,0),this.y=te,this.height=Math.max(re-te,0),this}ceil(_=1,Y=.001){const ee=Math.ceil((this.x+this.width-Y)*_)/_,te=Math.ceil((this.y+this.height-Y)*_)/_;return this.x=Math.floor((this.x+Y)*_)/_,this.y=Math.floor((this.y+Y)*_)/_,this.width=ee-this.x,this.height=te-this.y,this}enlarge(_){const Y=Math.min(this.x,_.x),ee=Math.max(this.x+this.width,_.x+_.width),te=Math.min(this.y,_.y),re=Math.max(this.y+this.height,_.y+_.height);return this.x=Y,this.width=ee-Y,this.y=te,this.height=re-te,this}}Rectangle.prototype.toString=function(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`};class Circle{constructor(_=0,Y=0,ee=0){this.x=_,this.y=Y,this.radius=ee,this.type=SHAPES.CIRC}clone(){return new Circle(this.x,this.y,this.radius)}contains(_,Y){if(this.radius<=0)return!1;const ee=this.radius*this.radius;let te=this.x-_,re=this.y-Y;return te*=te,re*=re,te+re<=ee}getBounds(){return new Rectangle(this.x-this.radius,this.y-this.radius,this.radius*2,this.radius*2)}}Circle.prototype.toString=function(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`};class Ellipse{constructor(_=0,Y=0,ee=0,te=0){this.x=_,this.y=Y,this.width=ee,this.height=te,this.type=SHAPES.ELIP}clone(){return new Ellipse(this.x,this.y,this.width,this.height)}contains(_,Y){if(this.width<=0||this.height<=0)return!1;let ee=(_-this.x)/this.width,te=(Y-this.y)/this.height;return ee*=ee,te*=te,ee+te<=1}getBounds(){return new Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)}}Ellipse.prototype.toString=function(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`};class Polygon{constructor(..._){let Y=Array.isArray(_[0])?_[0]:_;if(typeof Y[0]!="number"){const ee=[];for(let te=0,re=Y.length;teY!=ue>Y&&_<(ae-ie)*((Y-se)/(ue-se))+ie&&(ee=!ee)}return ee}}Polygon.prototype.toString=function(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((Z,_)=>`${Z}, ${_}`,"")}]`};class RoundedRectangle{constructor(_=0,Y=0,ee=0,te=0,re=20){this.x=_,this.y=Y,this.width=ee,this.height=te,this.radius=re,this.type=SHAPES.RREC}clone(){return new RoundedRectangle(this.x,this.y,this.width,this.height,this.radius)}contains(_,Y){if(this.width<=0||this.height<=0)return!1;if(_>=this.x&&_<=this.x+this.width&&Y>=this.y&&Y<=this.y+this.height){const ee=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(Y>=this.y+ee&&Y<=this.y+this.height-ee||_>=this.x+ee&&_<=this.x+this.width-ee)return!0;let te=_-(this.x+ee),re=Y-(this.y+ee);const ne=ee*ee;if(te*te+re*re<=ne||(te=_-(this.x+this.width-ee),te*te+re*re<=ne)||(re=Y-(this.y+this.height-ee),te*te+re*re<=ne)||(te=_-(this.x+ee),te*te+re*re<=ne))return!0}return!1}}RoundedRectangle.prototype.toString=function(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`};class Matrix{constructor(_=1,Y=0,ee=0,te=1,re=0,ne=0){this.array=null,this.a=_,this.b=Y,this.c=ee,this.d=te,this.tx=re,this.ty=ne}fromArray(_){this.a=_[0],this.b=_[1],this.c=_[3],this.d=_[4],this.tx=_[2],this.ty=_[5]}set(_,Y,ee,te,re,ne){return this.a=_,this.b=Y,this.c=ee,this.d=te,this.tx=re,this.ty=ne,this}toArray(_,Y){this.array||(this.array=new Float32Array(9));const ee=Y||this.array;return _?(ee[0]=this.a,ee[1]=this.b,ee[2]=0,ee[3]=this.c,ee[4]=this.d,ee[5]=0,ee[6]=this.tx,ee[7]=this.ty,ee[8]=1):(ee[0]=this.a,ee[1]=this.c,ee[2]=this.tx,ee[3]=this.b,ee[4]=this.d,ee[5]=this.ty,ee[6]=0,ee[7]=0,ee[8]=1),ee}apply(_,Y){Y=Y||new Point;const ee=_.x,te=_.y;return Y.x=this.a*ee+this.c*te+this.tx,Y.y=this.b*ee+this.d*te+this.ty,Y}applyInverse(_,Y){Y=Y||new Point;const ee=1/(this.a*this.d+this.c*-this.b),te=_.x,re=_.y;return Y.x=this.d*ee*te+-this.c*ee*re+(this.ty*this.c-this.tx*this.d)*ee,Y.y=this.a*ee*re+-this.b*ee*te+(-this.ty*this.a+this.tx*this.b)*ee,Y}translate(_,Y){return this.tx+=_,this.ty+=Y,this}scale(_,Y){return this.a*=_,this.d*=Y,this.c*=_,this.b*=Y,this.tx*=_,this.ty*=Y,this}rotate(_){const Y=Math.cos(_),ee=Math.sin(_),te=this.a,re=this.c,ne=this.tx;return this.a=te*Y-this.b*ee,this.b=te*ee+this.b*Y,this.c=re*Y-this.d*ee,this.d=re*ee+this.d*Y,this.tx=ne*Y-this.ty*ee,this.ty=ne*ee+this.ty*Y,this}append(_){const Y=this.a,ee=this.b,te=this.c,re=this.d;return this.a=_.a*Y+_.b*te,this.b=_.a*ee+_.b*re,this.c=_.c*Y+_.d*te,this.d=_.c*ee+_.d*re,this.tx=_.tx*Y+_.ty*te+this.tx,this.ty=_.tx*ee+_.ty*re+this.ty,this}setTransform(_,Y,ee,te,re,ne,ie,se,ae){return this.a=Math.cos(ie+ae)*re,this.b=Math.sin(ie+ae)*re,this.c=-Math.sin(ie-se)*ne,this.d=Math.cos(ie-se)*ne,this.tx=_-(ee*this.a+te*this.c),this.ty=Y-(ee*this.b+te*this.d),this}prepend(_){const Y=this.tx;if(_.a!==1||_.b!==0||_.c!==0||_.d!==1){const ee=this.a,te=this.c;this.a=ee*_.a+this.b*_.c,this.b=ee*_.b+this.b*_.d,this.c=te*_.a+this.d*_.c,this.d=te*_.b+this.d*_.d}return this.tx=Y*_.a+this.ty*_.c+_.tx,this.ty=Y*_.b+this.ty*_.d+_.ty,this}decompose(_){const Y=this.a,ee=this.b,te=this.c,re=this.d,ne=_.pivot,ie=-Math.atan2(-te,re),se=Math.atan2(ee,Y),ae=Math.abs(ie+se);return ae<1e-5||Math.abs(PI_2-ae)<1e-5?(_.rotation=se,_.skew.x=_.skew.y=0):(_.rotation=0,_.skew.x=ie,_.skew.y=se),_.scale.x=Math.sqrt(Y*Y+ee*ee),_.scale.y=Math.sqrt(te*te+re*re),_.position.x=this.tx+(ne.x*Y+ne.y*te),_.position.y=this.ty+(ne.x*ee+ne.y*re),_}invert(){const _=this.a,Y=this.b,ee=this.c,te=this.d,re=this.tx,ne=_*te-Y*ee;return this.a=te/ne,this.b=-Y/ne,this.c=-ee/ne,this.d=_/ne,this.tx=(ee*this.ty-te*re)/ne,this.ty=-(_*this.ty-Y*re)/ne,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const _=new Matrix;return _.a=this.a,_.b=this.b,_.c=this.c,_.d=this.d,_.tx=this.tx,_.ty=this.ty,_}copyTo(_){return _.a=this.a,_.b=this.b,_.c=this.c,_.d=this.d,_.tx=this.tx,_.ty=this.ty,_}copyFrom(_){return this.a=_.a,this.b=_.b,this.c=_.c,this.d=_.d,this.tx=_.tx,this.ty=_.ty,this}static get IDENTITY(){return new Matrix}static get TEMP_MATRIX(){return new Matrix}}Matrix.prototype.toString=function(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`};const ux=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],uy=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],vx=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],vy=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],rotationCayley=[],rotationMatrices=[],signum=Math.sign;function init$1(){for(let Z=0;Z<16;Z++){const _=[];rotationCayley.push(_);for(let Y=0;Y<16;Y++){const ee=signum(ux[Z]*ux[Y]+vx[Z]*uy[Y]),te=signum(uy[Z]*ux[Y]+vy[Z]*uy[Y]),re=signum(ux[Z]*vx[Y]+vx[Z]*vy[Y]),ne=signum(uy[Z]*vx[Y]+vy[Z]*vy[Y]);for(let ie=0;ie<16;ie++)if(ux[ie]===ee&&uy[ie]===te&&vx[ie]===re&&vy[ie]===ne){_.push(ie);break}}}for(let Z=0;Z<16;Z++){const _=new Matrix;_.set(ux[Z],uy[Z],vx[Z],vy[Z],0,0),rotationMatrices.push(_)}}init$1();const groupD8={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:Z=>ux[Z],uY:Z=>uy[Z],vX:Z=>vx[Z],vY:Z=>vy[Z],inv:Z=>Z&8?Z&15:-Z&7,add:(Z,_)=>rotationCayley[Z][_],sub:(Z,_)=>rotationCayley[Z][groupD8.inv(_)],rotate180:Z=>Z^4,isVertical:Z=>(Z&3)===2,byDirection:(Z,_)=>Math.abs(Z)*2<=Math.abs(_)?_>=0?groupD8.S:groupD8.N:Math.abs(_)*2<=Math.abs(Z)?Z>0?groupD8.E:groupD8.W:_>0?Z>0?groupD8.SE:groupD8.SW:Z>0?groupD8.NE:groupD8.NW,matrixAppendRotationInv:(Z,_,Y=0,ee=0)=>{const te=rotationMatrices[groupD8.inv(_)];te.tx=Y,te.ty=ee,Z.append(te)}};class ObservablePoint{constructor(_,Y,ee=0,te=0){this._x=ee,this._y=te,this.cb=_,this.scope=Y}clone(_=this.cb,Y=this.scope){return new ObservablePoint(_,Y,this._x,this._y)}set(_=0,Y=_){return(this._x!==_||this._y!==Y)&&(this._x=_,this._y=Y,this.cb.call(this.scope)),this}copyFrom(_){return(this._x!==_.x||this._y!==_.y)&&(this._x=_.x,this._y=_.y,this.cb.call(this.scope)),this}copyTo(_){return _.set(this._x,this._y),_}equals(_){return _.x===this._x&&_.y===this._y}get x(){return this._x}set x(_){this._x!==_&&(this._x=_,this.cb.call(this.scope))}get y(){return this._y}set y(_){this._y!==_&&(this._y=_,this.cb.call(this.scope))}}ObservablePoint.prototype.toString=function(){return`[@pixi/math:ObservablePoint x=${this.x} y=${this.y} scope=${this.scope}]`};const _Transform=class{constructor(){this.worldTransform=new Matrix,this.localTransform=new Matrix,this.position=new ObservablePoint(this.onChange,this,0,0),this.scale=new ObservablePoint(this.onChange,this,1,1),this.pivot=new ObservablePoint(this.onChange,this,0,0),this.skew=new ObservablePoint(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}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._localID++}updateLocalTransform(){const Z=this.localTransform;this._localID!==this._currentLocalID&&(Z.a=this._cx*this.scale.x,Z.b=this._sx*this.scale.x,Z.c=this._cy*this.scale.y,Z.d=this._sy*this.scale.y,Z.tx=this.position.x-(this.pivot.x*Z.a+this.pivot.y*Z.c),Z.ty=this.position.y-(this.pivot.x*Z.b+this.pivot.y*Z.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(Z){const _=this.localTransform;if(this._localID!==this._currentLocalID&&(_.a=this._cx*this.scale.x,_.b=this._sx*this.scale.x,_.c=this._cy*this.scale.y,_.d=this._sy*this.scale.y,_.tx=this.position.x-(this.pivot.x*_.a+this.pivot.y*_.c),_.ty=this.position.y-(this.pivot.x*_.b+this.pivot.y*_.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==Z._worldID){const Y=Z.worldTransform,ee=this.worldTransform;ee.a=_.a*Y.a+_.b*Y.c,ee.b=_.a*Y.b+_.b*Y.d,ee.c=_.c*Y.a+_.d*Y.c,ee.d=_.c*Y.b+_.d*Y.d,ee.tx=_.tx*Y.a+_.ty*Y.c+Y.tx,ee.ty=_.tx*Y.b+_.ty*Y.d+Y.ty,this._parentID=Z._worldID,this._worldID++}}setFromMatrix(Z){Z.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(Z){this._rotation!==Z&&(this._rotation=Z,this.updateSkew())}};_Transform.IDENTITY=new _Transform;let Transform=_Transform;Transform.prototype.toString=function(){return`[@pixi/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}) ]`};var defaultFragment$2=`varying vec2 vTextureCoord; + +uniform sampler2D uSampler; + +void main(void){ + gl_FragColor *= texture2D(uSampler, vTextureCoord); +}`,defaultVertex$3=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void){ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +} +`;function compileShader(Z,_,Y){const ee=Z.createShader(_);return Z.shaderSource(ee,Y),Z.compileShader(ee),ee}function booleanArray(Z){const _=new Array(Z);for(let Y=0;Y<_.length;Y++)_[Y]=!1;return _}function defaultValue(Z,_){switch(Z){case"float":return 0;case"vec2":return new Float32Array(2*_);case"vec3":return new Float32Array(3*_);case"vec4":return new Float32Array(4*_);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*_);case"ivec3":return new Int32Array(3*_);case"ivec4":return new Int32Array(4*_);case"uvec2":return new Uint32Array(2*_);case"uvec3":return new Uint32Array(3*_);case"uvec4":return new Uint32Array(4*_);case"bool":return!1;case"bvec2":return booleanArray(2*_);case"bvec3":return booleanArray(3*_);case"bvec4":return booleanArray(4*_);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}const uniformParsers=[{test:Z=>Z.type==="float"&&Z.size===1&&!Z.isArray,code:Z=>` + if(uv["${Z}"] !== ud["${Z}"].value) + { + ud["${Z}"].value = uv["${Z}"] + gl.uniform1f(ud["${Z}"].location, uv["${Z}"]) + } + `},{test:(Z,_)=>(Z.type==="sampler2D"||Z.type==="samplerCube"||Z.type==="sampler2DArray")&&Z.size===1&&!Z.isArray&&(_==null||_.castToBaseTexture!==void 0),code:Z=>`t = syncData.textureCount++; + + renderer.texture.bind(uv["${Z}"], t); + + if(ud["${Z}"].value !== t) + { + ud["${Z}"].value = t; + gl.uniform1i(ud["${Z}"].location, t); +; // eslint-disable-line max-len + }`},{test:(Z,_)=>Z.type==="mat3"&&Z.size===1&&!Z.isArray&&_.a!==void 0,code:Z=>` + gl.uniformMatrix3fv(ud["${Z}"].location, false, uv["${Z}"].toArray(true)); + `,codeUbo:Z=>` + var ${Z}_matrix = uv.${Z}.toArray(true); + + data[offset] = ${Z}_matrix[0]; + data[offset+1] = ${Z}_matrix[1]; + data[offset+2] = ${Z}_matrix[2]; + + data[offset + 4] = ${Z}_matrix[3]; + data[offset + 5] = ${Z}_matrix[4]; + data[offset + 6] = ${Z}_matrix[5]; + + data[offset + 8] = ${Z}_matrix[6]; + data[offset + 9] = ${Z}_matrix[7]; + data[offset + 10] = ${Z}_matrix[8]; + `},{test:(Z,_)=>Z.type==="vec2"&&Z.size===1&&!Z.isArray&&_.x!==void 0,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v.x || cv[1] !== v.y) + { + cv[0] = v.x; + cv[1] = v.y; + gl.uniform2f(ud["${Z}"].location, v.x, v.y); + }`,codeUbo:Z=>` + v = uv.${Z}; + + data[offset] = v.x; + data[offset+1] = v.y; + `},{test:Z=>Z.type==="vec2"&&Z.size===1&&!Z.isArray,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + gl.uniform2f(ud["${Z}"].location, v[0], v[1]); + } + `},{test:(Z,_)=>Z.type==="vec4"&&Z.size===1&&!Z.isArray&&_.width!==void 0,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) + { + cv[0] = v.x; + cv[1] = v.y; + cv[2] = v.width; + cv[3] = v.height; + gl.uniform4f(ud["${Z}"].location, v.x, v.y, v.width, v.height) + }`,codeUbo:Z=>` + v = uv.${Z}; + + data[offset] = v.x; + data[offset+1] = v.y; + data[offset+2] = v.width; + data[offset+3] = v.height; + `},{test:(Z,_)=>Z.type==="vec4"&&Z.size===1&&!Z.isArray&&_.red!==void 0,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) + { + cv[0] = v.red; + cv[1] = v.green; + cv[2] = v.blue; + cv[3] = v.alpha; + gl.uniform4f(ud["${Z}"].location, v.red, v.green, v.blue, v.alpha) + }`,codeUbo:Z=>` + v = uv.${Z}; + + data[offset] = v.red; + data[offset+1] = v.green; + data[offset+2] = v.blue; + data[offset+3] = v.alpha; + `},{test:(Z,_)=>Z.type==="vec3"&&Z.size===1&&!Z.isArray&&_.red!==void 0,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.a) + { + cv[0] = v.red; + cv[1] = v.green; + cv[2] = v.blue; + + gl.uniform3f(ud["${Z}"].location, v.red, v.green, v.blue) + }`,codeUbo:Z=>` + v = uv.${Z}; + + data[offset] = v.red; + data[offset+1] = v.green; + data[offset+2] = v.blue; + `},{test:Z=>Z.type==="vec4"&&Z.size===1&&!Z.isArray,code:Z=>` + cv = ud["${Z}"].value; + v = uv["${Z}"]; + + if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + cv[3] = v[3]; + + gl.uniform4f(ud["${Z}"].location, v[0], v[1], v[2], v[3]) + }`}],GLSL_TO_SINGLE_SETTERS_CACHED={float:` + if (cv !== v) + { + cu.value = v; + gl.uniform1f(location, v); + }`,vec2:` + if (cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + + gl.uniform2f(location, v[0], v[1]) + }`,vec3:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + + gl.uniform3f(location, v[0], v[1], v[2]) + }`,vec4:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + cv[3] = v[3]; + + gl.uniform4f(location, v[0], v[1], v[2], v[3]); + }`,int:` + if (cv !== v) + { + cu.value = v; + + gl.uniform1i(location, v); + }`,ivec2:` + if (cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + + gl.uniform2i(location, v[0], v[1]); + }`,ivec3:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + + gl.uniform3i(location, v[0], v[1], v[2]); + }`,ivec4:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + cv[3] = v[3]; + + gl.uniform4i(location, v[0], v[1], v[2], v[3]); + }`,uint:` + if (cv !== v) + { + cu.value = v; + + gl.uniform1ui(location, v); + }`,uvec2:` + if (cv[0] !== v[0] || cv[1] !== v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + + gl.uniform2ui(location, v[0], v[1]); + }`,uvec3:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + + gl.uniform3ui(location, v[0], v[1], v[2]); + }`,uvec4:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + cv[3] = v[3]; + + gl.uniform4ui(location, v[0], v[1], v[2], v[3]); + }`,bool:` + if (cv !== v) + { + cu.value = v; + gl.uniform1i(location, v); + }`,bvec2:` + if (cv[0] != v[0] || cv[1] != v[1]) + { + cv[0] = v[0]; + cv[1] = v[1]; + + gl.uniform2i(location, v[0], v[1]); + }`,bvec3:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + + gl.uniform3i(location, v[0], v[1], v[2]); + }`,bvec4:` + if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) + { + cv[0] = v[0]; + cv[1] = v[1]; + cv[2] = v[2]; + cv[3] = v[3]; + + gl.uniform4i(location, v[0], v[1], v[2], v[3]); + }`,mat2:"gl.uniformMatrix2fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",sampler2D:` + if (cv !== v) + { + cu.value = v; + + gl.uniform1i(location, v); + }`,samplerCube:` + if (cv !== v) + { + cu.value = v; + + gl.uniform1i(location, v); + }`,sampler2DArray:` + if (cv !== v) + { + cu.value = v; + + gl.uniform1i(location, v); + }`},GLSL_TO_ARRAY_SETTERS={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",uint:"gl.uniform1uiv(location, v)",uvec2:"gl.uniform2uiv(location, v)",uvec3:"gl.uniform3uiv(location, v)",uvec4:"gl.uniform4uiv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};function generateUniformsSync(Z,_){var ee;const Y=[` + var v = null; + var cv = null; + var cu = null; + var t = 0; + var gl = renderer.gl; + `];for(const te in Z.uniforms){const re=_[te];if(!re){((ee=Z.uniforms[te])==null?void 0:ee.group)===!0&&(Z.uniforms[te].ubo?Y.push(` + renderer.shader.syncUniformBufferGroup(uv.${te}, '${te}'); + `):Y.push(` + renderer.shader.syncUniformGroup(uv.${te}, syncData); + `));continue}const ne=Z.uniforms[te];let ie=!1;for(let se=0;se=ENV.WEBGL2&&(_=Z.getContext("webgl2",{})),_||(_=Z.getContext("webgl",{})||Z.getContext("experimental-webgl",{}),_?_.getExtension("WEBGL_draw_buffers"):_=null),context$2=_}return context$2}let maxFragmentPrecision;function getMaxFragmentPrecision(){if(!maxFragmentPrecision){maxFragmentPrecision=PRECISION.MEDIUM;const Z=getTestContext();if(Z&&Z.getShaderPrecisionFormat){const _=Z.getShaderPrecisionFormat(Z.FRAGMENT_SHADER,Z.HIGH_FLOAT);_&&(maxFragmentPrecision=_.precision?PRECISION.HIGH:PRECISION.MEDIUM)}}return maxFragmentPrecision}function logPrettyShaderError(Z,_){const Y=Z.getShaderSource(_).split(` +`).map((ae,ue)=>`${ue}: ${ae}`),ee=Z.getShaderInfoLog(_),te=ee.split(` +`),re={},ne=te.map(ae=>parseFloat(ae.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(ae=>ae&&!re[ae]?(re[ae]=!0,!0):!1),ie=[""];ne.forEach(ae=>{Y[ae-1]=`%c${Y[ae-1]}%c`,ie.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});const se=Y.join(` +`);ie[0]=se,console.error(ee),console.groupCollapsed("click to view full shader code"),console.warn(...ie),console.groupEnd()}function logProgramError(Z,_,Y,ee){Z.getProgramParameter(_,Z.LINK_STATUS)||(Z.getShaderParameter(Y,Z.COMPILE_STATUS)||logPrettyShaderError(Z,Y),Z.getShaderParameter(ee,Z.COMPILE_STATUS)||logPrettyShaderError(Z,ee),console.error("PixiJS Error: Could not initialize shader."),Z.getProgramInfoLog(_)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",Z.getProgramInfoLog(_)))}const GLSL_TO_SIZE={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};function mapSize(Z){return GLSL_TO_SIZE[Z]}let GL_TABLE=null;const GL_TO_GLSL_TYPES={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"};function mapType(Z,_){if(!GL_TABLE){const Y=Object.keys(GL_TO_GLSL_TYPES);GL_TABLE={};for(let ee=0;ee0&&(Y+=` +else `),ee<_-1&&(Y+=`if(vTextureId < ${ee}.5)`),Y+=` +{`,Y+=` + color = texture2D(uSamplers[${ee}], vTextureCoord);`,Y+=` +}`;return Y+=` +`,Y+=` +`,Y}}class BatchTextureArray{constructor(){this.elements=[],this.ids=[],this.count=0}clear(){for(let _=0;_this.size&&this.flush(),this._vertexCount+=_.vertexData.length/2,this._indexCount+=_.indices.length,this._bufferedTextures[this._bufferSize]=_._texture.baseTexture,this._bufferedElements[this._bufferSize++]=_)}buildTexturesAndDrawCalls(){const{_bufferedTextures:_,maxTextures:Y}=this,ee=pt._textureArrayPool,te=this.renderer.batch,re=this._tempBoundTextures,ne=this.renderer.textureGC.count;let ie=++BaseTexture._globalBatch,se=0,ae=ee[0],ue=0;te.copyBoundTextures(re,Y);for(let oe=0;oe=Y&&(te.boundArray(ae,re,ie,Y),this.buildDrawCalls(ae,ue,oe),ue=oe,ae=ee[++se],++ie),le._batchEnabled=ie,le.touched=ne,ae.elements[ae.count++]=le)}ae.count>0&&(te.boundArray(ae,re,ie,Y),this.buildDrawCalls(ae,ue,this._bufferSize),++se,++ie);for(let oe=0;oe0);for(let fe=0;fe=0;--te)_[te]=ee[te]||null,_[te]&&(_[te]._batchLocation=te)}boundArray(_,Y,ee,te){const{elements:re,ids:ne,count:ie}=_;let se=0;for(let ae=0;ae=0&&oe=ENV.WEBGL2&&(ee=_.getContext("webgl2",Y)),ee)this.webGLVersion=2;else if(this.webGLVersion=1,ee=_.getContext("webgl",Y)||_.getContext("experimental-webgl",Y),!ee)throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=ee,this.getExtensions(),this.gl}getExtensions(){const{gl:_}=this,Y={loseContext:_.getExtension("WEBGL_lose_context"),anisotropicFiltering:_.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:_.getExtension("OES_texture_float_linear"),s3tc:_.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:_.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:_.getExtension("WEBGL_compressed_texture_etc"),etc1:_.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:_.getExtension("WEBGL_compressed_texture_pvrtc")||_.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:_.getExtension("WEBGL_compressed_texture_atc"),astc:_.getExtension("WEBGL_compressed_texture_astc"),bptc:_.getExtension("EXT_texture_compression_bptc")};this.webGLVersion===1?Object.assign(this.extensions,Y,{drawBuffers:_.getExtension("WEBGL_draw_buffers"),depthTexture:_.getExtension("WEBGL_depth_texture"),vertexArrayObject:_.getExtension("OES_vertex_array_object")||_.getExtension("MOZ_OES_vertex_array_object")||_.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:_.getExtension("OES_element_index_uint"),floatTexture:_.getExtension("OES_texture_float"),floatTextureLinear:_.getExtension("OES_texture_float_linear"),textureHalfFloat:_.getExtension("OES_texture_half_float"),textureHalfFloatLinear:_.getExtension("OES_texture_half_float_linear")}):this.webGLVersion===2&&Object.assign(this.extensions,Y,{colorBufferFloat:_.getExtension("EXT_color_buffer_float")})}handleContextLost(_){_.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext&&this.extensions.loseContext.restoreContext()},0)}handleContextRestored(){this.renderer.runners.contextChange.emit(this.gl)}destroy(){const _=this.renderer.view;this.renderer=null,_.removeEventListener!==void 0&&(_.removeEventListener("webglcontextlost",this.handleContextLost),_.removeEventListener("webglcontextrestored",this.handleContextRestored)),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()}postrender(){this.renderer.objectRenderer.renderingToScreen&&this.gl.flush()}validateContext(_){const Y=_.getContextAttributes(),ee="WebGL2RenderingContext"in globalThis&&_ instanceof globalThis.WebGL2RenderingContext;ee&&(this.webGLVersion=2),Y&&!Y.stencil&&console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");const te=ee||!!_.getExtension("OES_element_index_uint");this.supports.uint32Indices=te,te||console.warn("Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly")}}ContextSystem.defaultOptions={context:null,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"},ContextSystem.extension={type:ExtensionType.RendererSystem,name:"context"};extensions$1.add(ContextSystem);class Framebuffer{constructor(_,Y){if(this.width=Math.round(_),this.height=Math.round(Y),!this.width||!this.height)throw new Error("Framebuffer width or height is zero");this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new Runner("disposeFramebuffer"),this.multisample=MSAA_QUALITY.NONE}get colorTexture(){return this.colorTextures[0]}addColorTexture(_=0,Y){return this.colorTextures[_]=Y||new BaseTexture(null,{scaleMode:SCALE_MODES.NEAREST,resolution:1,mipmap:MIPMAP_MODES.OFF,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this}addDepthTexture(_){return this.depthTexture=_||new BaseTexture(null,{scaleMode:SCALE_MODES.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:MIPMAP_MODES.OFF,format:FORMATS.DEPTH_COMPONENT,type:TYPES.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this}enableDepth(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this}enableStencil(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this}resize(_,Y){if(_=Math.round(_),Y=Math.round(Y),!_||!Y)throw new Error("Framebuffer width and height must not be zero");if(!(_===this.width&&Y===this.height)){this.width=_,this.height=Y,this.dirtyId++,this.dirtySize++;for(let ee=0;ee{const te=this.source;this.url=te.src;const re=()=>{this.destroyed||(te.onload=null,te.onerror=null,this.update(),this._load=null,this.createBitmap?Y(this.process()):Y(this))};te.complete&&te.src?re():(te.onload=re,te.onerror=ne=>{ee(ne),this.onError.emit(ne)})}),this._load)}process(){const _=this.source;if(this._process!==null)return this._process;if(this.bitmap!==null||!globalThis.createImageBitmap)return Promise.resolve(this);const Y=globalThis.createImageBitmap,ee=!_.crossOrigin||_.crossOrigin==="anonymous";return this._process=fetch(_.src,{mode:ee?"cors":"no-cors"}).then(te=>te.blob()).then(te=>Y(te,0,0,_.width,_.height,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===ALPHA_MODES.UNPACK?"premultiply":"none"})).then(te=>this.destroyed?Promise.reject():(this.bitmap=te,this.update(),this._process=null,Promise.resolve(this))),this._process}upload(_,Y,ee){if(typeof this.alphaMode=="number"&&(Y.alphaMode=this.alphaMode),!this.createBitmap)return super.upload(_,Y,ee);if(!this.bitmap&&(this.process(),!this.bitmap))return!1;if(super.upload(_,Y,ee,this.bitmap),!this.preserveBitmap){let te=!0;const re=Y._glTextures;for(const ne in re){const ie=re[ne];if(ie!==ee&&ie.dirtyId!==Y.dirtyId){te=!1;break}}te&&(this.bitmap.close&&this.bitmap.close(),this.bitmap=null)}return!0}dispose(){this.source.onload=null,this.source.onerror=null,super.dispose(),this.bitmap&&(this.bitmap.close(),this.bitmap=null),this._process=null,this._load=null}static test(_){return typeof HTMLImageElement<"u"&&(typeof _=="string"||_ instanceof HTMLImageElement)}}class TextureUvs{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(_,Y,ee){const te=Y.width,re=Y.height;if(ee){const ne=_.width/2/te,ie=_.height/2/re,se=_.x/te+ne,ae=_.y/re+ie;ee=groupD8.add(ee,groupD8.NW),this.x0=se+ne*groupD8.uX(ee),this.y0=ae+ie*groupD8.uY(ee),ee=groupD8.add(ee,2),this.x1=se+ne*groupD8.uX(ee),this.y1=ae+ie*groupD8.uY(ee),ee=groupD8.add(ee,2),this.x2=se+ne*groupD8.uX(ee),this.y2=ae+ie*groupD8.uY(ee),ee=groupD8.add(ee,2),this.x3=se+ne*groupD8.uX(ee),this.y3=ae+ie*groupD8.uY(ee)}else this.x0=_.x/te,this.y0=_.y/re,this.x1=(_.x+_.width)/te,this.y1=_.y/re,this.x2=(_.x+_.width)/te,this.y2=(_.y+_.height)/re,this.x3=_.x/te,this.y3=(_.y+_.height)/re;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}}TextureUvs.prototype.toString=function(){return`[@pixi/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}]`};const DEFAULT_UVS=new TextureUvs;function removeAllHandlers(Z){Z.destroy=function(){},Z.on=function(){},Z.once=function(){},Z.emit=function(){}}class Texture extends EventEmitter{constructor(_,Y,ee,te,re,ne,ie){if(super(),this.noFrame=!1,Y||(this.noFrame=!0,Y=new Rectangle(0,0,1,1)),_ instanceof Texture&&(_=_.baseTexture),this.baseTexture=_,this._frame=Y,this.trim=te,this.valid=!1,this.destroyed=!1,this._uvs=DEFAULT_UVS,this.uvMatrix=null,this.orig=ee||Y,this._rotate=Number(re||0),re===!0)this._rotate=2;else if(this._rotate%2!==0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");this.defaultAnchor=ne?new Point(ne.x,ne.y):new Point(0,0),this.defaultBorders=ie,this._updateID=0,this.textureCacheIds=[],_.valid?this.noFrame?_.valid&&this.onBaseTextureUpdated(_):this.frame=Y:_.once("loaded",this.onBaseTextureUpdated,this),this.noFrame&&_.on("update",this.onBaseTextureUpdated,this)}update(){this.baseTexture.resource&&this.baseTexture.resource.update()}onBaseTextureUpdated(_){if(this.noFrame){if(!this.baseTexture.valid)return;this._frame.width=_.width,this._frame.height=_.height,this.valid=!0,this.updateUvs()}else this.frame=this._frame;this.emit("update",this)}destroy(_){if(this.baseTexture){if(_){const{resource:Y}=this.baseTexture;Y!=null&&Y.url&&TextureCache[Y.url]&&Texture.removeFromCache(Y.url),this.baseTexture.destroy()}this.baseTexture.off("loaded",this.onBaseTextureUpdated,this),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture=null}this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,Texture.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0,this.emit("destroyed",this),this.removeAllListeners()}clone(){var te;const _=this._frame.clone(),Y=this._frame===this.orig?_:this.orig.clone(),ee=new Texture(this.baseTexture,!this.noFrame&&_,Y,(te=this.trim)==null?void 0:te.clone(),this.rotate,this.defaultAnchor,this.defaultBorders);return this.noFrame&&(ee._frame=_),ee}updateUvs(){this._uvs===DEFAULT_UVS&&(this._uvs=new TextureUvs),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++}static from(_,Y={},ee=settings.STRICT_TEXTURE_CACHE){const te=typeof _=="string";let re=null;if(te)re=_;else if(_ instanceof BaseTexture){if(!_.cacheId){const ie=(Y==null?void 0:Y.pixiIdPrefix)||"pixiid";_.cacheId=`${ie}-${uid$1()}`,BaseTexture.addToCache(_,_.cacheId)}re=_.cacheId}else{if(!_._pixiId){const ie=(Y==null?void 0:Y.pixiIdPrefix)||"pixiid";_._pixiId=`${ie}_${uid$1()}`}re=_._pixiId}let ne=TextureCache[re];if(te&&ee&&!ne)throw new Error(`The cacheId "${re}" does not exist in TextureCache.`);return!ne&&!(_ instanceof BaseTexture)?(Y.resolution||(Y.resolution=getResolutionOfUrl(_)),ne=new Texture(new BaseTexture(_,Y)),ne.baseTexture.cacheId=re,BaseTexture.addToCache(ne.baseTexture,re),Texture.addToCache(ne,re)):!ne&&_ instanceof BaseTexture&&(ne=new Texture(_),Texture.addToCache(ne,re)),ne}static fromURL(_,Y){const ee=Object.assign({autoLoad:!1},Y==null?void 0:Y.resourceOptions),te=Texture.from(_,Object.assign({resourceOptions:ee},Y),!1),re=te.baseTexture.resource;return te.baseTexture.valid?Promise.resolve(te):re.load().then(()=>Promise.resolve(te))}static fromBuffer(_,Y,ee,te){return new Texture(BaseTexture.fromBuffer(_,Y,ee,te))}static fromLoader(_,Y,ee,te){const re=new BaseTexture(_,Object.assign({scaleMode:BaseTexture.defaultOptions.scaleMode,resolution:getResolutionOfUrl(Y)},te)),{resource:ne}=re;ne instanceof ImageResource&&(ne.url=Y);const ie=new Texture(re);return ee||(ee=Y),BaseTexture.addToCache(ie.baseTexture,ee),Texture.addToCache(ie,ee),ee!==Y&&(BaseTexture.addToCache(ie.baseTexture,Y),Texture.addToCache(ie,Y)),ie.baseTexture.valid?Promise.resolve(ie):new Promise(se=>{ie.baseTexture.once("loaded",()=>se(ie))})}static addToCache(_,Y){Y&&(_.textureCacheIds.includes(Y)||_.textureCacheIds.push(Y),TextureCache[Y]&&TextureCache[Y]!==_&&console.warn(`Texture added to the cache with an id [${Y}] that already had an entry`),TextureCache[Y]=_)}static removeFromCache(_){if(typeof _=="string"){const Y=TextureCache[_];if(Y){const ee=Y.textureCacheIds.indexOf(_);return ee>-1&&Y.textureCacheIds.splice(ee,1),delete TextureCache[_],Y}}else if(_!=null&&_.textureCacheIds){for(let Y=0;Y<_.textureCacheIds.length;++Y)TextureCache[_.textureCacheIds[Y]]===_&&delete TextureCache[_.textureCacheIds[Y]];return _.textureCacheIds.length=0,_}return null}get resolution(){return this.baseTexture.resolution}get frame(){return this._frame}set frame(_){this._frame=_,this.noFrame=!1;const{x:Y,y:ee,width:te,height:re}=_,ne=Y+te>this.baseTexture.width,ie=ee+re>this.baseTexture.height;if(ne||ie){const se=ne&&ie?"and":"or",ae=`X: ${Y} + ${te} = ${Y+te} > ${this.baseTexture.width}`,ue=`Y: ${ee} + ${re} = ${ee+re} > ${this.baseTexture.height}`;throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${ae} ${se} ${ue}`)}this.valid=te&&re&&this.baseTexture.valid,!this.trim&&!this.rotate&&(this.orig=_),this.valid&&this.updateUvs()}get rotate(){return this._rotate}set rotate(_){this._rotate=_,this.valid&&this.updateUvs()}get width(){return this.orig.width}get height(){return this.orig.height}castToBaseTexture(){return this.baseTexture}static get EMPTY(){return Texture._EMPTY||(Texture._EMPTY=new Texture(new BaseTexture),removeAllHandlers(Texture._EMPTY),removeAllHandlers(Texture._EMPTY.baseTexture)),Texture._EMPTY}static get WHITE(){if(!Texture._WHITE){const _=settings.ADAPTER.createCanvas(16,16),Y=_.getContext("2d");_.width=16,_.height=16,Y.fillStyle="white",Y.fillRect(0,0,16,16),Texture._WHITE=new Texture(BaseTexture.from(_)),removeAllHandlers(Texture._WHITE),removeAllHandlers(Texture._WHITE.baseTexture)}return Texture._WHITE}}class RenderTexture extends Texture{constructor(_,Y){super(_,Y),this.valid=!0,this.filterFrame=null,this.filterPoolKey=null,this.updateUvs()}get framebuffer(){return this.baseTexture.framebuffer}get multisample(){return this.framebuffer.multisample}set multisample(_){this.framebuffer.multisample=_}resize(_,Y,ee=!0){const te=this.baseTexture.resolution,re=Math.round(_*te)/te,ne=Math.round(Y*te)/te;this.valid=re>0&&ne>0,this._frame.width=this.orig.width=re,this._frame.height=this.orig.height=ne,ee&&this.baseTexture.resize(re,ne),this.updateUvs()}setResolution(_){const{baseTexture:Y}=this;Y.resolution!==_&&(Y.setResolution(_),this.resize(Y.width,Y.height,!1))}static create(_){return new RenderTexture(new BaseRenderTexture(_))}}class RenderTexturePool{constructor(_){this.texturePool={},this.textureOptions=_||{},this.enableFullScreen=!1,this._pixelsWidth=0,this._pixelsHeight=0}createTexture(_,Y,ee=MSAA_QUALITY.NONE){const te=new BaseRenderTexture(Object.assign({width:_,height:Y,resolution:1,multisample:ee},this.textureOptions));return new RenderTexture(te)}getOptimalTexture(_,Y,ee=1,te=MSAA_QUALITY.NONE){let re;_=Math.max(Math.ceil(_*ee-1e-6),1),Y=Math.max(Math.ceil(Y*ee-1e-6),1),!this.enableFullScreen||_!==this._pixelsWidth||Y!==this._pixelsHeight?(_=nextPow2(_),Y=nextPow2(Y),re=((_&65535)<<16|Y&65535)>>>0,te>1&&(re+=te*4294967296)):re=te>1?-te:-1,this.texturePool[re]||(this.texturePool[re]=[]);let ne=this.texturePool[re].pop();return ne||(ne=this.createTexture(_,Y,te)),ne.filterPoolKey=re,ne.setResolution(ee),ne}getFilterTexture(_,Y,ee){const te=this.getOptimalTexture(_.width,_.height,Y||_.resolution,ee||MSAA_QUALITY.NONE);return te.filterFrame=_.filterFrame,te}returnTexture(_){const Y=_.filterPoolKey;_.filterFrame=null,this.texturePool[Y].push(_)}returnFilterTexture(_){this.returnTexture(_)}clear(_){if(_=_!==!1,_)for(const Y in this.texturePool){const ee=this.texturePool[Y];if(ee)for(let te=0;te0&&_.height>0;for(const Y in this.texturePool){if(!(Number(Y)<0))continue;const ee=this.texturePool[Y];if(ee)for(let te=0;te1&&(ue=this.getOptimalFilterTexture(ae.width,ae.height,Y.resolution),ue.filterFrame=ae.filterFrame),ee[oe].apply(this,ae,ue,CLEAR_MODES.CLEAR,Y);const le=ae;ae=ue,ue=le}ee[oe].apply(this,ae,se.renderTexture,CLEAR_MODES.BLEND,Y),oe>1&&Y.multisample>1&&this.returnFilterTexture(Y.renderTexture),this.returnFilterTexture(ae),this.returnFilterTexture(ue)}Y.clear(),this.statePool.push(Y)}bindAndClear(_,Y=CLEAR_MODES.CLEAR){const{renderTexture:ee,state:te}=this.renderer;if(_===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.projection.transform=this.activeState.transform:this.renderer.projection.transform=null,_==null?void 0:_.filterFrame){const ne=this.tempRect;ne.x=0,ne.y=0,ne.width=_.filterFrame.width,ne.height=_.filterFrame.height,ee.bind(_,_.filterFrame,ne)}else _!==this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?ee.bind(_):this.renderer.renderTexture.bind(_,this.activeState.bindingSourceFrame,this.activeState.bindingDestinationFrame);const re=te.stateId&1||this.forceClear;(Y===CLEAR_MODES.CLEAR||Y===CLEAR_MODES.BLIT&&re)&&this.renderer.framebuffer.clear(0,0,0,0)}applyFilter(_,Y,ee,te){const re=this.renderer;re.state.set(_.state),this.bindAndClear(ee,te),_.uniforms.uSampler=Y,_.uniforms.filterGlobals=this.globalUniforms,re.shader.bind(_),_.legacy=!!_.program.attributeData.aTextureCoord,_.legacy?(this.quadUv.map(Y._frame,Y.filterFrame),re.geometry.bind(this.quadUv),re.geometry.draw(DRAW_MODES.TRIANGLES)):(re.geometry.bind(this.quad),re.geometry.draw(DRAW_MODES.TRIANGLE_STRIP))}calculateSpriteMatrix(_,Y){const{sourceFrame:ee,destinationFrame:te}=this.activeState,{orig:re}=Y._texture,ne=_.set(te.width,0,0,te.height,ee.x,ee.y),ie=Y.worldTransform.copyTo(Matrix.TEMP_MATRIX);return ie.invert(),ne.prepend(ie),ne.scale(1/re.width,1/re.height),ne.translate(Y.anchor.x,Y.anchor.y),ne}destroy(){this.renderer=null,this.texturePool.clear(!1)}getOptimalFilterTexture(_,Y,ee=1,te=MSAA_QUALITY.NONE){return this.texturePool.getOptimalTexture(_,Y,ee,te)}getFilterTexture(_,Y,ee){if(typeof _=="number"){const re=_;_=Y,Y=re}_=_||this.activeState.renderTexture;const te=this.texturePool.getOptimalTexture(_.width,_.height,Y||_.resolution,ee||MSAA_QUALITY.NONE);return te.filterFrame=_.filterFrame,te}returnFilterTexture(_){this.texturePool.returnTexture(_)}emptyPool(){this.texturePool.clear(!0)}resize(){this.texturePool.setScreenSize(this.renderer.view)}transformAABB(_,Y){const ee=tempPoints[0],te=tempPoints[1],re=tempPoints[2],ne=tempPoints[3];ee.set(Y.left,Y.top),te.set(Y.left,Y.bottom),re.set(Y.right,Y.top),ne.set(Y.right,Y.bottom),_.apply(ee,ee),_.apply(te,te),_.apply(re,re),_.apply(ne,ne);const ie=Math.min(ee.x,te.x,re.x,ne.x),se=Math.min(ee.y,te.y,re.y,ne.y),ae=Math.max(ee.x,te.x,re.x,ne.x),ue=Math.max(ee.y,te.y,re.y,ne.y);Y.x=ie,Y.y=se,Y.width=ae-ie,Y.height=ue-se}roundFrame(_,Y,ee,te,re){if(!(_.width<=0||_.height<=0||ee.width<=0||ee.height<=0)){if(re){const{a:ne,b:ie,c:se,d:ae}=re;if((Math.abs(ie)>1e-4||Math.abs(se)>1e-4)&&(Math.abs(ne)>1e-4||Math.abs(ae)>1e-4))return}re=re?tempMatrix$2.copyFrom(re):tempMatrix$2.identity(),re.translate(-ee.x,-ee.y).scale(te.width/ee.width,te.height/ee.height).translate(te.x,te.y),this.transformAABB(re,_),_.ceil(Y),this.transformAABB(re.invert(),_)}}}FilterSystem.extension={type:ExtensionType.RendererSystem,name:"filter"};extensions$1.add(FilterSystem);class GLFramebuffer{constructor(_){this.framebuffer=_,this.stencil=null,this.dirtyId=-1,this.dirtyFormat=-1,this.dirtySize=-1,this.multisample=MSAA_QUALITY.NONE,this.msaaBuffer=null,this.blitFramebuffer=null,this.mipLevel=0}}const tempRectangle=new Rectangle;class FramebufferSystem{constructor(_){this.renderer=_,this.managedFramebuffers=[],this.unknownFramebuffer=new Framebuffer(10,10),this.msaaSamples=null}contextChange(){this.disposeAll(!0);const _=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new Rectangle,this.hasMRT=!0,this.writeDepthTexture=!0,this.renderer.context.webGLVersion===1){let Y=this.renderer.context.extensions.drawBuffers,ee=this.renderer.context.extensions.depthTexture;settings.PREFER_ENV===ENV.WEBGL_LEGACY&&(Y=null,ee=null),Y?_.drawBuffers=te=>Y.drawBuffersWEBGL(te):(this.hasMRT=!1,_.drawBuffers=()=>{}),ee||(this.writeDepthTexture=!1)}else this.msaaSamples=_.getInternalformatParameter(_.RENDERBUFFER,_.RGBA8,_.SAMPLES)}bind(_,Y,ee=0){const{gl:te}=this;if(_){const re=_.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(_);this.current!==_&&(this.current=_,te.bindFramebuffer(te.FRAMEBUFFER,re.framebuffer)),re.mipLevel!==ee&&(_.dirtyId++,_.dirtyFormat++,re.mipLevel=ee),re.dirtyId!==_.dirtyId&&(re.dirtyId=_.dirtyId,re.dirtyFormat!==_.dirtyFormat?(re.dirtyFormat=_.dirtyFormat,re.dirtySize=_.dirtySize,this.updateFramebuffer(_,ee)):re.dirtySize!==_.dirtySize&&(re.dirtySize=_.dirtySize,this.resizeFramebuffer(_)));for(let ne=0;ne<_.colorTextures.length;ne++){const ie=_.colorTextures[ne];this.renderer.texture.unbind(ie.parentTextureArray||ie)}if(_.depthTexture&&this.renderer.texture.unbind(_.depthTexture),Y){const ne=Y.width>>ee,ie=Y.height>>ee,se=ne/Y.width;this.setViewport(Y.x*se,Y.y*se,ne,ie)}else{const ne=_.width>>ee,ie=_.height>>ee;this.setViewport(0,0,ne,ie)}}else this.current&&(this.current=null,te.bindFramebuffer(te.FRAMEBUFFER,null)),Y?this.setViewport(Y.x,Y.y,Y.width,Y.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)}setViewport(_,Y,ee,te){const re=this.viewport;_=Math.round(_),Y=Math.round(Y),ee=Math.round(ee),te=Math.round(te),(re.width!==ee||re.height!==te||re.x!==_||re.y!==Y)&&(re.x=_,re.y=Y,re.width=ee,re.height=te,this.gl.viewport(_,Y,ee,te))}get size(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}}clear(_,Y,ee,te,re=BUFFER_BITS.COLOR|BUFFER_BITS.DEPTH){const{gl:ne}=this;ne.clearColor(_,Y,ee,te),ne.clear(re)}initFramebuffer(_){const{gl:Y}=this,ee=new GLFramebuffer(Y.createFramebuffer());return ee.multisample=this.detectSamples(_.multisample),_.glFramebuffers[this.CONTEXT_UID]=ee,this.managedFramebuffers.push(_),_.disposeRunner.add(this),ee}resizeFramebuffer(_){const{gl:Y}=this,ee=_.glFramebuffers[this.CONTEXT_UID];if(ee.stencil){Y.bindRenderbuffer(Y.RENDERBUFFER,ee.stencil);let ne;this.renderer.context.webGLVersion===1?ne=Y.DEPTH_STENCIL:_.depth&&_.stencil?ne=Y.DEPTH24_STENCIL8:_.depth?ne=Y.DEPTH_COMPONENT24:ne=Y.STENCIL_INDEX8,ee.msaaBuffer?Y.renderbufferStorageMultisample(Y.RENDERBUFFER,ee.multisample,ne,_.width,_.height):Y.renderbufferStorage(Y.RENDERBUFFER,ne,_.width,_.height)}const te=_.colorTextures;let re=te.length;Y.drawBuffers||(re=Math.min(re,1));for(let ne=0;ne1&&this.canMultisampleFramebuffer(_)?te.msaaBuffer=te.msaaBuffer||ee.createRenderbuffer():te.msaaBuffer&&(ee.deleteRenderbuffer(te.msaaBuffer),te.msaaBuffer=null,te.blitFramebuffer&&(te.blitFramebuffer.dispose(),te.blitFramebuffer=null));const ie=[];for(let se=0;se1&&ee.drawBuffers(ie),_.depthTexture&&this.writeDepthTexture){const se=_.depthTexture;this.renderer.texture.bind(se,0),ee.framebufferTexture2D(ee.FRAMEBUFFER,ee.DEPTH_ATTACHMENT,ee.TEXTURE_2D,se._glTextures[this.CONTEXT_UID].texture,Y)}if((_.stencil||_.depth)&&!(_.depthTexture&&this.writeDepthTexture)){te.stencil=te.stencil||ee.createRenderbuffer();let se,ae;this.renderer.context.webGLVersion===1?(se=ee.DEPTH_STENCIL_ATTACHMENT,ae=ee.DEPTH_STENCIL):_.depth&&_.stencil?(se=ee.DEPTH_STENCIL_ATTACHMENT,ae=ee.DEPTH24_STENCIL8):_.depth?(se=ee.DEPTH_ATTACHMENT,ae=ee.DEPTH_COMPONENT24):(se=ee.STENCIL_ATTACHMENT,ae=ee.STENCIL_INDEX8),ee.bindRenderbuffer(ee.RENDERBUFFER,te.stencil),te.msaaBuffer?ee.renderbufferStorageMultisample(ee.RENDERBUFFER,te.multisample,ae,_.width,_.height):ee.renderbufferStorage(ee.RENDERBUFFER,ae,_.width,_.height),ee.framebufferRenderbuffer(ee.FRAMEBUFFER,se,ee.RENDERBUFFER,te.stencil)}else te.stencil&&(ee.deleteRenderbuffer(te.stencil),te.stencil=null)}canMultisampleFramebuffer(_){return this.renderer.context.webGLVersion!==1&&_.colorTextures.length<=1&&!_.depthTexture}detectSamples(_){const{msaaSamples:Y}=this;let ee=MSAA_QUALITY.NONE;if(_<=1||Y===null)return ee;for(let te=0;te=0&&this.managedFramebuffers.splice(re,1),_.disposeRunner.remove(this),Y||(te.deleteFramebuffer(ee.framebuffer),ee.msaaBuffer&&te.deleteRenderbuffer(ee.msaaBuffer),ee.stencil&&te.deleteRenderbuffer(ee.stencil)),ee.blitFramebuffer&&this.disposeFramebuffer(ee.blitFramebuffer,Y)}disposeAll(_){const Y=this.managedFramebuffers;this.managedFramebuffers=[];for(let ee=0;eeee.createVertexArrayOES(),_.bindVertexArray=te=>ee.bindVertexArrayOES(te),_.deleteVertexArray=te=>ee.deleteVertexArrayOES(te)):(this.hasVao=!1,_.createVertexArray=()=>null,_.bindVertexArray=()=>null,_.deleteVertexArray=()=>null)}if(Y.webGLVersion!==2){const ee=_.getExtension("ANGLE_instanced_arrays");ee?(_.vertexAttribDivisor=(te,re)=>ee.vertexAttribDivisorANGLE(te,re),_.drawElementsInstanced=(te,re,ne,ie,se)=>ee.drawElementsInstancedANGLE(te,re,ne,ie,se),_.drawArraysInstanced=(te,re,ne,ie)=>ee.drawArraysInstancedANGLE(te,re,ne,ie)):this.hasInstance=!1}this.canUseUInt32ElementIndex=Y.webGLVersion===2||!!Y.extensions.uint32ElementIndex}bind(_,Y){Y=Y||this.renderer.shader.shader;const{gl:ee}=this;let te=_.glVertexArrayObjects[this.CONTEXT_UID],re=!1;te||(this.managedGeometries[_.id]=_,_.disposeRunner.add(this),_.glVertexArrayObjects[this.CONTEXT_UID]=te={},re=!0);const ne=te[Y.program.id]||this.initGeometryVao(_,Y,re);this._activeGeometry=_,this._activeVao!==ne&&(this._activeVao=ne,this.hasVao?ee.bindVertexArray(ne):this.activateVao(_,Y.program)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){const _=this._activeGeometry,Y=this.renderer.buffer;for(let ee=0;ee<_.buffers.length;ee++){const te=_.buffers[ee];Y.update(te)}}checkCompatibility(_,Y){const ee=_.attributes,te=Y.attributeData;for(const re in te)if(!ee[re])throw new Error(`shader and geometry incompatible, geometry missing the "${re}" attribute`)}getSignature(_,Y){const ee=_.attributes,te=Y.attributeData,re=["g",_.id];for(const ne in ee)te[ne]&&re.push(ne,te[ne].location);return re.join("-")}initGeometryVao(_,Y,ee=!0){const te=this.gl,re=this.CONTEXT_UID,ne=this.renderer.buffer,ie=Y.program;ie.glPrograms[re]||this.renderer.shader.generateProgram(Y),this.checkCompatibility(_,ie);const se=this.getSignature(_,ie),ae=_.glVertexArrayObjects[this.CONTEXT_UID];let ue=ae[se];if(ue)return ae[ie.id]=ue,ue;const oe=_.buffers,le=_.attributes,ce={},he={};for(const fe in oe)ce[fe]=0,he[fe]=0;for(const fe in le)!le[fe].size&&ie.attributeData[fe]?le[fe].size=ie.attributeData[fe].size:le[fe].size||console.warn(`PIXI Geometry attribute '${fe}' size cannot be determined (likely the bound shader does not have the attribute)`),ce[le[fe].buffer]+=le[fe].size*byteSizeMap[le[fe].type];for(const fe in le){const de=le[fe],pe=de.size;de.stride===void 0&&(ce[de.buffer]===pe*byteSizeMap[de.type]?de.stride=0:de.stride=ce[de.buffer]),de.start===void 0&&(de.start=he[de.buffer],he[de.buffer]+=pe*byteSizeMap[de.type])}ue=te.createVertexArray(),te.bindVertexArray(ue);for(let fe=0;fe"u"?.5:Y,this.isSimple=!1}get texture(){return this._texture}set texture(_){this._texture=_,this._textureID=-1}multiplyUvs(_,Y){Y===void 0&&(Y=_);const ee=this.mapCoord;for(let te=0;te<_.length;te+=2){const re=_[te],ne=_[te+1];Y[te]=re*ee.a+ne*ee.c+ee.tx,Y[te+1]=re*ee.b+ne*ee.d+ee.ty}return Y}update(_){const Y=this._texture;if(!Y||!Y.valid||!_&&this._textureID===Y._updateID)return!1;this._textureID=Y._updateID,this._updateID++;const ee=Y._uvs;this.mapCoord.set(ee.x1-ee.x0,ee.y1-ee.y0,ee.x3-ee.x0,ee.y3-ee.y0,ee.x0,ee.y0);const te=Y.orig,re=Y.trim;re&&(tempMat$1.set(te.width/re.width,0,0,te.height/re.height,-re.x/re.width,-re.y/re.height),this.mapCoord.append(tempMat$1));const ne=Y.baseTexture,ie=this.uClampFrame,se=this.clampMargin/ne.resolution,ae=this.clampOffset;return ie[0]=(Y._frame.x+se+ae)/ne.width,ie[1]=(Y._frame.y+se+ae)/ne.height,ie[2]=(Y._frame.x+Y._frame.width-se+ae)/ne.width,ie[3]=(Y._frame.y+Y._frame.height-se+ae)/ne.height,this.uClampOffset[0]=ae/ne.realWidth,this.uClampOffset[1]=ae/ne.realHeight,this.isSimple=Y._frame.width===ne.width&&Y._frame.height===ne.height&&Y.rotate===0,!0}}var fragment$7=`varying vec2 vMaskCoord; +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform sampler2D mask; +uniform float alpha; +uniform float npmAlpha; +uniform vec4 maskClamp; + +void main(void) +{ + float clip = step(3.5, + step(maskClamp.x, vMaskCoord.x) + + step(maskClamp.y, vMaskCoord.y) + + step(vMaskCoord.x, maskClamp.z) + + step(vMaskCoord.y, maskClamp.w)); + + vec4 original = texture2D(uSampler, vTextureCoord); + vec4 masky = texture2D(mask, vMaskCoord); + float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a); + + original *= (alphaMul * masky.r * alpha * clip); + + gl_FragColor = original; +} +`,vertex$4=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; +uniform mat3 otherMatrix; + +varying vec2 vMaskCoord; +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + + vTextureCoord = aTextureCoord; + vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy; +} +`;class SpriteMaskFilter extends Filter$1{constructor(_,Y,ee){let te=null;typeof _!="string"&&Y===void 0&&ee===void 0&&(te=_,_=void 0,Y=void 0,ee=void 0),super(_||vertex$4,Y||fragment$7,ee),this.maskSprite=te,this.maskMatrix=new Matrix}get maskSprite(){return this._maskSprite}set maskSprite(_){this._maskSprite=_,this._maskSprite&&(this._maskSprite.renderable=!1)}apply(_,Y,ee,te){const re=this._maskSprite,ne=re._texture;ne.valid&&(ne.uvMatrix||(ne.uvMatrix=new TextureMatrix(ne,0)),ne.uvMatrix.update(),this.uniforms.npmAlpha=ne.baseTexture.alphaMode?0:1,this.uniforms.mask=ne,this.uniforms.otherMatrix=_.calculateSpriteMatrix(this.maskMatrix,re).prepend(ne.uvMatrix.mapCoord),this.uniforms.alpha=re.worldAlpha,this.uniforms.maskClamp=ne.uvMatrix.uClampFrame,_.applyFilter(this,Y,ee,te))}}class MaskData{constructor(_=null){this.type=MASK_TYPES.NONE,this.autoDetect=!0,this.maskObject=_||null,this.pooled=!1,this.isMaskData=!0,this.resolution=null,this.multisample=Filter$1.defaultMultisample,this.enabled=!0,this.colorMask=15,this._filters=null,this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null,this._scissorRectLocal=null,this._colorMask=15,this._target=null}get filter(){return this._filters?this._filters[0]:null}set filter(_){_?this._filters?this._filters[0]=_:this._filters=[_]:this._filters=null}reset(){this.pooled&&(this.maskObject=null,this.type=MASK_TYPES.NONE,this.autoDetect=!0),this._target=null,this._scissorRectLocal=null}copyCountersOrReset(_){_?(this._stencilCounter=_._stencilCounter,this._scissorCounter=_._scissorCounter,this._scissorRect=_._scissorRect):(this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null)}}class MaskSystem{constructor(_){this.renderer=_,this.enableScissor=!0,this.alphaMaskPool=[],this.maskDataPool=[],this.maskStack=[],this.alphaMaskIndex=0}setMaskStack(_){this.maskStack=_,this.renderer.scissor.setMaskStack(_),this.renderer.stencil.setMaskStack(_)}push(_,Y){let ee=Y;if(!ee.isMaskData){const re=this.maskDataPool.pop()||new MaskData;re.pooled=!0,re.maskObject=Y,ee=re}const te=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null;if(ee.copyCountersOrReset(te),ee._colorMask=te?te._colorMask:15,ee.autoDetect&&this.detect(ee),ee._target=_,ee.type!==MASK_TYPES.SPRITE&&this.maskStack.push(ee),ee.enabled)switch(ee.type){case MASK_TYPES.SCISSOR:this.renderer.scissor.push(ee);break;case MASK_TYPES.STENCIL:this.renderer.stencil.push(ee);break;case MASK_TYPES.SPRITE:ee.copyCountersOrReset(null),this.pushSpriteMask(ee);break;case MASK_TYPES.COLOR:this.pushColorMask(ee);break}ee.type===MASK_TYPES.SPRITE&&this.maskStack.push(ee)}pop(_){const Y=this.maskStack.pop();if(!(!Y||Y._target!==_)){if(Y.enabled)switch(Y.type){case MASK_TYPES.SCISSOR:this.renderer.scissor.pop(Y);break;case MASK_TYPES.STENCIL:this.renderer.stencil.pop(Y.maskObject);break;case MASK_TYPES.SPRITE:this.popSpriteMask(Y);break;case MASK_TYPES.COLOR:this.popColorMask(Y);break}if(Y.reset(),Y.pooled&&this.maskDataPool.push(Y),this.maskStack.length!==0){const ee=this.maskStack[this.maskStack.length-1];ee.type===MASK_TYPES.SPRITE&&ee._filters&&(ee._filters[0].maskSprite=ee.maskObject)}}}detect(_){const Y=_.maskObject;Y?Y.isSprite?_.type=MASK_TYPES.SPRITE:this.enableScissor&&this.renderer.scissor.testScissor(_)?_.type=MASK_TYPES.SCISSOR:_.type=MASK_TYPES.STENCIL:_.type=MASK_TYPES.COLOR}pushSpriteMask(_){const{maskObject:Y}=_,ee=_._target;let te=_._filters;te||(te=this.alphaMaskPool[this.alphaMaskIndex],te||(te=this.alphaMaskPool[this.alphaMaskIndex]=[new SpriteMaskFilter])),te[0].resolution=_.resolution,te[0].multisample=_.multisample,te[0].maskSprite=Y;const re=ee.filterArea;ee.filterArea=Y.getBounds(!0),this.renderer.filter.push(ee,te),ee.filterArea=re,_._filters||this.alphaMaskIndex++}popSpriteMask(_){this.renderer.filter.pop(),_._filters?_._filters[0].maskSprite=null:(this.alphaMaskIndex--,this.alphaMaskPool[this.alphaMaskIndex][0].maskSprite=null)}pushColorMask(_){const Y=_._colorMask,ee=_._colorMask=Y&_.colorMask;ee!==Y&&this.renderer.gl.colorMask((ee&1)!==0,(ee&2)!==0,(ee&4)!==0,(ee&8)!==0)}popColorMask(_){const Y=_._colorMask,ee=this.maskStack.length>0?this.maskStack[this.maskStack.length-1]._colorMask:15;ee!==Y&&this.renderer.gl.colorMask((ee&1)!==0,(ee&2)!==0,(ee&4)!==0,(ee&8)!==0)}destroy(){this.renderer=null}}MaskSystem.extension={type:ExtensionType.RendererSystem,name:"mask"};extensions$1.add(MaskSystem);class AbstractMaskSystem{constructor(_){this.renderer=_,this.maskStack=[],this.glConst=0}getStackLength(){return this.maskStack.length}setMaskStack(_){const{gl:Y}=this.renderer,ee=this.getStackLength();this.maskStack=_;const te=this.getStackLength();te!==ee&&(te===0?Y.disable(this.glConst):(Y.enable(this.glConst),this._useCurrent()))}_useCurrent(){}destroy(){this.renderer=null,this.maskStack=null}}const tempMatrix$1=new Matrix,rectPool=[],_ScissorSystem=class $t extends AbstractMaskSystem{constructor(_){super(_),this.glConst=settings.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST}getStackLength(){const _=this.maskStack[this.maskStack.length-1];return _?_._scissorCounter:0}calcScissorRect(_){if(_._scissorRectLocal)return;const Y=_._scissorRect,{maskObject:ee}=_,{renderer:te}=this,re=te.renderTexture,ne=ee.getBounds(!0,rectPool.pop()??new Rectangle);this.roundFrameToPixels(ne,re.current?re.current.resolution:te.resolution,re.sourceFrame,re.destinationFrame,te.projection.transform),Y&&ne.fit(Y),_._scissorRectLocal=ne}static isMatrixRotated(_){if(!_)return!1;const{a:Y,b:ee,c:te,d:re}=_;return(Math.abs(ee)>1e-4||Math.abs(te)>1e-4)&&(Math.abs(Y)>1e-4||Math.abs(re)>1e-4)}testScissor(_){const{maskObject:Y}=_;if(!Y.isFastRect||!Y.isFastRect()||$t.isMatrixRotated(Y.worldTransform)||$t.isMatrixRotated(this.renderer.projection.transform))return!1;this.calcScissorRect(_);const ee=_._scissorRectLocal;return ee.width>0&&ee.height>0}roundFrameToPixels(_,Y,ee,te,re){$t.isMatrixRotated(re)||(re=re?tempMatrix$1.copyFrom(re):tempMatrix$1.identity(),re.translate(-ee.x,-ee.y).scale(te.width/ee.width,te.height/ee.height).translate(te.x,te.y),this.renderer.filter.transformAABB(re,_),_.fit(te),_.x=Math.round(_.x*Y),_.y=Math.round(_.y*Y),_.width=Math.round(_.width*Y),_.height=Math.round(_.height*Y))}push(_){_._scissorRectLocal||this.calcScissorRect(_);const{gl:Y}=this.renderer;_._scissorRect||Y.enable(Y.SCISSOR_TEST),_._scissorCounter++,_._scissorRect=_._scissorRectLocal,this._useCurrent()}pop(_){const{gl:Y}=this.renderer;_&&rectPool.push(_._scissorRectLocal),this.getStackLength()>0?this._useCurrent():Y.disable(Y.SCISSOR_TEST)}_useCurrent(){const _=this.maskStack[this.maskStack.length-1]._scissorRect;let Y;this.renderer.renderTexture.current?Y=_.y:Y=this.renderer.height-_.height-_.y,this.renderer.gl.scissor(_.x,Y,_.width,_.height)}};_ScissorSystem.extension={type:ExtensionType.RendererSystem,name:"scissor"};let ScissorSystem=_ScissorSystem;extensions$1.add(ScissorSystem);class StencilSystem extends AbstractMaskSystem{constructor(_){super(_),this.glConst=settings.ADAPTER.getWebGLRenderingContext().STENCIL_TEST}getStackLength(){const _=this.maskStack[this.maskStack.length-1];return _?_._stencilCounter:0}push(_){const Y=_.maskObject,{gl:ee}=this.renderer,te=_._stencilCounter;te===0&&(this.renderer.framebuffer.forceStencil(),ee.clearStencil(0),ee.clear(ee.STENCIL_BUFFER_BIT),ee.enable(ee.STENCIL_TEST)),_._stencilCounter++;const re=_._colorMask;re!==0&&(_._colorMask=0,ee.colorMask(!1,!1,!1,!1)),ee.stencilFunc(ee.EQUAL,te,4294967295),ee.stencilOp(ee.KEEP,ee.KEEP,ee.INCR),Y.renderable=!0,Y.render(this.renderer),this.renderer.batch.flush(),Y.renderable=!1,re!==0&&(_._colorMask=re,ee.colorMask((re&1)!==0,(re&2)!==0,(re&4)!==0,(re&8)!==0)),this._useCurrent()}pop(_){const Y=this.renderer.gl;if(this.getStackLength()===0)Y.disable(Y.STENCIL_TEST);else{const ee=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null,te=ee?ee._colorMask:15;te!==0&&(ee._colorMask=0,Y.colorMask(!1,!1,!1,!1)),Y.stencilOp(Y.KEEP,Y.KEEP,Y.DECR),_.renderable=!0,_.render(this.renderer),this.renderer.batch.flush(),_.renderable=!1,te!==0&&(ee._colorMask=te,Y.colorMask((te&1)!==0,(te&2)!==0,(te&4)!==0,(te&8)!==0)),this._useCurrent()}}_useCurrent(){const _=this.renderer.gl;_.stencilFunc(_.EQUAL,this.getStackLength(),4294967295),_.stencilOp(_.KEEP,_.KEEP,_.KEEP)}}StencilSystem.extension={type:ExtensionType.RendererSystem,name:"stencil"};extensions$1.add(StencilSystem);class PluginSystem{constructor(_){this.renderer=_,this.plugins={},Object.defineProperties(this.plugins,{extract:{enumerable:!1,get(){return deprecation("7.0.0","renderer.plugins.extract has moved to renderer.extract"),_.extract}},prepare:{enumerable:!1,get(){return deprecation("7.0.0","renderer.plugins.prepare has moved to renderer.prepare"),_.prepare}},interaction:{enumerable:!1,get(){return deprecation("7.0.0","renderer.plugins.interaction has been deprecated, use renderer.events"),_.events}}})}init(){const _=this.rendererPlugins;for(const Y in _)this.plugins[Y]=new _[Y](this.renderer)}destroy(){for(const _ in this.plugins)this.plugins[_].destroy(),this.plugins[_]=null}}PluginSystem.extension={type:[ExtensionType.RendererSystem,ExtensionType.CanvasRendererSystem],name:"_plugin"};extensions$1.add(PluginSystem);class ProjectionSystem{constructor(_){this.renderer=_,this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new Matrix,this.transform=null}update(_,Y,ee,te){this.destinationFrame=_||this.destinationFrame||this.defaultFrame,this.sourceFrame=Y||this.sourceFrame||_,this.calculateProjection(this.destinationFrame,this.sourceFrame,ee,te),this.transform&&this.projectionMatrix.append(this.transform);const re=this.renderer;re.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,re.globalUniforms.update(),re.shader.shader&&re.shader.syncUniformGroup(re.shader.shader.uniforms.globals)}calculateProjection(_,Y,ee,te){const re=this.projectionMatrix,ne=te?-1:1;re.identity(),re.a=1/Y.width*2,re.d=ne*(1/Y.height*2),re.tx=-1-Y.x*re.a,re.ty=-ne-Y.y*re.d}setTransform(_){}destroy(){this.renderer=null}}ProjectionSystem.extension={type:ExtensionType.RendererSystem,name:"projection"};extensions$1.add(ProjectionSystem);const tempTransform=new Transform,tempRect$1=new Rectangle;class GenerateTextureSystem{constructor(_){this.renderer=_,this._tempMatrix=new Matrix}generateTexture(_,Y){const{region:ee,...te}=Y||{},re=(ee==null?void 0:ee.copyTo(tempRect$1))||_.getLocalBounds(tempRect$1,!0),ne=te.resolution||this.renderer.resolution;re.width=Math.max(re.width,1/ne),re.height=Math.max(re.height,1/ne),te.width=re.width,te.height=re.height,te.resolution=ne,te.multisample??(te.multisample=this.renderer.multisample);const ie=RenderTexture.create(te);this._tempMatrix.tx=-re.x,this._tempMatrix.ty=-re.y;const se=_.transform;return _.transform=tempTransform,this.renderer.render(_,{renderTexture:ie,transform:this._tempMatrix,skipUpdateTransform:!!_.parent,blit:!0}),_.transform=se,ie}destroy(){}}GenerateTextureSystem.extension={type:[ExtensionType.RendererSystem,ExtensionType.CanvasRendererSystem],name:"textureGenerator"};extensions$1.add(GenerateTextureSystem);const tempRect=new Rectangle,tempRect2=new Rectangle;class RenderTextureSystem{constructor(_){this.renderer=_,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new Rectangle,this.destinationFrame=new Rectangle,this.viewportFrame=new Rectangle}contextChange(){var Y;const _=(Y=this.renderer)==null?void 0:Y.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(_&&_.alpha&&_.premultipliedAlpha)}bind(_=null,Y,ee){const te=this.renderer;this.current=_;let re,ne,ie;_?(re=_.baseTexture,ie=re.resolution,Y||(tempRect.width=_.frame.width,tempRect.height=_.frame.height,Y=tempRect),ee||(tempRect2.x=_.frame.x,tempRect2.y=_.frame.y,tempRect2.width=Y.width,tempRect2.height=Y.height,ee=tempRect2),ne=re.framebuffer):(ie=te.resolution,Y||(tempRect.width=te._view.screen.width,tempRect.height=te._view.screen.height,Y=tempRect),ee||(ee=tempRect,ee.width=Y.width,ee.height=Y.height));const se=this.viewportFrame;se.x=ee.x*ie,se.y=ee.y*ie,se.width=ee.width*ie,se.height=ee.height*ie,_||(se.y=te.view.height-(se.y+se.height)),se.ceil(),this.renderer.framebuffer.bind(ne,se),this.renderer.projection.update(ee,Y,ie,!ne),_?this.renderer.mask.setMaskStack(re.maskStack):this.renderer.mask.setMaskStack(this.defaultMaskStack),this.sourceFrame.copyFrom(Y),this.destinationFrame.copyFrom(ee)}clear(_,Y){const ee=this.current?this.current.baseTexture.clear:this.renderer.background.backgroundColor,te=Color.shared.setValue(_||ee);(this.current&&this.current.baseTexture.alphaMode>0||!this.current&&this._rendererPremultipliedAlpha)&&te.premultiply(te.alpha);const re=this.destinationFrame,ne=this.current?this.current.baseTexture:this.renderer._view.screen,ie=re.width!==ne.width||re.height!==ne.height;if(ie){let{x:se,y:ae,width:ue,height:oe}=this.viewportFrame;se=Math.round(se),ae=Math.round(ae),ue=Math.round(ue),oe=Math.round(oe),this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST),this.renderer.gl.scissor(se,ae,ue,oe)}this.renderer.framebuffer.clear(te.red,te.green,te.blue,te.alpha,Y),ie&&this.renderer.scissor.pop()}resize(){this.bind(null)}reset(){this.bind(null)}destroy(){this.renderer=null}}RenderTextureSystem.extension={type:ExtensionType.RendererSystem,name:"renderTexture"};extensions$1.add(RenderTextureSystem);class GLProgram{constructor(_,Y){this.program=_,this.uniformData=Y,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBufferBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBufferBindings=null,this.program=null}}function getAttributeData(Z,_){const Y={},ee=_.getProgramParameter(Z,_.ACTIVE_ATTRIBUTES);for(let te=0;teae>ue?1:-1);for(let ae=0;ae({data:re,offset:0,dataLen:0,dirty:0}));let Y=0,ee=0,te=0;for(let re=0;re<_.length;re++){const ne=_[re];if(Y=GLSL_TO_STD40_SIZE[ne.data.type],ne.data.size>1&&(Y=Math.max(Y,16)*ne.data.size),ne.dataLen=Y,ee%Y!==0&&ee<16){const ie=ee%Y%16;ee+=ie,te+=ie}ee+Y>16?(te=Math.ceil(te/16)*16,ne.offset=te,te+=Y,ee=Y):(ne.offset=te,ee+=Y,te+=Y)}return te=Math.ceil(te/16)*16,{uboElements:_,size:te}}function getUBOData(Z,_){const Y=[];for(const ee in Z)_[ee]&&Y.push(_[ee]);return Y.sort((ee,te)=>ee.index-te.index),Y}function generateUniformBufferSync(Z,_){if(!Z.autoManage)return{size:0,syncFunc:uboUpdate};const Y=getUBOData(Z.uniforms,_),{uboElements:ee,size:te}=createUBOElements(Y),re=[` + var v = null; + var v2 = null; + var cv = null; + var t = 0; + var gl = renderer.gl + var index = 0; + var data = buffer.data; + `];for(let ne=0;ne1){const oe=mapSize(ie.data.type),le=Math.max(GLSL_TO_STD40_SIZE[ie.data.type]/16,1),ce=oe/le,he=(4-ce%4)%4;re.push(` + cv = ud.${ae}.value; + v = uv.${ae}; + offset = ${ie.offset/4}; + + t = 0; + + for(var i=0; i < ${ie.data.size*le}; i++) + { + for(var j = 0; j < ${ce}; j++) + { + data[offset++] = v[t++]; + } + offset += ${he}; + } + + `)}else{const oe=UBO_TO_SINGLE_SETTERS[ie.data.type];re.push(` + cv = ud.${ae}.value; + v = uv.${ae}; + offset = ${ie.offset/4}; + ${oe}; + `)}}return re.push(` + renderer.buffer.update(buffer); + `),{size:te,syncFunc:new Function("ud","uv","renderer","syncData","buffer",re.join(` +`))}}let UID=0;const defaultSyncData={textureCount:0,uboCount:0};class ShaderSystem{constructor(_){this.destroyed=!1,this.renderer=_,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=UID++}systemCheck(){if(!unsafeEvalSupported())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(_){this.gl=_,this.reset()}bind(_,Y){_.disposeRunner.add(this),_.uniforms.globals=this.renderer.globalUniforms;const ee=_.program,te=ee.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(_);return this.shader=_,this.program!==ee&&(this.program=ee,this.gl.useProgram(te.program)),Y||(defaultSyncData.textureCount=0,defaultSyncData.uboCount=0,this.syncUniformGroup(_.uniformGroup,defaultSyncData)),te}setUniforms(_){const Y=this.shader.program,ee=Y.glPrograms[this.renderer.CONTEXT_UID];Y.syncUniforms(ee.uniformData,_,this.renderer)}syncUniformGroup(_,Y){const ee=this.getGlProgram();(!_.static||_.dirtyId!==ee.uniformDirtyGroups[_.id])&&(ee.uniformDirtyGroups[_.id]=_.dirtyId,this.syncUniforms(_,ee,Y))}syncUniforms(_,Y,ee){(_.syncUniforms[this.shader.program.id]||this.createSyncGroups(_))(Y.uniformData,_.uniforms,this.renderer,ee)}createSyncGroups(_){const Y=this.getSignature(_,this.shader.program.uniformData,"u");return this.cache[Y]||(this.cache[Y]=generateUniformsSync(_,this.shader.program.uniformData)),_.syncUniforms[this.shader.program.id]=this.cache[Y],_.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(_,Y){const ee=this.getGlProgram();if(!_.static||_.dirtyId!==0||!ee.uniformGroups[_.id]){_.dirtyId=0;const te=ee.uniformGroups[_.id]||this.createSyncBufferGroup(_,ee,Y);_.buffer.update(),te(ee.uniformData,_.uniforms,this.renderer,defaultSyncData,_.buffer)}this.renderer.buffer.bindBufferBase(_.buffer,ee.uniformBufferBindings[Y])}createSyncBufferGroup(_,Y,ee){const{gl:te}=this.renderer;this.renderer.buffer.bind(_.buffer);const re=this.gl.getUniformBlockIndex(Y.program,ee);Y.uniformBufferBindings[ee]=this.shader.uniformBindCount,te.uniformBlockBinding(Y.program,re,this.shader.uniformBindCount),this.shader.uniformBindCount++;const ne=this.getSignature(_,this.shader.program.uniformData,"ubo");let ie=this._uboCache[ne];if(ie||(ie=this._uboCache[ne]=generateUniformBufferSync(_,this.shader.program.uniformData)),_.autoManage){const se=new Float32Array(ie.size/4);_.buffer.update(se)}return Y.uniformGroups[_.id]=ie.syncFunc,Y.uniformGroups[_.id]}getSignature(_,Y,ee){const te=_.uniforms,re=[`${ee}-`];for(const ne in te)re.push(ne),Y[ne]&&re.push(Y[ne].type);return re.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(_){const Y=this.gl,ee=_.program,te=generateProgram(Y,ee);return ee.glPrograms[this.renderer.CONTEXT_UID]=te,te}reset(){this.program=null,this.shader=null}disposeShader(_){this.shader===_&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}}ShaderSystem.extension={type:ExtensionType.RendererSystem,name:"shader"};extensions$1.add(ShaderSystem);class StartupSystem{constructor(_){this.renderer=_}run(_){const{renderer:Y}=this;Y.runners.init.emit(Y.options),_.hello&&console.log(`PixiJS 7.4.2 - ${Y.rendererLogId} - https://pixijs.com`),Y.resize(Y.screen.width,Y.screen.height)}destroy(){}}StartupSystem.defaultOptions={hello:!1},StartupSystem.extension={type:[ExtensionType.RendererSystem,ExtensionType.CanvasRendererSystem],name:"startup"};extensions$1.add(StartupSystem);function mapWebGLBlendModesToPixi(Z,_=[]){return _[BLEND_MODES.NORMAL]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.ADD]=[Z.ONE,Z.ONE],_[BLEND_MODES.MULTIPLY]=[Z.DST_COLOR,Z.ONE_MINUS_SRC_ALPHA,Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.SCREEN]=[Z.ONE,Z.ONE_MINUS_SRC_COLOR,Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.OVERLAY]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.DARKEN]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.LIGHTEN]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.COLOR_DODGE]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.COLOR_BURN]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.HARD_LIGHT]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.SOFT_LIGHT]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.DIFFERENCE]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.EXCLUSION]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.HUE]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.SATURATION]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.COLOR]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.LUMINOSITY]=[Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.NONE]=[0,0],_[BLEND_MODES.NORMAL_NPM]=[Z.SRC_ALPHA,Z.ONE_MINUS_SRC_ALPHA,Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.ADD_NPM]=[Z.SRC_ALPHA,Z.ONE,Z.ONE,Z.ONE],_[BLEND_MODES.SCREEN_NPM]=[Z.SRC_ALPHA,Z.ONE_MINUS_SRC_COLOR,Z.ONE,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.SRC_IN]=[Z.DST_ALPHA,Z.ZERO],_[BLEND_MODES.SRC_OUT]=[Z.ONE_MINUS_DST_ALPHA,Z.ZERO],_[BLEND_MODES.SRC_ATOP]=[Z.DST_ALPHA,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.DST_OVER]=[Z.ONE_MINUS_DST_ALPHA,Z.ONE],_[BLEND_MODES.DST_IN]=[Z.ZERO,Z.SRC_ALPHA],_[BLEND_MODES.DST_OUT]=[Z.ZERO,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.DST_ATOP]=[Z.ONE_MINUS_DST_ALPHA,Z.SRC_ALPHA],_[BLEND_MODES.XOR]=[Z.ONE_MINUS_DST_ALPHA,Z.ONE_MINUS_SRC_ALPHA],_[BLEND_MODES.SUBTRACT]=[Z.ONE,Z.ONE,Z.ONE,Z.ONE,Z.FUNC_REVERSE_SUBTRACT,Z.FUNC_ADD],_}const BLEND=0,OFFSET=1,CULLING=2,DEPTH_TEST=3,WINDING=4,DEPTH_MASK=5,_StateSystem=class Bt{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=BLEND_MODES.NONE,this._blendEq=!1,this.map=[],this.map[BLEND]=this.setBlend,this.map[OFFSET]=this.setOffset,this.map[CULLING]=this.setCullFace,this.map[DEPTH_TEST]=this.setDepthTest,this.map[WINDING]=this.setFrontFace,this.map[DEPTH_MASK]=this.setDepthMask,this.checks=[],this.defaultState=new State,this.defaultState.blend=!0}contextChange(_){this.gl=_,this.blendModes=mapWebGLBlendModesToPixi(_),this.set(this.defaultState),this.reset()}set(_){if(_=_||this.defaultState,this.stateId!==_.data){let Y=this.stateId^_.data,ee=0;for(;Y;)Y&1&&this.map[ee].call(this,!!(_.data&1<>1,ee++;this.stateId=_.data}for(let Y=0;Y_.systems[te]),ee=[...Y,...Object.keys(_.systems).filter(te=>!Y.includes(te))];for(const te of ee)this.addSystem(_.systems[te],te)}addRunners(..._){_.forEach(Y=>{this.runners[Y]=new Runner(Y)})}addSystem(_,Y){const ee=new _(this);if(this[Y])throw new Error(`Whoops! The name "${Y}" is already in use`);this[Y]=ee,this._systemsHash[Y]=ee;for(const te in this.runners)this.runners[te].add(ee);return this}emitWithCustomOptions(_,Y){const ee=Object.keys(this._systemsHash);_.items.forEach(te=>{const re=ee.find(ne=>this._systemsHash[ne]===te);te[_.name](Y[re])})}destroy(){Object.values(this.runners).forEach(_=>{_.destroy()}),this._systemsHash={}}}const _TextureGCSystem=class Dt{constructor(_){this.renderer=_,this.count=0,this.checkCount=0,this.maxIdle=Dt.defaultMaxIdle,this.checkCountMax=Dt.defaultCheckCountMax,this.mode=Dt.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==GC_MODES.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){const _=this.renderer.texture,Y=_.managedTextures;let ee=!1;for(let te=0;tethis.maxIdle&&(_.destroyTexture(re,!0),Y[te]=null,ee=!0)}if(ee){let te=0;for(let re=0;re=0;te--)this.unload(_.children[te])}destroy(){this.renderer=null}};_TextureGCSystem.defaultMode=GC_MODES.AUTO,_TextureGCSystem.defaultMaxIdle=60*60,_TextureGCSystem.defaultCheckCountMax=60*10,_TextureGCSystem.extension={type:ExtensionType.RendererSystem,name:"textureGC"};let TextureGCSystem=_TextureGCSystem;extensions$1.add(TextureGCSystem);class GLTexture{constructor(_){this.texture=_,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=TYPES.UNSIGNED_BYTE,this.internalFormat=FORMATS.RGBA,this.samplerType=0}}function mapInternalFormatToSamplerType(Z){let _;return"WebGL2RenderingContext"in globalThis&&Z instanceof globalThis.WebGL2RenderingContext?_={[Z.RGB]:SAMPLER_TYPES.FLOAT,[Z.RGBA]:SAMPLER_TYPES.FLOAT,[Z.ALPHA]:SAMPLER_TYPES.FLOAT,[Z.LUMINANCE]:SAMPLER_TYPES.FLOAT,[Z.LUMINANCE_ALPHA]:SAMPLER_TYPES.FLOAT,[Z.R8]:SAMPLER_TYPES.FLOAT,[Z.R8_SNORM]:SAMPLER_TYPES.FLOAT,[Z.RG8]:SAMPLER_TYPES.FLOAT,[Z.RG8_SNORM]:SAMPLER_TYPES.FLOAT,[Z.RGB8]:SAMPLER_TYPES.FLOAT,[Z.RGB8_SNORM]:SAMPLER_TYPES.FLOAT,[Z.RGB565]:SAMPLER_TYPES.FLOAT,[Z.RGBA4]:SAMPLER_TYPES.FLOAT,[Z.RGB5_A1]:SAMPLER_TYPES.FLOAT,[Z.RGBA8]:SAMPLER_TYPES.FLOAT,[Z.RGBA8_SNORM]:SAMPLER_TYPES.FLOAT,[Z.RGB10_A2]:SAMPLER_TYPES.FLOAT,[Z.RGB10_A2UI]:SAMPLER_TYPES.FLOAT,[Z.SRGB8]:SAMPLER_TYPES.FLOAT,[Z.SRGB8_ALPHA8]:SAMPLER_TYPES.FLOAT,[Z.R16F]:SAMPLER_TYPES.FLOAT,[Z.RG16F]:SAMPLER_TYPES.FLOAT,[Z.RGB16F]:SAMPLER_TYPES.FLOAT,[Z.RGBA16F]:SAMPLER_TYPES.FLOAT,[Z.R32F]:SAMPLER_TYPES.FLOAT,[Z.RG32F]:SAMPLER_TYPES.FLOAT,[Z.RGB32F]:SAMPLER_TYPES.FLOAT,[Z.RGBA32F]:SAMPLER_TYPES.FLOAT,[Z.R11F_G11F_B10F]:SAMPLER_TYPES.FLOAT,[Z.RGB9_E5]:SAMPLER_TYPES.FLOAT,[Z.R8I]:SAMPLER_TYPES.INT,[Z.R8UI]:SAMPLER_TYPES.UINT,[Z.R16I]:SAMPLER_TYPES.INT,[Z.R16UI]:SAMPLER_TYPES.UINT,[Z.R32I]:SAMPLER_TYPES.INT,[Z.R32UI]:SAMPLER_TYPES.UINT,[Z.RG8I]:SAMPLER_TYPES.INT,[Z.RG8UI]:SAMPLER_TYPES.UINT,[Z.RG16I]:SAMPLER_TYPES.INT,[Z.RG16UI]:SAMPLER_TYPES.UINT,[Z.RG32I]:SAMPLER_TYPES.INT,[Z.RG32UI]:SAMPLER_TYPES.UINT,[Z.RGB8I]:SAMPLER_TYPES.INT,[Z.RGB8UI]:SAMPLER_TYPES.UINT,[Z.RGB16I]:SAMPLER_TYPES.INT,[Z.RGB16UI]:SAMPLER_TYPES.UINT,[Z.RGB32I]:SAMPLER_TYPES.INT,[Z.RGB32UI]:SAMPLER_TYPES.UINT,[Z.RGBA8I]:SAMPLER_TYPES.INT,[Z.RGBA8UI]:SAMPLER_TYPES.UINT,[Z.RGBA16I]:SAMPLER_TYPES.INT,[Z.RGBA16UI]:SAMPLER_TYPES.UINT,[Z.RGBA32I]:SAMPLER_TYPES.INT,[Z.RGBA32UI]:SAMPLER_TYPES.UINT,[Z.DEPTH_COMPONENT16]:SAMPLER_TYPES.FLOAT,[Z.DEPTH_COMPONENT24]:SAMPLER_TYPES.FLOAT,[Z.DEPTH_COMPONENT32F]:SAMPLER_TYPES.FLOAT,[Z.DEPTH_STENCIL]:SAMPLER_TYPES.FLOAT,[Z.DEPTH24_STENCIL8]:SAMPLER_TYPES.FLOAT,[Z.DEPTH32F_STENCIL8]:SAMPLER_TYPES.FLOAT}:_={[Z.RGB]:SAMPLER_TYPES.FLOAT,[Z.RGBA]:SAMPLER_TYPES.FLOAT,[Z.ALPHA]:SAMPLER_TYPES.FLOAT,[Z.LUMINANCE]:SAMPLER_TYPES.FLOAT,[Z.LUMINANCE_ALPHA]:SAMPLER_TYPES.FLOAT,[Z.DEPTH_STENCIL]:SAMPLER_TYPES.FLOAT},_}function mapTypeAndFormatToInternalFormat(Z){let _;return"WebGL2RenderingContext"in globalThis&&Z instanceof globalThis.WebGL2RenderingContext?_={[TYPES.UNSIGNED_BYTE]:{[FORMATS.RGBA]:Z.RGBA8,[FORMATS.RGB]:Z.RGB8,[FORMATS.RG]:Z.RG8,[FORMATS.RED]:Z.R8,[FORMATS.RGBA_INTEGER]:Z.RGBA8UI,[FORMATS.RGB_INTEGER]:Z.RGB8UI,[FORMATS.RG_INTEGER]:Z.RG8UI,[FORMATS.RED_INTEGER]:Z.R8UI,[FORMATS.ALPHA]:Z.ALPHA,[FORMATS.LUMINANCE]:Z.LUMINANCE,[FORMATS.LUMINANCE_ALPHA]:Z.LUMINANCE_ALPHA},[TYPES.BYTE]:{[FORMATS.RGBA]:Z.RGBA8_SNORM,[FORMATS.RGB]:Z.RGB8_SNORM,[FORMATS.RG]:Z.RG8_SNORM,[FORMATS.RED]:Z.R8_SNORM,[FORMATS.RGBA_INTEGER]:Z.RGBA8I,[FORMATS.RGB_INTEGER]:Z.RGB8I,[FORMATS.RG_INTEGER]:Z.RG8I,[FORMATS.RED_INTEGER]:Z.R8I},[TYPES.UNSIGNED_SHORT]:{[FORMATS.RGBA_INTEGER]:Z.RGBA16UI,[FORMATS.RGB_INTEGER]:Z.RGB16UI,[FORMATS.RG_INTEGER]:Z.RG16UI,[FORMATS.RED_INTEGER]:Z.R16UI,[FORMATS.DEPTH_COMPONENT]:Z.DEPTH_COMPONENT16},[TYPES.SHORT]:{[FORMATS.RGBA_INTEGER]:Z.RGBA16I,[FORMATS.RGB_INTEGER]:Z.RGB16I,[FORMATS.RG_INTEGER]:Z.RG16I,[FORMATS.RED_INTEGER]:Z.R16I},[TYPES.UNSIGNED_INT]:{[FORMATS.RGBA_INTEGER]:Z.RGBA32UI,[FORMATS.RGB_INTEGER]:Z.RGB32UI,[FORMATS.RG_INTEGER]:Z.RG32UI,[FORMATS.RED_INTEGER]:Z.R32UI,[FORMATS.DEPTH_COMPONENT]:Z.DEPTH_COMPONENT24},[TYPES.INT]:{[FORMATS.RGBA_INTEGER]:Z.RGBA32I,[FORMATS.RGB_INTEGER]:Z.RGB32I,[FORMATS.RG_INTEGER]:Z.RG32I,[FORMATS.RED_INTEGER]:Z.R32I},[TYPES.FLOAT]:{[FORMATS.RGBA]:Z.RGBA32F,[FORMATS.RGB]:Z.RGB32F,[FORMATS.RG]:Z.RG32F,[FORMATS.RED]:Z.R32F,[FORMATS.DEPTH_COMPONENT]:Z.DEPTH_COMPONENT32F},[TYPES.HALF_FLOAT]:{[FORMATS.RGBA]:Z.RGBA16F,[FORMATS.RGB]:Z.RGB16F,[FORMATS.RG]:Z.RG16F,[FORMATS.RED]:Z.R16F},[TYPES.UNSIGNED_SHORT_5_6_5]:{[FORMATS.RGB]:Z.RGB565},[TYPES.UNSIGNED_SHORT_4_4_4_4]:{[FORMATS.RGBA]:Z.RGBA4},[TYPES.UNSIGNED_SHORT_5_5_5_1]:{[FORMATS.RGBA]:Z.RGB5_A1},[TYPES.UNSIGNED_INT_2_10_10_10_REV]:{[FORMATS.RGBA]:Z.RGB10_A2,[FORMATS.RGBA_INTEGER]:Z.RGB10_A2UI},[TYPES.UNSIGNED_INT_10F_11F_11F_REV]:{[FORMATS.RGB]:Z.R11F_G11F_B10F},[TYPES.UNSIGNED_INT_5_9_9_9_REV]:{[FORMATS.RGB]:Z.RGB9_E5},[TYPES.UNSIGNED_INT_24_8]:{[FORMATS.DEPTH_STENCIL]:Z.DEPTH24_STENCIL8},[TYPES.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[FORMATS.DEPTH_STENCIL]:Z.DEPTH32F_STENCIL8}}:_={[TYPES.UNSIGNED_BYTE]:{[FORMATS.RGBA]:Z.RGBA,[FORMATS.RGB]:Z.RGB,[FORMATS.ALPHA]:Z.ALPHA,[FORMATS.LUMINANCE]:Z.LUMINANCE,[FORMATS.LUMINANCE_ALPHA]:Z.LUMINANCE_ALPHA},[TYPES.UNSIGNED_SHORT_5_6_5]:{[FORMATS.RGB]:Z.RGB},[TYPES.UNSIGNED_SHORT_4_4_4_4]:{[FORMATS.RGBA]:Z.RGBA},[TYPES.UNSIGNED_SHORT_5_5_5_1]:{[FORMATS.RGBA]:Z.RGBA}},_}class TextureSystem{constructor(_){this.renderer=_,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new BaseTexture,this.hasIntegerTextures=!1}contextChange(){const _=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=mapTypeAndFormatToInternalFormat(_),this.samplerTypes=mapInternalFormatToSamplerType(_);const Y=_.getParameter(_.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=Y;for(let te=0;te=0;--re){const ne=Y[re];ne&&ne._glTextures[te].samplerType!==SAMPLER_TYPES.FLOAT&&this.renderer.texture.unbind(ne)}}initTexture(_){const Y=new GLTexture(this.gl.createTexture());return Y.dirtyId=-1,_._glTextures[this.CONTEXT_UID]=Y,this.managedTextures.push(_),_.on("dispose",this.destroyTexture,this),Y}initTextureType(_,Y){var ee;Y.internalFormat=((ee=this.internalFormats[_.type])==null?void 0:ee[_.format])??_.format,Y.samplerType=this.samplerTypes[Y.internalFormat]??SAMPLER_TYPES.FLOAT,this.webGLVersion===2&&_.type===TYPES.HALF_FLOAT?Y.type=this.gl.HALF_FLOAT:Y.type=_.type}updateTexture(_){var te;const Y=_._glTextures[this.CONTEXT_UID];if(!Y)return;const ee=this.renderer;if(this.initTextureType(_,Y),(te=_.resource)==null?void 0:te.upload(ee,_,Y))Y.samplerType!==SAMPLER_TYPES.FLOAT&&(this.hasIntegerTextures=!0);else{const re=_.realWidth,ne=_.realHeight,ie=ee.gl;(Y.width!==re||Y.height!==ne||Y.dirtyId<0)&&(Y.width=re,Y.height=ne,ie.texImage2D(_.target,0,Y.internalFormat,re,ne,0,_.format,Y.type,null))}_.dirtyStyleId!==Y.dirtyStyleId&&this.updateTextureStyle(_),Y.dirtyId=_.dirtyId}destroyTexture(_,Y){const{gl:ee}=this;if(_=_.castToBaseTexture(),_._glTextures[this.CONTEXT_UID]&&(this.unbind(_),ee.deleteTexture(_._glTextures[this.CONTEXT_UID].texture),_.off("dispose",this.destroyTexture,this),delete _._glTextures[this.CONTEXT_UID],!Y)){const te=this.managedTextures.indexOf(_);te!==-1&&removeItems(this.managedTextures,te,1)}}updateTextureStyle(_){var ee;const Y=_._glTextures[this.CONTEXT_UID];Y&&((_.mipmap===MIPMAP_MODES.POW2||this.webGLVersion!==2)&&!_.isPowerOfTwo?Y.mipmap=!1:Y.mipmap=_.mipmap>=1,this.webGLVersion!==2&&!_.isPowerOfTwo?Y.wrapMode=WRAP_MODES.CLAMP:Y.wrapMode=_.wrapMode,(ee=_.resource)!=null&&ee.style(this.renderer,_,Y)||this.setStyle(_,Y),Y.dirtyStyleId=_.dirtyStyleId)}setStyle(_,Y){const ee=this.gl;if(Y.mipmap&&_.mipmap!==MIPMAP_MODES.ON_MANUAL&&ee.generateMipmap(_.target),ee.texParameteri(_.target,ee.TEXTURE_WRAP_S,Y.wrapMode),ee.texParameteri(_.target,ee.TEXTURE_WRAP_T,Y.wrapMode),Y.mipmap){ee.texParameteri(_.target,ee.TEXTURE_MIN_FILTER,_.scaleMode===SCALE_MODES.LINEAR?ee.LINEAR_MIPMAP_LINEAR:ee.NEAREST_MIPMAP_NEAREST);const te=this.renderer.context.extensions.anisotropicFiltering;if(te&&_.anisotropicLevel>0&&_.scaleMode===SCALE_MODES.LINEAR){const re=Math.min(_.anisotropicLevel,ee.getParameter(te.MAX_TEXTURE_MAX_ANISOTROPY_EXT));ee.texParameterf(_.target,te.TEXTURE_MAX_ANISOTROPY_EXT,re)}}else ee.texParameteri(_.target,ee.TEXTURE_MIN_FILTER,_.scaleMode===SCALE_MODES.LINEAR?ee.LINEAR:ee.NEAREST);ee.texParameteri(_.target,ee.TEXTURE_MAG_FILTER,_.scaleMode===SCALE_MODES.LINEAR?ee.LINEAR:ee.NEAREST)}destroy(){this.renderer=null}}TextureSystem.extension={type:ExtensionType.RendererSystem,name:"texture"};extensions$1.add(TextureSystem);class TransformFeedbackSystem{constructor(_){this.renderer=_}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(_){const{gl:Y,CONTEXT_UID:ee}=this,te=_._glTransformFeedbacks[ee]||this.createGLTransformFeedback(_);Y.bindTransformFeedback(Y.TRANSFORM_FEEDBACK,te)}unbind(){const{gl:_}=this;_.bindTransformFeedback(_.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(_,Y){const{gl:ee,renderer:te}=this;Y&&te.shader.bind(Y),ee.beginTransformFeedback(_)}endTransformFeedback(){const{gl:_}=this;_.endTransformFeedback()}createGLTransformFeedback(_){const{gl:Y,renderer:ee,CONTEXT_UID:te}=this,re=Y.createTransformFeedback();_._glTransformFeedbacks[te]=re,Y.bindTransformFeedback(Y.TRANSFORM_FEEDBACK,re);for(let ne=0;ne<_.buffers.length;ne++){const ie=_.buffers[ne];ie&&(ee.buffer.update(ie),ie._glBuffers[te].refCount++,Y.bindBufferBase(Y.TRANSFORM_FEEDBACK_BUFFER,ne,ie._glBuffers[te].buffer||null))}return Y.bindTransformFeedback(Y.TRANSFORM_FEEDBACK,null),_.disposeRunner.add(this),re}disposeTransformFeedback(_,Y){const ee=_._glTransformFeedbacks[this.CONTEXT_UID],te=this.gl;_.disposeRunner.remove(this);const re=this.renderer.buffer;if(re)for(let ne=0;ne<_.buffers.length;ne++){const ie=_.buffers[ne];if(!ie)continue;const se=ie._glBuffers[this.CONTEXT_UID];se&&(se.refCount--,se.refCount===0&&!Y&&re.dispose(ie,Y))}ee&&(Y||te.deleteTransformFeedback(ee),delete _._glTransformFeedbacks[this.CONTEXT_UID])}destroy(){this.renderer=null}}TransformFeedbackSystem.extension={type:ExtensionType.RendererSystem,name:"transformFeedback"};extensions$1.add(TransformFeedbackSystem);class ViewSystem{constructor(_){this.renderer=_}init(_){this.screen=new Rectangle(0,0,_.width,_.height),this.element=_.view||settings.ADAPTER.createCanvas(),this.resolution=_.resolution||settings.RESOLUTION,this.autoDensity=!!_.autoDensity}resizeView(_,Y){this.element.width=Math.round(_*this.resolution),this.element.height=Math.round(Y*this.resolution);const ee=this.element.width/this.resolution,te=this.element.height/this.resolution;this.screen.width=ee,this.screen.height=te,this.autoDensity&&(this.element.style.width=`${ee}px`,this.element.style.height=`${te}px`),this.renderer.emit("resize",ee,te),this.renderer.runners.resize.emit(this.screen.width,this.screen.height)}destroy(_){var Y;_&&((Y=this.element.parentNode)==null||Y.removeChild(this.element)),this.renderer=null,this.element=null,this.screen=null}}ViewSystem.defaultOptions={width:800,height:600,resolution:void 0,autoDensity:!1},ViewSystem.extension={type:[ExtensionType.RendererSystem,ExtensionType.CanvasRendererSystem],name:"_view"};extensions$1.add(ViewSystem);settings.PREFER_ENV=ENV.WEBGL2;settings.STRICT_TEXTURE_CACHE=!1;settings.RENDER_OPTIONS={...ContextSystem.defaultOptions,...BackgroundSystem.defaultOptions,...ViewSystem.defaultOptions,...StartupSystem.defaultOptions};Object.defineProperties(settings,{WRAP_MODE:{get(){return BaseTexture.defaultOptions.wrapMode},set(Z){deprecation("7.1.0","settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode"),BaseTexture.defaultOptions.wrapMode=Z}},SCALE_MODE:{get(){return BaseTexture.defaultOptions.scaleMode},set(Z){deprecation("7.1.0","settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode"),BaseTexture.defaultOptions.scaleMode=Z}},MIPMAP_TEXTURES:{get(){return BaseTexture.defaultOptions.mipmap},set(Z){deprecation("7.1.0","settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap"),BaseTexture.defaultOptions.mipmap=Z}},ANISOTROPIC_LEVEL:{get(){return BaseTexture.defaultOptions.anisotropicLevel},set(Z){deprecation("7.1.0","settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel"),BaseTexture.defaultOptions.anisotropicLevel=Z}},FILTER_RESOLUTION:{get(){return deprecation("7.1.0","settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution"),Filter$1.defaultResolution},set(Z){Filter$1.defaultResolution=Z}},FILTER_MULTISAMPLE:{get(){return deprecation("7.1.0","settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample"),Filter$1.defaultMultisample},set(Z){Filter$1.defaultMultisample=Z}},SPRITE_MAX_TEXTURES:{get(){return BatchRenderer.defaultMaxTextures},set(Z){deprecation("7.1.0","settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures"),BatchRenderer.defaultMaxTextures=Z}},SPRITE_BATCH_SIZE:{get(){return BatchRenderer.defaultBatchSize},set(Z){deprecation("7.1.0","settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize"),BatchRenderer.defaultBatchSize=Z}},CAN_UPLOAD_SAME_BUFFER:{get(){return BatchRenderer.canUploadSameBuffer},set(Z){deprecation("7.1.0","settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer"),BatchRenderer.canUploadSameBuffer=Z}},GC_MODE:{get(){return TextureGCSystem.defaultMode},set(Z){deprecation("7.1.0","settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode"),TextureGCSystem.defaultMode=Z}},GC_MAX_IDLE:{get(){return TextureGCSystem.defaultMaxIdle},set(Z){deprecation("7.1.0","settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle"),TextureGCSystem.defaultMaxIdle=Z}},GC_MAX_CHECK_COUNT:{get(){return TextureGCSystem.defaultCheckCountMax},set(Z){deprecation("7.1.0","settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax"),TextureGCSystem.defaultCheckCountMax=Z}},PRECISION_VERTEX:{get(){return Program.defaultVertexPrecision},set(Z){deprecation("7.1.0","settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision"),Program.defaultVertexPrecision=Z}},PRECISION_FRAGMENT:{get(){return Program.defaultFragmentPrecision},set(Z){deprecation("7.1.0","settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision"),Program.defaultFragmentPrecision=Z}}});var UPDATE_PRIORITY=(Z=>(Z[Z.INTERACTION=50]="INTERACTION",Z[Z.HIGH=25]="HIGH",Z[Z.NORMAL=0]="NORMAL",Z[Z.LOW=-25]="LOW",Z[Z.UTILITY=-50]="UTILITY",Z))(UPDATE_PRIORITY||{});class TickerListener{constructor(_,Y=null,ee=0,te=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=_,this.context=Y,this.priority=ee,this.once=te}match(_,Y=null){return this.fn===_&&this.context===Y}emit(_){this.fn&&(this.context?this.fn.call(this.context,_):this.fn(_));const Y=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),Y}connect(_){this.previous=_,_.next&&(_.next.previous=this),this.next=_.next,_.next=this}destroy(_=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);const Y=this.next;return this.next=_?null:Y,this.previous=null,Y}}const _Ticker=class ht{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 TickerListener(null,null,1/0),this.deltaMS=1/ht.targetFPMS,this.elapsedMS=1/ht.targetFPMS,this._tick=_=>{this._requestId=null,this.started&&(this.update(_),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(_,Y,ee=UPDATE_PRIORITY.NORMAL){return this._addListener(new TickerListener(_,Y,ee))}addOnce(_,Y,ee=UPDATE_PRIORITY.NORMAL){return this._addListener(new TickerListener(_,Y,ee,!0))}_addListener(_){let Y=this._head.next,ee=this._head;if(!Y)_.connect(ee);else{for(;Y;){if(_.priority>Y.priority){_.connect(ee);break}ee=Y,Y=Y.next}_.previous||_.connect(ee)}return this._startIfPossible(),this}remove(_,Y){let ee=this._head.next;for(;ee;)ee.match(_,Y)?ee=ee.destroy():ee=ee.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let _=0,Y=this._head;for(;Y=Y.next;)_++;return _}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let _=this._head.next;for(;_;)_=_.destroy(!0);this._head.destroy(),this._head=null}}update(_=performance.now()){let Y;if(_>this.lastTime){if(Y=this.elapsedMS=_-this.lastTime,Y>this._maxElapsedMS&&(Y=this._maxElapsedMS),Y*=this.speed,this._minElapsedMS){const re=_-this._lastFrame|0;if(re{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=_.sharedTicker?Ticker.shared:new Ticker,_.autoStart&&this.start()}static destroy(){if(this._ticker){const _=this._ticker;this.ticker=null,_.destroy()}}}TickerPlugin.extension=ExtensionType.Application;extensions$1.add(TickerPlugin);const renderers=[];extensions$1.handleByList(ExtensionType.Renderer,renderers);function autoDetectRenderer(Z){for(const _ of renderers)if(_.test(Z))return new _(Z);throw new Error("Unable to auto-detect a suitable renderer.")}var $defaultVertex=`attribute vec2 aVertexPosition; +attribute vec2 aTextureCoord; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +void main(void) +{ + gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0); + vTextureCoord = aTextureCoord; +}`,$defaultFilterVertex=`attribute vec2 aVertexPosition; + +uniform mat3 projectionMatrix; + +varying vec2 vTextureCoord; + +uniform vec4 inputSize; +uniform vec4 outputFrame; + +vec4 filterVertexPosition( void ) +{ + vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; + + return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); +} + +vec2 filterTextureCoord( void ) +{ + return aVertexPosition * (outputFrame.zw * inputSize.zw); +} + +void main(void) +{ + gl_Position = filterVertexPosition(); + vTextureCoord = filterTextureCoord(); +} +`;const defaultVertex=$defaultVertex,defaultFilterVertex=$defaultFilterVertex;class MultisampleSystem{constructor(_){this.renderer=_}contextChange(_){let Y;if(this.renderer.context.webGLVersion===1){const ee=_.getParameter(_.FRAMEBUFFER_BINDING);_.bindFramebuffer(_.FRAMEBUFFER,null),Y=_.getParameter(_.SAMPLES),_.bindFramebuffer(_.FRAMEBUFFER,ee)}else{const ee=_.getParameter(_.DRAW_FRAMEBUFFER_BINDING);_.bindFramebuffer(_.DRAW_FRAMEBUFFER,null),Y=_.getParameter(_.SAMPLES),_.bindFramebuffer(_.DRAW_FRAMEBUFFER,ee)}Y>=MSAA_QUALITY.HIGH?this.multisample=MSAA_QUALITY.HIGH:Y>=MSAA_QUALITY.MEDIUM?this.multisample=MSAA_QUALITY.MEDIUM:Y>=MSAA_QUALITY.LOW?this.multisample=MSAA_QUALITY.LOW:this.multisample=MSAA_QUALITY.NONE}destroy(){}}MultisampleSystem.extension={type:ExtensionType.RendererSystem,name:"_multisample"};extensions$1.add(MultisampleSystem);class GLBuffer{constructor(_){this.buffer=_||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}}class BufferSystem{constructor(_){this.renderer=_,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(_){const{gl:Y,CONTEXT_UID:ee}=this,te=_._glBuffers[ee]||this.createGLBuffer(_);Y.bindBuffer(_.type,te.buffer)}unbind(_){const{gl:Y}=this;Y.bindBuffer(_,null)}bindBufferBase(_,Y){const{gl:ee,CONTEXT_UID:te}=this;if(this.boundBufferBases[Y]!==_){const re=_._glBuffers[te]||this.createGLBuffer(_);this.boundBufferBases[Y]=_,ee.bindBufferBase(ee.UNIFORM_BUFFER,Y,re.buffer)}}bindBufferRange(_,Y,ee){const{gl:te,CONTEXT_UID:re}=this;ee=ee||0;const ne=_._glBuffers[re]||this.createGLBuffer(_);te.bindBufferRange(te.UNIFORM_BUFFER,Y||0,ne.buffer,ee*256,256)}update(_){const{gl:Y,CONTEXT_UID:ee}=this,te=_._glBuffers[ee]||this.createGLBuffer(_);if(_._updateID!==te.updateID)if(te.updateID=_._updateID,Y.bindBuffer(_.type,te.buffer),te.byteLength>=_.data.byteLength)Y.bufferSubData(_.type,0,_.data);else{const re=_.static?Y.STATIC_DRAW:Y.DYNAMIC_DRAW;te.byteLength=_.data.byteLength,Y.bufferData(_.type,_.data,re)}}dispose(_,Y){if(!this.managedBuffers[_.id])return;delete this.managedBuffers[_.id];const ee=_._glBuffers[this.CONTEXT_UID],te=this.gl;_.disposeRunner.remove(this),ee&&(Y||te.deleteBuffer(ee.buffer),delete _._glBuffers[this.CONTEXT_UID])}disposeAll(_){const Y=Object.keys(this.managedBuffers);for(let ee=0;eeY.resource).filter(Y=>Y).map(Y=>Y.load());return this._load=Promise.all(_).then(()=>{const{realWidth:Y,realHeight:ee}=this.items[0];return this.resize(Y,ee),this.update(),Promise.resolve(this)}),this._load}}class ArrayResource extends AbstractMultiResource{constructor(_,Y){const{width:ee,height:te}=Y||{};let re,ne;Array.isArray(_)?(re=_,ne=_.length):ne=_,super(ne,{width:ee,height:te}),re&&this.initFromArray(re,Y)}addBaseTextureAt(_,Y){if(_.resource)this.addResourceAt(_.resource,Y);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(_){super.bind(_),_.target=TARGETS.TEXTURE_2D_ARRAY}upload(_,Y,ee){const{length:te,itemDirtyIds:re,items:ne}=this,{gl:ie}=_;ee.dirtyId<0&&ie.texImage3D(ie.TEXTURE_2D_ARRAY,0,ee.internalFormat,this._width,this._height,te,0,Y.format,ee.type,null);for(let se=0;se0)if(_.resource)this.addResourceAt(_.resource,Y);else throw new Error("CubeResource does not support copying of renderTexture.");else _.target=TARGETS.TEXTURE_CUBE_MAP_POSITIVE_X+Y,_.parentTextureArray=this.baseTexture,this.items[Y]=_;return _.valid&&!this.valid&&this.resize(_.realWidth,_.realHeight),this.items[Y]=_,this}upload(_,Y,ee){const te=this.itemDirtyIds;for(let re=0;re{if(this.url===null){_(this);return}try{const ee=await settings.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;const te=await ee.blob();if(this.destroyed)return;const re=await createImageBitmap(te,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===ALPHA_MODES.UNPACK?"premultiply":"none"});if(this.destroyed){re.close();return}this.source=re,this.update(),_(this)}catch(ee){if(this.destroyed)return;Y(ee),this.onError.emit(ee)}}),this._load)}upload(_,Y,ee){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(Y.alphaMode=this.alphaMode),super.upload(_,Y,ee)):(this.load(),!1)}dispose(){this.ownsImageBitmap&&this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(_){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof _=="string"||_ instanceof ImageBitmap)}static get EMPTY(){return ImageBitmapResource._EMPTY=ImageBitmapResource._EMPTY??settings.ADAPTER.createCanvas(0,0),ImageBitmapResource._EMPTY}}const _SVGResource=class Ft extends BaseImageResource{constructor(_,Y){Y=Y||{},super(settings.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=_,this.scale=Y.scale||1,this._overrideWidth=Y.width,this._overrideHeight=Y.height,this._resolve=null,this._crossorigin=Y.crossorigin,this._load=null,Y.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(_=>{if(this._resolve=()=>{this.update(),_(this)},Ft.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){const _=new Image;BaseImageResource.crossOrigin(_,this.svg,this._crossorigin),_.src=this.svg,_.onerror=Y=>{this._resolve&&(_.onerror=null,this.onError.emit(Y))},_.onload=()=>{if(!this._resolve)return;const Y=_.width,ee=_.height;if(!Y||!ee)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let te=Y*this.scale,re=ee*this.scale;(this._overrideWidth||this._overrideHeight)&&(te=this._overrideWidth||this._overrideHeight/ee*Y,re=this._overrideHeight||this._overrideWidth/Y*ee),te=Math.round(te),re=Math.round(re);const ne=this.source;ne.width=te,ne.height=re,ne._pixiId=`canvas_${uid$1()}`,ne.getContext("2d").drawImage(_,0,0,Y,ee,0,0,te,re),this._resolve(),this._resolve=null}}static getSize(_){const Y=Ft.SVG_SIZE.exec(_),ee={};return Y&&(ee[Y[1]]=Math.round(parseFloat(Y[3])),ee[Y[5]]=Math.round(parseFloat(Y[7]))),ee}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(_,Y){return Y==="svg"||typeof _=="string"&&_.startsWith("data:image/svg+xml")||typeof _=="string"&&Ft.SVG_XML.test(_)}};_SVGResource.SVG_XML=/^(<\?xml[^?]+\?>)?\s*()]*-->)?\s*\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;let SVGResource=_SVGResource;class VideoFrameResource extends BaseImageResource{constructor(_){super(_)}static test(_){return!!globalThis.VideoFrame&&_ instanceof globalThis.VideoFrame}}const _VideoResource=class jt extends BaseImageResource{constructor(_,Y){if(Y=Y||{},!(_ instanceof HTMLVideoElement)){const ee=document.createElement("video");Y.autoLoad!==!1&&ee.setAttribute("preload","auto"),Y.playsinline!==!1&&(ee.setAttribute("webkit-playsinline",""),ee.setAttribute("playsinline","")),Y.muted===!0&&(ee.setAttribute("muted",""),ee.muted=!0),Y.loop===!0&&ee.setAttribute("loop",""),Y.autoPlay!==!1&&ee.setAttribute("autoplay",""),typeof _=="string"&&(_=[_]);const te=_[0].src||_[0];BaseImageResource.crossOrigin(ee,te,Y.crossorigin);for(let re=0;re<_.length;++re){const ne=document.createElement("source");let{src:ie,mime:se}=_[re];if(ie=ie||_[re],ie.startsWith("data:"))se=ie.slice(5,ie.indexOf(";"));else if(!ie.startsWith("blob:")){const ae=ie.split("?").shift().toLowerCase(),ue=ae.slice(ae.lastIndexOf(".")+1);se=se||jt.MIME_TYPES[ue]||`video/${ue}`}ne.src=ie,se&&(ne.type=se),ee.appendChild(ne)}_=ee}super(_),this.noSubImage=!0,this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=Y.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=Y.autoPlay!==!1,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._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),Y.autoLoad!==!1&&this.load()}update(_=0){if(!this.destroyed){if(this._updateFPS){const Y=Ticker.shared.elapsedMS*this.source.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-Y)}(!this._updateFPS||this._msToNextUpdate<=0)&&(super.update(),this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0)}}_videoFrameRequestCallback(){this.update(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)}load(){if(this._load)return this._load;const _=this.source;return(_.readyState===_.HAVE_ENOUGH_DATA||_.readyState===_.HAVE_FUTURE_DATA)&&_.width&&_.height&&(_.complete=!0),_.addEventListener("play",this._onPlayStart),_.addEventListener("pause",this._onPlayStop),_.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._onCanPlay():(_.addEventListener("canplay",this._onCanPlay),_.addEventListener("canplaythrough",this._onCanPlay),_.addEventListener("error",this._onError,!0)),this._load=new Promise((Y,ee)=>{this.valid?Y(this):(this._resolve=Y,this._reject=ee,_.load())}),this._load}_onError(_){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(_),this._reject&&(this._reject(_),this._reject=null,this._resolve=null)}_isSourcePlaying(){const _=this.source;return!_.paused&&!_.ended}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0)}_onCanPlay(){const _=this.source;_.removeEventListener("canplay",this._onCanPlay),_.removeEventListener("canplaythrough",this._onCanPlay);const Y=this.valid;this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0,!Y&&this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&_.play()}dispose(){this._configureAutoUpdate();const _=this.source;_&&(_.removeEventListener("play",this._onPlayStart),_.removeEventListener("pause",this._onPlayStop),_.removeEventListener("seeked",this._onSeeked),_.removeEventListener("canplay",this._onCanPlay),_.removeEventListener("canplaythrough",this._onCanPlay),_.removeEventListener("error",this._onError,!0),_.pause(),_.src="",_.load()),super.dispose()}get autoUpdate(){return this._autoUpdate}set autoUpdate(_){_!==this._autoUpdate&&(this._autoUpdate=_,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(_){_!==this._updateFPS&&(this._updateFPS=_,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.source.requestVideoFrameCallback?(this._isConnectedToTicker&&(Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(Ticker.shared.add(this.update,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(Ticker.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(_,Y){return globalThis.HTMLVideoElement&&_ instanceof HTMLVideoElement||jt.TYPES.includes(Y)}};_VideoResource.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"],_VideoResource.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};let VideoResource=_VideoResource;INSTALLED.push(ImageBitmapResource,ImageResource,CanvasResource,VideoResource,VideoFrameResource,SVGResource,BufferResource,CubeResource,ArrayResource);class Bounds{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null,this.updateID=-1}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}clear(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}getRectangle(_){return this.minX>this.maxX||this.minY>this.maxY?Rectangle.EMPTY:(_=_||new Rectangle(0,0,1,1),_.x=this.minX,_.y=this.minY,_.width=this.maxX-this.minX,_.height=this.maxY-this.minY,_)}addPoint(_){this.minX=Math.min(this.minX,_.x),this.maxX=Math.max(this.maxX,_.x),this.minY=Math.min(this.minY,_.y),this.maxY=Math.max(this.maxY,_.y)}addPointMatrix(_,Y){const{a:ee,b:te,c:re,d:ne,tx:ie,ty:se}=_,ae=ee*Y.x+re*Y.y+ie,ue=te*Y.x+ne*Y.y+se;this.minX=Math.min(this.minX,ae),this.maxX=Math.max(this.maxX,ae),this.minY=Math.min(this.minY,ue),this.maxY=Math.max(this.maxY,ue)}addQuad(_){let Y=this.minX,ee=this.minY,te=this.maxX,re=this.maxY,ne=_[0],ie=_[1];Y=nete?ne:te,re=ie>re?ie:re,ne=_[2],ie=_[3],Y=nete?ne:te,re=ie>re?ie:re,ne=_[4],ie=_[5],Y=nete?ne:te,re=ie>re?ie:re,ne=_[6],ie=_[7],Y=nete?ne:te,re=ie>re?ie:re,this.minX=Y,this.minY=ee,this.maxX=te,this.maxY=re}addFrame(_,Y,ee,te,re){this.addFrameMatrix(_.worldTransform,Y,ee,te,re)}addFrameMatrix(_,Y,ee,te,re){const ne=_.a,ie=_.b,se=_.c,ae=_.d,ue=_.tx,oe=_.ty;let le=this.minX,ce=this.minY,he=this.maxX,fe=this.maxY,de=ne*Y+se*ee+ue,pe=ie*Y+ae*ee+oe;le=dehe?de:he,fe=pe>fe?pe:fe,de=ne*te+se*ee+ue,pe=ie*te+ae*ee+oe,le=dehe?de:he,fe=pe>fe?pe:fe,de=ne*Y+se*re+ue,pe=ie*Y+ae*re+oe,le=dehe?de:he,fe=pe>fe?pe:fe,de=ne*te+se*re+ue,pe=ie*te+ae*re+oe,le=dehe?de:he,fe=pe>fe?pe:fe,this.minX=le,this.minY=ce,this.maxX=he,this.maxY=fe}addVertexData(_,Y,ee){let te=this.minX,re=this.minY,ne=this.maxX,ie=this.maxY;for(let se=Y;sene?ae:ne,ie=ue>ie?ue:ie}this.minX=te,this.minY=re,this.maxX=ne,this.maxY=ie}addVertices(_,Y,ee,te){this.addVerticesMatrix(_.worldTransform,Y,ee,te)}addVerticesMatrix(_,Y,ee,te,re=0,ne=re){const ie=_.a,se=_.b,ae=_.c,ue=_.d,oe=_.tx,le=_.ty;let ce=this.minX,he=this.minY,fe=this.maxX,de=this.maxY;for(let pe=ee;pete?_.maxX:te,this.maxY=_.maxY>re?_.maxY:re}addBoundsMask(_,Y){const ee=_.minX>Y.minX?_.minX:Y.minX,te=_.minY>Y.minY?_.minY:Y.minY,re=_.maxXae?re:ae,this.maxY=ne>ue?ne:ue}}addBoundsMatrix(_,Y){this.addFrameMatrix(Y,_.minX,_.minY,_.maxX,_.maxY)}addBoundsArea(_,Y){const ee=_.minX>Y.x?_.minX:Y.x,te=_.minY>Y.y?_.minY:Y.y,re=_.maxXae?re:ae,this.maxY=ne>ue?ne:ue}}pad(_=0,Y=_){this.isEmpty()||(this.minX-=_,this.maxX+=_,this.minY-=Y,this.maxY+=Y)}addFramePad(_,Y,ee,te,re,ne){_-=re,Y-=ne,ee+=re,te+=ne,this.minX=this.minX<_?this.minX:_,this.maxX=this.maxX>ee?this.maxX:ee,this.minY=this.minYte?this.maxY:te}}class DisplayObject extends EventEmitter{constructor(){super(),this.tempDisplayObjectParent=null,this.transform=new Transform,this.alpha=1,this.visible=!0,this.renderable=!0,this.cullable=!1,this.cullArea=null,this.parent=null,this.worldAlpha=1,this._lastSortedIndex=0,this._zIndex=0,this.filterArea=null,this.filters=null,this._enabledFilters=null,this._bounds=new Bounds,this._localBounds=null,this._boundsID=0,this._boundsRect=null,this._localBoundsRect=null,this._mask=null,this._maskRefCount=0,this._destroyed=!1,this.isSprite=!1,this.isMask=!1}static mixin(_){const Y=Object.keys(_);for(let ee=0;ee1)for(let Y=0;Y<_.length;Y++)this.addChild(_[Y]);else{const Y=_[0];Y.parent&&Y.parent.removeChild(Y),Y.parent=this,this.sortDirty=!0,Y.transform._parentID=-1,this.children.push(Y),this._boundsID++,this.onChildrenChange(this.children.length-1),this.emit("childAdded",Y,this,this.children.length-1),Y.emit("added",this)}return _[0]}addChildAt(_,Y){if(Y<0||Y>this.children.length)throw new Error(`${_}addChildAt: The index ${Y} supplied is out of bounds ${this.children.length}`);return _.parent&&_.parent.removeChild(_),_.parent=this,this.sortDirty=!0,_.transform._parentID=-1,this.children.splice(Y,0,_),this._boundsID++,this.onChildrenChange(Y),_.emit("added",this),this.emit("childAdded",_,this,Y),_}swapChildren(_,Y){if(_===Y)return;const ee=this.getChildIndex(_),te=this.getChildIndex(Y);this.children[ee]=Y,this.children[te]=_,this.onChildrenChange(ee=this.children.length)throw new Error(`The index ${Y} supplied is out of bounds ${this.children.length}`);const ee=this.getChildIndex(_);removeItems(this.children,ee,1),this.children.splice(Y,0,_),this.onChildrenChange(Y)}getChildAt(_){if(_<0||_>=this.children.length)throw new Error(`getChildAt: Index (${_}) does not exist.`);return this.children[_]}removeChild(..._){if(_.length>1)for(let Y=0;Y<_.length;Y++)this.removeChild(_[Y]);else{const Y=_[0],ee=this.children.indexOf(Y);if(ee===-1)return null;Y.parent=null,Y.transform._parentID=-1,removeItems(this.children,ee,1),this._boundsID++,this.onChildrenChange(ee),Y.emit("removed",this),this.emit("childRemoved",Y,this,ee)}return _[0]}removeChildAt(_){const Y=this.getChildAt(_);return Y.parent=null,Y.transform._parentID=-1,removeItems(this.children,_,1),this._boundsID++,this.onChildrenChange(_),Y.emit("removed",this),this.emit("childRemoved",Y,this,_),Y}removeChildren(_=0,Y=this.children.length){const ee=_,te=Y,re=te-ee;let ne;if(re>0&&re<=te){ne=this.children.splice(ee,re);for(let ie=0;ie1&&this.children.sort(sortChildren),this.sortDirty=!1}updateTransform(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(let _=0,Y=this.children.length;_0&&Y.height>0))return;let ee,te;this.cullArea?(ee=this.cullArea,te=this.worldTransform):this._render!==Gt.prototype._render&&(ee=this.getBounds(!0));const re=_.projection.transform;if(re&&(te?(te=tempMatrix.copyFrom(te),te.prepend(re)):te=re),ee&&Y.intersects(ee,te))this._render(_);else if(this.cullArea)return;for(let ne=0,ie=this.children.length;ne=te&&tempPoint$1.x=re&&tempPoint$1.y=Y&&(ne=Z-ie-1),se=se.replace("%value%",_[ne].toString()),te+=se,te+=` +`}return ee=ee.replace("%blur%",te),ee=ee.replace("%size%",Z.toString()),ee}const vertTemplate=` + attribute vec2 aVertexPosition; + + uniform mat3 projectionMatrix; + + uniform float strength; + + varying vec2 vBlurTexCoords[%size%]; + + uniform vec4 inputSize; + uniform vec4 outputFrame; + + vec4 filterVertexPosition( void ) + { + vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; + + return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); + } + + vec2 filterTextureCoord( void ) + { + return aVertexPosition * (outputFrame.zw * inputSize.zw); + } + + void main(void) + { + gl_Position = filterVertexPosition(); + + vec2 textureCoord = filterTextureCoord(); + %blur% + }`;function generateBlurVertSource(Z,_){const Y=Math.ceil(Z/2);let ee=vertTemplate,te="",re;_?re="vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);":re="vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);";for(let ne=0;ne 0.0) { + c.rgb /= c.a; + } + + vec4 result; + + result.r = (m[0] * c.r); + result.r += (m[1] * c.g); + result.r += (m[2] * c.b); + result.r += (m[3] * c.a); + result.r += m[4]; + + result.g = (m[5] * c.r); + result.g += (m[6] * c.g); + result.g += (m[7] * c.b); + result.g += (m[8] * c.a); + result.g += m[9]; + + result.b = (m[10] * c.r); + result.b += (m[11] * c.g); + result.b += (m[12] * c.b); + result.b += (m[13] * c.a); + result.b += m[14]; + + result.a = (m[15] * c.r); + result.a += (m[16] * c.g); + result.a += (m[17] * c.b); + result.a += (m[18] * c.a); + result.a += m[19]; + + vec3 rgb = mix(c.rgb, result.rgb, uAlpha); + + // Premultiply alpha again. + rgb *= result.a; + + gl_FragColor = vec4(rgb, result.a); +} +`;class ColorMatrixFilter extends Filter$1{constructor(){const _={m:new Float32Array([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]),uAlpha:1};super(defaultFilterVertex,fragment$5,_),this.alpha=1}_loadMatrix(_,Y=!1){let ee=_;Y&&(this._multiply(ee,this.uniforms.m,_),ee=this._colorMatrix(ee)),this.uniforms.m=ee}_multiply(_,Y,ee){return _[0]=Y[0]*ee[0]+Y[1]*ee[5]+Y[2]*ee[10]+Y[3]*ee[15],_[1]=Y[0]*ee[1]+Y[1]*ee[6]+Y[2]*ee[11]+Y[3]*ee[16],_[2]=Y[0]*ee[2]+Y[1]*ee[7]+Y[2]*ee[12]+Y[3]*ee[17],_[3]=Y[0]*ee[3]+Y[1]*ee[8]+Y[2]*ee[13]+Y[3]*ee[18],_[4]=Y[0]*ee[4]+Y[1]*ee[9]+Y[2]*ee[14]+Y[3]*ee[19]+Y[4],_[5]=Y[5]*ee[0]+Y[6]*ee[5]+Y[7]*ee[10]+Y[8]*ee[15],_[6]=Y[5]*ee[1]+Y[6]*ee[6]+Y[7]*ee[11]+Y[8]*ee[16],_[7]=Y[5]*ee[2]+Y[6]*ee[7]+Y[7]*ee[12]+Y[8]*ee[17],_[8]=Y[5]*ee[3]+Y[6]*ee[8]+Y[7]*ee[13]+Y[8]*ee[18],_[9]=Y[5]*ee[4]+Y[6]*ee[9]+Y[7]*ee[14]+Y[8]*ee[19]+Y[9],_[10]=Y[10]*ee[0]+Y[11]*ee[5]+Y[12]*ee[10]+Y[13]*ee[15],_[11]=Y[10]*ee[1]+Y[11]*ee[6]+Y[12]*ee[11]+Y[13]*ee[16],_[12]=Y[10]*ee[2]+Y[11]*ee[7]+Y[12]*ee[12]+Y[13]*ee[17],_[13]=Y[10]*ee[3]+Y[11]*ee[8]+Y[12]*ee[13]+Y[13]*ee[18],_[14]=Y[10]*ee[4]+Y[11]*ee[9]+Y[12]*ee[14]+Y[13]*ee[19]+Y[14],_[15]=Y[15]*ee[0]+Y[16]*ee[5]+Y[17]*ee[10]+Y[18]*ee[15],_[16]=Y[15]*ee[1]+Y[16]*ee[6]+Y[17]*ee[11]+Y[18]*ee[16],_[17]=Y[15]*ee[2]+Y[16]*ee[7]+Y[17]*ee[12]+Y[18]*ee[17],_[18]=Y[15]*ee[3]+Y[16]*ee[8]+Y[17]*ee[13]+Y[18]*ee[18],_[19]=Y[15]*ee[4]+Y[16]*ee[9]+Y[17]*ee[14]+Y[18]*ee[19]+Y[19],_}_colorMatrix(_){const Y=new Float32Array(_);return Y[4]/=255,Y[9]/=255,Y[14]/=255,Y[19]/=255,Y}brightness(_,Y){const ee=[_,0,0,0,0,0,_,0,0,0,0,0,_,0,0,0,0,0,1,0];this._loadMatrix(ee,Y)}tint(_,Y){const[ee,te,re]=Color.shared.setValue(_).toArray(),ne=[ee,0,0,0,0,0,te,0,0,0,0,0,re,0,0,0,0,0,1,0];this._loadMatrix(ne,Y)}greyscale(_,Y){const ee=[_,_,_,0,0,_,_,_,0,0,_,_,_,0,0,0,0,0,1,0];this._loadMatrix(ee,Y)}blackAndWhite(_){const Y=[.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0];this._loadMatrix(Y,_)}hue(_,Y){_=(_||0)/180*Math.PI;const ee=Math.cos(_),te=Math.sin(_),re=Math.sqrt,ne=1/3,ie=re(ne),se=ee+(1-ee)*ne,ae=ne*(1-ee)-ie*te,ue=ne*(1-ee)+ie*te,oe=ne*(1-ee)+ie*te,le=ee+ne*(1-ee),ce=ne*(1-ee)-ie*te,he=ne*(1-ee)-ie*te,fe=ne*(1-ee)+ie*te,de=ee+ne*(1-ee),pe=[se,ae,ue,0,0,oe,le,ce,0,0,he,fe,de,0,0,0,0,0,1,0];this._loadMatrix(pe,Y)}contrast(_,Y){const ee=(_||0)+1,te=-.5*(ee-1),re=[ee,0,0,0,te,0,ee,0,0,te,0,0,ee,0,te,0,0,0,1,0];this._loadMatrix(re,Y)}saturate(_=0,Y){const ee=_*2/3+1,te=(ee-1)*-.5,re=[ee,te,te,0,0,te,ee,te,0,0,te,te,ee,0,0,0,0,0,1,0];this._loadMatrix(re,Y)}desaturate(){this.saturate(-1)}negative(_){const Y=[-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0];this._loadMatrix(Y,_)}sepia(_){const Y=[.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0];this._loadMatrix(Y,_)}technicolor(_){const Y=[1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0];this._loadMatrix(Y,_)}polaroid(_){const Y=[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0];this._loadMatrix(Y,_)}toBGR(_){const Y=[0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0];this._loadMatrix(Y,_)}kodachrome(_){const Y=[1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0];this._loadMatrix(Y,_)}browni(_){const Y=[.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0];this._loadMatrix(Y,_)}vintage(_){const Y=[.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0];this._loadMatrix(Y,_)}colorTone(_,Y,ee,te,re){_=_||.2,Y=Y||.15,ee=ee||16770432,te=te||3375104;const ne=Color.shared,[ie,se,ae]=ne.setValue(ee).toArray(),[ue,oe,le]=ne.setValue(te).toArray(),ce=[.3,.59,.11,0,0,ie,se,ae,_,0,ue,oe,le,Y,0,ie-ue,se-oe,ae-le,0,0];this._loadMatrix(ce,re)}night(_,Y){_=_||.1;const ee=[_*-2,-_,0,0,0,-_,0,_,0,0,0,_,_*2,0,0,0,0,0,1,0];this._loadMatrix(ee,Y)}predator(_,Y){const ee=[11.224130630493164*_,-4.794486999511719*_,-2.8746118545532227*_,0*_,.40342438220977783*_,-3.6330697536468506*_,9.193157196044922*_,-2.951810836791992*_,0*_,-1.316135048866272*_,-3.2184197902679443*_,-4.2375030517578125*_,7.476448059082031*_,0*_,.8044459223747253*_,0,0,0,1,0];this._loadMatrix(ee,Y)}lsd(_){const Y=[2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0];this._loadMatrix(Y,_)}reset(){const _=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];this._loadMatrix(_,!1)}get matrix(){return this.uniforms.m}set matrix(_){this.uniforms.m=_}get alpha(){return this.uniforms.uAlpha}set alpha(_){this.uniforms.uAlpha=_}}ColorMatrixFilter.prototype.grayscale=ColorMatrixFilter.prototype.greyscale;var fragment$4=`varying vec2 vFilterCoord; +varying vec2 vTextureCoord; + +uniform vec2 scale; +uniform mat2 rotation; +uniform sampler2D uSampler; +uniform sampler2D mapSampler; + +uniform highp vec4 inputSize; +uniform vec4 inputClamp; + +void main(void) +{ + vec4 map = texture2D(mapSampler, vFilterCoord); + + map -= 0.5; + map.xy = scale * inputSize.zw * (rotation * map.xy); + + gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw)); +} +`,vertex$3=`attribute vec2 aVertexPosition; + +uniform mat3 projectionMatrix; +uniform mat3 filterMatrix; + +varying vec2 vTextureCoord; +varying vec2 vFilterCoord; + +uniform vec4 inputSize; +uniform vec4 outputFrame; + +vec4 filterVertexPosition( void ) +{ + vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; + + return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); +} + +vec2 filterTextureCoord( void ) +{ + return aVertexPosition * (outputFrame.zw * inputSize.zw); +} + +void main(void) +{ + gl_Position = filterVertexPosition(); + vTextureCoord = filterTextureCoord(); + vFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0) ).xy; +} +`;class DisplacementFilter extends Filter$1{constructor(_,Y){const ee=new Matrix;_.renderable=!1,super(vertex$3,fragment$4,{mapSampler:_._texture,filterMatrix:ee,scale:{x:1,y:1},rotation:new Float32Array([1,0,0,1])}),this.maskSprite=_,this.maskMatrix=ee,Y==null&&(Y=20),this.scale=new Point(Y,Y)}apply(_,Y,ee,te){this.uniforms.filterMatrix=_.calculateSpriteMatrix(this.maskMatrix,this.maskSprite),this.uniforms.scale.x=this.scale.x,this.uniforms.scale.y=this.scale.y;const re=this.maskSprite.worldTransform,ne=Math.sqrt(re.a*re.a+re.b*re.b),ie=Math.sqrt(re.c*re.c+re.d*re.d);ne!==0&&ie!==0&&(this.uniforms.rotation[0]=re.a/ne,this.uniforms.rotation[1]=re.b/ne,this.uniforms.rotation[2]=re.c/ie,this.uniforms.rotation[3]=re.d/ie),_.applyFilter(this,Y,ee,te)}get map(){return this.uniforms.mapSampler}set map(_){this.uniforms.mapSampler=_}}var fragment$3=`varying vec2 v_rgbNW; +varying vec2 v_rgbNE; +varying vec2 v_rgbSW; +varying vec2 v_rgbSE; +varying vec2 v_rgbM; + +varying vec2 vFragCoord; +uniform sampler2D uSampler; +uniform highp vec4 inputSize; + + +/** + Basic FXAA implementation based on the code on geeks3d.com with the + modification that the texture2DLod stuff was removed since it's + unsupported by WebGL. + + -- + + From: + https://github.com/mitsuhiko/webgl-meincraft + + Copyright (c) 2011 by Armin Ronacher. + + Some rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef FXAA_REDUCE_MIN +#define FXAA_REDUCE_MIN (1.0/ 128.0) +#endif +#ifndef FXAA_REDUCE_MUL +#define FXAA_REDUCE_MUL (1.0 / 8.0) +#endif +#ifndef FXAA_SPAN_MAX +#define FXAA_SPAN_MAX 8.0 +#endif + +//optimized version for mobile, where dependent +//texture reads can be a bottleneck +vec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 inverseVP, + vec2 v_rgbNW, vec2 v_rgbNE, + vec2 v_rgbSW, vec2 v_rgbSE, + vec2 v_rgbM) { + vec4 color; + vec3 rgbNW = texture2D(tex, v_rgbNW).xyz; + vec3 rgbNE = texture2D(tex, v_rgbNE).xyz; + vec3 rgbSW = texture2D(tex, v_rgbSW).xyz; + vec3 rgbSE = texture2D(tex, v_rgbSE).xyz; + vec4 texColor = texture2D(tex, v_rgbM); + vec3 rgbM = texColor.xyz; + vec3 luma = vec3(0.299, 0.587, 0.114); + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); + + mediump vec2 dir; + dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); + + float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * + (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN); + + float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce); + dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX), + max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), + dir * rcpDirMin)) * inverseVP; + + vec3 rgbA = 0.5 * ( + texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz + + texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz); + vec3 rgbB = rgbA * 0.5 + 0.25 * ( + texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz + + texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz); + + float lumaB = dot(rgbB, luma); + if ((lumaB < lumaMin) || (lumaB > lumaMax)) + color = vec4(rgbA, texColor.a); + else + color = vec4(rgbB, texColor.a); + return color; +} + +void main() { + + vec4 color; + + color = fxaa(uSampler, vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM); + + gl_FragColor = color; +} +`,vertex$2=` +attribute vec2 aVertexPosition; + +uniform mat3 projectionMatrix; + +varying vec2 v_rgbNW; +varying vec2 v_rgbNE; +varying vec2 v_rgbSW; +varying vec2 v_rgbSE; +varying vec2 v_rgbM; + +varying vec2 vFragCoord; + +uniform vec4 inputSize; +uniform vec4 outputFrame; + +vec4 filterVertexPosition( void ) +{ + vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy; + + return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0); +} + +void texcoords(vec2 fragCoord, vec2 inverseVP, + out vec2 v_rgbNW, out vec2 v_rgbNE, + out vec2 v_rgbSW, out vec2 v_rgbSE, + out vec2 v_rgbM) { + v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP; + v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP; + v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP; + v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP; + v_rgbM = vec2(fragCoord * inverseVP); +} + +void main(void) { + + gl_Position = filterVertexPosition(); + + vFragCoord = aVertexPosition * outputFrame.zw; + + texcoords(vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM); +} +`;class FXAAFilter extends Filter$1{constructor(){super(vertex$2,fragment$3)}}var fragment$2=`precision highp float; + +varying vec2 vTextureCoord; +varying vec4 vColor; + +uniform float uNoise; +uniform float uSeed; +uniform sampler2D uSampler; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453); +} + +void main() +{ + vec4 color = texture2D(uSampler, vTextureCoord); + float randomValue = rand(gl_FragCoord.xy * uSeed); + float diff = (randomValue - 0.5) * uNoise; + + // Un-premultiply alpha before applying the color matrix. See issue #3539. + if (color.a > 0.0) { + color.rgb /= color.a; + } + + color.r += diff; + color.g += diff; + color.b += diff; + + // Premultiply alpha again. + color.rgb *= color.a; + + gl_FragColor = color; +} +`;class NoiseFilter extends Filter$1{constructor(_=.5,Y=Math.random()){super(defaultFilterVertex,fragment$2,{uNoise:0,uSeed:0}),this.noise=_,this.seed=Y}get noise(){return this.uniforms.uNoise}set noise(_){this.uniforms.uNoise=_}get seed(){return this.uniforms.uSeed}set seed(_){this.uniforms.uSeed=_}}const filters={AlphaFilter,BlurFilter,BlurFilterPass,ColorMatrixFilter,DisplacementFilter,FXAAFilter,NoiseFilter};Object.entries(filters).forEach(([Z,_])=>{Object.defineProperty(filters,Z,{get(){return deprecation("7.1.0",`filters.${Z} has moved to ${Z}`),_}})});class EventsTickerClass{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}init(_){this.removeTickerListener(),this.events=_,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this.tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(_){this._pauseUpdate=_}addTickerListener(){this.tickerAdded||!this.domElement||(Ticker.system.add(this.tickerUpdate,this,UPDATE_PRIORITY.INTERACTION),this.tickerAdded=!0)}removeTickerListener(){this.tickerAdded&&(Ticker.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)}pointerMoved(){this._didMove=!0}update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}const _=this.events.rootPointerEvent;this.events.supportsTouchEvents&&_.pointerType==="touch"||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:_.clientX,clientY:_.clientY}))}tickerUpdate(_){this._deltaTime+=_,!(this._deltaTimeee.priority-te.priority)}dispatchEvent(_,Y){_.propagationStopped=!1,_.propagationImmediatelyStopped=!1,this.propagate(_,Y),this.dispatch.emit(Y||_.type,_)}mapEvent(_){if(!this.rootTarget)return;const Y=this.mappingTable[_.type];if(Y)for(let ee=0,te=Y.length;ee=0;te--)if(_.currentTarget=ee[te],this.notifyTarget(_,Y),_.propagationStopped||_.propagationImmediatelyStopped)return}}all(_,Y,ee=this._allInteractiveElements){if(ee.length===0)return;_.eventPhase=_.BUBBLING_PHASE;const te=Array.isArray(Y)?Y:[Y];for(let re=ee.length-1;re>=0;re--)te.forEach(ne=>{_.currentTarget=ee[re],this.notifyTarget(_,ne)})}propagationPath(_){const Y=[_];for(let ee=0;ee=0;oe--){const le=ue[oe],ce=this.hitTestMoveRecursive(le,this._isInteractive(Y)?Y:le.eventMode,ee,te,re,ne||re(_,ee));if(ce){if(ce.length>0&&!ce[ce.length-1].parent)continue;const he=_.isInteractive();(ce.length>0||he)&&(he&&this._allInteractiveElements.push(_),ce.push(_)),this._hitElements.length===0&&(this._hitElements=ce),ie=!0}}}const se=this._isInteractive(Y),ae=_.isInteractive();return se&&ae&&this._allInteractiveElements.push(_),ne||this._hitElements.length>0?null:ie?this._hitElements:se&&!re(_,ee)&&te(_,ee)?ae?[_]:[]:null}hitTestRecursive(_,Y,ee,te,re){if(this._interactivePrune(_)||re(_,ee))return null;if((_.eventMode==="dynamic"||Y==="dynamic")&&(EventsTicker.pauseUpdate=!1),_.interactiveChildren&&_.children){const se=_.children;for(let ae=se.length-1;ae>=0;ae--){const ue=se[ae],oe=this.hitTestRecursive(ue,this._isInteractive(Y)?Y:ue.eventMode,ee,te,re);if(oe){if(oe.length>0&&!oe[oe.length-1].parent)continue;const le=_.isInteractive();return(oe.length>0||le)&&oe.push(_),oe}}}const ne=this._isInteractive(Y),ie=_.isInteractive();return ne&&te(_,ee)?ie?[_]:[]:null}_isInteractive(_){return _==="static"||_==="dynamic"}_interactivePrune(_){return!!(!_||_.isMask||!_.visible||!_.renderable||_.eventMode==="none"||_.eventMode==="passive"&&!_.interactiveChildren||_.isMask)}hitPruneFn(_,Y){var ee;if(_.hitArea&&(_.worldTransform.applyInverse(Y,tempLocalMapping),!_.hitArea.contains(tempLocalMapping.x,tempLocalMapping.y)))return!0;if(_._mask){const te=_._mask.isMaskData?_._mask.maskObject:_._mask;if(te&&!((ee=te.containsPoint)!=null&&ee.call(te,Y)))return!0}return!1}hitTestFn(_,Y){return _.eventMode==="passive"?!1:_.hitArea?!0:_.containsPoint?_.containsPoint(Y):!1}notifyTarget(_,Y){var re,ne;Y=Y??_.type;const ee=`on${Y}`;(ne=(re=_.currentTarget)[ee])==null||ne.call(re,_);const te=_.eventPhase===_.CAPTURING_PHASE||_.eventPhase===_.AT_TARGET?`${Y}capture`:Y;this.notifyListeners(_,te),_.eventPhase===_.AT_TARGET&&this.notifyListeners(_,Y)}mapPointerDown(_){if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const Y=this.createPointerEvent(_);if(this.dispatchEvent(Y,"pointerdown"),Y.pointerType==="touch")this.dispatchEvent(Y,"touchstart");else if(Y.pointerType==="mouse"||Y.pointerType==="pen"){const te=Y.button===2;this.dispatchEvent(Y,te?"rightdown":"mousedown")}const ee=this.trackingData(_.pointerId);ee.pressTargetsByButton[_.button]=Y.composedPath(),this.freeEvent(Y)}mapPointerMove(_){var se,ae;if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;const Y=this.createPointerEvent(_);this._isPointerMoveEvent=!1;const ee=Y.pointerType==="mouse"||Y.pointerType==="pen",te=this.trackingData(_.pointerId),re=this.findMountedTarget(te.overTargets);if(((se=te.overTargets)==null?void 0:se.length)>0&&re!==Y.target){const ue=_.type==="mousemove"?"mouseout":"pointerout",oe=this.createPointerEvent(_,ue,re);if(this.dispatchEvent(oe,"pointerout"),ee&&this.dispatchEvent(oe,"mouseout"),!Y.composedPath().includes(re)){const le=this.createPointerEvent(_,"pointerleave",re);for(le.eventPhase=le.AT_TARGET;le.target&&!Y.composedPath().includes(le.target);)le.currentTarget=le.target,this.notifyTarget(le),ee&&this.notifyTarget(le,"mouseleave"),le.target=le.target.parent;this.freeEvent(le)}this.freeEvent(oe)}if(re!==Y.target){const ue=_.type==="mousemove"?"mouseover":"pointerover",oe=this.clonePointerEvent(Y,ue);this.dispatchEvent(oe,"pointerover"),ee&&this.dispatchEvent(oe,"mouseover");let le=re==null?void 0:re.parent;for(;le&&le!==this.rootTarget.parent&&le!==Y.target;)le=le.parent;if(!le||le===this.rootTarget.parent){const ce=this.clonePointerEvent(Y,"pointerenter");for(ce.eventPhase=ce.AT_TARGET;ce.target&&ce.target!==re&&ce.target!==this.rootTarget.parent;)ce.currentTarget=ce.target,this.notifyTarget(ce),ee&&this.notifyTarget(ce,"mouseenter"),ce.target=ce.target.parent;this.freeEvent(ce)}this.freeEvent(oe)}const ne=[],ie=this.enableGlobalMoveEvents??!0;this.moveOnAll?ne.push("pointermove"):this.dispatchEvent(Y,"pointermove"),ie&&ne.push("globalpointermove"),Y.pointerType==="touch"&&(this.moveOnAll?ne.splice(1,0,"touchmove"):this.dispatchEvent(Y,"touchmove"),ie&&ne.push("globaltouchmove")),ee&&(this.moveOnAll?ne.splice(1,0,"mousemove"):this.dispatchEvent(Y,"mousemove"),ie&&ne.push("globalmousemove"),this.cursor=(ae=Y.target)==null?void 0:ae.cursor),ne.length>0&&this.all(Y,ne),this._allInteractiveElements.length=0,this._hitElements.length=0,te.overTargets=Y.composedPath(),this.freeEvent(Y)}mapPointerOver(_){var ne;if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const Y=this.trackingData(_.pointerId),ee=this.createPointerEvent(_),te=ee.pointerType==="mouse"||ee.pointerType==="pen";this.dispatchEvent(ee,"pointerover"),te&&this.dispatchEvent(ee,"mouseover"),ee.pointerType==="mouse"&&(this.cursor=(ne=ee.target)==null?void 0:ne.cursor);const re=this.clonePointerEvent(ee,"pointerenter");for(re.eventPhase=re.AT_TARGET;re.target&&re.target!==this.rootTarget.parent;)re.currentTarget=re.target,this.notifyTarget(re),te&&this.notifyTarget(re,"mouseenter"),re.target=re.target.parent;Y.overTargets=ee.composedPath(),this.freeEvent(ee),this.freeEvent(re)}mapPointerOut(_){if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const Y=this.trackingData(_.pointerId);if(Y.overTargets){const ee=_.pointerType==="mouse"||_.pointerType==="pen",te=this.findMountedTarget(Y.overTargets),re=this.createPointerEvent(_,"pointerout",te);this.dispatchEvent(re),ee&&this.dispatchEvent(re,"mouseout");const ne=this.createPointerEvent(_,"pointerleave",te);for(ne.eventPhase=ne.AT_TARGET;ne.target&&ne.target!==this.rootTarget.parent;)ne.currentTarget=ne.target,this.notifyTarget(ne),ee&&this.notifyTarget(ne,"mouseleave"),ne.target=ne.target.parent;Y.overTargets=null,this.freeEvent(re),this.freeEvent(ne)}this.cursor=null}mapPointerUp(_){if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const Y=performance.now(),ee=this.createPointerEvent(_);if(this.dispatchEvent(ee,"pointerup"),ee.pointerType==="touch")this.dispatchEvent(ee,"touchend");else if(ee.pointerType==="mouse"||ee.pointerType==="pen"){const ie=ee.button===2;this.dispatchEvent(ee,ie?"rightup":"mouseup")}const te=this.trackingData(_.pointerId),re=this.findMountedTarget(te.pressTargetsByButton[_.button]);let ne=re;if(re&&!ee.composedPath().includes(re)){let ie=re;for(;ie&&!ee.composedPath().includes(ie);){if(ee.currentTarget=ie,this.notifyTarget(ee,"pointerupoutside"),ee.pointerType==="touch")this.notifyTarget(ee,"touchendoutside");else if(ee.pointerType==="mouse"||ee.pointerType==="pen"){const se=ee.button===2;this.notifyTarget(ee,se?"rightupoutside":"mouseupoutside")}ie=ie.parent}delete te.pressTargetsByButton[_.button],ne=ie}if(ne){const ie=this.clonePointerEvent(ee,"click");ie.target=ne,ie.path=null,te.clicksByButton[_.button]||(te.clicksByButton[_.button]={clickCount:0,target:ie.target,timeStamp:Y});const se=te.clicksByButton[_.button];if(se.target===ie.target&&Y-se.timeStamp<200?++se.clickCount:se.clickCount=1,se.target=ie.target,se.timeStamp=Y,ie.detail=se.clickCount,ie.pointerType==="mouse"){const ae=ie.button===2;this.dispatchEvent(ie,ae?"rightclick":"click")}else ie.pointerType==="touch"&&this.dispatchEvent(ie,"tap");this.dispatchEvent(ie,"pointertap"),this.freeEvent(ie)}this.freeEvent(ee)}mapPointerUpOutside(_){if(!(_ instanceof FederatedPointerEvent)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const Y=this.trackingData(_.pointerId),ee=this.findMountedTarget(Y.pressTargetsByButton[_.button]),te=this.createPointerEvent(_);if(ee){let re=ee;for(;re;)te.currentTarget=re,this.notifyTarget(te,"pointerupoutside"),te.pointerType==="touch"?this.notifyTarget(te,"touchendoutside"):(te.pointerType==="mouse"||te.pointerType==="pen")&&this.notifyTarget(te,te.button===2?"rightupoutside":"mouseupoutside"),re=re.parent;delete Y.pressTargetsByButton[_.button]}this.freeEvent(te)}mapWheel(_){if(!(_ instanceof FederatedWheelEvent)){console.warn("EventBoundary cannot map a non-wheel event as a wheel event");return}const Y=this.createWheelEvent(_);this.dispatchEvent(Y),this.freeEvent(Y)}findMountedTarget(_){if(!_)return null;let Y=_[0];for(let ee=1;ee<_.length&&_[ee].parent===Y;ee++)Y=_[ee];return Y}createPointerEvent(_,Y,ee){const te=this.allocateEvent(FederatedPointerEvent);return this.copyPointerData(_,te),this.copyMouseData(_,te),this.copyData(_,te),te.nativeEvent=_.nativeEvent,te.originalEvent=_,te.target=ee??this.hitTest(te.global.x,te.global.y)??this._hitElements[0],typeof Y=="string"&&(te.type=Y),te}createWheelEvent(_){const Y=this.allocateEvent(FederatedWheelEvent);return this.copyWheelData(_,Y),this.copyMouseData(_,Y),this.copyData(_,Y),Y.nativeEvent=_.nativeEvent,Y.originalEvent=_,Y.target=this.hitTest(Y.global.x,Y.global.y),Y}clonePointerEvent(_,Y){const ee=this.allocateEvent(FederatedPointerEvent);return ee.nativeEvent=_.nativeEvent,ee.originalEvent=_.originalEvent,this.copyPointerData(_,ee),this.copyMouseData(_,ee),this.copyData(_,ee),ee.target=_.target,ee.path=_.composedPath().slice(),ee.type=Y??ee.type,ee}copyWheelData(_,Y){Y.deltaMode=_.deltaMode,Y.deltaX=_.deltaX,Y.deltaY=_.deltaY,Y.deltaZ=_.deltaZ}copyPointerData(_,Y){_ instanceof FederatedPointerEvent&&Y instanceof FederatedPointerEvent&&(Y.pointerId=_.pointerId,Y.width=_.width,Y.height=_.height,Y.isPrimary=_.isPrimary,Y.pointerType=_.pointerType,Y.pressure=_.pressure,Y.tangentialPressure=_.tangentialPressure,Y.tiltX=_.tiltX,Y.tiltY=_.tiltY,Y.twist=_.twist)}copyMouseData(_,Y){_ instanceof FederatedMouseEvent&&Y instanceof FederatedMouseEvent&&(Y.altKey=_.altKey,Y.button=_.button,Y.buttons=_.buttons,Y.client.copyFrom(_.client),Y.ctrlKey=_.ctrlKey,Y.metaKey=_.metaKey,Y.movement.copyFrom(_.movement),Y.screen.copyFrom(_.screen),Y.shiftKey=_.shiftKey,Y.global.copyFrom(_.global))}copyData(_,Y){Y.isTrusted=_.isTrusted,Y.srcElement=_.srcElement,Y.timeStamp=performance.now(),Y.type=_.type,Y.detail=_.detail,Y.view=_.view,Y.which=_.which,Y.layer.copyFrom(_.layer),Y.page.copyFrom(_.page)}trackingData(_){return this.mappingState.trackingData[_]||(this.mappingState.trackingData[_]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[_]}allocateEvent(_){this.eventPool.has(_)||this.eventPool.set(_,[]);const Y=this.eventPool.get(_).pop()||new _(this);return Y.eventPhase=Y.NONE,Y.currentTarget=null,Y.path=null,Y.target=null,Y}freeEvent(_){if(_.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");const Y=_.constructor;this.eventPool.has(Y)||this.eventPool.set(Y,[]),this.eventPool.get(Y).push(_)}notifyListeners(_,Y){const ee=_.currentTarget._events[Y];if(ee&&_.currentTarget.isInteractive())if("fn"in ee)ee.once&&_.currentTarget.removeListener(Y,ee.fn,void 0,!0),ee.fn.call(ee.context,_);else for(let te=0,re=ee.length;te(ee==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=te),Y[ee]=te,!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(_){const{view:Y,resolution:ee}=this.renderer;this.setTargetElement(Y),this.resolution=ee,Ht._defaultEventMode=_.eventMode??"auto",Object.assign(this.features,_.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(_){this.resolution=_}destroy(){this.setTargetElement(null),this.renderer=null}setCursor(_){_=_||"default";let Y=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(Y=!1),this.currentCursor===_)return;this.currentCursor=_;const ee=this.cursorStyles[_];if(ee)switch(typeof ee){case"string":Y&&(this.domElement.style.cursor=ee);break;case"function":ee(_);break;case"object":Y&&Object.assign(this.domElement.style,ee);break}else Y&&typeof _=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,_)&&(this.domElement.style.cursor=_)}get pointer(){return this.rootPointerEvent}onPointerDown(_){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;const Y=this.normalizeToPointerData(_);this.autoPreventDefault&&Y[0].isNormalized&&(_.cancelable||!("cancelable"in _))&&_.preventDefault();for(let ee=0,te=Y.length;ee0&&(Y=_.composedPath()[0]);const ee=Y!==this.domElement?"outside":"",te=this.normalizeToPointerData(_);for(let re=0,ne=te.length;re"u"&&(re.button=0),typeof re.buttons>"u"&&(re.buttons=1),typeof re.isPrimary>"u"&&(re.isPrimary=_.touches.length===1&&_.type==="touchstart"),typeof re.width>"u"&&(re.width=re.radiusX||1),typeof re.height>"u"&&(re.height=re.radiusY||1),typeof re.tiltX>"u"&&(re.tiltX=0),typeof re.tiltY>"u"&&(re.tiltY=0),typeof re.pointerType>"u"&&(re.pointerType="touch"),typeof re.pointerId>"u"&&(re.pointerId=re.identifier||0),typeof re.pressure>"u"&&(re.pressure=re.force||.5),typeof re.twist>"u"&&(re.twist=0),typeof re.tangentialPressure>"u"&&(re.tangentialPressure=0),typeof re.layerX>"u"&&(re.layerX=re.offsetX=re.clientX),typeof re.layerY>"u"&&(re.layerY=re.offsetY=re.clientY),re.isNormalized=!0,re.type=_.type,Y.push(re)}else if(!globalThis.MouseEvent||_ instanceof MouseEvent&&(!this.supportsPointerEvents||!(_ instanceof globalThis.PointerEvent))){const ee=_;typeof ee.isPrimary>"u"&&(ee.isPrimary=!0),typeof ee.width>"u"&&(ee.width=1),typeof ee.height>"u"&&(ee.height=1),typeof ee.tiltX>"u"&&(ee.tiltX=0),typeof ee.tiltY>"u"&&(ee.tiltY=0),typeof ee.pointerType>"u"&&(ee.pointerType="mouse"),typeof ee.pointerId>"u"&&(ee.pointerId=MOUSE_POINTER_ID),typeof ee.pressure>"u"&&(ee.pressure=.5),typeof ee.twist>"u"&&(ee.twist=0),typeof ee.tangentialPressure>"u"&&(ee.tangentialPressure=0),ee.isNormalized=!0,Y.push(ee)}else Y.push(_);return Y}normalizeWheelEvent(_){const Y=this.rootWheelEvent;return this.transferMouseData(Y,_),Y.deltaX=_.deltaX,Y.deltaY=_.deltaY,Y.deltaZ=_.deltaZ,Y.deltaMode=_.deltaMode,this.mapPositionToPoint(Y.screen,_.clientX,_.clientY),Y.global.copyFrom(Y.screen),Y.offset.copyFrom(Y.screen),Y.nativeEvent=_,Y.type=_.type,Y}bootstrapEvent(_,Y){return _.originalEvent=null,_.nativeEvent=Y,_.pointerId=Y.pointerId,_.width=Y.width,_.height=Y.height,_.isPrimary=Y.isPrimary,_.pointerType=Y.pointerType,_.pressure=Y.pressure,_.tangentialPressure=Y.tangentialPressure,_.tiltX=Y.tiltX,_.tiltY=Y.tiltY,_.twist=Y.twist,this.transferMouseData(_,Y),this.mapPositionToPoint(_.screen,Y.clientX,Y.clientY),_.global.copyFrom(_.screen),_.offset.copyFrom(_.screen),_.isTrusted=Y.isTrusted,_.type==="pointerleave"&&(_.type="pointerout"),_.type.startsWith("mouse")&&(_.type=_.type.replace("mouse","pointer")),_.type.startsWith("touch")&&(_.type=TOUCH_TO_POINTER[_.type]||_.type),_}transferMouseData(_,Y){_.isTrusted=Y.isTrusted,_.srcElement=Y.srcElement,_.timeStamp=performance.now(),_.type=Y.type,_.altKey=Y.altKey,_.button=Y.button,_.buttons=Y.buttons,_.client.x=Y.clientX,_.client.y=Y.clientY,_.ctrlKey=Y.ctrlKey,_.metaKey=Y.metaKey,_.movement.x=Y.movementX,_.movement.y=Y.movementY,_.page.x=Y.pageX,_.page.y=Y.pageY,_.relatedTarget=null,_.shiftKey=Y.shiftKey}};_EventSystem.extension={name:"events",type:[ExtensionType.RendererSystem,ExtensionType.CanvasRendererSystem]},_EventSystem.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};let EventSystem=_EventSystem;extensions$1.add(EventSystem);function convertEventModeToInteractiveMode(Z){return Z==="dynamic"||Z==="static"}const FederatedDisplayObject={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,_internalInteractive:void 0,get interactive(){return this._internalInteractive??convertEventModeToInteractiveMode(EventSystem.defaultEventMode)},set interactive(Z){deprecation("7.2.0","Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead."),this._internalInteractive=Z,this.eventMode=Z?"static":"auto"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??EventSystem.defaultEventMode},set eventMode(Z){this._internalInteractive=convertEventModeToInteractiveMode(Z),this._internalEventMode=Z},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(Z,_,Y){const ee=typeof Y=="boolean"&&Y||typeof Y=="object"&&Y.capture,te=typeof Y=="object"?Y.signal:void 0,re=typeof Y=="object"?Y.once===!0:!1,ne=typeof _=="function"?void 0:_;Z=ee?`${Z}capture`:Z;const ie=typeof _=="function"?_:_.handleEvent,se=this;te&&te.addEventListener("abort",()=>{se.off(Z,ie,ne)}),re?se.once(Z,ie,ne):se.on(Z,ie,ne)},removeEventListener(Z,_,Y){const ee=typeof Y=="boolean"&&Y||typeof Y=="object"&&Y.capture,te=typeof _=="function"?void 0:_;Z=ee?`${Z}capture`:Z,_=typeof _=="function"?_:_.handleEvent,this.off(Z,_,te)},dispatchEvent(Z){if(!(Z instanceof FederatedEvent))throw new Error("DisplayObject cannot propagate events outside of the Federated Events API");return Z.defaultPrevented=!1,Z.path=null,Z.target=this,Z.manager.dispatchEvent(Z),!Z.defaultPrevented}};DisplayObject.mixin(FederatedDisplayObject);const accessibleTarget={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,renderId:-1};DisplayObject.mixin(accessibleTarget);const KEY_CODE_TAB=9,DIV_TOUCH_SIZE=100,DIV_TOUCH_POS_X=0,DIV_TOUCH_POS_Y=0,DIV_TOUCH_ZINDEX=2,DIV_HOOK_SIZE=1,DIV_HOOK_POS_X=-1e3,DIV_HOOK_POS_Y=-1e3,DIV_HOOK_ZINDEX=2;class AccessibilityManager{constructor(_){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,(isMobile.tablet||isMobile.phone)&&this.createTouchHook();const Y=document.createElement("div");Y.style.width=`${DIV_TOUCH_SIZE}px`,Y.style.height=`${DIV_TOUCH_SIZE}px`,Y.style.position="absolute",Y.style.top=`${DIV_TOUCH_POS_X}px`,Y.style.left=`${DIV_TOUCH_POS_Y}px`,Y.style.zIndex=DIV_TOUCH_ZINDEX.toString(),this.div=Y,this.renderer=_,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}createTouchHook(){const _=document.createElement("button");_.style.width=`${DIV_HOOK_SIZE}px`,_.style.height=`${DIV_HOOK_SIZE}px`,_.style.position="absolute",_.style.top=`${DIV_HOOK_POS_X}px`,_.style.left=`${DIV_HOOK_POS_Y}px`,_.style.zIndex=DIV_HOOK_ZINDEX.toString(),_.style.backgroundColor="#FF0000",_.title="select to enable accessibility for this content",_.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this.activate(),this.destroyTouchHook()}),document.body.appendChild(_),this._hookDiv=_}destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}activate(){var _;this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),(_=this.renderer.view.parentNode)==null||_.appendChild(this.div))}deactivate(){var _;!this._isActive||this._isMobileAccessibility||(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),(_=this.div.parentNode)==null||_.removeChild(this.div))}updateAccessibleObjects(_){if(!_.visible||!_.accessibleChildren)return;_.accessible&&_.isInteractive()&&(_._accessibleActive||this.addChild(_),_.renderId=this.renderId);const Y=_.children;if(Y)for(let ee=0;ee title : ${_.title}
tabIndex: ${_.tabIndex}`}capHitArea(_){_.x<0&&(_.width+=_.x,_.x=0),_.y<0&&(_.height+=_.y,_.y=0);const{width:Y,height:ee}=this.renderer;_.x+_.width>Y&&(_.width=Y-_.x),_.y+_.height>ee&&(_.height=ee-_.y)}addChild(_){let Y=this.pool.pop();Y||(Y=document.createElement("button"),Y.style.width=`${DIV_TOUCH_SIZE}px`,Y.style.height=`${DIV_TOUCH_SIZE}px`,Y.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",Y.style.position="absolute",Y.style.zIndex=DIV_TOUCH_ZINDEX.toString(),Y.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?Y.setAttribute("aria-live","off"):Y.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?Y.setAttribute("aria-relevant","additions"):Y.setAttribute("aria-relevant","text"),Y.addEventListener("click",this._onClick.bind(this)),Y.addEventListener("focus",this._onFocus.bind(this)),Y.addEventListener("focusout",this._onFocusOut.bind(this))),Y.style.pointerEvents=_.accessiblePointerEvents,Y.type=_.accessibleType,_.accessibleTitle&&_.accessibleTitle!==null?Y.title=_.accessibleTitle:(!_.accessibleHint||_.accessibleHint===null)&&(Y.title=`displayObject ${_.tabIndex}`),_.accessibleHint&&_.accessibleHint!==null&&Y.setAttribute("aria-label",_.accessibleHint),this.debug&&this.updateDebugHTML(Y),_._accessibleActive=!0,_._accessibleDiv=Y,Y.displayObject=_,this.children.push(_),this.div.appendChild(_._accessibleDiv),_._accessibleDiv.tabIndex=_.tabIndex}_dispatchEvent(_,Y){const{displayObject:ee}=_.target,te=this.renderer.events.rootBoundary,re=Object.assign(new FederatedEvent(te),{target:ee});te.rootTarget=this.renderer.lastObjectRendered,Y.forEach(ne=>te.dispatchEvent(re,ne))}_onClick(_){this._dispatchEvent(_,["click","pointertap","tap"])}_onFocus(_){_.target.getAttribute("aria-live")||_.target.setAttribute("aria-live","assertive"),this._dispatchEvent(_,["mouseover"])}_onFocusOut(_){_.target.getAttribute("aria-live")||_.target.setAttribute("aria-live","polite"),this._dispatchEvent(_,["mouseout"])}_onKeyDown(_){_.keyCode===KEY_CODE_TAB&&this.activate()}_onMouseMove(_){_.movementX===0&&_.movementY===0||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}}AccessibilityManager.extension={name:"accessibility",type:[ExtensionType.RendererPlugin,ExtensionType.CanvasRendererPlugin]};extensions$1.add(AccessibilityManager);const _Application=class Wt{constructor(_){this.stage=new Container$1,_=Object.assign({forceCanvas:!1},_),this.renderer=autoDetectRenderer(_),Wt._plugins.forEach(Y=>{Y.init.call(this,_)})}render(){this.renderer.render(this.stage)}get view(){var _;return(_=this.renderer)==null?void 0:_.view}get screen(){var _;return(_=this.renderer)==null?void 0:_.screen}destroy(_,Y){const ee=Wt._plugins.slice(0);ee.reverse(),ee.forEach(te=>{te.destroy.call(this)}),this.stage.destroy(Y),this.stage=null,this.renderer.destroy(_),this.renderer=null}};_Application._plugins=[];let Application=_Application;extensions$1.handleByList(ExtensionType.Application,Application._plugins);class ResizePlugin{static init(_){Object.defineProperty(this,"resizeTo",{set(Y){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=Y,Y&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this.cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this.cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this.cancelResize();let Y,ee;if(this._resizeTo===globalThis.window)Y=globalThis.innerWidth,ee=globalThis.innerHeight;else{const{clientWidth:te,clientHeight:re}=this._resizeTo;Y=te,ee=re}this.renderer.resize(Y,ee),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=_.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this.cancelResize(),this.cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}}ResizePlugin.extension=ExtensionType.Application;extensions$1.add(ResizePlugin);const assetKeyMap={loader:ExtensionType.LoadParser,resolver:ExtensionType.ResolveParser,cache:ExtensionType.CacheParser,detection:ExtensionType.DetectionParser};extensions$1.handle(ExtensionType.Asset,Z=>{const _=Z.ref;Object.entries(assetKeyMap).filter(([Y])=>!!_[Y]).forEach(([Y,ee])=>extensions$1.add(Object.assign(_[Y],{extension:_[Y].extension??ee})))},Z=>{const _=Z.ref;Object.keys(assetKeyMap).filter(Y=>!!_[Y]).forEach(Y=>extensions$1.remove(_[Y]))});class BackgroundLoader{constructor(_,Y=!1){this._loader=_,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=Y}add(_){_.forEach(Y=>{this._assetList.push(Y)}),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 _=[],Y=Math.min(this._assetList.length,this._maxConcurrent);for(let ee=0;ee(Array.isArray(Z)||(Z=[Z]),_?Z.map(ee=>typeof ee=="string"||Y?_(ee):ee):Z),copySearchParams=(Z,_)=>{const Y=_.split("?")[1];return Y&&(Z+=`?${Y}`),Z};function processX(Z,_,Y,ee,te){const re=_[Y];for(let ne=0;ne{const ne=re.substring(1,re.length-1).split(",");te.push(ne)}),processX(Z,te,0,Y,ee)}else ee.push(Z);return ee}const isSingleItem=Z=>!Array.isArray(Z);class CacheClass{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(_){return this._cache.has(_)}get(_){const Y=this._cache.get(_);return Y||console.warn(`[Assets] Asset id ${_} was not found in the Cache`),Y}set(_,Y){const ee=convertToList(_);let te;for(let ie=0;ie{te[ie]=Y}));const re=Object.keys(te),ne={cacheKeys:re,keys:ee};if(ee.forEach(ie=>{this._cacheMap.set(ie,ne)}),re.forEach(ie=>{this._cache.has(ie)&&this._cache.get(ie)!==Y&&console.warn("[Cache] already has key:",ie),this._cache.set(ie,te[ie])}),Y instanceof Texture){const ie=Y;ee.forEach(se=>{ie.baseTexture!==Texture.EMPTY.baseTexture&&BaseTexture.addToCache(ie.baseTexture,se),Texture.addToCache(ie,se)})}}remove(_){if(!this._cacheMap.has(_)){console.warn(`[Assets] Asset id ${_} was not found in the Cache`);return}const Y=this._cacheMap.get(_);Y.cacheKeys.forEach(ee=>{this._cache.delete(ee)}),Y.keys.forEach(ee=>{this._cacheMap.delete(ee)})}get parsers(){return this._parsers}}const Cache=new CacheClass;class Loader{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(_,Y,ee)=>(this._parsersValidated=!1,_[Y]=ee,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(_,Y){const ee={promise:null,parser:null};return ee.promise=(async()=>{var ne,ie;let te=null,re=null;if(Y.loadParser&&(re=this._parserHash[Y.loadParser],re||console.warn(`[Assets] specified load parser "${Y.loadParser}" not found while loading ${_}`)),!re){for(let se=0;se({alias:[ae],src:ae})),ie=ne.length,se=ne.map(async ae=>{const ue=path$1.toAbsolute(ae.src);if(!te[ae.src])try{this.promiseCache[ue]||(this.promiseCache[ue]=this._getLoadPromiseAndParser(ue,ae)),te[ae.src]=await this.promiseCache[ue].promise,Y&&Y(++ee/ie)}catch(oe){throw delete this.promiseCache[ue],delete te[ae.src],new Error(`[Loader.load] Failed to load ${ue}. +${oe}`)}});return await Promise.all(se),re?te[ne[0].src]:te}async unload(_){const Y=convertToList(_,ee=>({alias:[ee],src:ee})).map(async ee=>{var ne,ie;const te=path$1.toAbsolute(ee.src),re=this.promiseCache[te];if(re){const se=await re.promise;delete this.promiseCache[te],(ie=(ne=re.parser)==null?void 0:ne.unload)==null||ie.call(ne,se,ee,this)}});await Promise.all(Y)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(_=>_.name).reduce((_,Y)=>(_[Y.name]&&console.warn(`[Assets] loadParser name conflict "${Y.name}"`),{..._,[Y.name]:Y}),{})}}var LoaderParserPriority=(Z=>(Z[Z.Low=0]="Low",Z[Z.Normal=1]="Normal",Z[Z.High=2]="High",Z))(LoaderParserPriority||{});const validJSONExtension=".json",validJSONMIME="application/json",loadJson={extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.Low},name:"loadJson",test(Z){return checkDataUrl(Z,validJSONMIME)||checkExtension(Z,validJSONExtension)},async load(Z){return await(await settings.ADAPTER.fetch(Z)).json()}};extensions$1.add(loadJson);const validTXTExtension=".txt",validTXTMIME="text/plain",loadTxt={name:"loadTxt",extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.Low},test(Z){return checkDataUrl(Z,validTXTMIME)||checkExtension(Z,validTXTExtension)},async load(Z){return await(await settings.ADAPTER.fetch(Z)).text()}};extensions$1.add(loadTxt);const validWeights=["normal","bold","100","200","300","400","500","600","700","800","900"],validFontExtensions=[".ttf",".otf",".woff",".woff2"],validFontMIMEs=["font/ttf","font/otf","font/woff","font/woff2"],CSS_IDENT_TOKEN_REGEX=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function getFontFamilyName(Z){const _=path$1.extname(Z),Y=path$1.basename(Z,_).replace(/(-|_)/g," ").toLowerCase().split(" ").map(re=>re.charAt(0).toUpperCase()+re.slice(1));let ee=Y.length>0;for(const re of Y)if(!re.match(CSS_IDENT_TOKEN_REGEX)){ee=!1;break}let te=Y.join(" ");return ee||(te=`"${te.replace(/[\\"]/g,"\\$&")}"`),te}const validURICharactersRegex=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;function encodeURIWhenNeeded(Z){return validURICharactersRegex.test(Z)?Z:encodeURI(Z)}const loadWebFont={extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.Low},name:"loadWebFont",test(Z){return checkDataUrl(Z,validFontMIMEs)||checkExtension(Z,validFontExtensions)},async load(Z,_){var ee,te,re;const Y=settings.ADAPTER.getFontFaceSet();if(Y){const ne=[],ie=((ee=_.data)==null?void 0:ee.family)??getFontFamilyName(Z),se=((re=(te=_.data)==null?void 0:te.weights)==null?void 0:re.filter(ue=>validWeights.includes(ue)))??["normal"],ae=_.data??{};for(let ue=0;uesettings.ADAPTER.getFontFaceSet().delete(_))}};extensions$1.add(loadWebFont);const WORKER_CODE$1=`(function() { + "use strict"; + const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII="; + async function checkImageBitmap() { + try { + if (typeof createImageBitmap != "function") + return !1; + const imageBlob = await (await fetch(WHITE_PNG)).blob(), imageBitmap = await createImageBitmap(imageBlob); + return imageBitmap.width === 1 && imageBitmap.height === 1; + } catch { + return !1; + } + } + checkImageBitmap().then((result) => { + self.postMessage(result); + }); +})(); +`;let WORKER_URL$1=null,WorkerInstance$1=class{constructor(){WORKER_URL$1||(WORKER_URL$1=URL.createObjectURL(new Blob([WORKER_CODE$1],{type:"application/javascript"}))),this.worker=new Worker(WORKER_URL$1)}};WorkerInstance$1.revokeObjectURL=function(){WORKER_URL$1&&(URL.revokeObjectURL(WORKER_URL$1),WORKER_URL$1=null)};const WORKER_CODE=`(function() { + "use strict"; + async function loadImageBitmap(url) { + const response = await fetch(url); + if (!response.ok) + throw new Error(\`[WorkerManager.loadImageBitmap] Failed to fetch \${url}: \${response.status} \${response.statusText}\`); + const imageBlob = await response.blob(); + return await createImageBitmap(imageBlob); + } + self.onmessage = async (event) => { + try { + const imageBitmap = await loadImageBitmap(event.data.data[0]); + self.postMessage({ + data: imageBitmap, + uuid: event.data.uuid, + id: event.data.id + }, [imageBitmap]); + } catch (e) { + self.postMessage({ + error: e, + uuid: event.data.uuid, + id: event.data.id + }); + } + }; +})(); +`;let WORKER_URL=null;class WorkerInstance{constructor(){WORKER_URL||(WORKER_URL=URL.createObjectURL(new Blob([WORKER_CODE],{type:"application/javascript"}))),this.worker=new Worker(WORKER_URL)}}WorkerInstance.revokeObjectURL=function(){WORKER_URL&&(URL.revokeObjectURL(WORKER_URL),WORKER_URL=null)};let UUID=0,MAX_WORKERS;class WorkerManagerClass{constructor(){this._initialized=!1,this._createdWorkers=0,this.workerPool=[],this.queue=[],this.resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(_=>{const{worker:Y}=new WorkerInstance$1;Y.addEventListener("message",ee=>{Y.terminate(),WorkerInstance$1.revokeObjectURL(),_(ee.data)})}),this._isImageBitmapSupported)}loadImageBitmap(_){return this._run("loadImageBitmap",[_])}async _initWorkers(){this._initialized||(this._initialized=!0)}getWorker(){MAX_WORKERS===void 0&&(MAX_WORKERS=navigator.hardwareConcurrency||4);let _=this.workerPool.pop();return!_&&this._createdWorkers{this.complete(Y.data),this.returnWorker(Y.target),this.next()})),_}returnWorker(_){this.workerPool.push(_)}complete(_){_.error!==void 0?this.resolveHash[_.uuid].reject(_.error):this.resolveHash[_.uuid].resolve(_.data),this.resolveHash[_.uuid]=null}async _run(_,Y){await this._initWorkers();const ee=new Promise((te,re)=>{this.queue.push({id:_,arguments:Y,resolve:te,reject:re})});return this.next(),ee}next(){if(!this.queue.length)return;const _=this.getWorker();if(!_)return;const Y=this.queue.pop(),ee=Y.id;this.resolveHash[UUID]={resolve:Y.resolve,reject:Y.reject},_.postMessage({data:Y.arguments,uuid:UUID++,id:ee})}}const WorkerManager=new WorkerManagerClass;function createTexture(Z,_,Y){Z.resource.internal=!0;const ee=new Texture(Z),te=()=>{delete _.promiseCache[Y],Cache.has(Y)&&Cache.remove(Y)};return ee.baseTexture.once("destroyed",()=>{Y in _.promiseCache&&(console.warn("[Assets] A BaseTexture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the BaseTexture."),te())}),ee.once("destroyed",()=>{Z.destroyed||(console.warn("[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture."),te())}),ee}const validImageExtensions=[".jpeg",".jpg",".png",".webp",".avif"],validImageMIMEs=["image/jpeg","image/png","image/webp","image/avif"];async function loadImageBitmap(Z){const _=await settings.ADAPTER.fetch(Z);if(!_.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${Z}: ${_.status} ${_.statusText}`);const Y=await _.blob();return await createImageBitmap(Y)}const loadTextures={name:"loadTextures",extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(Z){return checkDataUrl(Z,validImageMIMEs)||checkExtension(Z,validImageExtensions)},async load(Z,_,Y){var ie;const ee=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap;let te;ee?this.config.preferWorkers&&await WorkerManager.isImageBitmapSupported()?te=await WorkerManager.loadImageBitmap(Z):te=await loadImageBitmap(Z):te=await new Promise((se,ae)=>{const ue=new Image;ue.crossOrigin=this.config.crossOrigin,ue.src=Z,ue.complete?se(ue):(ue.onload=()=>se(ue),ue.onerror=oe=>ae(oe))});const re={..._.data};re.resolution??(re.resolution=getResolutionOfUrl(Z)),ee&&((ie=re.resourceOptions)==null?void 0:ie.ownsImageBitmap)===void 0&&(re.resourceOptions={...re.resourceOptions},re.resourceOptions.ownsImageBitmap=!0);const ne=new BaseTexture(te,re);return ne.resource.src=Z,createTexture(ne,Y,Z)},unload(Z){Z.destroy(!0)}};extensions$1.add(loadTextures);const validSVGExtension=".svg",validSVGMIME="image/svg+xml",loadSVG={extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.High},name:"loadSVG",test(Z){return checkDataUrl(Z,validSVGMIME)||checkExtension(Z,validSVGExtension)},async testParse(Z){return SVGResource.test(Z)},async parse(Z,_,Y){var re;const ee=new SVGResource(Z,(re=_==null?void 0:_.data)==null?void 0:re.resourceOptions);await ee.load();const te=new BaseTexture(ee,{resolution:getResolutionOfUrl(Z),..._==null?void 0:_.data});return te.resource.src=_.src,createTexture(te,Y,_.src)},async load(Z,_){return(await settings.ADAPTER.fetch(Z)).text()},unload:loadTextures.unload};extensions$1.add(loadSVG);const validVideoExtensions=[".mp4",".m4v",".webm",".ogv"],validVideoMIMEs=["video/mp4","video/webm","video/ogg"],loadVideo={name:"loadVideo",extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.High},config:{defaultAutoPlay:!0,defaultUpdateFPS:0,defaultLoop:!1,defaultMuted:!1,defaultPlaysinline:!0},test(Z){return checkDataUrl(Z,validVideoMIMEs)||checkExtension(Z,validVideoExtensions)},async load(Z,_,Y){var ne;let ee;const te=await(await settings.ADAPTER.fetch(Z)).blob(),re=URL.createObjectURL(te);try{const ie={autoPlay:this.config.defaultAutoPlay,updateFPS:this.config.defaultUpdateFPS,loop:this.config.defaultLoop,muted:this.config.defaultMuted,playsinline:this.config.defaultPlaysinline,...(ne=_==null?void 0:_.data)==null?void 0:ne.resourceOptions,autoLoad:!0},se=new VideoResource(re,ie);await se.load();const ae=new BaseTexture(se,{alphaMode:await detectVideoAlphaMode(),resolution:getResolutionOfUrl(Z),..._==null?void 0:_.data});ae.resource.src=Z,ee=createTexture(ae,Y,Z),ee.baseTexture.once("destroyed",()=>{URL.revokeObjectURL(re)})}catch(ie){throw URL.revokeObjectURL(re),ie}return ee},unload(Z){Z.destroy(!0)}};extensions$1.add(loadVideo);class Resolver{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(_,Y)=>`${_}${this._bundleIdConnector}${Y}`,extractAssetIdFromBundle:(_,Y)=>Y.replace(`${_}${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(_){if(this._bundleIdConnector=_.connector??this._bundleIdConnector,this._createBundleAssetId=_.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=_.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(..._){_.forEach(Y=>{this._preferredOrder.push(Y),Y.priority||(Y.priority=Object.keys(Y.params))}),this._resolverHash={}}set basePath(_){this._basePath=_}get basePath(){return this._basePath}set rootPath(_){this._rootPath=_}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(_){if(typeof _=="string")this._defaultSearchParams=_;else{const Y=_;this._defaultSearchParams=Object.keys(Y).map(ee=>`${encodeURIComponent(ee)}=${encodeURIComponent(Y[ee])}`).join("&")}}getAlias(_){const{alias:Y,name:ee,src:te,srcs:re}=_;return convertToList(Y||ee||te||re,ne=>typeof ne=="string"?ne:Array.isArray(ne)?ne.map(ie=>(ie==null?void 0:ie.src)??(ie==null?void 0:ie.srcs)??ie):ne!=null&&ne.src||ne!=null&&ne.srcs?ne.src??ne.srcs:ne,!0)}addManifest(_){this._manifest&&console.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=_,_.bundles.forEach(Y=>{this.addBundle(Y.name,Y.assets)})}addBundle(_,Y){const ee=[];Array.isArray(Y)?Y.forEach(te=>{const re=te.src??te.srcs,ne=te.alias??te.name;let ie;if(typeof ne=="string"){const se=this._createBundleAssetId(_,ne);ee.push(se),ie=[ne,se]}else{const se=ne.map(ae=>this._createBundleAssetId(_,ae));ee.push(...se),ie=[...ne,...se]}this.add({...te,alias:ie,src:re})}):Object.keys(Y).forEach(te=>{const re=[te,this._createBundleAssetId(_,te)];if(typeof Y[te]=="string")this.add({alias:re,src:Y[te]});else if(Array.isArray(Y[te]))this.add({alias:re,src:Y[te]});else{const ne=Y[te],ie=ne.src??ne.srcs;this.add({...ne,alias:re,src:Array.isArray(ie)?ie:[ie]})}ee.push(...re)}),this._bundles[_]=ee}add(_,Y,ee,te,re){const ne=[];typeof _=="string"||Array.isArray(_)&&typeof _[0]=="string"?(deprecation("7.2.0",`Assets.add now uses an object instead of individual parameters. +Please use Assets.add({ alias, src, data, format, loadParser }) instead.`),ne.push({alias:_,src:Y,data:ee,format:te,loadParser:re})):Array.isArray(_)?ne.push(..._):ne.push(_);let ie;ie=se=>{this.hasKey(se)&&console.warn(`[Resolver] already has key: ${se} overwriting`)},convertToList(ne).forEach(se=>{const{src:ae,srcs:ue}=se;let{data:oe,format:le,loadParser:ce}=se;const he=convertToList(ae||ue).map(pe=>typeof pe=="string"?createStringVariations(pe):Array.isArray(pe)?pe:[pe]),fe=this.getAlias(se);Array.isArray(fe)?fe.forEach(ie):ie(fe);const de=[];he.forEach(pe=>{pe.forEach(_e=>{let me={};if(typeof _e!="object"){me.src=_e;for(let ge=0;ge{this._assetMap[pe]=de})})}resolveBundle(_){const Y=isSingleItem(_);_=convertToList(_);const ee={};return _.forEach(te=>{const re=this._bundles[te];if(re){const ne=this.resolve(re),ie={};for(const se in ne){const ae=ne[se];ie[this._extractAssetIdFromBundle(te,se)]=ae}ee[te]=ie}}),Y?ee[_[0]]:ee}resolveUrl(_){const Y=this.resolve(_);if(typeof _!="string"){const ee={};for(const te in Y)ee[te]=Y[te].src;return ee}return Y.src}resolve(_){const Y=isSingleItem(_);_=convertToList(_);const ee={};return _.forEach(te=>{if(!this._resolverHash[te])if(this._assetMap[te]){let re=this._assetMap[te];const ne=re[0],ie=this._getPreferredOrder(re);ie==null||ie.priority.forEach(se=>{ie.params[se].forEach(ae=>{const ue=re.filter(oe=>oe[se]?oe[se]===ae:!1);ue.length&&(re=ue)})}),this._resolverHash[te]=re[0]??ne}else this._resolverHash[te]=this.buildResolvedAsset({alias:[te],src:te},{});ee[te]=this._resolverHash[te]}),Y?ee[_[0]]:ee}hasKey(_){return!!this._assetMap[_]}hasBundle(_){return!!this._bundles[_]}_getPreferredOrder(_){for(let Y=0;Y<_.length;Y++){const ee=_[0],te=this._preferredOrder.find(re=>re.params.format.includes(ee.format));if(te)return te}return this._preferredOrder[0]}_appendDefaultSearchParams(_){if(!this._defaultSearchParams)return _;const Y=/\?/.test(_)?"&":"?";return`${_}${Y}${this._defaultSearchParams}`}buildResolvedAsset(_,Y){const{aliases:ee,data:te,loadParser:re,format:ne}=Y;return(this._basePath||this._rootPath)&&(_.src=path$1.toAbsolute(_.src,this._basePath,this._rootPath)),_.alias=ee??_.alias??[_.src],_.src=this._appendDefaultSearchParams(_.src),_.data={...te||{},..._.data},_.loadParser=re??_.loadParser,_.format=ne??_.format??path$1.extname(_.src).slice(1),_.srcs=_.src,_.name=_.alias,_}}class AssetsClass{constructor(){this._detections=[],this._initialized=!1,this.resolver=new Resolver,this.loader=new Loader,this.cache=Cache,this._backgroundLoader=new BackgroundLoader(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(_={}){var re,ne;if(this._initialized){console.warn("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");return}if(this._initialized=!0,_.defaultSearchParams&&this.resolver.setDefaultSearchParams(_.defaultSearchParams),_.basePath&&(this.resolver.basePath=_.basePath),_.bundleIdentifier&&this.resolver.setBundleIdentifier(_.bundleIdentifier),_.manifest){let ie=_.manifest;typeof ie=="string"&&(ie=await this.load(ie)),this.resolver.addManifest(ie)}const Y=((re=_.texturePreference)==null?void 0:re.resolution)??1,ee=typeof Y=="number"?[Y]:Y,te=await this._detectFormats({preferredFormats:(ne=_.texturePreference)==null?void 0:ne.format,skipDetections:_.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:te,resolution:ee}}),_.preferences&&this.setPreferences(_.preferences)}add(_,Y,ee,te,re){this.resolver.add(_,Y,ee,te,re)}async load(_,Y){this._initialized||await this.init();const ee=isSingleItem(_),te=convertToList(_).map(ie=>{if(typeof ie!="string"){const se=this.resolver.getAlias(ie);return se.some(ae=>!this.resolver.hasKey(ae))&&this.add(ie),Array.isArray(se)?se[0]:se}return this.resolver.hasKey(ie)||this.add({alias:ie,src:ie}),ie}),re=this.resolver.resolve(te),ne=await this._mapLoadToResolve(re,Y);return ee?ne[te[0]]:ne}addBundle(_,Y){this.resolver.addBundle(_,Y)}async loadBundle(_,Y){this._initialized||await this.init();let ee=!1;typeof _=="string"&&(ee=!0,_=[_]);const te=this.resolver.resolveBundle(_),re={},ne=Object.keys(te);let ie=0,se=0;const ae=()=>{Y==null||Y(++ie/se)},ue=ne.map(oe=>{const le=te[oe];return se+=Object.keys(le).length,this._mapLoadToResolve(le,ae).then(ce=>{re[oe]=ce})});return await Promise.all(ue),ee?re[_[0]]:re}async backgroundLoad(_){this._initialized||await this.init(),typeof _=="string"&&(_=[_]);const Y=this.resolver.resolve(_);this._backgroundLoader.add(Object.values(Y))}async backgroundLoadBundle(_){this._initialized||await this.init(),typeof _=="string"&&(_=[_]);const Y=this.resolver.resolveBundle(_);Object.values(Y).forEach(ee=>{this._backgroundLoader.add(Object.values(ee))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(_){if(typeof _=="string")return Cache.get(_);const Y={};for(let ee=0;ee<_.length;ee++)Y[ee]=Cache.get(_[ee]);return Y}async _mapLoadToResolve(_,Y){const ee=Object.values(_),te=Object.keys(_);this._backgroundLoader.active=!1;const re=await this.loader.load(ee,Y);this._backgroundLoader.active=!0;const ne={};return ee.forEach((ie,se)=>{const ae=re[ie.src],ue=[ie.src];ie.alias&&ue.push(...ie.alias),ne[te[se]]=ae,Cache.set(ue,ae)}),ne}async unload(_){this._initialized||await this.init();const Y=convertToList(_).map(te=>typeof te!="string"?te.src:te),ee=this.resolver.resolve(Y);await this._unloadFromResolved(ee)}async unloadBundle(_){this._initialized||await this.init(),_=convertToList(_);const Y=this.resolver.resolveBundle(_),ee=Object.keys(Y).map(te=>this._unloadFromResolved(Y[te]));await Promise.all(ee)}async _unloadFromResolved(_){const Y=Object.values(_);Y.forEach(ee=>{Cache.remove(ee.src)}),await this.loader.unload(Y)}async _detectFormats(_){let Y=[];_.preferredFormats&&(Y=Array.isArray(_.preferredFormats)?_.preferredFormats:[_.preferredFormats]);for(const ee of _.detections)_.skipDetections||await ee.test()?Y=await ee.add(Y):_.skipDetections||(Y=await ee.remove(Y));return Y=Y.filter((ee,te)=>Y.indexOf(ee)===te),Y}get detections(){return this._detections}get preferWorkers(){return loadTextures.config.preferWorkers}set preferWorkers(_){deprecation("7.2.0","Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead."),this.setPreferences({preferWorkers:_})}setPreferences(_){this.loader.parsers.forEach(Y=>{Y.config&&Object.keys(Y.config).filter(ee=>ee in _).forEach(ee=>{Y.config[ee]=_[ee]})})}}const Assets=new AssetsClass;extensions$1.handleByList(ExtensionType.LoadParser,Assets.loader.parsers).handleByList(ExtensionType.ResolveParser,Assets.resolver.parsers).handleByList(ExtensionType.CacheParser,Assets.cache.parsers).handleByList(ExtensionType.DetectionParser,Assets.detections);const cacheTextureArray={extension:ExtensionType.CacheParser,test:Z=>Array.isArray(Z)&&Z.every(_=>_ instanceof Texture),getCacheableAssets:(Z,_)=>{const Y={};return Z.forEach(ee=>{_.forEach((te,re)=>{Y[ee+(re===0?"":re+1)]=te})}),Y}};extensions$1.add(cacheTextureArray);async function testImageFormat(Z){if("Image"in globalThis)return new Promise(_=>{const Y=new Image;Y.onload=()=>{_(!0)},Y.onerror=()=>{_(!1)},Y.src=Z});if("createImageBitmap"in globalThis&&"fetch"in globalThis){try{const _=await(await fetch(Z)).blob();await createImageBitmap(_)}catch{return!1}return!0}return!1}const detectAvif={extension:{type:ExtensionType.DetectionParser,priority:1},test:async()=>testImageFormat("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),add:async Z=>[...Z,"avif"],remove:async Z=>Z.filter(_=>_!=="avif")};extensions$1.add(detectAvif);const detectWebp={extension:{type:ExtensionType.DetectionParser,priority:0},test:async()=>testImageFormat("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA="),add:async Z=>[...Z,"webp"],remove:async Z=>Z.filter(_=>_!=="webp")};extensions$1.add(detectWebp);const imageFormats=["png","jpg","jpeg"],detectDefaults={extension:{type:ExtensionType.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async Z=>[...Z,...imageFormats],remove:async Z=>Z.filter(_=>!imageFormats.includes(_))};extensions$1.add(detectDefaults);const inWorker="WorkerGlobalScope"in globalThis&&globalThis instanceof globalThis.WorkerGlobalScope;function testVideoFormat(Z){return inWorker?!1:document.createElement("video").canPlayType(Z)!==""}const detectWebm={extension:{type:ExtensionType.DetectionParser,priority:0},test:async()=>testVideoFormat("video/webm"),add:async Z=>[...Z,"webm"],remove:async Z=>Z.filter(_=>_!=="webm")};extensions$1.add(detectWebm);const detectMp4={extension:{type:ExtensionType.DetectionParser,priority:0},test:async()=>testVideoFormat("video/mp4"),add:async Z=>[...Z,"mp4","m4v"],remove:async Z=>Z.filter(_=>_!=="mp4"&&_!=="m4v")};extensions$1.add(detectMp4);const detectOgv={extension:{type:ExtensionType.DetectionParser,priority:0},test:async()=>testVideoFormat("video/ogg"),add:async Z=>[...Z,"ogv"],remove:async Z=>Z.filter(_=>_!=="ogv")};extensions$1.add(detectOgv);const resolveTextureUrl={extension:ExtensionType.ResolveParser,test:loadTextures.test,parse:Z=>{var _;return{resolution:parseFloat(((_=settings.RETINA_PREFIX.exec(Z))==null?void 0:_[1])??"1"),format:path$1.extname(Z).slice(1),src:Z}}};extensions$1.add(resolveTextureUrl);var INTERNAL_FORMATS=(Z=>(Z[Z.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",Z[Z.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",Z[Z.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",Z[Z.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",Z[Z.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",Z[Z.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",Z[Z.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",Z[Z.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",Z[Z.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",Z[Z.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",Z[Z.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",Z[Z.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",Z[Z.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",Z[Z.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",Z[Z.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",Z[Z.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",Z[Z.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",Z[Z.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",Z[Z.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",Z[Z.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",Z[Z.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",Z[Z.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",Z[Z.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",Z[Z.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",Z[Z.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35987]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",Z[Z.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",Z[Z.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",Z[Z.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",Z[Z.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",Z[Z.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",Z[Z.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",Z))(INTERNAL_FORMATS||{});const INTERNAL_FORMAT_TO_BYTES_PER_PIXEL={33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,35840:.5,35842:.5,35841:.25,35843:.25,36196:.5,35986:.5,35987:1,34798:1,37808:1,36492:1,36493:1,36494:1,36495:1};let storedGl,extensions;function getCompressedTextureExtensions(){extensions={bptc:storedGl.getExtension("EXT_texture_compression_bptc"),astc:storedGl.getExtension("WEBGL_compressed_texture_astc"),etc:storedGl.getExtension("WEBGL_compressed_texture_etc"),s3tc:storedGl.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:storedGl.getExtension("WEBGL_compressed_texture_s3tc_srgb"),pvrtc:storedGl.getExtension("WEBGL_compressed_texture_pvrtc")||storedGl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:storedGl.getExtension("WEBGL_compressed_texture_etc1"),atc:storedGl.getExtension("WEBGL_compressed_texture_atc")}}const detectCompressedTextures={extension:{type:ExtensionType.DetectionParser,priority:2},test:async()=>{const Z=settings.ADAPTER.createCanvas().getContext("webgl");return Z?(storedGl=Z,!0):(console.warn("WebGL not available for compressed textures."),!1)},add:async Z=>{extensions||getCompressedTextureExtensions();const _=[];for(const Y in extensions)extensions[Y]&&_.push(Y);return[..._,...Z]},remove:async Z=>(extensions||getCompressedTextureExtensions(),Z.filter(_=>!(_ in extensions)))};extensions$1.add(detectCompressedTextures);class BlobResource extends BufferResource{constructor(_,Y={width:1,height:1,autoLoad:!0}){let ee,te;typeof _=="string"?(ee=_,te=new Uint8Array):(ee=null,te=_),super(te,Y),this.origin=ee,this.buffer=te?new ViewableBuffer(te):null,this._load=null,this.loaded=!1,this.origin!==null&&Y.autoLoad!==!1&&this.load(),this.origin===null&&this.buffer&&(this._load=Promise.resolve(this),this.loaded=!0,this.onBlobLoaded(this.buffer.rawBinaryData))}onBlobLoaded(_){}load(){return this._load?this._load:(this._load=fetch(this.origin).then(_=>_.blob()).then(_=>_.arrayBuffer()).then(_=>(this.data=new Uint32Array(_),this.buffer=new ViewableBuffer(_),this.loaded=!0,this.onBlobLoaded(_),this.update(),this)),this._load)}}class CompressedTextureResource extends BlobResource{constructor(_,Y){super(_,Y),this.format=Y.format,this.levels=Y.levels||1,this._width=Y.width,this._height=Y.height,this._extension=CompressedTextureResource._formatToExtension(this.format),(Y.levelBuffers||this.buffer)&&(this._levelBuffers=Y.levelBuffers||CompressedTextureResource._createLevelBuffers(_ instanceof Uint8Array?_:this.buffer.uint8View,this.format,this.levels,4,4,this.width,this.height))}upload(_,Y,ee){const te=_.gl;if(!_.context.extensions[this._extension])throw new Error(`${this._extension} textures are not supported on the current machine`);if(!this._levelBuffers)return!1;te.pixelStorei(te.UNPACK_ALIGNMENT,4);for(let re=0,ne=this.levels;re=33776&&_<=33779)return"s3tc";if(_>=35916&&_<=35919)return"s3tc_sRGB";if(_>=37488&&_<=37497)return"etc";if(_>=35840&&_<=35843)return"pvrtc";if(_===36196)return"etc1";if(_===35986||_===35987||_===34798)return"atc";if(_>=36492&&_<=36495)return"bptc";if(_===37808)return"astc";throw new Error(`Invalid (compressed) texture format given: ${_}`)}static _createLevelBuffers(_,Y,ee,te,re,ne,ie){const se=new Array(ee);let ae=_.byteOffset,ue=ne,oe=ie,le=ue+te-1&~(te-1),ce=oe+re-1&~(re-1),he=le*ce*INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[Y];for(let fe=0;fe1?ue:le,levelHeight:ee>1?oe:ce,levelBuffer:new Uint8Array(_.buffer,ae,he)},ae+=he,ue=ue>>1||1,oe=oe>>1||1,le=ue+te-1&~(te-1),ce=oe+re-1&~(re-1),he=le*ce*INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[Y];return se}}const DDS_MAGIC_SIZE=4,DDS_HEADER_SIZE=124,DDS_HEADER_PF_SIZE=32,DDS_HEADER_DX10_SIZE=20,DDS_MAGIC=542327876,DDS_FIELDS={SIZE:1,FLAGS:2,HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19},DDS_PF_FIELDS={SIZE:0,FLAGS:1,FOURCC:2,RGB_BITCOUNT:3,R_BIT_MASK:4,G_BIT_MASK:5,B_BIT_MASK:6,A_BIT_MASK:7},DDS_DX10_FIELDS={DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3,MISC_FLAGS2:4},PF_FLAGS=1,DDPF_ALPHA=2,DDPF_FOURCC=4,DDPF_RGB=64,DDPF_YUV=512,DDPF_LUMINANCE=131072,FOURCC_DXT1=827611204,FOURCC_DXT3=861165636,FOURCC_DXT5=894720068,FOURCC_DX10=808540228,DDS_RESOURCE_MISC_TEXTURECUBE=4,FOURCC_TO_FORMAT={[FOURCC_DXT1]:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,[FOURCC_DXT3]:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,[FOURCC_DXT5]:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT},DXGI_TO_FORMAT={70:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,71:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT1_EXT,73:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,74:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT3_EXT,76:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,77:INTERNAL_FORMATS.COMPRESSED_RGBA_S3TC_DXT5_EXT,72:INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,75:INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,78:INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,96:INTERNAL_FORMATS.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,95:INTERNAL_FORMATS.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,98:INTERNAL_FORMATS.COMPRESSED_RGBA_BPTC_UNORM_EXT,99:INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT};function parseDDS(Z){const _=new Uint32Array(Z);if(_[0]!==DDS_MAGIC)throw new Error("Invalid DDS file magic word");const Y=new Uint32Array(Z,0,DDS_HEADER_SIZE/Uint32Array.BYTES_PER_ELEMENT),ee=Y[DDS_FIELDS.HEIGHT],te=Y[DDS_FIELDS.WIDTH],re=Y[DDS_FIELDS.MIPMAP_COUNT],ne=new Uint32Array(Z,DDS_FIELDS.PIXEL_FORMAT*Uint32Array.BYTES_PER_ELEMENT,DDS_HEADER_PF_SIZE/Uint32Array.BYTES_PER_ELEMENT),ie=ne[PF_FLAGS];if(ie&DDPF_FOURCC){const se=ne[DDS_PF_FIELDS.FOURCC];if(se!==FOURCC_DX10){const _e=FOURCC_TO_FORMAT[se],me=DDS_MAGIC_SIZE+DDS_HEADER_SIZE,ge=new Uint8Array(Z,me);return[new CompressedTextureResource(ge,{format:_e,width:te,height:ee,levels:re})]}const ae=DDS_MAGIC_SIZE+DDS_HEADER_SIZE,ue=new Uint32Array(_.buffer,ae,DDS_HEADER_DX10_SIZE/Uint32Array.BYTES_PER_ELEMENT),oe=ue[DDS_DX10_FIELDS.DXGI_FORMAT],le=ue[DDS_DX10_FIELDS.RESOURCE_DIMENSION],ce=ue[DDS_DX10_FIELDS.MISC_FLAG],he=ue[DDS_DX10_FIELDS.ARRAY_SIZE],fe=DXGI_TO_FORMAT[oe];if(fe===void 0)throw new Error(`DDSParser cannot parse texture data with DXGI format ${oe}`);if(ce===DDS_RESOURCE_MISC_TEXTURECUBE)throw new Error("DDSParser does not support cubemap textures");if(le===6)throw new Error("DDSParser does not supported 3D texture data");const de=new Array,pe=DDS_MAGIC_SIZE+DDS_HEADER_SIZE+DDS_HEADER_DX10_SIZE;if(he===1)de.push(new Uint8Array(Z,pe));else{const _e=INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[fe];let me=0,ge=te,ye=ee;for(let Se=0;Se>>1,ye=ye>>>1}let Ie=pe;for(let Se=0;Senew CompressedTextureResource(_e,{format:fe,width:te,height:ee,levels:re}))}throw ie&DDPF_RGB?new Error("DDSParser does not support uncompressed texture data."):ie&DDPF_YUV?new Error("DDSParser does not supported YUV uncompressed texture data."):ie&DDPF_LUMINANCE?new Error("DDSParser does not support single-channel (lumninance) texture data!"):ie&DDPF_ALPHA?new Error("DDSParser does not support single-channel (alpha) texture data!"):new Error("DDSParser failed to load a texture file due to an unknown reason!")}const FILE_IDENTIFIER=[171,75,84,88,32,49,49,187,13,10,26,10],ENDIANNESS=67305985,KTX_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},FILE_HEADER_SIZE=64,TYPES_TO_BYTES_PER_COMPONENT={[TYPES.UNSIGNED_BYTE]:1,[TYPES.UNSIGNED_SHORT]:2,[TYPES.INT]:4,[TYPES.UNSIGNED_INT]:4,[TYPES.FLOAT]:4,[TYPES.HALF_FLOAT]:8},FORMATS_TO_COMPONENTS={[FORMATS.RGBA]:4,[FORMATS.RGB]:3,[FORMATS.RG]:2,[FORMATS.RED]:1,[FORMATS.LUMINANCE]:1,[FORMATS.LUMINANCE_ALPHA]:2,[FORMATS.ALPHA]:1},TYPES_TO_BYTES_PER_PIXEL={[TYPES.UNSIGNED_SHORT_4_4_4_4]:2,[TYPES.UNSIGNED_SHORT_5_5_5_1]:2,[TYPES.UNSIGNED_SHORT_5_6_5]:2};function parseKTX(Z,_,Y=!1){const ee=new DataView(_);if(!validate(Z,ee))return null;const te=ee.getUint32(KTX_FIELDS.ENDIANNESS,!0)===ENDIANNESS,re=ee.getUint32(KTX_FIELDS.GL_TYPE,te),ne=ee.getUint32(KTX_FIELDS.GL_FORMAT,te),ie=ee.getUint32(KTX_FIELDS.GL_INTERNAL_FORMAT,te),se=ee.getUint32(KTX_FIELDS.PIXEL_WIDTH,te),ae=ee.getUint32(KTX_FIELDS.PIXEL_HEIGHT,te)||1,ue=ee.getUint32(KTX_FIELDS.PIXEL_DEPTH,te)||1,oe=ee.getUint32(KTX_FIELDS.NUMBER_OF_ARRAY_ELEMENTS,te)||1,le=ee.getUint32(KTX_FIELDS.NUMBER_OF_FACES,te),ce=ee.getUint32(KTX_FIELDS.NUMBER_OF_MIPMAP_LEVELS,te),he=ee.getUint32(KTX_FIELDS.BYTES_OF_KEY_VALUE_DATA,te);if(ae===0||ue!==1)throw new Error("Only 2D textures are supported");if(le!==1)throw new Error("CubeTextures are not supported by KTXLoader yet!");if(oe!==1)throw new Error("WebGL does not support array textures");const fe=4,de=4,pe=se+3&-4,_e=ae+3&-4,me=new Array(oe);let ge=se*ae;re===0&&(ge=pe*_e);let ye;if(re!==0?TYPES_TO_BYTES_PER_COMPONENT[re]?ye=TYPES_TO_BYTES_PER_COMPONENT[re]*FORMATS_TO_COMPONENTS[ne]:ye=TYPES_TO_BYTES_PER_PIXEL[re]:ye=INTERNAL_FORMAT_TO_BYTES_PER_PIXEL[ie],ye===void 0)throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");const Ie=Y?parseKvData(ee,he,te):null;let Se=ge*ye,Pe=se,Ae=ae,De=pe,ke=_e,Ce=FILE_HEADER_SIZE+he;for(let xe=0;xe1||re!==0?Pe:De,levelHeight:ce>1||re!==0?Ae:ke,levelBuffer:new Uint8Array(_,Te,Se)},Te+=Se}Ce+=ve+4,Ce=Ce%4!==0?Ce+4-Ce%4:Ce,Pe=Pe>>1||1,Ae=Ae>>1||1,De=Pe+fe-1&~(fe-1),ke=Ae+de-1&~(de-1),Se=De*ke*ye}return re!==0?{uncompressed:me.map(xe=>{let ve=xe[0].levelBuffer,Te=!1;return re===TYPES.FLOAT?ve=new Float32Array(xe[0].levelBuffer.buffer,xe[0].levelBuffer.byteOffset,xe[0].levelBuffer.byteLength/4):re===TYPES.UNSIGNED_INT?(Te=!0,ve=new Uint32Array(xe[0].levelBuffer.buffer,xe[0].levelBuffer.byteOffset,xe[0].levelBuffer.byteLength/4)):re===TYPES.INT&&(Te=!0,ve=new Int32Array(xe[0].levelBuffer.buffer,xe[0].levelBuffer.byteOffset,xe[0].levelBuffer.byteLength/4)),{resource:new BufferResource(ve,{width:xe[0].levelWidth,height:xe[0].levelHeight}),type:re,format:Te?convertFormatToInteger(ne):ne}}),kvData:Ie}:{compressed:me.map(xe=>new CompressedTextureResource(null,{format:ie,width:se,height:ae,levels:ce,levelBuffers:xe})),kvData:Ie}}function validate(Z,_){for(let Y=0;Y_-te){console.error("KTXLoader: keyAndValueByteSize out of bounds");break}let se=0;for(;se{const ne=new BaseTexture(re,{mipmap:MIPMAP_MODES.OFF,alphaMode:ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,resolution:getResolutionOfUrl(Z),..._.data});return createTexture(ne,Y,Z)});return te.length===1?te[0]:te},unload(Z){Array.isArray(Z)?Z.forEach(_=>_.destroy(!0)):Z.destroy(!0)}};extensions$1.add(loadDDS);const loadKTX={extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.High},name:"loadKTX",test(Z){return checkExtension(Z,".ktx")},async load(Z,_,Y){const ee=await(await settings.ADAPTER.fetch(Z)).arrayBuffer(),{compressed:te,uncompressed:re,kvData:ne}=parseKTX(Z,ee),ie=te??re,se={mipmap:MIPMAP_MODES.OFF,alphaMode:ALPHA_MODES.NO_PREMULTIPLIED_ALPHA,resolution:getResolutionOfUrl(Z),..._.data},ae=ie.map(ue=>{ie===re&&Object.assign(se,{type:ue.type,format:ue.format});const oe=ue.resource??ue,le=new BaseTexture(oe,se);return le.ktxKeyValueData=ne,createTexture(le,Y,Z)});return ae.length===1?ae[0]:ae},unload(Z){Array.isArray(Z)?Z.forEach(_=>_.destroy(!0)):Z.destroy(!0)}};extensions$1.add(loadKTX);const knownFormats=["s3tc","s3tc_sRGB","etc","etc1","pvrtc","atc","astc","bptc"],resolveCompressedTextureUrl={extension:ExtensionType.ResolveParser,test:Z=>{const _=path$1.extname(Z).slice(1);return["basis","ktx","dds"].includes(_)},parse:Z=>{var ee,te;const _=Z.split("."),Y=_.pop();if(["ktx","dds"].includes(Y)){const re=_.pop();if(knownFormats.includes(re))return{resolution:parseFloat(((ee=settings.RETINA_PREFIX.exec(Z))==null?void 0:ee[1])??"1"),format:re,src:Z}}return{resolution:parseFloat(((te=settings.RETINA_PREFIX.exec(Z))==null?void 0:te[1])??"1"),format:Y,src:Z}}};extensions$1.add(resolveCompressedTextureUrl);const TEMP_RECT=new Rectangle,BYTES_PER_PIXEL=4,_Extract=class Ot{constructor(_){this.renderer=_,this._rendererPremultipliedAlpha=!1}contextChange(){var Y;const _=(Y=this.renderer)==null?void 0:Y.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(_&&_.alpha&&_.premultipliedAlpha)}async image(_,Y,ee,te){const re=new Image;return re.src=await this.base64(_,Y,ee,te),re}async base64(_,Y,ee,te){const re=this.canvas(_,te);if(re.toBlob!==void 0)return new Promise((ne,ie)=>{re.toBlob(se=>{if(!se){ie(new Error("ICanvas.toBlob failed!"));return}const ae=new FileReader;ae.onload=()=>ne(ae.result),ae.onerror=ie,ae.readAsDataURL(se)},Y,ee)});if(re.toDataURL!==void 0)return re.toDataURL(Y,ee);if(re.convertToBlob!==void 0){const ne=await re.convertToBlob({type:Y,quality:ee});return new Promise((ie,se)=>{const ae=new FileReader;ae.onload=()=>ie(ae.result),ae.onerror=se,ae.readAsDataURL(ne)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(_,Y){const{pixels:ee,width:te,height:re,flipY:ne,premultipliedAlpha:ie}=this._rawPixels(_,Y);ne&&Ot._flipY(ee,te,re),ie&&Ot._unpremultiplyAlpha(ee);const se=new CanvasRenderTarget(te,re,1),ae=new ImageData(new Uint8ClampedArray(ee.buffer),te,re);return se.context.putImageData(ae,0,0),se.canvas}pixels(_,Y){const{pixels:ee,width:te,height:re,flipY:ne,premultipliedAlpha:ie}=this._rawPixels(_,Y);return ne&&Ot._flipY(ee,te,re),ie&&Ot._unpremultiplyAlpha(ee),ee}_rawPixels(_,Y){const ee=this.renderer;if(!ee)throw new Error("The Extract has already been destroyed");let te,re=!1,ne=!1,ie,se=!1;_&&(_ instanceof RenderTexture?ie=_:(ie=ee.generateTexture(_,{region:Y,resolution:ee.resolution,multisample:ee.multisample}),se=!0,Y&&(TEMP_RECT.width=Y.width,TEMP_RECT.height=Y.height,Y=TEMP_RECT)));const ae=ee.gl;if(ie){if(te=ie.baseTexture.resolution,Y=Y??ie.frame,re=!1,ne=ie.baseTexture.alphaMode>0&&ie.baseTexture.format===FORMATS.RGBA,!se){ee.renderTexture.bind(ie);const ce=ie.framebuffer.glFramebuffers[ee.CONTEXT_UID];ce.blitFramebuffer&&ee.framebuffer.bind(ce.blitFramebuffer)}}else te=ee.resolution,Y||(Y=TEMP_RECT,Y.width=ee.width/te,Y.height=ee.height/te),re=!0,ne=this._rendererPremultipliedAlpha,ee.renderTexture.bind();const ue=Math.max(Math.round(Y.width*te),1),oe=Math.max(Math.round(Y.height*te),1),le=new Uint8Array(BYTES_PER_PIXEL*ue*oe);return ae.readPixels(Math.round(Y.x*te),Math.round(Y.y*te),ue,oe,ae.RGBA,ae.UNSIGNED_BYTE,le),se&&(ie==null||ie.destroy(!0)),{pixels:le,width:ue,height:oe,flipY:re,premultipliedAlpha:ne}}destroy(){this.renderer=null}static _flipY(_,Y,ee){const te=Y<<2,re=ee>>1,ne=new Uint8Array(te);for(let ie=0;ie=0&&ie>=0&&te>=0&&re>=0)){_.length=0;return}const se=Math.ceil(2.3*Math.sqrt(ne+ie)),ae=se*8+(te?4:0)+(re?4:0);if(_.length=ae,ae===0)return;if(se===0){_.length=8,_[0]=_[6]=Y+te,_[1]=_[3]=ee+re,_[2]=_[4]=Y-te,_[5]=_[7]=ee-re;return}let ue=0,oe=se*4+(te?2:0)+2,le=oe,ce=ae;{const he=te+ne,fe=re,de=Y+he,pe=Y-he,_e=ee+fe;if(_[ue++]=de,_[ue++]=_e,_[--oe]=_e,_[--oe]=pe,re){const me=ee-fe;_[le++]=pe,_[le++]=me,_[--ce]=me,_[--ce]=de}}for(let he=1;he0||_&&ee<=0){const te=Y/2;for(let re=te+te%2;re=6){fixOrientation(Y,!1);const ne=[];for(let ae=0;ae=0&&re>=0&&ne.push(Y,ee,Y+te,ee,Y+te,ee+re,Y,ee+re)},triangulate(Z,_){const Y=Z.points,ee=_.points;if(Y.length===0)return;const te=ee.length/2;ee.push(Y[0],Y[1],Y[2],Y[3],Y[6],Y[7],Y[4],Y[5]),_.indices.push(te,te+1,te+2,te+1,te+2,te+3)}},buildRoundedRectangle={build(Z){buildCircle.build(Z)},triangulate(Z,_){buildCircle.triangulate(Z,_)}};var LINE_JOIN=(Z=>(Z.MITER="miter",Z.BEVEL="bevel",Z.ROUND="round",Z))(LINE_JOIN||{}),LINE_CAP=(Z=>(Z.BUTT="butt",Z.ROUND="round",Z.SQUARE="square",Z))(LINE_CAP||{});const curves={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(Z,_=20){if(!this.adaptive||!Z||isNaN(Z))return _;let Y=Math.ceil(Z/this.maxLength);return Ythis.maxSegments&&(Y=this.maxSegments),Y}};class ArcUtils{static curveTo(_,Y,ee,te,re,ne){const ie=ne[ne.length-2],se=ne[ne.length-1]-Y,ae=ie-_,ue=te-Y,oe=ee-_,le=Math.abs(se*oe-ae*ue);if(le<1e-8||re===0)return(ne[ne.length-2]!==_||ne[ne.length-1]!==Y)&&ne.push(_,Y),null;const ce=se*se+ae*ae,he=ue*ue+oe*oe,fe=se*ue+ae*oe,de=re*Math.sqrt(ce)/le,pe=re*Math.sqrt(he)/le,_e=de*fe/ce,me=pe*fe/he,ge=de*oe+pe*ae,ye=de*ue+pe*se,Ie=ae*(pe+_e),Se=se*(pe+_e),Pe=oe*(de+me),Ae=ue*(de+me),De=Math.atan2(Se-ye,Ie-ge),ke=Math.atan2(Ae-ye,Pe-ge);return{cx:ge+_,cy:ye+Y,radius:re,startAngle:De,endAngle:ke,anticlockwise:ae*ue>oe*se}}static arc(_,Y,ee,te,re,ne,ie,se,ae){const ue=ie-ne,oe=curves._segmentsCount(Math.abs(ue)*re,Math.ceil(Math.abs(ue)/PI_2)*40),le=ue/(oe*2),ce=le*2,he=Math.cos(le),fe=Math.sin(le),de=oe-1,pe=de%1/de;for(let _e=0;_e<=de;++_e){const me=_e+pe*_e,ge=le+ne+ce*me,ye=Math.cos(ge),Ie=-Math.sin(ge);ae.push((he*ye+fe*Ie)*re+ee,(he*-Ie+fe*ye)*re+te)}}}class BatchPart{constructor(){this.reset()}begin(_,Y,ee){this.reset(),this.style=_,this.start=Y,this.attribStart=ee}end(_,Y){this.attribSize=Y-this.attribStart,this.size=_-this.start}reset(){this.style=null,this.size=0,this.start=0,this.attribStart=0,this.attribSize=0}}class BezierUtils{static curveLength(_,Y,ee,te,re,ne,ie,se){let ae=0,ue=0,oe=0,le=0,ce=0,he=0,fe=0,de=0,pe=0,_e=0,me=0,ge=_,ye=Y;for(let Ie=1;Ie<=10;++Ie)ue=Ie/10,oe=ue*ue,le=oe*ue,ce=1-ue,he=ce*ce,fe=he*ce,de=fe*_+3*he*ue*ee+3*ce*oe*re+le*ie,pe=fe*Y+3*he*ue*te+3*ce*oe*ne+le*se,_e=ge-de,me=ye-pe,ge=de,ye=pe,ae+=Math.sqrt(_e*_e+me*me);return ae}static curveTo(_,Y,ee,te,re,ne,ie){const se=ie[ie.length-2],ae=ie[ie.length-1];ie.length-=2;const ue=curves._segmentsCount(BezierUtils.curveLength(se,ae,_,Y,ee,te,re,ne));let oe=0,le=0,ce=0,he=0,fe=0;ie.push(se,ae);for(let de=1,pe=0;de<=ue;++de)pe=de/ue,oe=1-pe,le=oe*oe,ce=le*oe,he=pe*pe,fe=he*pe,ie.push(ce*se+3*le*pe*_+3*oe*he*ee+fe*re,ce*ae+3*le*pe*Y+3*oe*he*te+fe*ne)}}function square(Z,_,Y,ee,te,re,ne,ie){const se=Z-Y*te,ae=_-ee*te,ue=Z+Y*re,oe=_+ee*re;let le,ce;ne?(le=ee,ce=-Y):(le=-ee,ce=Y);const he=se+le,fe=ae+ce,de=ue+le,pe=oe+ce;return ie.push(he,fe,de,pe),2}function round(Z,_,Y,ee,te,re,ne,ie){const se=Y-Z,ae=ee-_;let ue=Math.atan2(se,ae),oe=Math.atan2(te-Z,re-_);ie&&ueoe&&(oe+=Math.PI*2);let le=ue;const ce=oe-ue,he=Math.abs(ce),fe=Math.sqrt(se*se+ae*ae),de=(15*he*Math.sqrt(fe)/Math.PI>>0)+1,pe=ce/de;if(le+=pe,ie){ne.push(Z,_,Y,ee);for(let _e=1,me=le;_e=0&&(re.join===LINE_JOIN.ROUND?le+=round(me,ge,me-Se*xe,ge-Pe*xe,me-Ae*xe,ge-De*xe,ue,!1)+4:le+=2,ue.push(me-Ae*ve,ge-De*ve,me+Ae*xe,ge+De*xe));continue}const Ye=(-Se+pe)*(-Pe+ge)-(-Se+me)*(-Pe+_e),tt=(-Ae+ye)*(-De+ge)-(-Ae+me)*(-De+Ie),rt=($e*tt-Me*Ye)/ze,it=(Le*Ye-Ue*tt)/ze,ot=(rt-me)*(rt-me)+(it-ge)*(it-ge),Ze=me+(rt-me)*xe,Ke=ge+(it-ge)*xe,et=me-(rt-me)*ve,nt=ge-(it-ge)*ve,dt=Math.min($e*$e+Ue*Ue,Me*Me+Le*Le),ct=Xe?xe:ve,gt=dt+ct*ct*fe,It=ot<=gt;let yt=re.join;if(yt===LINE_JOIN.MITER&&ot/fe>de&&(yt=LINE_JOIN.BEVEL),It)switch(yt){case LINE_JOIN.MITER:{ue.push(Ze,Ke,et,nt);break}case LINE_JOIN.BEVEL:{Xe?ue.push(Ze,Ke,me+Se*ve,ge+Pe*ve,Ze,Ke,me+Ae*ve,ge+De*ve):ue.push(me-Se*xe,ge-Pe*xe,et,nt,me-Ae*xe,ge-De*xe,et,nt),le+=2;break}case LINE_JOIN.ROUND:{Xe?(ue.push(Ze,Ke,me+Se*ve,ge+Pe*ve),le+=round(me,ge,me+Se*ve,ge+Pe*ve,me+Ae*ve,ge+De*ve,ue,!0)+4,ue.push(Ze,Ke,me+Ae*ve,ge+De*ve)):(ue.push(me-Se*xe,ge-Pe*xe,et,nt),le+=round(me,ge,me-Se*xe,ge-Pe*xe,me-Ae*xe,ge-De*xe,ue,!1)+4,ue.push(me-Ae*xe,ge-De*xe,et,nt));break}}else{switch(ue.push(me-Se*xe,ge-Pe*xe,me+Se*ve,ge+Pe*ve),yt){case LINE_JOIN.MITER:{Xe?ue.push(et,nt,et,nt):ue.push(Ze,Ke,Ze,Ke),le+=2;break}case LINE_JOIN.ROUND:{Xe?le+=round(me,ge,me+Se*ve,ge+Pe*ve,me+Ae*ve,ge+De*ve,ue,!0)+2:le+=round(me,ge,me-Se*xe,ge-Pe*xe,me-Ae*xe,ge-De*xe,ue,!1)+2;break}}ue.push(me-Ae*xe,ge-De*xe,me+Ae*ve,ge+De*ve),le+=2}}pe=ee[(oe-2)*2],_e=ee[(oe-2)*2+1],me=ee[(oe-1)*2],ge=ee[(oe-1)*2+1],Se=-(_e-ge),Pe=pe-me,ke=Math.sqrt(Se*Se+Pe*Pe),Se/=ke,Pe/=ke,Se*=he,Pe*=he,ue.push(me-Se*xe,ge-Pe*xe,me+Se*ve,ge+Pe*ve),se||(re.cap===LINE_CAP.ROUND?le+=round(me-Se*(xe-ve)*.5,ge-Pe*(xe-ve)*.5,me-Se*xe,ge-Pe*xe,me+Se*ve,ge+Pe*ve,ue,!1)+2:re.cap===LINE_CAP.SQUARE&&(le+=square(me,ge,Se,Pe,xe,ve,!1,ue)));const Te=_.indices,we=curves.epsilon*curves.epsilon;for(let Re=ce;Re0&&(this.invalidate(),this.clearDirty++,this.graphicsData.length=0),this}drawShape(_,Y=null,ee=null,te=null){const re=new GraphicsData(_,Y,ee,te);return this.graphicsData.push(re),this.dirty++,this}drawHole(_,Y=null){if(!this.graphicsData.length)return null;const ee=new GraphicsData(_,null,null,Y),te=this.graphicsData[this.graphicsData.length-1];return ee.lineStyle=te.lineStyle,te.holes.push(ee),this.dirty++,this}destroy(){super.destroy();for(let _=0;_0&&(ee=this.batches[this.batches.length-1],te=ee.style);for(let se=this.shapeIndex;se65535;this.indicesUint16&&this.indices.length===this.indicesUint16.length&&ie===this.indicesUint16.BYTES_PER_ELEMENT>2?this.indicesUint16.set(this.indices):this.indicesUint16=ie?new Uint32Array(this.indices):new Uint16Array(this.indices),this.batchable=this.isBatchable(),this.batchable?this.packBatches():this.buildDrawCalls()}_compareStyles(_,Y){return!(!_||!Y||_.texture.baseTexture!==Y.texture.baseTexture||_.color+_.alpha!==Y.color+Y.alpha||!!_.native!=!!Y.native)}validateBatching(){if(this.dirty===this.cacheDirty||!this.graphicsData.length)return!1;for(let _=0,Y=this.graphicsData.length;_65535*2)return!1;const _=this.batches;for(let Y=0;Y<_.length;Y++)if(_[Y].style.native)return!1;return this.points.length0&&(te=DRAW_CALL_POOL.pop(),te||(te=new BatchDrawCall,te.texArray=new BatchTextureArray),this.drawCalls.push(te)),te.start=ue,te.size=0,te.texArray.count=0,te.type=ae),fe.touched=1,fe._batchEnabled=_,fe._batchLocation=re,fe.wrapMode=WRAP_MODES.REPEAT,te.texArray.elements[te.texArray.count++]=fe,re++)),te.size+=le.size,ue+=le.size,ie=fe._batchLocation,this.addColors(Y,he.color,he.alpha,le.attribSize,le.attribStart),this.addTextureIds(ee,ie,le.attribSize,le.attribStart)}BaseTexture._globalBatch=_,this.packAttributes()}packAttributes(){const _=this.points,Y=this.uvs,ee=this.colors,te=this.textureIds,re=new ArrayBuffer(_.length*3*4),ne=new Float32Array(re),ie=new Uint32Array(re);let se=0;for(let ae=0;ae<_.length/2;ae++)ne[se++]=_[ae*2],ne[se++]=_[ae*2+1],ne[se++]=Y[ae*2],ne[se++]=Y[ae*2+1],ie[se++]=ee[ae],ne[se++]=te[ae];this._buffer.update(re),this._indexBuffer.update(this.indicesUint16)}processFill(_){_.holes.length?buildPoly.triangulate(_,this):FILL_COMMANDS[_.type].triangulate(_,this)}processLine(_){buildLine(_,this);for(let Y=0;Y<_.holes.length;Y++)buildLine(_.holes[Y],this)}processHoles(_){for(let Y=0;Y<_.length;Y++){const ee=_[Y];FILL_COMMANDS[ee.type].build(ee),ee.matrix&&this.transformPoints(ee.points,ee.matrix)}}calculateBounds(){const _=this._bounds;_.clear(),_.addVertexData(this.points,0,this.points.length),_.pad(this.boundsPadding,this.boundsPadding)}transformPoints(_,Y){for(let ee=0;ee<_.length/2;ee++){const te=_[ee*2],re=_[ee*2+1];_[ee*2]=Y.a*te+Y.c*re+Y.tx,_[ee*2+1]=Y.b*te+Y.d*re+Y.ty}}addColors(_,Y,ee,te,re=0){const ne=Color.shared.setValue(Y).toLittleEndianNumber(),ie=Color.shared.setValue(ne).toPremultiplied(ee);_.length=Math.max(_.length,re+te);for(let se=0;se0&&_.alpha>0;return ee?(_.matrix&&(_.matrix=_.matrix.clone(),_.matrix.invert()),Object.assign(this._lineStyle,{visible:ee},_)):this._lineStyle.reset(),this}startPoly(){if(this.currentPath){const _=this.currentPath.points,Y=this.currentPath.points.length;Y>2&&(this.drawShape(this.currentPath),this.currentPath=new Polygon,this.currentPath.closeStroke=!1,this.currentPath.points.push(_[Y-2],_[Y-1]))}else this.currentPath=new Polygon,this.currentPath.closeStroke=!1}finishPoly(){this.currentPath&&(this.currentPath.points.length>2?(this.drawShape(this.currentPath),this.currentPath=null):this.currentPath.points.length=0)}moveTo(_,Y){return this.startPoly(),this.currentPath.points[0]=_,this.currentPath.points[1]=Y,this}lineTo(_,Y){this.currentPath||this.moveTo(0,0);const ee=this.currentPath.points,te=ee[ee.length-2],re=ee[ee.length-1];return(te!==_||re!==Y)&&ee.push(_,Y),this}_initCurve(_=0,Y=0){this.currentPath?this.currentPath.points.length===0&&(this.currentPath.points=[_,Y]):this.moveTo(_,Y)}quadraticCurveTo(_,Y,ee,te){this._initCurve();const re=this.currentPath.points;return re.length===0&&this.moveTo(0,0),QuadraticUtils.curveTo(_,Y,ee,te,re),this}bezierCurveTo(_,Y,ee,te,re,ne){return this._initCurve(),BezierUtils.curveTo(_,Y,ee,te,re,ne,this.currentPath.points),this}arcTo(_,Y,ee,te,re){this._initCurve(_,Y);const ne=this.currentPath.points,ie=ArcUtils.curveTo(_,Y,ee,te,re,ne);if(ie){const{cx:se,cy:ae,radius:ue,startAngle:oe,endAngle:le,anticlockwise:ce}=ie;this.arc(se,ae,ue,oe,le,ce)}return this}arc(_,Y,ee,te,re,ne=!1){if(te===re)return this;if(!ne&&re<=te?re+=PI_2:ne&&te<=re&&(te+=PI_2),re-te===0)return this;const ie=_+Math.cos(te)*ee,se=Y+Math.sin(te)*ee,ae=this._geometry.closePointEps;let ue=this.currentPath?this.currentPath.points:null;if(ue){const oe=Math.abs(ue[ue.length-2]-ie),le=Math.abs(ue[ue.length-1]-se);oe0;return ee?(_.matrix&&(_.matrix=_.matrix.clone(),_.matrix.invert()),Object.assign(this._fillStyle,{visible:ee},_)):this._fillStyle.reset(),this}endFill(){return this.finishPoly(),this._fillStyle.reset(),this}drawRect(_,Y,ee,te){return this.drawShape(new Rectangle(_,Y,ee,te))}drawRoundedRect(_,Y,ee,te,re){return this.drawShape(new RoundedRectangle(_,Y,ee,te,re))}drawCircle(_,Y,ee){return this.drawShape(new Circle(_,Y,ee))}drawEllipse(_,Y,ee,te){return this.drawShape(new Ellipse(_,Y,ee,te))}drawPolygon(..._){let Y,ee=!0;const te=_[0];te.points?(ee=te.closeStroke,Y=te.points):Array.isArray(_[0])?Y=_[0]:Y=_;const re=new Polygon(Y);return re.closeStroke=ee,this.drawShape(re),this}drawShape(_){return this._holeMode?this._geometry.drawHole(_,this._matrix):this._geometry.drawShape(_,this._fillStyle.clone(),this._lineStyle.clone(),this._matrix),this}clear(){return this._geometry.clear(),this._lineStyle.reset(),this._fillStyle.reset(),this._boundsID++,this._matrix=null,this._holeMode=!1,this.currentPath=null,this}isFastRect(){const _=this._geometry.graphicsData;return _.length===1&&_[0].shape.type===SHAPES.RECT&&!_[0].matrix&&!_[0].holes.length&&!(_[0].lineStyle.visible&&_[0].lineStyle.width)}_render(_){this.finishPoly();const Y=this._geometry;Y.updateBatches(),Y.batchable?(this.batchDirty!==Y.batchDirty&&this._populateBatches(),this._renderBatched(_)):(_.batch.flush(),this._renderDirect(_))}_populateBatches(){const _=this._geometry,Y=this.blendMode,ee=_.batches.length;this.batchTint=-1,this._transformID=-1,this.batchDirty=_.batchDirty,this.batches.length=ee,this.vertexData=new Float32Array(_.points);for(let te=0;teee&&!_.autoResize&&(ne=ee);let ie=_._buffers;ie||(ie=_._buffers=this.generateBuffers(_));const se=Y[0]._texture.baseTexture,ae=se.alphaMode>0;this.state.blendMode=correctBlendMode(_.blendMode,ae),re.state.set(this.state);const ue=re.gl,oe=_.worldTransform.copyTo(this.tempMatrix);oe.prepend(re.globalUniforms.uniforms.projectionMatrix),this.shader.uniforms.translationMatrix=oe.toArray(!0),this.shader.uniforms.uColor=Color.shared.setValue(_.tintRgb).premultiply(_.worldAlpha,ae).toArray(this.shader.uniforms.uColor),this.shader.uniforms.uSampler=se,this.renderer.shader.bind(this.shader);let le=!1;for(let ce=0,he=0;cete&&(fe=te),he>=ie.length&&ie.push(this._generateOneMoreBuffer(_));const de=ie[he];de.uploadDynamic(Y,ce,fe);const pe=_._bufferUpdateIDs[he]||0;le=le||de._updateID0);te[ne]=ae,te[ne+re]=ae,te[ne+re*2]=ae,te[ne+re*3]=ae,ne+=re*4}}destroy(){super.destroy(),this.shader&&(this.shader.destroy(),this.shader=null),this.tempMatrix=null}}ParticleRenderer.extension={name:"particle",type:ExtensionType.RendererPlugin};extensions$1.add(ParticleRenderer);var TEXT_GRADIENT=(Z=>(Z[Z.LINEAR_VERTICAL=0]="LINEAR_VERTICAL",Z[Z.LINEAR_HORIZONTAL=1]="LINEAR_HORIZONTAL",Z))(TEXT_GRADIENT||{});const contextSettings={willReadFrequently:!0},_TextMetrics=class Ve{static get experimentalLetterSpacingSupported(){let _=Ve._experimentalLetterSpacingSupported;if(_!==void 0){const Y=settings.ADAPTER.getCanvasRenderingContext2D().prototype;_=Ve._experimentalLetterSpacingSupported="letterSpacing"in Y||"textLetterSpacing"in Y}return _}constructor(_,Y,ee,te,re,ne,ie,se,ae){this.text=_,this.style=Y,this.width=ee,this.height=te,this.lines=re,this.lineWidths=ne,this.lineHeight=ie,this.maxLineWidth=se,this.fontProperties=ae}static measureText(_,Y,ee,te=Ve._canvas){ee=ee??Y.wordWrap;const re=Y.toFontString(),ne=Ve.measureFont(re);ne.fontSize===0&&(ne.fontSize=Y.fontSize,ne.ascent=Y.fontSize);const ie=te.getContext("2d",contextSettings);ie.font=re;const se=(ee?Ve.wordWrap(_,Y,te):_).split(/(?:\r\n|\r|\n)/),ae=new Array(se.length);let ue=0;for(let he=0;he0&&(te?re-=Y:re+=(Ve.graphemeSegmenter(_).length-1)*Y),re}static wordWrap(_,Y,ee=Ve._canvas){const te=ee.getContext("2d",contextSettings);let re=0,ne="",ie="";const se=Object.create(null),{letterSpacing:ae,whiteSpace:ue}=Y,oe=Ve.collapseSpaces(ue),le=Ve.collapseNewlines(ue);let ce=!oe;const he=Y.wordWrapWidth+ae,fe=Ve.tokenize(_);for(let de=0;dehe)if(ne!==""&&(ie+=Ve.addLine(ne),ne="",re=0),Ve.canBreakWords(pe,Y.breakWords)){const me=Ve.wordWrapSplit(pe);for(let ge=0;gehe&&(ie+=Ve.addLine(ne),ce=!1,ne="",re=0),ne+=ye,re+=Pe}}else{ne.length>0&&(ie+=Ve.addLine(ne),ne="",re=0);const me=de===fe.length-1;ie+=Ve.addLine(pe,!me),ce=!1,ne="",re=0}else _e+re>he&&(ce=!1,ie+=Ve.addLine(ne),ne="",re=0),(ne.length>0||!Ve.isBreakingSpace(pe)||ce)&&(ne+=pe,re+=_e)}return ie+=Ve.addLine(ne,!1),ie}static addLine(_,Y=!0){return _=Ve.trimRight(_),_=Y?`${_} +`:_,_}static getFromCache(_,Y,ee,te){let re=ee[_];return typeof re!="number"&&(re=Ve._measureText(_,Y,te)+Y,ee[_]=re),re}static collapseSpaces(_){return _==="normal"||_==="pre-line"}static collapseNewlines(_){return _==="normal"}static trimRight(_){if(typeof _!="string")return"";for(let Y=_.length-1;Y>=0;Y--){const ee=_[Y];if(!Ve.isBreakingSpace(ee))break;_=_.slice(0,-1)}return _}static isNewline(_){return typeof _!="string"?!1:Ve._newlines.includes(_.charCodeAt(0))}static isBreakingSpace(_,Y){return typeof _!="string"?!1:Ve._breakingSpaces.includes(_.charCodeAt(0))}static tokenize(_){const Y=[];let ee="";if(typeof _!="string")return Y;for(let te=0;te<_.length;te++){const re=_[te],ne=_[te+1];if(Ve.isBreakingSpace(re,ne)||Ve.isNewline(re)){ee!==""&&(Y.push(ee),ee=""),Y.push(re);continue}ee+=re}return ee!==""&&Y.push(ee),Y}static canBreakWords(_,Y){return Y}static canBreakChars(_,Y,ee,te,re){return!0}static wordWrapSplit(_){return Ve.graphemeSegmenter(_)}static measureFont(_){if(Ve._fonts[_])return Ve._fonts[_];const Y={ascent:0,descent:0,fontSize:0},ee=Ve._canvas,te=Ve._context;te.font=_;const re=Ve.METRICS_STRING+Ve.BASELINE_SYMBOL,ne=Math.ceil(te.measureText(re).width);let ie=Math.ceil(te.measureText(Ve.BASELINE_SYMBOL).width);const se=Math.ceil(Ve.HEIGHT_MULTIPLIER*ie);if(ie=ie*Ve.BASELINE_MULTIPLIER|0,ne===0||se===0)return Ve._fonts[_]=Y,Y;ee.width=ne,ee.height=se,te.fillStyle="#f00",te.fillRect(0,0,ne,se),te.font=_,te.textBaseline="alphabetic",te.fillStyle="#000",te.fillText(re,0,ie);const ae=te.getImageData(0,0,ne,se).data,ue=ae.length,oe=ne*4;let le=0,ce=0,he=!1;for(le=0;leie;--le){for(let fe=0;fe{if(typeof(Intl==null?void 0:Intl.Segmenter)=="function"){const Z=new Intl.Segmenter;return _=>[...Z.segment(_)].map(Y=>Y.segment)}return Z=>[...Z]})(),_TextMetrics.experimentalLetterSpacing=!1,_TextMetrics._fonts={},_TextMetrics._newlines=[10,13],_TextMetrics._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];let TextMetrics=_TextMetrics;const genericFontFamilies=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],_TextStyle=class Ct{constructor(_){this.styleID=0,this.reset(),deepCopyProperties(this,_,_)}clone(){const _={};return deepCopyProperties(_,this,Ct.defaultStyle),new Ct(_)}reset(){deepCopyProperties(this,Ct.defaultStyle,Ct.defaultStyle)}get align(){return this._align}set align(_){this._align!==_&&(this._align=_,this.styleID++)}get breakWords(){return this._breakWords}set breakWords(_){this._breakWords!==_&&(this._breakWords=_,this.styleID++)}get dropShadow(){return this._dropShadow}set dropShadow(_){this._dropShadow!==_&&(this._dropShadow=_,this.styleID++)}get dropShadowAlpha(){return this._dropShadowAlpha}set dropShadowAlpha(_){this._dropShadowAlpha!==_&&(this._dropShadowAlpha=_,this.styleID++)}get dropShadowAngle(){return this._dropShadowAngle}set dropShadowAngle(_){this._dropShadowAngle!==_&&(this._dropShadowAngle=_,this.styleID++)}get dropShadowBlur(){return this._dropShadowBlur}set dropShadowBlur(_){this._dropShadowBlur!==_&&(this._dropShadowBlur=_,this.styleID++)}get dropShadowColor(){return this._dropShadowColor}set dropShadowColor(_){const Y=getColor(_);this._dropShadowColor!==Y&&(this._dropShadowColor=Y,this.styleID++)}get dropShadowDistance(){return this._dropShadowDistance}set dropShadowDistance(_){this._dropShadowDistance!==_&&(this._dropShadowDistance=_,this.styleID++)}get fill(){return this._fill}set fill(_){const Y=getColor(_);this._fill!==Y&&(this._fill=Y,this.styleID++)}get fillGradientType(){return this._fillGradientType}set fillGradientType(_){this._fillGradientType!==_&&(this._fillGradientType=_,this.styleID++)}get fillGradientStops(){return this._fillGradientStops}set fillGradientStops(_){areArraysEqual(this._fillGradientStops,_)||(this._fillGradientStops=_,this.styleID++)}get fontFamily(){return this._fontFamily}set fontFamily(_){this.fontFamily!==_&&(this._fontFamily=_,this.styleID++)}get fontSize(){return this._fontSize}set fontSize(_){this._fontSize!==_&&(this._fontSize=_,this.styleID++)}get fontStyle(){return this._fontStyle}set fontStyle(_){this._fontStyle!==_&&(this._fontStyle=_,this.styleID++)}get fontVariant(){return this._fontVariant}set fontVariant(_){this._fontVariant!==_&&(this._fontVariant=_,this.styleID++)}get fontWeight(){return this._fontWeight}set fontWeight(_){this._fontWeight!==_&&(this._fontWeight=_,this.styleID++)}get letterSpacing(){return this._letterSpacing}set letterSpacing(_){this._letterSpacing!==_&&(this._letterSpacing=_,this.styleID++)}get lineHeight(){return this._lineHeight}set lineHeight(_){this._lineHeight!==_&&(this._lineHeight=_,this.styleID++)}get leading(){return this._leading}set leading(_){this._leading!==_&&(this._leading=_,this.styleID++)}get lineJoin(){return this._lineJoin}set lineJoin(_){this._lineJoin!==_&&(this._lineJoin=_,this.styleID++)}get miterLimit(){return this._miterLimit}set miterLimit(_){this._miterLimit!==_&&(this._miterLimit=_,this.styleID++)}get padding(){return this._padding}set padding(_){this._padding!==_&&(this._padding=_,this.styleID++)}get stroke(){return this._stroke}set stroke(_){const Y=getColor(_);this._stroke!==Y&&(this._stroke=Y,this.styleID++)}get strokeThickness(){return this._strokeThickness}set strokeThickness(_){this._strokeThickness!==_&&(this._strokeThickness=_,this.styleID++)}get textBaseline(){return this._textBaseline}set textBaseline(_){this._textBaseline!==_&&(this._textBaseline=_,this.styleID++)}get trim(){return this._trim}set trim(_){this._trim!==_&&(this._trim=_,this.styleID++)}get whiteSpace(){return this._whiteSpace}set whiteSpace(_){this._whiteSpace!==_&&(this._whiteSpace=_,this.styleID++)}get wordWrap(){return this._wordWrap}set wordWrap(_){this._wordWrap!==_&&(this._wordWrap=_,this.styleID++)}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(_){this._wordWrapWidth!==_&&(this._wordWrapWidth=_,this.styleID++)}toFontString(){const _=typeof this.fontSize=="number"?`${this.fontSize}px`:this.fontSize;let Y=this.fontFamily;Array.isArray(this.fontFamily)||(Y=this.fontFamily.split(","));for(let ee=Y.length-1;ee>=0;ee--){let te=Y[ee].trim();!/([\"\'])[^\'\"]+\1/.test(te)&&!genericFontFamilies.includes(te)&&(te=`"${te}"`),Y[ee]=te}return`${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${_} ${Y.join(",")}`}};_TextStyle.defaultStyle={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:TEXT_GRADIENT.LINEAR_VERTICAL,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};let TextStyle=_TextStyle;function getColor(Z){const _=Color.shared,Y=ee=>{const te=_.setValue(ee);return te.alpha===1?te.toHex():te.toRgbaString()};return Array.isArray(Z)?Z.map(Y):Y(Z)}function areArraysEqual(Z,_){if(!Array.isArray(Z)||!Array.isArray(_)||Z.length!==_.length)return!1;for(let Y=0;Y0&&he>fe&&(de=(fe+he)/2);const pe=fe+le,_e=ee.lineHeight*(ce+1);let me=pe;ce+10}}function findMultipleBaseTextures(Z,_){var ee;let Y=!1;if((ee=Z==null?void 0:Z._textures)!=null&&ee.length){for(let te=0;te{this.queue&&this.prepareItems()},this.registerFindHook(findText),this.registerFindHook(findTextStyle),this.registerFindHook(findMultipleBaseTextures),this.registerFindHook(findBaseTexture),this.registerFindHook(findTexture),this.registerUploadHook(drawText),this.registerUploadHook(calculateTextStyle)}upload(_){return new Promise(Y=>{_&&this.add(_),this.queue.length?(this.completes.push(Y),this.ticking||(this.ticking=!0,Ticker.system.addOnce(this.tick,this,UPDATE_PRIORITY.UTILITY))):Y()})}tick(){setTimeout(this.delayedTick,0)}prepareItems(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){const _=this.queue[0];let Y=!1;if(_&&!_._destroyed){for(let ee=0,te=this.uploadHooks.length;ee=0;Y--)this.add(_.children[Y]);return this}destroy(){this.ticking&&Ticker.system.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null}};_BasePrepare.uploadsPerFrame=4;let BasePrepare=_BasePrepare;Object.defineProperties(settings,{UPLOADS_PER_FRAME:{get(){return BasePrepare.uploadsPerFrame},set(Z){deprecation("7.1.0","settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame"),BasePrepare.uploadsPerFrame=Z}}});function uploadBaseTextures(Z,_){return _ instanceof BaseTexture?(_._glTextures[Z.CONTEXT_UID]||Z.texture.bind(_),!0):!1}function uploadGraphics(Z,_){if(!(_ instanceof Graphics))return!1;const{geometry:Y}=_;_.finishPoly(),Y.updateBatches();const{batches:ee}=Y;for(let te=0;te1?Shader.from(gl2VertexSrc,gl2FragmentSrc,Y):Shader.from(gl1VertexSrc,gl1FragmentSrc,Y)}render(_){const Y=this.renderer,ee=this.quad;let te=ee.vertices;te[0]=te[6]=_._width*-_.anchor.x,te[1]=te[3]=_._height*-_.anchor.y,te[2]=te[4]=_._width*(1-_.anchor.x),te[5]=te[7]=_._height*(1-_.anchor.y);const re=_.uvRespectAnchor?_.anchor.x:0,ne=_.uvRespectAnchor?_.anchor.y:0;te=ee.uvs,te[0]=te[6]=-re,te[1]=te[3]=-ne,te[2]=te[4]=1-re,te[5]=te[7]=1-ne,ee.invalidate();const ie=_._texture,se=ie.baseTexture,ae=se.alphaMode>0,ue=_.tileTransform.localTransform,oe=_.uvMatrix;let le=se.isPowerOfTwo&&ie.frame.width===se.width&&ie.frame.height===se.height;le&&(se._glTextures[Y.CONTEXT_UID]?le=se.wrapMode!==WRAP_MODES.CLAMP:se.wrapMode===WRAP_MODES.CLAMP&&(se.wrapMode=WRAP_MODES.REPEAT));const ce=le?this.simpleShader:this.shader,he=ie.width,fe=ie.height,de=_._width,pe=_._height;tempMat.set(ue.a*he/de,ue.b*he/pe,ue.c*fe/de,ue.d*fe/pe,ue.tx/de,ue.ty/pe),tempMat.invert(),le?tempMat.prepend(oe.mapCoord):(ce.uniforms.uMapCoord=oe.mapCoord.toArray(!0),ce.uniforms.uClampFrame=oe.uClampFrame,ce.uniforms.uClampOffset=oe.uClampOffset),ce.uniforms.uTransform=tempMat.toArray(!0),ce.uniforms.uColor=Color.shared.setValue(_.tint).premultiply(_.worldAlpha,ae).toArray(ce.uniforms.uColor),ce.uniforms.translationMatrix=_.transform.worldTransform.toArray(!0),ce.uniforms.uSampler=ie,Y.shader.bind(ce),Y.geometry.bind(ee),this.state.blendMode=correctBlendMode(_.blendMode,ae),Y.state.set(this.state),Y.geometry.draw(this.renderer.gl.TRIANGLES,6,0)}}TilingSpriteRenderer.extension={name:"tilingSprite",type:ExtensionType.RendererPlugin};extensions$1.add(TilingSpriteRenderer);const _Spritesheet=class Mt{constructor(_,Y,ee){this.linkedSheets=[],(_ instanceof BaseTexture||_ instanceof Texture)&&(_={texture:_,data:Y,resolutionFilename:ee});const{texture:te,data:re,resolutionFilename:ne=null,cachePrefix:ie=""}=_;this.cachePrefix=ie,this._texture=te instanceof Texture?te:null,this.baseTexture=te instanceof BaseTexture?te:this._texture.baseTexture,this.textures={},this.animations={},this.data=re;const se=this.baseTexture.resource;this.resolution=this._updateResolution(ne||(se?se.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}_updateResolution(_=null){const{scale:Y}=this.data.meta;let ee=getResolutionOfUrl(_,null);return ee===null&&(ee=typeof Y=="number"?Y:parseFloat(Y??"1")),ee!==1&&this.baseTexture.setResolution(ee),ee}parse(){return new Promise(_=>{this._callback=_,this._batchIndex=0,this._frameKeys.length<=Mt.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(_){let Y=_;const ee=Mt.BATCH_SIZE;for(;Y-_{this._batchIndex*Mt.BATCH_SIZE{ee[te]=_}),Object.keys(_.textures).forEach(te=>{ee[`${_.cachePrefix}${te}`]=_.textures[te]}),!Y){const te=path$1.dirname(Z[0]);_.linkedSheets.forEach((re,ne)=>{Object.assign(ee,getCacheableAssets([`${te}/${_.data.meta.related_multi_packs[ne]}`],re,!0))})}return ee}const spritesheetAsset={extension:ExtensionType.Asset,cache:{test:Z=>Z instanceof Spritesheet,getCacheableAssets:(Z,_)=>getCacheableAssets(Z,_,!1)},resolver:{test:Z=>{const _=Z.split("?")[0].split("."),Y=_.pop(),ee=_.pop();return Y==="json"&&validImages.includes(ee)},parse:Z=>{var Y;const _=Z.split(".");return{resolution:parseFloat(((Y=settings.RETINA_PREFIX.exec(Z))==null?void 0:Y[1])??"1"),format:_[_.length-2],src:Z}}},loader:{name:"spritesheetLoader",extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.Normal},async testParse(Z,_){return path$1.extname(_.src).toLowerCase()===".json"&&!!Z.frames},async parse(Z,_,Y){var ue,oe;const{texture:ee,imageFilename:te,cachePrefix:re}=(_==null?void 0:_.data)??{};let ne=path$1.dirname(_.src);ne&&ne.lastIndexOf("/")!==ne.length-1&&(ne+="/");let ie;if(ee&&ee.baseTexture)ie=ee;else{const le=copySearchParams(ne+(te??Z.meta.image),_.src);ie=(await Y.load([le]))[le]}const se=new Spritesheet({texture:ie.baseTexture,data:Z,resolutionFilename:_.src,cachePrefix:re});await se.parse();const ae=(ue=Z==null?void 0:Z.meta)==null?void 0:ue.related_multi_packs;if(Array.isArray(ae)){const le=[];for(const he of ae){if(typeof he!="string")continue;let fe=ne+he;(oe=_.data)!=null&&oe.ignoreMultiPack||(fe=copySearchParams(fe,_.src),le.push(Y.load({src:fe,data:{ignoreMultiPack:!0}})))}const ce=await Promise.all(le);se.linkedSheets=ce,ce.forEach(he=>{he.linkedSheets=[se].concat(se.linkedSheets.filter(fe=>fe!==he))})}return se},unload(Z){Z.destroy(!0)}}};extensions$1.add(spritesheetAsset);class BitmapFontData{constructor(){this.info=[],this.common=[],this.page=[],this.char=[],this.kerning=[],this.distanceField=[]}}class TextFormat{static test(_){return typeof _=="string"&&_.startsWith("info face=")}static parse(_){const Y=_.match(/^[a-z]+\s+.+$/gm),ee={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(const re in Y){const ne=Y[re].match(/^[a-z]+/gm)[0],ie=Y[re].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),se={};for(const ae in ie){const ue=ie[ae].split("="),oe=ue[0],le=ue[1].replace(/"/gm,""),ce=parseFloat(le),he=isNaN(ce)?le:ce;se[oe]=he}ee[ne].push(se)}const te=new BitmapFontData;return ee.info.forEach(re=>te.info.push({face:re.face,size:parseInt(re.size,10)})),ee.common.forEach(re=>te.common.push({lineHeight:parseInt(re.lineHeight,10)})),ee.page.forEach(re=>te.page.push({id:parseInt(re.id,10),file:re.file})),ee.char.forEach(re=>te.char.push({id:parseInt(re.id,10),page:parseInt(re.page,10),x:parseInt(re.x,10),y:parseInt(re.y,10),width:parseInt(re.width,10),height:parseInt(re.height,10),xoffset:parseInt(re.xoffset,10),yoffset:parseInt(re.yoffset,10),xadvance:parseInt(re.xadvance,10)})),ee.kerning.forEach(re=>te.kerning.push({first:parseInt(re.first,10),second:parseInt(re.second,10),amount:parseInt(re.amount,10)})),ee.distanceField.forEach(re=>te.distanceField.push({distanceRange:parseInt(re.distanceRange,10),fieldType:re.fieldType})),te}}class XMLFormat{static test(_){const Y=_;return typeof _!="string"&&"getElementsByTagName"in _&&Y.getElementsByTagName("page").length&&Y.getElementsByTagName("info")[0].getAttribute("face")!==null}static parse(_){const Y=new BitmapFontData,ee=_.getElementsByTagName("info"),te=_.getElementsByTagName("common"),re=_.getElementsByTagName("page"),ne=_.getElementsByTagName("char"),ie=_.getElementsByTagName("kerning"),se=_.getElementsByTagName("distanceField");for(let ae=0;ae")?XMLFormat.test(settings.ADAPTER.parseXML(_)):!1}static parse(_){return XMLFormat.parse(settings.ADAPTER.parseXML(_))}}const formats=[TextFormat,XMLFormat,XMLStringFormat];function autoDetectFormat(Z){for(let _=0;_=se-De*ne){if(fe===0)throw new Error(`[BitmapFont] textureHeight ${se}px is too small (fontFamily: '${oe.fontFamily}', fontSize: ${oe.fontSize}px, char: '${Se}')`);--Ie,de=null,pe=null,_e=null,fe=0,he=0,me=0;continue}if(me=Math.max(De+Pe.fontProperties.descent,me),ke*ne+he>=le){if(he===0)throw new Error(`[BitmapFont] textureWidth ${ie}px is too small (fontFamily: '${oe.fontFamily}', fontSize: ${oe.fontSize}px, char: '${Se}')`);--Ie,fe+=me*ne,fe=Math.ceil(fe),he=0,me=0;continue}drawGlyph(de,pe,Pe,he,fe,ne,oe);const Ce=extractCharCode(Pe.text);ce.char.push({id:Ce,page:ge.length-1,x:he/ne,y:fe/ne,width:ke,height:De,xoffset:0,yoffset:0,xadvance:Ae-(oe.dropShadow?oe.dropShadowDistance:0)-(oe.stroke?oe.strokeThickness:0)}),he+=(ke+2*re)*ne,he=Math.ceil(he)}if(!(ee!=null&&ee.skipKerning))for(let Ie=0,Se=ue.length;Ie 0.99) {\r + alpha = 1.0;\r + }\r +\r + // Gamma correction for coverage-like alpha\r + float luma = dot(uColor.rgb, vec3(0.299, 0.587, 0.114));\r + float gamma = mix(1.0, 1.0 / 2.2, luma);\r + float coverage = pow(uColor.a * alpha, gamma); \r +\r + // NPM Textures, NPM outputs\r + gl_FragColor = vec4(uColor.rgb, coverage);\r +}\r +`,msdfVert=`// Mesh material default fragment\r +attribute vec2 aVertexPosition;\r +attribute vec2 aTextureCoord;\r +\r +uniform mat3 projectionMatrix;\r +uniform mat3 translationMatrix;\r +uniform mat3 uTextureMatrix;\r +\r +varying vec2 vTextureCoord;\r +\r +void main(void)\r +{\r + gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\r +\r + vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\r +}\r +`;const pageMeshDataDefaultPageMeshData=[],pageMeshDataMSDFPageMeshData=[],charRenderDataPool=[],_BitmapText=class nr extends Container$1{constructor(_,Y={}){super();const{align:ee,tint:te,maxWidth:re,letterSpacing:ne,fontName:ie,fontSize:se}=Object.assign({},nr.styleDefaults,Y);if(!BitmapFont.available[ie])throw new Error(`Missing BitmapFont "${ie}"`);this._activePagesMeshData=[],this._textWidth=0,this._textHeight=0,this._align=ee,this._tintColor=new Color(te),this._font=void 0,this._fontName=ie,this._fontSize=se,this.text=_,this._maxWidth=re,this._maxLineHeight=0,this._letterSpacing=ne,this._anchor=new ObservablePoint(()=>{this.dirty=!0},this,0,0),this._roundPixels=settings.ROUND_PIXELS,this.dirty=!0,this._resolution=settings.RESOLUTION,this._autoResolution=!0,this._textureCache={}}updateText(){var ke;const _=BitmapFont.available[this._fontName],Y=this.fontSize,ee=Y/_.size,te=new Point,re=[],ne=[],ie=[],se=this._text.replace(/(?:\r\n|\r)/g,` +`)||" ",ae=splitTextToCharacters(se),ue=this._maxWidth*_.size/Y,oe=_.distanceFieldType==="none"?pageMeshDataDefaultPageMeshData:pageMeshDataMSDFPageMeshData;let le=null,ce=0,he=0,fe=0,de=-1,pe=0,_e=0,me=0,ge=0;for(let Ce=0;Ce0&&te.x>ue&&(++_e,removeItems(re,1+de-_e,1+Ce-de),Ce=de,de=-1,ne.push(pe),ie.push(re.length>0?re[re.length-1].prevSpaces:0),he=Math.max(he,pe),fe++,te.x=0,te.y+=_.lineHeight,le=null,ge=0)}const ye=ae[ae.length-1];ye!=="\r"&&ye!==` +`&&(/(?:\s)/.test(ye)&&(ce=pe),ne.push(ce),he=Math.max(he,ce),ie.push(-1));const Ie=[];for(let Ce=0;Ce<=fe;Ce++){let xe=0;this._align==="right"?xe=he-ne[Ce]:this._align==="center"?xe=(he-ne[Ce])/2:this._align==="justify"&&(xe=ie[Ce]<0?0:(he-ne[Ce])/ie[Ce]),Ie.push(xe)}const Se=re.length,Pe={},Ae=[],De=this._activePagesMeshData;oe.push(...De);for(let Ce=0;Ce6*ve)||xe.vertices.lengthY[te.mesh.texture.baseTexture.uid]).forEach(te=>{te.mesh.texture=Texture.EMPTY});for(const te in Y)Y[te].destroy(),delete Y[te];this._font=null,this._tintColor=null,this._textureCache=null,super.destroy(_)}};_BitmapText.styleDefaults={align:"left",tint:16777215,maxWidth:0,letterSpacing:0};const validExtensions=[".xml",".fnt"],loadBitmapFont={extension:{type:ExtensionType.LoadParser,priority:LoaderParserPriority.Normal},name:"loadBitmapFont",test(Z){return validExtensions.includes(path$1.extname(Z).toLowerCase())},async testParse(Z){return TextFormat.test(Z)||XMLStringFormat.test(Z)},async parse(Z,_,Y){const ee=TextFormat.test(Z)?TextFormat.parse(Z):XMLStringFormat.parse(Z),{src:te}=_,{page:re}=ee,ne=[];for(let ae=0;aeie[ae]);return BitmapFont.install(ee,se,!0)},async load(Z,_){return(await settings.ADAPTER.fetch(Z)).text()},unload(Z){Z.destroy()}};extensions$1.add(loadBitmapFont);const _HTMLTextStyle=class Tt extends TextStyle{constructor(){super(...arguments),this._fonts=[],this._overrides=[],this._stylesheet="",this.fontsDirty=!1}static from(_){return new Tt(Object.keys(Tt.defaultOptions).reduce((Y,ee)=>({...Y,[ee]:_[ee]}),{}))}cleanFonts(){this._fonts.length>0&&(this._fonts.forEach(_=>{URL.revokeObjectURL(_.src),_.refs--,_.refs===0&&(_.fontFace&&document.fonts.delete(_.fontFace),delete Tt.availableFonts[_.originalUrl])}),this.fontFamily="Arial",this._fonts.length=0,this.styleID++,this.fontsDirty=!0)}loadFont(_,Y={}){const{availableFonts:ee}=Tt;if(ee[_]){const te=ee[_];return this._fonts.push(te),te.refs++,this.styleID++,this.fontsDirty=!0,Promise.resolve()}return settings.ADAPTER.fetch(_).then(te=>te.blob()).then(async te=>new Promise((re,ne)=>{const ie=URL.createObjectURL(te),se=new FileReader;se.onload=()=>re([ie,se.result]),se.onerror=ne,se.readAsDataURL(te)})).then(async([te,re])=>{const ne=Object.assign({family:path$1.basename(_,path$1.extname(_)),weight:"normal",style:"normal",display:"auto",src:te,dataSrc:re,refs:1,originalUrl:_,fontFace:null},Y);ee[_]=ne,this._fonts.push(ne),this.styleID++;const ie=new FontFace(ne.family,`url(${ne.src})`,{weight:ne.weight,style:ne.style,display:ne.display});ne.fontFace=ie,await ie.load(),document.fonts.add(ie),await document.fonts.ready,this.styleID++,this.fontsDirty=!0})}addOverride(..._){const Y=_.filter(ee=>!this._overrides.includes(ee));Y.length>0&&(this._overrides.push(...Y),this.styleID++)}removeOverride(..._){const Y=_.filter(ee=>this._overrides.includes(ee));Y.length>0&&(this._overrides=this._overrides.filter(ee=>!Y.includes(ee)),this.styleID++)}toCSS(_){return[`transform: scale(${_})`,"transform-origin: top left","display: inline-block",`color: ${this.normalizeColor(this.fill)}`,`font-size: ${this.fontSize}px`,`font-family: ${this.fontFamily}`,`font-weight: ${this.fontWeight}`,`font-style: ${this.fontStyle}`,`font-variant: ${this.fontVariant}`,`letter-spacing: ${this.letterSpacing}px`,`text-align: ${this.align}`,`padding: ${this.padding}px`,`white-space: ${this.whiteSpace}`,...this.lineHeight?[`line-height: ${this.lineHeight}px`]:[],...this.wordWrap?[`word-wrap: ${this.breakWords?"break-all":"break-word"}`,`max-width: ${this.wordWrapWidth}px`]:[],...this.strokeThickness?[`-webkit-text-stroke-width: ${this.strokeThickness}px`,`-webkit-text-stroke-color: ${this.normalizeColor(this.stroke)}`,`text-stroke-width: ${this.strokeThickness}px`,`text-stroke-color: ${this.normalizeColor(this.stroke)}`,"paint-order: stroke"]:[],...this.dropShadow?[this.dropShadowToCSS()]:[],...this._overrides].join(";")}toGlobalCSS(){return this._fonts.reduce((_,Y)=>`${_} + @font-face { + font-family: "${Y.family}"; + src: url('${Y.dataSrc}'); + font-weight: ${Y.weight}; + font-style: ${Y.style}; + font-display: ${Y.display}; + }`,this._stylesheet)}get stylesheet(){return this._stylesheet}set stylesheet(_){this._stylesheet!==_&&(this._stylesheet=_,this.styleID++)}normalizeColor(_){return Array.isArray(_)&&(_=rgb2hex(_)),typeof _=="number"?hex2string(_):_}dropShadowToCSS(){let _=this.normalizeColor(this.dropShadowColor);const Y=this.dropShadowAlpha,ee=Math.round(Math.cos(this.dropShadowAngle)*this.dropShadowDistance),te=Math.round(Math.sin(this.dropShadowAngle)*this.dropShadowDistance);_.startsWith("#")&&Y<1&&(_+=(Y*255|0).toString(16).padStart(2,"0"));const re=`${ee}px ${te}px`;return this.dropShadowBlur>0?`text-shadow: ${re} ${this.dropShadowBlur}px ${_}`:`text-shadow: ${re} ${_}`}reset(){Object.assign(this,Tt.defaultOptions)}onBeforeDraw(){const{fontsDirty:_}=this;return this.fontsDirty=!1,this.isSafari&&this._fonts.length>0&&_?new Promise(Y=>setTimeout(Y,100)):Promise.resolve()}get isSafari(){const{userAgent:_}=settings.ADAPTER.getNavigator();return/^((?!chrome|android).)*safari/i.test(_)}set fillGradientStops(_){console.warn("[HTMLTextStyle] fillGradientStops is not supported by HTMLText")}get fillGradientStops(){return super.fillGradientStops}set fillGradientType(_){console.warn("[HTMLTextStyle] fillGradientType is not supported by HTMLText")}get fillGradientType(){return super.fillGradientType}set miterLimit(_){console.warn("[HTMLTextStyle] miterLimit is not supported by HTMLText")}get miterLimit(){return super.miterLimit}set trim(_){console.warn("[HTMLTextStyle] trim is not supported by HTMLText")}get trim(){return super.trim}set textBaseline(_){console.warn("[HTMLTextStyle] textBaseline is not supported by HTMLText")}get textBaseline(){return super.textBaseline}set leading(_){console.warn("[HTMLTextStyle] leading is not supported by HTMLText")}get leading(){return super.leading}set lineJoin(_){console.warn("[HTMLTextStyle] lineJoin is not supported by HTMLText")}get lineJoin(){return super.lineJoin}};_HTMLTextStyle.availableFonts={},_HTMLTextStyle.defaultOptions={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,padding:0,stroke:"black",strokeThickness:0,whiteSpace:"normal",wordWrap:!1,wordWrapWidth:100};let HTMLTextStyle=_HTMLTextStyle;const _HTMLText=class Et extends Sprite{constructor(_="",Y={}){super(Texture.EMPTY),this._text=null,this._style=null,this._autoResolution=!0,this.localStyleID=-1,this.dirty=!1,this._updateID=0,this.ownsStyle=!1;const ee=new Image,te=Texture.from(ee,{scaleMode:settings.SCALE_MODE,resourceOptions:{autoLoad:!1}});te.orig=new Rectangle,te.trim=new Rectangle,this.texture=te;const re="http://www.w3.org/2000/svg",ne="http://www.w3.org/1999/xhtml",ie=document.createElementNS(re,"svg"),se=document.createElementNS(re,"foreignObject"),ae=document.createElementNS(ne,"div"),ue=document.createElementNS(ne,"style");se.setAttribute("width","10000"),se.setAttribute("height","10000"),se.style.overflow="hidden",ie.appendChild(se),this.maxWidth=Et.defaultMaxWidth,this.maxHeight=Et.defaultMaxHeight,this._domElement=ae,this._styleElement=ue,this._svgRoot=ie,this._foreignObject=se,this._foreignObject.appendChild(ue),this._foreignObject.appendChild(ae),this._image=ee,this._loadImage=new Image,this._autoResolution=Et.defaultAutoResolution,this._resolution=Et.defaultResolution??settings.RESOLUTION,this.text=_,this.style=Y}measureText(_){var ue,oe;const{text:Y,style:ee,resolution:te}=Object.assign({text:this._text,style:this._style,resolution:this._resolution},_);Object.assign(this._domElement,{innerHTML:Y,style:ee.toCSS(te)}),this._styleElement.textContent=ee.toGlobalCSS(),document.body.appendChild(this._svgRoot);const re=this._domElement.getBoundingClientRect();this._svgRoot.remove();const{width:ne,height:ie}=re;(ne>this.maxWidth||ie>this.maxHeight)&&console.warn("[HTMLText] Large expanse of text, increase HTMLText.maxWidth or HTMLText.maxHeight property.");const se=Math.min(this.maxWidth,Math.ceil(ne)),ae=Math.min(this.maxHeight,Math.ceil(ie));return this._svgRoot.setAttribute("width",se.toString()),this._svgRoot.setAttribute("height",ae.toString()),Y!==this._text&&(this._domElement.innerHTML=this._text),ee!==this._style&&(Object.assign(this._domElement,{style:(ue=this._style)==null?void 0:ue.toCSS(te)}),this._styleElement.textContent=(oe=this._style)==null?void 0:oe.toGlobalCSS()),{width:se+ee.padding*2,height:ae+ee.padding*2}}async updateText(_=!0){const{style:Y,_image:ee,_loadImage:te}=this;if(this.localStyleID!==Y.styleID&&(this.dirty=!0,this.localStyleID=Y.styleID),!this.dirty&&_)return;const{width:re,height:ne}=this.measureText();ee.width=te.width=Math.ceil(Math.max(1,re)),ee.height=te.height=Math.ceil(Math.max(1,ne)),this._updateID++;const ie=this._updateID;await new Promise(se=>{te.onload=async()=>{if(ie/gi,"

").replace(/
/gi,"
").replace(/ /gi," ")}};_HTMLText.defaultDestroyOptions={texture:!0,children:!1,baseTexture:!0},_HTMLText.defaultMaxWidth=2024,_HTMLText.defaultMaxHeight=2024,_HTMLText.defaultAutoResolution=!0;let HTMLText=_HTMLText;var LayerLevel;(function(Z){Z[Z.AFTER=0]="AFTER",Z[Z.MIDDLE=1]="MIDDLE",Z[Z.BEFORE=2]="BEFORE"})(LayerLevel||(LayerLevel={}));class Layer{constructor(){be(this,"before",new Container$1);be(this,"middle",new Container$1);be(this,"after",new Container$1)}static getDisplayObjectSingle(_){return _ instanceof Layer?_.combine()[0]:_}static getDisplayObject(_){return _ instanceof Layer?_.combine():[_]}combine(){return[this.before,this.middle,this.after]}remove(_,Y="all"){if(Y==="all"){this.remove(_,LayerLevel.BEFORE),this.remove(_,LayerLevel.MIDDLE),this.remove(_,LayerLevel.AFTER);return}if(Array.isArray(_)){for(const ee of _)this.remove(ee,Y);return}this.combine()[Y].removeChild(...Layer.getDisplayObject(_))}add(_,Y=LayerLevel.MIDDLE){if(Array.isArray(_)){for(const ee of _)this.add(ee,Y);return}this.combine()[Y].addChild(...Layer.getDisplayObject(_))}addAt(_,Y,ee=LayerLevel.MIDDLE){this.combine()[ee].addChildAt(Layer.getDisplayObjectSingle(_),Y)}removeAt(_,Y=LayerLevel.MIDDLE){this.combine()[Y].removeChildAt(_)}has(_,Y="all"){return Y==="all"?this.has(_,LayerLevel.BEFORE)||this.has(_,LayerLevel.MIDDLE)||this.has(_,LayerLevel.AFTER):!!this.combine()[Y].children.find(ee=>ee===Layer.getDisplayObjectSingle(_))}findIndex(_,Y=LayerLevel.MIDDLE){return this.combine()[Y].children.findIndex(_)}listen(_,Y,ee="all"){if(ee==="all"){this.listen(_,Y,LayerLevel.BEFORE),this.listen(_,Y,LayerLevel.MIDDLE),this.listen(_,Y,LayerLevel.AFTER);return}this.combine()[ee].addEventListener(_,Y)}}const _DRIVE_LETTER_START_RE=/^[A-Za-z]:\//;function normalizeWindowsPath(Z=""){return Z&&Z.replace(/\\/g,"/").replace(_DRIVE_LETTER_START_RE,_=>_.toUpperCase())}const _UNC_REGEX=/^[/\\]{2}/,_IS_ABSOLUTE_RE=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,_DRIVE_LETTER_RE=/^[A-Za-z]:$/,_ROOT_FOLDER_RE=/^\/([A-Za-z]:)?$/,sep="/",delimiter=":",normalize=function(Z){if(Z.length===0)return".";Z=normalizeWindowsPath(Z);const _=Z.match(_UNC_REGEX),Y=isAbsolute(Z),ee=Z[Z.length-1]==="/";return Z=normalizeString(Z,!Y),Z.length===0?Y?"/":ee?"./":".":(ee&&(Z+="/"),_DRIVE_LETTER_RE.test(Z)&&(Z+="/"),_?Y?`//${Z}`:`//./${Z}`:Y&&!isAbsolute(Z)?`/${Z}`:Z)},join=function(...Z){if(Z.length===0)return".";let _;for(const Y of Z)Y&&Y.length>0&&(_===void 0?_=Y:_+=`/${Y}`);return _===void 0?".":normalize(_.replace(/\/\/+/g,"/"))};function cwd(){return typeof process<"u"&&typeof process.cwd=="function"?process.cwd().replace(/\\/g,"/"):"/"}const resolve=function(...Z){Z=Z.map(ee=>normalizeWindowsPath(ee));let _="",Y=!1;for(let ee=Z.length-1;ee>=-1&&!Y;ee--){const te=ee>=0?Z[ee]:cwd();!te||te.length===0||(_=`${te}/${_}`,Y=isAbsolute(te))}return _=normalizeString(_,!Y),Y&&!isAbsolute(_)?`/${_}`:_.length>0?_:"."};function normalizeString(Z,_){let Y="",ee=0,te=-1,re=0,ne=null;for(let ie=0;ie<=Z.length;++ie){if(ie2){const se=Y.lastIndexOf("/");se===-1?(Y="",ee=0):(Y=Y.slice(0,se),ee=Y.length-1-Y.lastIndexOf("/")),te=ie,re=0;continue}else if(Y.length>0){Y="",ee=0,te=ie,re=0;continue}}_&&(Y+=Y.length>0?"/..":"..",ee=2)}else Y.length>0?Y+=`/${Z.slice(te+1,ie)}`:Y=Z.slice(te+1,ie),ee=ie-te-1;te=ie,re=0}else ne==="."&&re!==-1?++re:re=-1}return Y}const isAbsolute=function(Z){return _IS_ABSOLUTE_RE.test(Z)},toNamespacedPath=function(Z){return normalizeWindowsPath(Z)},_EXTNAME_RE=/.(\.[^./]+)$/,extname=function(Z){const _=_EXTNAME_RE.exec(normalizeWindowsPath(Z));return _&&_[1]||""},relative=function(Z,_){const Y=resolve(Z).replace(_ROOT_FOLDER_RE,"$1").split("/"),ee=resolve(_).replace(_ROOT_FOLDER_RE,"$1").split("/");if(ee[0][1]===":"&&Y[0][1]===":"&&Y[0]!==ee[0])return ee.join("/");const te=[...Y];for(const re of te){if(ee[0]!==re)break;Y.shift(),ee.shift()}return[...Y.map(()=>".."),...ee].join("/")},dirname=function(Z){const _=normalizeWindowsPath(Z).replace(/\/$/,"").split("/").slice(0,-1);return _.length===1&&_DRIVE_LETTER_RE.test(_[0])&&(_[0]+="/"),_.join("/")||(isAbsolute(Z)?"/":".")},format=function(Z){const _=[Z.root,Z.dir,Z.base??Z.name+Z.ext].filter(Boolean);return normalizeWindowsPath(Z.root?resolve(..._):_.join("/"))},basename=function(Z,_){const Y=normalizeWindowsPath(Z).split("/").pop();return _&&Y.endsWith(_)?Y.slice(0,-_.length):Y},parse$1=function(Z){const _=normalizeWindowsPath(Z).split("/").shift()||"/",Y=basename(Z),ee=extname(Y);return{root:_,dir:dirname(Z),base:Y,ext:ee,name:Y.slice(0,Y.length-ee.length)}},path={__proto__:null,basename,delimiter,dirname,extname,format,isAbsolute,join,normalize,normalizeString,parse:parse$1,relative,resolve,sep,toNamespacedPath};class Controller{constructor(_){be(this,"IS_PORTRAIT",window.innerHeight>window.innerWidth);be(this,"STANDARD_ASPECT",[1920,1080]);be(this,"ctx");be(this,"app");be(this,"pages",{});be(this,"layer",new Layer);this.ctx=_;const{width:Y,height:ee}=this.getAspect();this.app=new Application({width:Y,height:ee,antialias:!0,resolution:1,...this.ctx.config.render??{}}),this.IS_PORTRAIT?(this.app.stage.rotation=Math.PI/2,this.app.stage.position.x=Y,this.app.stage.scale.set(ee/this.STANDARD_ASPECT[0],Y/this.STANDARD_ASPECT[1])):this.app.stage.scale.set(Y/this.STANDARD_ASPECT[0],ee/this.STANDARD_ASPECT[1]),this.app.stage.addChild(...this.layer.combine()),this.ctx.on("ready",()=>{const te=Date.now();window.addEventListener("resize",()=>{te&&Date.now()-te<=300||(this.ctx.store.setLastPage(this.getCurrentPage()),window.location="")}),this.listen("contextmenu",ne=>ne.preventDefault()),this.listen("keydown",ne=>{ne.key==="F5"&&ne.preventDefault()}),this.ctx.config.element.appendChild(this.app.view);const re=this.ctx.store.getLastPage();if(re.length===0){this.pages.home.setActive();return}this.clear();for(const ne of re)this.pages[ne].setActive();this.ctx.store.setLastPage([])})}getAspect(){const _=this.STANDARD_ASPECT[0]/this.STANDARD_ASPECT[1];let Y=window.innerWidth,ee=window.innerHeight;return this.IS_PORTRAIT&&([Y,ee]=[ee,Y]),Y/ee>_?Y=ee*_:ee=Y/_,this.IS_PORTRAIT&&([Y,ee]=[ee,Y]),{width:Y,height:ee}}getCurrentPage(){return Object.entries(this.pages).filter(([,_])=>_.getActive()).map(([_])=>_)}listen(_,Y,ee){this.ctx.config.element.addEventListener(_,te=>Y(te),ee)}clear(){for(const _ of Object.values(this.pages))_.getActive()&&_.setActive(!1)}width(){return this.STANDARD_ASPECT[0]}height(){return this.STANDARD_ASPECT[1]}path(_,...Y){const ee=this.ctx.config.basedir[_];let te=path.join(...Y);return te=te.charAt(0)==="/"?te:path.join(ee,te),ee===this.ctx.config.basedir.scripts&&(path.basename(te)===""?te=path.join(te,this.ctx.config.entry):[".mrs",".txt"].includes(path.extname(te))||(te+=".mrs")),te}}var dist$3={exports:{}},context$1={exports:{}},__defProp$H=Object.defineProperty,__getOwnPropDesc$F=Object.getOwnPropertyDescriptor,__getOwnPropNames$F=Object.getOwnPropertyNames,__hasOwnProp$F=Object.prototype.hasOwnProperty,__export$A=(Z,_)=>{for(var Y in _)__defProp$H(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$F=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$F(_))!__hasOwnProp$F.call(Z,te)&&te!==Y&&__defProp$H(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$F(_,te))||ee.enumerable});return Z},__toCommonJS$F=Z=>__copyProps$F(__defProp$H({},"__esModule",{value:!0}),Z),tokens_exports={};__export$A(tokens_exports,{Tokens:()=>Tokens,default:()=>tokens_default});var tokens=__toCommonJS$F(tokens_exports);class Tokens{}be(Tokens,"container",Symbol.for("fluoro.context.container")),be(Tokens,"tracker",Symbol.for("fluoro.context.tracker")),be(Tokens,"record",Symbol.for("fluoro.context.record"));var tokens_default=Tokens,__defProp$G=Object.defineProperty,__getOwnPropDesc$E=Object.getOwnPropertyDescriptor,__getOwnPropNames$E=Object.getOwnPropertyNames,__hasOwnProp$E=Object.prototype.hasOwnProperty,__export$z=(Z,_)=>{for(var Y in _)__defProp$G(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$E=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$E(_))!__hasOwnProp$E.call(Z,te)&&te!==Y&&__defProp$G(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$E(_,te))||ee.enumerable});return Z},__toCommonJS$E=Z=>__copyProps$E(__defProp$G({},"__esModule",{value:!0}),Z),events_exports={};__export$z(events_exports,{Events:()=>Events,default:()=>events_default});var events=__toCommonJS$E(events_exports);class Events{constructor(){be(this,"list",new Map)}emit(_,...Y){const ee=this.list.get(_);if(ee)for(const te of ee)te(...Y)}async parallel(_,...Y){const ee=this.list.get(_);ee&&await Promise.all(Array.from(ee).map(te=>new Promise(()=>{te(...Y)})))}on(_,Y){var ee;this.list.has(_)||this.list.set(_,new Set),(ee=this.list.get(_))==null||ee.add(Y)}once(_,Y){const ee=(...te)=>(this.off(_,ee),Y(...te));this.on(_,ee)}off(_,Y){var ee;this.list.has(_)&&((ee=this.list.get(_))==null||ee.delete(Y))}offAll(_){this.list.has(_)&&this.list.delete(_)}}var events_default=Events,__defProp$F=Object.defineProperty,__getOwnPropDesc$D=Object.getOwnPropertyDescriptor,__getOwnPropNames$D=Object.getOwnPropertyNames,__hasOwnProp$D=Object.prototype.hasOwnProperty,__export$y=(Z,_)=>{for(var Y in _)__defProp$F(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$D=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$D(_))!__hasOwnProp$D.call(Z,te)&&te!==Y&&__defProp$F(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$D(_,te))||ee.enumerable});return Z},__toCommonJS$D=Z=>__copyProps$D(__defProp$F({},"__esModule",{value:!0}),Z),service_exports={};__export$y(service_exports,{Service:()=>Service$1,default:()=>service_default});var service=__toCommonJS$D(service_exports);let Service$1=class{constructor(_,Y,ee){be(this,"ctx");be(this,"config");be(this,"identity");this.ctx=_,this.config=Y,this.identity=ee}start(){}stop(){}};var service_default=Service$1,__defProp$E=Object.defineProperty,__getOwnPropDesc$C=Object.getOwnPropertyDescriptor,__getOwnPropNames$C=Object.getOwnPropertyNames,__hasOwnProp$C=Object.prototype.hasOwnProperty,__export$x=(Z,_)=>{for(var Y in _)__defProp$E(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$C=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$C(_))!__hasOwnProp$C.call(Z,te)&&te!==Y&&__defProp$E(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$C(_,te))||ee.enumerable});return Z},__toCommonJS$C=Z=>__copyProps$C(__defProp$E({},"__esModule",{value:!0}),Z),modules_exports={};__export$x(modules_exports,{Modules:()=>Modules,default:()=>modules_default});var modules=__toCommonJS$C(modules_exports),import_tokens$1=tokens,import_service=service;function handleFunction(Z,_,Y){Z(_,Y)}function handleConstructor(Z,_,Y){new Z(_,Y)}const DEFAULT_MODULE_CONFIG={filter:{}};function isClass$1(Z,_=!0){if(typeof Z!="function")return!1;const Y=Z.toString();return Z.prototype===void 0||Z.prototype.constructor!==Z?!1:Y.slice(0,5)==="class"||Object.getOwnPropertyNames(Z.prototype).length>=2?!0:/^function\s+\(|^function\s+anonymous\(/.test(Y)?!1:_&&/^function\s+[A-Z]/.test(Y)?!0:/\b\(this\b|\bthis[.[]\b/.test(Y)?!_||/classCallCheck\(this/.test(Y)?!0:/^function\sdefault_\d+\s*\(/.test(Y):!1}class Modules{constructor(_){be(this,"ctx");this.ctx=_}load(_){const Y=this.ctx.extends((typeof _=="object"?_.name:void 0)??this.ctx.identity),ee=ae=>{for(const ue of ae){const oe=Array.from(Y[import_tokens$1.Tokens.container]).find(([,le])=>le instanceof import_service.Service&&le.identity===ue);oe&&Y.inject(oe[0])}};if(_ instanceof Function){isClass$1(_)?handleConstructor(_,Y,DEFAULT_MODULE_CONFIG):handleFunction(_,Y,DEFAULT_MODULE_CONFIG),this.ctx.emit("ready_module",{instance:_});return}const{main:te,Main:re,inject:ne,default:ie,config:se}=_;if(ne&&ee(ne),ie&&isClass$1(ie)){const{inject:ae}=ie;ae&&ee(ae),handleConstructor(ie,Y,se??DEFAULT_MODULE_CONFIG)}else if(ie&&!isClass$1(ie))handleFunction(ie,Y,se??DEFAULT_MODULE_CONFIG);else if(te)handleFunction(te,Y,se??DEFAULT_MODULE_CONFIG);else if(re){const{inject:ae}=re;ae&&ee(ae),handleConstructor(re,Y,se??DEFAULT_MODULE_CONFIG)}this.ctx.emit("ready_module",{instance:_})}unload(_){this.ctx.emit("dispose_module",{instance:_})}service(_,Y){this.ctx.provide(_,Y),this.ctx.on("ready",()=>this.ctx.get(_).start()),this.ctx.on("dispose",()=>this.ctx.get(_).stop())}}var modules_default=Modules,__create$b=Object.create,__defProp$D=Object.defineProperty,__getOwnPropDesc$B=Object.getOwnPropertyDescriptor,__getOwnPropNames$B=Object.getOwnPropertyNames,__getProtoOf$b=Object.getPrototypeOf,__hasOwnProp$B=Object.prototype.hasOwnProperty,__export$w=(Z,_)=>{for(var Y in _)__defProp$D(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$B=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$B(_))!__hasOwnProp$B.call(Z,te)&&te!==Y&&__defProp$D(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$B(_,te))||ee.enumerable});return Z},__toESM$b=(Z,_,Y)=>(Y=Z!=null?__create$b(__getProtoOf$b(Z)):{},__copyProps$B(!Z||!Z.__esModule?__defProp$D(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$B=Z=>__copyProps$B(__defProp$D({},"__esModule",{value:!0}),Z),context_exports={};__export$w(context_exports,{Context:()=>Context$1,default:()=>context_default});var context=__toCommonJS$B(context_exports),import_tokens=__toESM$b(tokens),import_events=events,import_modules=__toESM$b(modules);const DEFAULT_EXTENDS_NAME="sub";function isExistsContext(Z){return Z instanceof Object&&"ctx"in Z&&Z.ctx instanceof Context$1}function mountObject(Z,_){return isExistsContext(Z)?new Proxy(Z,{get(Y,ee,te){return ee==="ctx"?_:Reflect.get(Y,ee,te)}}):Z}var Xt,Zt,Jt,St;let Context$1=(Jt=import_tokens.default.container,Zt=import_tokens.default.tracker,Xt=import_tokens.default.record,St=class{constructor(_,Y){be(this,Jt,new Map);be(this,Zt,new Map);be(this,Xt,new Set);be(this,"identity");be(this,"root",this);be(this,"parent");this.root=_?_.root:this,this.parent=_,this.identity=Y,this.parent&&(Object.setPrototypeOf(this,this.parent),this[import_tokens.default.container]=new Map(this.parent[import_tokens.default.container]),this[import_tokens.default.tracker]=new Map(this.parent[import_tokens.default.tracker]));for(const[ee,te]of this[import_tokens.default.tracker]){if(te!==void 0){const re=this.get(te);isExistsContext(re)&&this.mixin(te,[ee],!0);continue}isExistsContext(this[ee])&&this.inject(ee,!0)}for(const ee of this[import_tokens.default.container].values())mountObject(ee,this);this.provide("events",_?_.get("events"):new import_events.Events),this.mixin("events",["emit","on","once","off","offAll"]),this.provide("modules",new import_modules.default(this)),this.mixin("modules",["load","unload","service"])}get(_){const Y=this[import_tokens.default.container].get(_);return Y&&mountObject(Y,this)}inject(_,Y=!1){return!Y&&(this[_]||!this[import_tokens.default.container].has(_))?!1:(this[_]=mountObject(this.get(_),this),this[import_tokens.default.tracker].set(_,void 0),!0)}provide(_,Y){return this[import_tokens.default.container].has(_)?!1:(this[import_tokens.default.container].set(_,Y),!0)}mixin(_,Y,ee=!1){var ne;const te=this.get(_);if(!te)return!1;let re=!0;for(const ie of Y){if(!ee&&(this[ie]||!te[ie])){re=!1;continue}this[ie]=mountObject(typeof te[ie]=="function"?(ne=te[ie])==null?void 0:ne.bind(te):te[ie],this),this[import_tokens.default.tracker].set(ie,_)}return re}extends(_,Y){const ee=(typeof _=="string"||typeof _=="symbol"?_:Y)??this.identity??DEFAULT_EXTENDS_NAME,te=new St(this,ee);return this[import_tokens.default.record].add(te),te}find(_,Y="both"){if(_===this.identity)return this;if(Y==="down"||Y==="both"){const ee=Array.from(this[import_tokens.default.record]).find(te=>_===te.identity||te.find(_,"down"));if(ee)return ee}if((Y==="up"||Y==="both")&&this.parent){if(_===this.parent.identity)return this.parent;const ee=this.parent.find(_,"up");if(ee)return ee}}},St);var context_default=Context$1;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,context,Z.exports),ne(se,events,Z.exports),ne(se,modules,Z.exports),ne(se,service,Z.exports),ne(se,tokens,Z.exports)})(context$1);var contextExports=context$1.exports;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(le,ce)=>{for(var he in ce)_(le,he,{get:ce[he],enumerable:!0})},ne=(le,ce,he,fe)=>{if(ce&&typeof ce=="object"||typeof ce=="function")for(let de of ee(ce))!te.call(le,de)&&de!==he&&_(le,de,{get:()=>ce[de],enumerable:!(fe=Y(ce,de))||fe.enumerable});return le},ie=(le,ce,he)=>(ne(le,ce,"default"),he&&ne(he,ce,"default")),se=le=>ne(_({},"__esModule",{value:!0}),le),ae={};re(ae,{default:()=>oe}),Z.exports=se(ae);var ue=contextExports;ie(ae,contextExports,Z.exports);var oe=ue.Context})(dist$3);var distExports=dist$3.exports;const FluoroContext=getDefaultExportFromCjs(distExports);function isPlainObject$1(Z){if(Z===null||typeof Z!="object")return!1;const _=Object.getPrototypeOf(Z);return _!==null&&_!==Object.prototype&&Object.getPrototypeOf(_)!==null||Symbol.iterator in Z?!1:Symbol.toStringTag in Z?Object.prototype.toString.call(Z)==="[object Module]":!0}function _defu(Z,_,Y=".",ee){if(!isPlainObject$1(_))return _defu(Z,{},Y,ee);const te=Object.assign({},_);for(const re in Z){if(re==="__proto__"||re==="constructor")continue;const ne=Z[re];ne!=null&&(ee&&ee(te,re,ne,Y)||(Array.isArray(ne)&&Array.isArray(te[re])?te[re]=[...ne,...te[re]]:isPlainObject$1(ne)&&isPlainObject$1(te[re])?te[re]=_defu(ne,te[re],(Y?`${Y}.`:"")+re.toString(),ee):te[re]=ne))}return te}function createDefu(Z){return(..._)=>_.reduce((Y,ee)=>_defu(Y,ee,"",Z),{})}const defu=createDefu(),DEFAULT_CORE_OPTION={entry:"main.mrs",element:document.body,styles:{background:"/gui/dialog/background.png",dialog:"/gui/dialog/dialog.png",dialogX:1,dialogY:768,dialogNameX:160,dialogNameY:768,dialogNameSize:47,dialogMsgX:96,dialogMsgY:843,dialogMsgWrap:1728,dialogMsgSize:39,margin:48,characterHeight:718},render:{},basedir:{fonts:"/fonts",scripts:"/scripts",background:"/images/background",figure:"/images/figure",voice:"/audio/voice",music:"/audio/music",sound:"/audio/sound"}};let Config$1=class{constructor(_){be(this,"config");this.config=defu(_,DEFAULT_CORE_OPTION)}};async function preload(Z){Z.length!==0&&await Assets.load(Z)}async function loadAssets(Z,_){const Y=await Assets.load(Z);if(!_)return new Sprite(Y);const ee=new Sprite(Y);for(const te in _){const re=te;ee[re]=_[re]}return ee}class Page{constructor(_){be(this,"isLoadOnce",!1);be(this,"layer",new Layer);be(this,"ctx");this.ctx=_,this.init()}loadOnce(){}load(){}dispose(){}getActive(_=!1){return this.ctx.layer.has(this.layer,"all")&&(!_||Object.values(this.ctx.pages).filter(ee=>ee.getActive()).length===1)}setActive(_=!0,Y=!0){if(_){const ee=Object.entries(this.ctx.pages).filter(([,re])=>re.getActive()),te=ee.length>0?ee[ee.length-1][0]:void 0;te&&this.ctx.store.setHistoryPage(te),Y&&this.ctx.clear(),this.ctx.layer.add(this.layer,this.level),this.isLoadOnce||(this.loadOnce(),this.isLoadOnce=!0),this.load()}else this.ctx.layer.remove(this.layer,this.level),this.dispose();this.ctx.emit("page_active_change",this)}getName(){var _;return((_=Object.entries(this.ctx.pages).find(([,Y])=>Y===this))==null?void 0:_[0])??"unknown"}once(_,Y){const ee=(...te)=>{if(this.getActive())return Y(...te);this.once(_,Y)};return this.ctx.once(_,ee),()=>this.ctx.off(_,ee)}listen(_,Y,ee){this.ctx.listen(_,te=>{this.getActive()&&Y(te)},ee)}}var dist$2={},Collector$1={};Object.defineProperty(Collector$1,"__esModule",{value:!0});Collector$1.Collector=void 0;class Collector{constructor(_){this.emit=(...Y)=>{_.emitCollecting(this,Y)}}}Collector$1.Collector=Collector;var CollectorArray$1={};Object.defineProperty(CollectorArray$1,"__esModule",{value:!0});CollectorArray$1.CollectorArray=void 0;const Collector_1$3=Collector$1;class CollectorArray extends Collector_1$3.Collector{constructor(){super(...arguments),this.result=[]}handleResult(_){return this.result.push(_),!0}getResult(){return this.result}reset(){this.result.length=0}}CollectorArray$1.CollectorArray=CollectorArray;var CollectorLast$1={};Object.defineProperty(CollectorLast$1,"__esModule",{value:!0});CollectorLast$1.CollectorLast=void 0;const Collector_1$2=Collector$1;class CollectorLast extends Collector_1$2.Collector{handleResult(_){return this.result=_,!0}getResult(){return this.result}reset(){delete this.result}}CollectorLast$1.CollectorLast=CollectorLast;var CollectorUntil0$1={};Object.defineProperty(CollectorUntil0$1,"__esModule",{value:!0});CollectorUntil0$1.CollectorUntil0=void 0;const Collector_1$1=Collector$1;class CollectorUntil0 extends Collector_1$1.Collector{constructor(){super(...arguments),this.result=!1}handleResult(_){return this.result=_,this.result}getResult(){return this.result}reset(){this.result=!1}}CollectorUntil0$1.CollectorUntil0=CollectorUntil0;var CollectorWhile0$1={};Object.defineProperty(CollectorWhile0$1,"__esModule",{value:!0});CollectorWhile0$1.CollectorWhile0=void 0;const Collector_1=Collector$1;class CollectorWhile0 extends Collector_1.Collector{constructor(){super(...arguments),this.result=!1}handleResult(_){return this.result=_,!this.result}getResult(){return this.result}reset(){this.result=!1}}CollectorWhile0$1.CollectorWhile0=CollectorWhile0;var Signal$1={},SignalConnection={};Object.defineProperty(SignalConnection,"__esModule",{value:!0});SignalConnection.SignalConnectionImpl=void 0;class SignalConnectionImpl{constructor(_,Y){this.link=_,this.parentCleanup=Y}disconnect(){return this.link!==null?(this.link.unlink(),this.link=null,this.parentCleanup(),this.parentCleanup=null,!0):!1}set enabled(_){this.link&&this.link.setEnabled(_)}get enabled(){return this.link!==null&&this.link.isEnabled()}}SignalConnection.SignalConnectionImpl=SignalConnectionImpl;var SignalLink$1={};Object.defineProperty(SignalLink$1,"__esModule",{value:!0});SignalLink$1.SignalLink=void 0;class SignalLink{constructor(_=null,Y=null,ee=0){this.enabled=!0,this.newLink=!1,this.callback=null,this.prev=_??this,this.next=Y??this,this.order=ee}isEnabled(){return this.enabled&&!this.newLink}setEnabled(_){this.enabled=_}unlink(){this.callback=null,this.next.prev=this.prev,this.prev.next=this.next}insert(_,Y){let ee=this.prev;for(;ee!==this&&!(ee.order<=Y);)ee=ee.prev;const te=new SignalLink(ee,ee.next,Y);return te.callback=_,ee.next=te,te.next.prev=te,te}}SignalLink$1.SignalLink=SignalLink;Object.defineProperty(Signal$1,"__esModule",{value:!0});Signal$1.Signal=void 0;const SignalConnection_1=SignalConnection,SignalLink_1=SignalLink$1;class Signal{constructor(){this.head=new SignalLink_1.SignalLink,this.hasNewLinks=!1,this.emitDepth=0,this.connectionsCount=0}getConnectionsCount(){return this.connectionsCount}hasConnections(){return this.connectionsCount>0}connect(_,Y=0){this.connectionsCount++;const ee=this.head.insert(_,Y);return this.emitDepth>0&&(this.hasNewLinks=!0,ee.newLink=!0),new SignalConnection_1.SignalConnectionImpl(ee,()=>this.decrementConnectionCount())}decrementConnectionCount(){this.connectionsCount--}disconnect(_){for(let Y=this.head.next;Y!==this.head;Y=Y.next)if(Y.callback===_)return this.decrementConnectionCount(),Y.unlink(),!0;return!1}disconnectAll(){for(;this.head.next!==this.head;)this.head.next.unlink();this.connectionsCount=0}emit(..._){this.emitDepth++;for(let Y=this.head.next;Y!==this.head;Y=Y.next)Y.isEnabled()&&Y.callback&&Y.callback.apply(null,_);this.emitDepth--,this.unsetNewLink()}emitCollecting(_,Y){this.emitDepth++;for(let ee=this.head.next;ee!==this.head;ee=ee.next)if(ee.isEnabled()&&ee.callback){const te=ee.callback.apply(null,Y);if(!_.handleResult(te))break}this.emitDepth--,this.unsetNewLink()}unsetNewLink(){if(this.hasNewLinks&&this.emitDepth===0){for(let _=this.head.next;_!==this.head;_=_.next)_.newLink=!1;this.hasNewLinks=!1}}}Signal$1.Signal=Signal;var SignalConnections$1={};Object.defineProperty(SignalConnections$1,"__esModule",{value:!0});SignalConnections$1.SignalConnections=void 0;class SignalConnections{constructor(){this.list=[]}add(_){this.list.push(_)}disconnectAll(){for(const _ of this.list)_.disconnect();this.list=[]}getCount(){return this.list.length}isEmpty(){return this.list.length===0}}SignalConnections$1.SignalConnections=SignalConnections;(function(Z){Object.defineProperty(Z,"__esModule",{value:!0}),Z.SignalConnections=Z.Signal=Z.CollectorWhile0=Z.CollectorUntil0=Z.CollectorLast=Z.CollectorArray=Z.Collector=void 0;var _=Collector$1;Object.defineProperty(Z,"Collector",{enumerable:!0,get:function(){return _.Collector}});var Y=CollectorArray$1;Object.defineProperty(Z,"CollectorArray",{enumerable:!0,get:function(){return Y.CollectorArray}});var ee=CollectorLast$1;Object.defineProperty(Z,"CollectorLast",{enumerable:!0,get:function(){return ee.CollectorLast}});var te=CollectorUntil0$1;Object.defineProperty(Z,"CollectorUntil0",{enumerable:!0,get:function(){return te.CollectorUntil0}});var re=CollectorWhile0$1;Object.defineProperty(Z,"CollectorWhile0",{enumerable:!0,get:function(){return re.CollectorWhile0}});var ne=Signal$1;Object.defineProperty(Z,"Signal",{enumerable:!0,get:function(){return ne.Signal}});var ie=SignalConnections$1;Object.defineProperty(Z,"SignalConnections",{enumerable:!0,get:function(){return ie.SignalConnections}})})(dist$2);var __defProp$C=Object.defineProperty,__defNormalProp$1=(Z,_,Y)=>_ in Z?__defProp$C(Z,_,{enumerable:!0,configurable:!0,writable:!0,value:Y}):Z[_]=Y,__publicField$1=(Z,_,Y)=>(__defNormalProp$1(Z,typeof _!="symbol"?_+"":_,Y),Y);class ButtonEvents{constructor(){__publicField$1(this,"_isMouseIn"),__publicField$1(this,"_isDown"),__publicField$1(this,"onDown"),__publicField$1(this,"onUp"),__publicField$1(this,"onUpOut"),__publicField$1(this,"onOut"),__publicField$1(this,"onPress"),__publicField$1(this,"onHover"),this.onPress=new dist$2.Signal,this.onDown=new dist$2.Signal,this.onUp=new dist$2.Signal,this.onHover=new dist$2.Signal,this.onOut=new dist$2.Signal,this.onUpOut=new dist$2.Signal}connectEvents(_){isMobile.any?(_.on("pointerdown",this.processDown,this),_.on("pointerup",this.processUp,this),_.on("pointerupoutside",this.processUpOut,this),_.on("pointerout",this.processOut,this),_.on("pointertap",this.processPress,this),_.on("pointerover",this.processOver,this)):(_.on("mousedown",this.processDown,this),_.on("mouseup",this.processUp,this),_.on("mouseupoutside",this.processUpOut,this),_.on("mouseout",this.processOut,this),_.on("click",this.processPress,this),_.on("mouseover",this.processOver,this))}disconnectEvents(_){isMobile.any?(_.off("pointerdown",this.processDown,this),_.off("pointerup",this.processUp,this),_.off("pointerupoutside",this.processUpOut,this),_.off("pointerout",this.processOut,this),_.off("pointertap",this.processPress,this),_.off("pointerover",this.processOver,this)):(_.off("mousedown",this.processDown,this),_.off("mouseup",this.processUp,this),_.off("mouseupoutside",this.processUpOut,this),_.off("mouseout",this.processOut,this),_.off("click",this.processPress,this),_.off("mouseover",this.processOver,this))}processDown(_){this._isDown=!0,this.onDown.emit(this,_),this.down(_)}processUp(_){this._isDown&&(this.onUp.emit(this,_),this.up(_)),this._isDown=!1}processUpOut(_){this._isDown&&(this.onUp.emit(this,_),this.onUpOut.emit(this,_),this.up(_),this.upOut(_)),this._isDown=!1}processOut(_){this._isMouseIn&&(this._isMouseIn=!1,this.onOut.emit(this,_),this.out(_))}processPress(_){this._isDown=!1,this.onPress.emit(this,_),this.press(_)}processOver(_){isMobile.any||(this._isMouseIn=!0,this.onHover.emit(this,_),this.hover(_))}down(_){}up(_){}upOut(_){}out(_){}press(_){}hover(_){}get isDown(){return this._isDown}}var __defProp$B=Object.defineProperty,__defNormalProp=(Z,_,Y)=>_ in Z?__defProp$B(Z,_,{enumerable:!0,configurable:!0,writable:!0,value:Y}):Z[_]=Y,__publicField=(Z,_,Y)=>(__defNormalProp(Z,_+"",Y),Y);class Button extends ButtonEvents{constructor(_){super(),__publicField(this,"_view"),_&&(this.view=_,this.enabled=!0)}set view(_){!!this._view&&this.disconnectEvents(this._view),this._view=_,this.connectEvents(this._view)}get view(){return this._view}set enabled(_){if(!this.view){console.error("Button view is not set. Please set it before enabling the button.");return}this.view.eventMode=_?"static":"auto",this.view.cursor=_?"pointer":"default",!_&&this.isDown&&this.processUp()}get enabled(){return this.view.eventMode==="static"}}function timeout(Z,_){const Y=setTimeout(()=>{Z(),clearTimeout(Y)},_);return()=>clearTimeout(Y)}function interval(Z,_){const Y=setInterval(()=>{Z()},_);return()=>clearInterval(Y)}function nextTick(Z){timeout(Z,0)}const DEFAULT_OPTIONS$2={style:{fill:2457},hoverStyle:{fill:3276},pressedStyle:{fill:3822}};class SpriteButton extends Button{constructor(Y,ee,te){super(new Container$1);be(this,"action");be(this,"options");be(this,"textView");be(this,"buttonBg",new Sprite);this.action=ee,this.options=defu(te,DEFAULT_OPTIONS$2),this.textView=new Text(Y,this.options.style),Y&&this.view.addChild(this.textView),preload([te==null?void 0:te.button,te==null?void 0:te.hoverButton,te==null?void 0:te.pressedButton].filter(re=>re!==void 0)).then(()=>{typeof this.options.button=="string"&&(this.textView.anchor.set(.5),this.buttonBg.texture=Texture.from(this.options.button),this.buttonBg.anchor.set(.5),this.view.removeChild(this.textView),this.view.addChild(this.buttonBg,this.textView))})}down(){this.options.pressedButton&&(this.buttonBg.texture=Texture.from(this.options.pressedButton)),this.textView.style={...this.textView.style,...this.options.pressedStyle},this.action("down")}up(){isMobile.any?(this.options.button&&(this.buttonBg.texture=Texture.from(this.options.button)),this.textView.style={...this.textView.style,...this.options.style}):(this.options.hoverButton&&(this.buttonBg.texture=Texture.from(this.options.hoverButton)),this.textView.style={...this.textView.style,...this.options.hoverStyle}),this.action("up")}upOut(){this.options.button&&(this.buttonBg.texture=Texture.from(this.options.button)),this.textView.style={...this.textView.style,...this.options.style},this.action("upOut")}out(){this.isDown||(this.options.button&&(this.buttonBg.texture=Texture.from(this.options.button)),this.textView.style={...this.textView.style,...this.options.style}),this.action("out")}press(){this.action("onPress"),nextTick(()=>{this.options.button&&(this.buttonBg.texture=Texture.from(this.options.button)),this.textView.style={...this.textView.style,...this.options.style}})}hover(){this.isDown||(this.options.hoverButton&&(this.buttonBg.texture=Texture.from(this.options.hoverButton)),this.textView.style={...this.textView.style,...this.options.hoverStyle}),this.action("hover")}}function createAutoLayout(Z,{pos:_,size:Y,spacing:ee=0,direction:te="row"},re){const ne=new Container$1;for(const[ie,se]of Z.entries()){const ae=re(se,ie),ue=(Y==null?void 0:Y.width)??("width"in ae?ae.width:0),oe=(Y==null?void 0:Y.height)??("height"in ae?ae.height:0);"anchor"in ae&&ae.anchor.set(.5,.5);const le=Z.length%2===0,ce=Math.floor((Z.length-1)/2);switch(te){case"row":ae.position.set(le?_[0]+(ie-ce)*(ue+ee)-(ue+ee)/2:_[0]+(ie-ce)*(ue+ee),_[1]);break;case"column":ae.position.set(_[0],le?_[1]+(ie-ce)*(oe+ee)-(oe+ee)/2:_[1]+(ie-ce)*(oe+ee));break;case"right":ae.position.set(_[0]+(ue+ee)*ie,_[1]);break;case"left":ae.position.set(_[0]-(ue+ee)*ie,_[1]);break;case"up":ae.position.set(_[0],_[1]-(oe+ee)*ie);break;case"down":ae.position.set(_[0],_[1]+(oe+ee)*ie);break}ne.addChild(ae)}return ne}class SidebarPageAbstract extends Page{constructor(Y,ee,te,re="/gui/home/background.png"){super(Y);be(this,"lightButton");be(this,"title");be(this,"buttonConfigList",[["FINAL",()=>{this.ctx.store.setDialogScript({entry:"final",line:0}),this.ctx.pages.dialog.setActive()}],["START",()=>{this.ctx.store.setDialogScript({entry:this.ctx.config.entry,line:0}),this.ctx.pages.dialog.setActive()}],["TITLE",()=>{this.ctx.pages.home.setActive()}],["CONTINUE",()=>{this.ctx.store.getDialogScript()&&this.ctx.pages.dialog.setActive()}],["LOAD",()=>{this.ctx.pages.load.setActive(!0)}],["SAVE",()=>{this.ctx.store.getDialogScript()&&this.ctx.pages.save.setActive()}],["EXTRA",()=>{this.ctx.pages.extra.setActive()}],["CONFIG",()=>{this.ctx.pages.config.setActive()}],["ABOUT",()=>{this.ctx.pages.about.setActive()}],["EXIT",()=>{this.ctx.emit("exit")}]]);be(this,"buttonLayout");be(this,"background");this.lightButton=ee,this.title=te,this.background=re,this.ctx.on("page_active_change",ne=>{ne===this&&(this.getActive()?this.preLoad():this.preDispose())})}async preLoad(){if(this.title){const ee=new HTMLText(`${this.title}`,{fontSize:65,fill:39423});ee.position.set(80,70),this.layer.add(ee,LayerLevel.BEFORE)}const Y={width:this.ctx.width(),height:this.ctx.height()};this.layer.add(this.background?[await loadAssets(this.background,Y),await loadAssets("/gui/home/foreground.png",Y)]:await loadAssets("/gui/home/foreground.png",Y),LayerLevel.AFTER),this.buttonLayout=createAutoLayout(this.buttonConfigList.filter(([ee])=>{switch(ee){case"FINAL":return this.ctx.store.getFinalPlot()&&this.ctx.pages.home.getActive();case"START":return this.ctx.pages.home.getActive();case"TITLE":return!this.ctx.pages.home.getActive();case"CONTINUE":return this.ctx.store.getDialogScript()&&(this.ctx.store.getHistoryPage().some(te=>["home","dialog"].includes(te))||this.ctx.pages.home.getActive());case"SAVE":return this.ctx.store.getDialogScript()&&this.ctx.store.getHistoryPage().includes("dialog");default:return["ABOUT","EXTRA"].includes(ee)?this.ctx.store.getHistoryPage().includes("home")||this.ctx.pages.home.getActive():!0}}),{pos:[120,420],spacing:20,direction:"down"},([ee,te])=>{const re=ee===this.lightButton;return new SpriteButton(ee,ne=>{ne==="onPress"&&!re&&te()},{style:{fontSize:43,fill:re?25855:46335},hoverStyle:{fill:re?25855:39423},pressedStyle:{fill:25855}}).view}),this.layer.add(this.buttonLayout)}preDispose(){var Y;(Y=this.buttonLayout)==null||Y.destroy()}}class AboutPage extends SidebarPageAbstract{constructor(Y){super(Y,"ABOUT","About");be(this,"level",LayerLevel.MIDDLE)}async init(){const Y=createAutoLayout(["Here are some producer's words","1.The project are developing and improving constantly.","2.Docs: https://avg.js.org","3.Github: https://github.com/biyuehu/misakura"],{direction:"down",pos:[1200,370],spacing:10},ee=>new Text(ee,{fill:15601937,fontSize:45}));this.layer.add(Y)}}class ConfigPage extends SidebarPageAbstract{constructor(Y){super(Y,"CONFIG","Config");be(this,"level",LayerLevel.MIDDLE)}async init(){}}var lib$1={exports:{}};/*! ***************************************************************************** +Copyright (C) Microsoft. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */var Reflect$1;(function(Z){(function(_){var Y=typeof globalThis=="object"?globalThis:typeof commonjsGlobal=="object"?commonjsGlobal:typeof self=="object"?self:typeof this=="object"?this:ie(),ee=te(Z);typeof Y.Reflect<"u"&&(ee=te(Y.Reflect,ee)),_(ee,Y),typeof Y.Reflect>"u"&&(Y.Reflect=Z);function te(se,ae){return function(ue,oe){Object.defineProperty(se,ue,{configurable:!0,writable:!0,value:oe}),ae&&ae(ue,oe)}}function re(){try{return Function("return this;")()}catch{}}function ne(){try{return(0,eval)("(function() { return this; })()")}catch{}}function ie(){return re()||ne()}})(function(_,Y){var ee=Object.prototype.hasOwnProperty,te=typeof Symbol=="function",re=te&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",ne=te&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",ie=typeof Object.create=="function",se={__proto__:[]}instanceof Array,ae=!ie&&!se,ue={create:ie?function(){return kt(Object.create(null))}:se?function(){return kt({__proto__:null})}:function(){return kt({})},has:ae?function(Ee,Oe){return ee.call(Ee,Oe)}:function(Ee,Oe){return Oe in Ee},get:ae?function(Ee,Oe){return ee.call(Ee,Oe)?Ee[Oe]:void 0}:function(Ee,Oe){return Ee[Oe]}},oe=Object.getPrototypeOf(Function),le=typeof Map=="function"&&typeof Map.prototype.entries=="function"?Map:lr(),ce=typeof Set=="function"&&typeof Set.prototype.entries=="function"?Set:ur(),he=typeof WeakMap=="function"?WeakMap:cr(),fe=te?Symbol.for("@reflect-metadata:registry"):void 0,de=sr(),pe=or(de);function _e(Ee,Oe,Fe,Be){if(Ne(Fe)){if(!Ke(Ee))throw new TypeError;if(!nt(Oe))throw new TypeError;return Ce(Ee,Oe)}else{if(!Ke(Ee))throw new TypeError;if(!Ye(Oe))throw new TypeError;if(!Ye(Be)&&!Ne(Be)&&!ze(Be))throw new TypeError;return ze(Be)&&(Be=void 0),Fe=Ze(Fe),xe(Ee,Oe,Fe,Be)}}_("decorate",_e);function me(Ee,Oe){function Fe(Be,qe){if(!Ye(Be))throw new TypeError;if(!Ne(qe)&&!dt(qe))throw new TypeError;$e(Ee,Oe,Be,qe)}return Fe}_("metadata",me);function ge(Ee,Oe,Fe,Be){if(!Ye(Fe))throw new TypeError;return Ne(Be)||(Be=Ze(Be)),$e(Ee,Oe,Fe,Be)}_("defineMetadata",ge);function ye(Ee,Oe,Fe){if(!Ye(Oe))throw new TypeError;return Ne(Fe)||(Fe=Ze(Fe)),ve(Ee,Oe,Fe)}_("hasMetadata",ye);function Ie(Ee,Oe,Fe){if(!Ye(Oe))throw new TypeError;return Ne(Fe)||(Fe=Ze(Fe)),Te(Ee,Oe,Fe)}_("hasOwnMetadata",Ie);function Se(Ee,Oe,Fe){if(!Ye(Oe))throw new TypeError;return Ne(Fe)||(Fe=Ze(Fe)),we(Ee,Oe,Fe)}_("getMetadata",Se);function Pe(Ee,Oe,Fe){if(!Ye(Oe))throw new TypeError;return Ne(Fe)||(Fe=Ze(Fe)),Re(Ee,Oe,Fe)}_("getOwnMetadata",Pe);function Ae(Ee,Oe){if(!Ye(Ee))throw new TypeError;return Ne(Oe)||(Oe=Ze(Oe)),Ue(Ee,Oe)}_("getMetadataKeys",Ae);function De(Ee,Oe){if(!Ye(Ee))throw new TypeError;return Ne(Oe)||(Oe=Ze(Oe)),Me(Ee,Oe)}_("getOwnMetadataKeys",De);function ke(Ee,Oe,Fe){if(!Ye(Oe))throw new TypeError;if(Ne(Fe)||(Fe=Ze(Fe)),!Ye(Oe))throw new TypeError;Ne(Fe)||(Fe=Ze(Fe));var Be=wt(Oe,Fe,!1);return Ne(Be)?!1:Be.OrdinaryDeleteMetadata(Ee,Oe,Fe)}_("deleteMetadata",ke);function Ce(Ee,Oe){for(var Fe=Ee.length-1;Fe>=0;--Fe){var Be=Ee[Fe],qe=Be(Oe);if(!Ne(qe)&&!ze(qe)){if(!nt(qe))throw new TypeError;Oe=qe}}return Oe}function xe(Ee,Oe,Fe,Be){for(var qe=Ee.length-1;qe>=0;--qe){var ut=Ee[qe],lt=ut(Oe,Fe,Be);if(!Ne(lt)&&!ze(lt)){if(!Ye(lt))throw new TypeError;Be=lt}}return Be}function ve(Ee,Oe,Fe){var Be=Te(Ee,Oe,Fe);if(Be)return!0;var qe=Nt(Oe);return ze(qe)?!1:ve(Ee,qe,Fe)}function Te(Ee,Oe,Fe){var Be=wt(Oe,Fe,!1);return Ne(Be)?!1:it(Be.OrdinaryHasOwnMetadata(Ee,Oe,Fe))}function we(Ee,Oe,Fe){var Be=Te(Ee,Oe,Fe);if(Be)return Re(Ee,Oe,Fe);var qe=Nt(Oe);if(!ze(qe))return we(Ee,qe,Fe)}function Re(Ee,Oe,Fe){var Be=wt(Oe,Fe,!1);if(!Ne(Be))return Be.OrdinaryGetOwnMetadata(Ee,Oe,Fe)}function $e(Ee,Oe,Fe,Be){var qe=wt(Fe,Be,!0);qe.OrdinaryDefineOwnMetadata(Ee,Oe,Fe,Be)}function Ue(Ee,Oe){var Fe=Me(Ee,Oe),Be=Nt(Ee);if(Be===null)return Fe;var qe=Ue(Be,Oe);if(qe.length<=0)return Fe;if(Fe.length<=0)return qe;for(var ut=new ce,lt=[],Je=0,je=Fe;Je=0&&je=this._keys.length?(this._index=-1,this._keys=Oe,this._values=Oe):this._index++,{value:Ge,done:!1}}return{value:void 0,done:!0}},Je.prototype.throw=function(je){throw this._index>=0&&(this._index=-1,this._keys=Oe,this._values=Oe),je},Je.prototype.return=function(je){return this._index>=0&&(this._index=-1,this._keys=Oe,this._values=Oe),{value:je,done:!0}},Je}(),Be=function(){function Je(){this._keys=[],this._values=[],this._cacheKey=Ee,this._cacheIndex=-2}return Object.defineProperty(Je.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),Je.prototype.has=function(je){return this._find(je,!1)>=0},Je.prototype.get=function(je){var Ge=this._find(je,!1);return Ge>=0?this._values[Ge]:void 0},Je.prototype.set=function(je,Ge){var He=this._find(je,!0);return this._values[He]=Ge,this},Je.prototype.delete=function(je){var Ge=this._find(je,!1);if(Ge>=0){for(var He=this._keys.length,We=Ge+1;We{for(var Y in _)__defProp$A(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$A=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$A(_))!__hasOwnProp$A.call(Z,te)&&te!==Y&&__defProp$A(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$A(_,te))||ee.enumerable});return Z},__toCommonJS$A=Z=>__copyProps$A(__defProp$A({},"__esModule",{value:!0}),Z),common_exports$1={};__export$v(common_exports$1,{Service:()=>Service});var common$4=__toCommonJS$A(common_exports$1),import_fluoro$1=distExports;const Service=import_fluoro$1.Service;var common$3={exports:{}},common$2={exports:{}},__defProp$z=Object.defineProperty,__getOwnPropDesc$z=Object.getOwnPropertyDescriptor,__getOwnPropNames$z=Object.getOwnPropertyNames,__hasOwnProp$z=Object.prototype.hasOwnProperty,__export$u=(Z,_)=>{for(var Y in _)__defProp$z(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$z=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$z(_))!__hasOwnProp$z.call(Z,te)&&te!==Y&&__defProp$z(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$z(_,te))||ee.enumerable});return Z},__toCommonJS$z=Z=>__copyProps$z(__defProp$z({},"__esModule",{value:!0}),Z),function_exports={};__export$u(function_exports,{isClass:()=>isClass,none:()=>none,regExpExecAll:()=>regExpExecAll,sleep:()=>sleep,stringFormat:()=>stringFormat,stringTemp:()=>stringTemp$1});var _function$1=__toCommonJS$z(function_exports);function none(...Z){Z.length.toString()}function isClass(Z,_=!0){if(typeof Z!="function")return!1;const Y=Z.toString();return Z.prototype===void 0||Z.prototype.constructor!==Z?!1:Y.slice(0,5)==="class"||Object.getOwnPropertyNames(Z.prototype).length>=2?!0:/^function\s+\(|^function\s+anonymous\(/.test(Y)?!1:_&&/^function\s+[A-Z]/.test(Y)?!0:/\b\(this\b|\bthis[.[]\b/.test(Y)?!_||/classCallCheck\(this/.test(Y)?!0:/^function\sdefault_\d+\s*\(/.test(Y):!1}function regExpExecAll(Z,_){if(!Z.global)return Z.exec(_);const Y=[];let ee=Z.exec(_);for(;ee;)Y.push(ee),ee=Z.exec(_);return Y.length===0?null:Y}function stringTemp$1(Z,_){const Y=Object.assign(_,{break:` +`});let ee=Z;for(const te of Object.keys(Y))typeof Y[te]!="string"&&(Y[te]=String(Y[te])),ee=ee.replaceAll(`%${te}%`,Y[te]);return ee}function stringFormat(Z,_){let Y=Z;return _.forEach((ee,te)=>{Y=Y.replaceAll(`{${te}}`,String(ee))}),Y}function sleep(Z){return new Promise(_=>setTimeout(()=>_(Z),Z))}var colors$1={exports:{}},__defProp$y=Object.defineProperty,__getOwnPropDesc$y=Object.getOwnPropertyDescriptor,__getOwnPropNames$y=Object.getOwnPropertyNames,__hasOwnProp$y=Object.prototype.hasOwnProperty,__export$t=(Z,_)=>{for(var Y in _)__defProp$y(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$y=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$y(_))!__hasOwnProp$y.call(Z,te)&&te!==Y&&__defProp$y(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$y(_,te))||ee.enumerable});return Z},__toCommonJS$y=Z=>__copyProps$y(__defProp$y({},"__esModule",{value:!0}),Z),utils_exports$1={};__export$t(utils_exports$1,{colorsIdentity:()=>colorsIdentity});var utils$3=__toCommonJS$y(utils_exports$1);const colorsIdentity=["reset","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright"];var adapters$1={exports:{}},__defProp$x=Object.defineProperty,__getOwnPropDesc$x=Object.getOwnPropertyDescriptor,__getOwnPropNames$x=Object.getOwnPropertyNames,__hasOwnProp$x=Object.prototype.hasOwnProperty,__export$s=(Z,_)=>{for(var Y in _)__defProp$x(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$x=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$x(_))!__hasOwnProp$x.call(Z,te)&&te!==Y&&__defProp$x(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$x(_,te))||ee.enumerable});return Z},__toCommonJS$x=Z=>__copyProps$x(__defProp$x({},"__esModule",{value:!0}),Z),terminal_exports={};__export$s(terminal_exports,{TerminalAdapter:()=>TerminalAdapter,colors:()=>colors,default:()=>terminal_default});var terminal=__toCommonJS$x(terminal_exports),import_utils$1=utils$3;const replaceClose=(Z,_,Y,ee,te=_.substring(0,Z)+ee,re=_.substring(Z+Y.length),ne=re.indexOf(Y))=>te+(ne<0?re:replaceClose(ne,re,Y,ee)),clearBleed=(Z,_,Y,ee,te)=>Z<0?Y+_+ee:Y+replaceClose(Z,_,ee,te)+ee,filterEmpty=(Z,_,Y=Z,ee=Z.length+1)=>te=>te||!(te===""||te===void 0)?clearBleed((""+te).indexOf(_,ee),te,Z,_,Y):"",init=(Z,_,Y)=>filterEmpty(`\x1B[${Z}m`,`\x1B[${_}m`,Y),colors={reset:init(0,0),bold:init(1,22,"\x1B[22m\x1B[1m"),dim:init(2,22,"\x1B[22m\x1B[2m"),italic:init(3,23),underline:init(4,24),inverse:init(7,27),hidden:init(8,28),strikethrough:init(9,29),black:init(30,39),red:init(31,39),green:init(32,39),yellow:init(33,39),blue:init(34,39),magenta:init(35,39),cyan:init(36,39),white:init(37,39),gray:init(90,39),bgBlack:init(40,49),bgRed:init(41,49),bgGreen:init(42,49),bgYellow:init(43,49),bgBlue:init(44,49),bgMagenta:init(45,49),bgCyan:init(46,49),bgWhite:init(47,49),blackBright:init(90,39),redBright:init(91,39),greenBright:init(92,39),yellowBright:init(93,39),blueBright:init(94,39),magentaBright:init(95,39),cyanBright:init(96,39),whiteBright:init(97,39),bgBlackBright:init(100,49),bgRedBright:init(101,49),bgGreenBright:init(102,49),bgYellowBright:init(103,49),bgBlueBright:init(104,49),bgMagentaBright:init(105,49),bgCyanBright:init(106,49),bgWhiteBright:init(107,49)};class TerminalAdapterOrigin{constructor(){be(this,"c",colors)}}const TerminalAdapter=new Proxy(TerminalAdapterOrigin,{construct(Z,_,Y){const{c:ee}=Reflect.construct(Z,_,Y),te={};for(const re of import_utils$1.colorsIdentity)te[re]=ee[re].bind(ee);return te}});var terminal_default=TerminalAdapter;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,terminal,Z.exports)})(adapters$1);var adaptersExports=adapters$1.exports,__defProp$w=Object.defineProperty,__getOwnPropDesc$w=Object.getOwnPropertyDescriptor,__getOwnPropNames$w=Object.getOwnPropertyNames,__hasOwnProp$w=Object.prototype.hasOwnProperty,__export$r=(Z,_)=>{for(var Y in _)__defProp$w(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$w=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$w(_))!__hasOwnProp$w.call(Z,te)&&te!==Y&&__defProp$w(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$w(_,te))||ee.enumerable});return Z},__toCommonJS$w=Z=>__copyProps$w(__defProp$w({},"__esModule",{value:!0}),Z),browser_exports={};__export$r(browser_exports,{BrowserAdapter:()=>BrowserAdapter,default:()=>browser_default});var browser=__toCommonJS$w(browser_exports),import_utils=utils$3;const cssStyles={reset:"color:inherit; background-color:inherit;",bold:"font-weight:bold;",dim:"opacity:0.5;",italic:"font-style:italic;",underline:"text-decoration:underline;",inverse:"color:#ffffff; background-color:#000000;",hidden:"visibility:hidden;",strikethrough:"text-decoration:line-through;",black:"color:#000000;",red:"color:#FF0000;",green:"color:#00FF00;",yellow:"color:#FFFF00;",blue:"color:#0000FF;",magenta:"color:#FF00FF;",cyan:"color:#00FFFF;",white:"color:#FFFFFF;",gray:"color:#808080;",bgBlack:"background-color:#000000;",bgRed:"background-color:#FF0000;",bgGreen:"background-color:#00FF00;",bgYellow:"background-color:#FFFF00;",bgBlue:"background-color:#0000FF;",bgMagenta:"background-color:#FF00FF;",bgCyan:"background-color:#00FFFF;",bgWhite:"background-color:#FFFFFF;",blackBright:"color:#1C1C1C;",redBright:"color:#FF5555;",greenBright:"color:#55FF55;",yellowBright:"color:#FFFF55;",blueBright:"color:#5555FF;",magentaBright:"color:#FF55FF;",cyanBright:"color:#55FFFF;",whiteBright:"color:#BBBBBB;",bgBlackBright:"background-color:#1C1C1C;",bgRedBright:"background-color:#FF5555;",bgGreenBright:"background-color:#55FF55;",bgYellowBright:"background-color:#FFFF55;",bgBlueBright:"background-color:#5555FF;",bgMagentaBright:"background-color:#FF55FF;",bgCyanBright:"background-color:#55FFFF;",bgWhiteBright:"background-color:#BBBBBB;"};class BrowserAdapterOrigin{constructor(_){be(this,"list");this.list={...cssStyles,..._}}dye(_){return Y=>`${Y}`}}const BrowserAdapter=new Proxy(BrowserAdapterOrigin,{construct(Z,_,Y){const ee=Reflect.construct(Z,_,Y),te={};for(const re of import_utils.colorsIdentity)te[re]=ee.dye(re);return te}});var browser_default=BrowserAdapter;(function(Z){var _=Object.create,Y=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyNames,re=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,ie=(_e,me)=>{for(var ge in me)Y(_e,ge,{get:me[ge],enumerable:!0})},se=(_e,me,ge,ye)=>{if(me&&typeof me=="object"||typeof me=="function")for(let Ie of te(me))!ne.call(_e,Ie)&&Ie!==ge&&Y(_e,Ie,{get:()=>me[Ie],enumerable:!(ye=ee(me,Ie))||ye.enumerable});return _e},ae=(_e,me,ge)=>(se(_e,me,"default"),ge&&se(ge,me,"default")),ue=(_e,me,ge)=>(ge=_e!=null?_(re(_e)):{},se(!_e||!_e.__esModule?Y(ge,"default",{value:_e,enumerable:!0}):ge,_e)),oe=_e=>se(Y({},"__esModule",{value:!0}),_e),le={};ie(le,{Colors:()=>de,default:()=>pe}),Z.exports=oe(le);var ce=utils$3,he=adaptersExports,fe=ue(browser);ae(le,utils$3,Z.exports),ae(le,adaptersExports,Z.exports);class de{constructor(me){be(this,"customRules");be(this,"c");"adapter"in me?(this.c=me.adapter,this.customRules=me.rules??{}):(this.c=me,this.customRules={})}parse(me){const ge=[...ce.colorsIdentity,...Object.keys(this.customRules),"clear"],ye=[];let Ie="",Se="";const Pe=()=>{if(Se){for(let ke=ye.length-1;ke>=0;ke--)Se=this.dye(Se,ye[ke]);Ie+=Se,Se=""}},Ae=new RegExp(`(<(${ge.join("|")})>||([^<]+))`,"g");let De=Ae.exec(me);for(;De!==null;){if(De[2])Pe(),ye.push(De[2]);else if(De[3]){if(Pe(),ye.pop()!==De[3])continue}else De[4]&&(Se+=De[4]);De=Ae.exec(me)}return Pe(),Ie}batch(me){return me.map(ge=>this.parse(ge))}dye(me,ge){return ge in this.c?this.c[ge](me):ge in this.customRules?this.customRules[ge](me):this.clear(me)}clear(me){return this.clear.toString(),me.replace(/(.*?)<\/clear>/g,"$1")}}(_e=>{function me(ye){return new _e(ye)}_e.createColor=me;const ge=me({adapter:globalThis.document?new fe.default:new he.TerminalAdapter});_e.parse=ge.parse.bind(ge),_e.batch=ge.batch.bind(ge),_e.dye=ge.dye.bind(ge),_e.clear=ge.clear.bind(ge)})(de||(de={}));var pe=de})(colors$1);var colorsExports=colors$1.exports;function bind(Z,_){return function(){return Z.apply(_,arguments)}}const{toString}=Object.prototype,{getPrototypeOf}=Object,kindOf=(Z=>_=>{const Y=toString.call(_);return Z[Y]||(Z[Y]=Y.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=Z=>(Z=Z.toLowerCase(),_=>kindOf(_)===Z),typeOfTest=Z=>_=>typeof _===Z,{isArray}=Array,isUndefined$1=typeOfTest("undefined");function isBuffer(Z){return Z!==null&&!isUndefined$1(Z)&&Z.constructor!==null&&!isUndefined$1(Z.constructor)&&isFunction(Z.constructor.isBuffer)&&Z.constructor.isBuffer(Z)}const isArrayBuffer=kindOfTest("ArrayBuffer");function isArrayBufferView(Z){let _;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?_=ArrayBuffer.isView(Z):_=Z&&Z.buffer&&isArrayBuffer(Z.buffer),_}const isString$1=typeOfTest("string"),isFunction=typeOfTest("function"),isNumber$2=typeOfTest("number"),isObject=Z=>Z!==null&&typeof Z=="object",isBoolean=Z=>Z===!0||Z===!1,isPlainObject=Z=>{if(kindOf(Z)!=="object")return!1;const _=getPrototypeOf(Z);return(_===null||_===Object.prototype||Object.getPrototypeOf(_)===null)&&!(Symbol.toStringTag in Z)&&!(Symbol.iterator in Z)},isDate$1=kindOfTest("Date"),isFile=kindOfTest("File"),isBlob=kindOfTest("Blob"),isFileList=kindOfTest("FileList"),isStream=Z=>isObject(Z)&&isFunction(Z.pipe),isFormData=Z=>{let _;return Z&&(typeof FormData=="function"&&Z instanceof FormData||isFunction(Z.append)&&((_=kindOf(Z))==="formdata"||_==="object"&&isFunction(Z.toString)&&Z.toString()==="[object FormData]"))},isURLSearchParams=kindOfTest("URLSearchParams"),[isReadableStream,isRequest,isResponse,isHeaders]=["ReadableStream","Request","Response","Headers"].map(kindOfTest),trim=Z=>Z.trim?Z.trim():Z.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(Z,_,{allOwnKeys:Y=!1}={}){if(Z===null||typeof Z>"u")return;let ee,te;if(typeof Z!="object"&&(Z=[Z]),isArray(Z))for(ee=0,te=Z.length;ee0;)if(te=Y[ee],_===te.toLowerCase())return te;return null}const _global=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:commonjsGlobal,isContextDefined=Z=>!isUndefined$1(Z)&&Z!==_global;function merge(){const{caseless:Z}=isContextDefined(this)&&this||{},_={},Y=(ee,te)=>{const re=Z&&findKey(_,te)||te;isPlainObject(_[re])&&isPlainObject(ee)?_[re]=merge(_[re],ee):isPlainObject(ee)?_[re]=merge({},ee):isArray(ee)?_[re]=ee.slice():_[re]=ee};for(let ee=0,te=arguments.length;ee(forEach(_,(te,re)=>{Y&&isFunction(te)?Z[re]=bind(te,Y):Z[re]=te},{allOwnKeys:ee}),Z),stripBOM=Z=>(Z.charCodeAt(0)===65279&&(Z=Z.slice(1)),Z),inherits=(Z,_,Y,ee)=>{Z.prototype=Object.create(_.prototype,ee),Z.prototype.constructor=Z,Object.defineProperty(Z,"super",{value:_.prototype}),Y&&Object.assign(Z.prototype,Y)},toFlatObject=(Z,_,Y,ee)=>{let te,re,ne;const ie={};if(_=_||{},Z==null)return _;do{for(te=Object.getOwnPropertyNames(Z),re=te.length;re-- >0;)ne=te[re],(!ee||ee(ne,Z,_))&&!ie[ne]&&(_[ne]=Z[ne],ie[ne]=!0);Z=Y!==!1&&getPrototypeOf(Z)}while(Z&&(!Y||Y(Z,_))&&Z!==Object.prototype);return _},endsWith=(Z,_,Y)=>{Z=String(Z),(Y===void 0||Y>Z.length)&&(Y=Z.length),Y-=_.length;const ee=Z.indexOf(_,Y);return ee!==-1&&ee===Y},toArray=Z=>{if(!Z)return null;if(isArray(Z))return Z;let _=Z.length;if(!isNumber$2(_))return null;const Y=new Array(_);for(;_-- >0;)Y[_]=Z[_];return Y},isTypedArray=(Z=>_=>Z&&_ instanceof Z)(typeof Uint8Array<"u"&&getPrototypeOf(Uint8Array)),forEachEntry=(Z,_)=>{const ee=(Z&&Z[Symbol.iterator]).call(Z);let te;for(;(te=ee.next())&&!te.done;){const re=te.value;_.call(Z,re[0],re[1])}},matchAll=(Z,_)=>{let Y;const ee=[];for(;(Y=Z.exec(_))!==null;)ee.push(Y);return ee},isHTMLForm=kindOfTest("HTMLFormElement"),toCamelCase=Z=>Z.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(Y,ee,te){return ee.toUpperCase()+te}),hasOwnProperty$1=(({hasOwnProperty:Z})=>(_,Y)=>Z.call(_,Y))(Object.prototype),isRegExp=kindOfTest("RegExp"),reduceDescriptors=(Z,_)=>{const Y=Object.getOwnPropertyDescriptors(Z),ee={};forEach(Y,(te,re)=>{let ne;(ne=_(te,re,Z))!==!1&&(ee[re]=ne||te)}),Object.defineProperties(Z,ee)},freezeMethods=Z=>{reduceDescriptors(Z,(_,Y)=>{if(isFunction(Z)&&["arguments","caller","callee"].indexOf(Y)!==-1)return!1;const ee=Z[Y];if(isFunction(ee)){if(_.enumerable=!1,"writable"in _){_.writable=!1;return}_.set||(_.set=()=>{throw Error("Can not rewrite read-only method '"+Y+"'")})}})},toObjectSet=(Z,_)=>{const Y={},ee=te=>{te.forEach(re=>{Y[re]=!0})};return isArray(Z)?ee(Z):ee(String(Z).split(_)),Y},noop=()=>{},toFiniteNumber=(Z,_)=>Z!=null&&Number.isFinite(Z=+Z)?Z:_,ALPHA="abcdefghijklmnopqrstuvwxyz",DIGIT="0123456789",ALPHABET={DIGIT,ALPHA,ALPHA_DIGIT:ALPHA+ALPHA.toUpperCase()+DIGIT},generateString=(Z=16,_=ALPHABET.ALPHA_DIGIT)=>{let Y="";const{length:ee}=_;for(;Z--;)Y+=_[Math.random()*ee|0];return Y};function isSpecCompliantForm(Z){return!!(Z&&isFunction(Z.append)&&Z[Symbol.toStringTag]==="FormData"&&Z[Symbol.iterator])}const toJSONObject=Z=>{const _=new Array(10),Y=(ee,te)=>{if(isObject(ee)){if(_.indexOf(ee)>=0)return;if(!("toJSON"in ee)){_[te]=ee;const re=isArray(ee)?[]:{};return forEach(ee,(ne,ie)=>{const se=Y(ne,te+1);!isUndefined$1(se)&&(re[ie]=se)}),_[te]=void 0,re}}return ee};return Y(Z,0)},isAsyncFn=kindOfTest("AsyncFunction"),isThenable=Z=>Z&&(isObject(Z)||isFunction(Z))&&isFunction(Z.then)&&isFunction(Z.catch),_setImmediate=((Z,_)=>Z?setImmediate:_?((Y,ee)=>(_global.addEventListener("message",({source:te,data:re})=>{te===_global&&re===Y&&ee.length&&ee.shift()()},!1),te=>{ee.push(te),_global.postMessage(Y,"*")}))(`axios@${Math.random()}`,[]):Y=>setTimeout(Y))(typeof setImmediate=="function",isFunction(_global.postMessage)),asap=typeof queueMicrotask<"u"?queueMicrotask.bind(_global):typeof process<"u"&&process.nextTick||_setImmediate;var utils$1$1={isArray,isArrayBuffer,isBuffer,isFormData,isArrayBufferView,isString:isString$1,isNumber:isNumber$2,isBoolean,isObject,isPlainObject,isReadableStream,isRequest,isResponse,isHeaders,isUndefined:isUndefined$1,isDate:isDate$1,isFile,isBlob,isRegExp,isFunction,isStream,isURLSearchParams,isTypedArray,isFileList,forEach,merge,extend,trim,stripBOM,inherits,toFlatObject,kindOf,kindOfTest,endsWith,toArray,forEachEntry,matchAll,isHTMLForm,hasOwnProperty:hasOwnProperty$1,hasOwnProp:hasOwnProperty$1,reduceDescriptors,freezeMethods,toObjectSet,toCamelCase,noop,toFiniteNumber,findKey,global:_global,isContextDefined,ALPHABET,generateString,isSpecCompliantForm,toJSONObject,isAsyncFn,isThenable,setImmediate:_setImmediate,asap};function AxiosError(Z,_,Y,ee,te){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=Z,this.name="AxiosError",_&&(this.code=_),Y&&(this.config=Y),ee&&(this.request=ee),te&&(this.response=te)}utils$1$1.inherits(AxiosError,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:utils$1$1.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const prototype$1=AxiosError.prototype,descriptors={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(Z=>{descriptors[Z]={value:Z}});Object.defineProperties(AxiosError,descriptors);Object.defineProperty(prototype$1,"isAxiosError",{value:!0});AxiosError.from=(Z,_,Y,ee,te,re)=>{const ne=Object.create(prototype$1);return utils$1$1.toFlatObject(Z,ne,function(se){return se!==Error.prototype},ie=>ie!=="isAxiosError"),AxiosError.call(ne,Z.message,_,Y,ee,te),ne.cause=Z,ne.name=Z.name,re&&Object.assign(ne,re),ne};var httpAdapter=null;function isVisitable(Z){return utils$1$1.isPlainObject(Z)||utils$1$1.isArray(Z)}function removeBrackets(Z){return utils$1$1.endsWith(Z,"[]")?Z.slice(0,-2):Z}function renderKey(Z,_,Y){return Z?Z.concat(_).map(function(te,re){return te=removeBrackets(te),!Y&&re?"["+te+"]":te}).join(Y?".":""):_}function isFlatArray(Z){return utils$1$1.isArray(Z)&&!Z.some(isVisitable)}const predicates=utils$1$1.toFlatObject(utils$1$1,{},null,function(_){return/^is[A-Z]/.test(_)});function toFormData(Z,_,Y){if(!utils$1$1.isObject(Z))throw new TypeError("target must be an object");_=_||new FormData,Y=utils$1$1.toFlatObject(Y,{metaTokens:!0,dots:!1,indexes:!1},!1,function(fe,de){return!utils$1$1.isUndefined(de[fe])});const ee=Y.metaTokens,te=Y.visitor||ue,re=Y.dots,ne=Y.indexes,se=(Y.Blob||typeof Blob<"u"&&Blob)&&utils$1$1.isSpecCompliantForm(_);if(!utils$1$1.isFunction(te))throw new TypeError("visitor must be a function");function ae(he){if(he===null)return"";if(utils$1$1.isDate(he))return he.toISOString();if(!se&&utils$1$1.isBlob(he))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return utils$1$1.isArrayBuffer(he)||utils$1$1.isTypedArray(he)?se&&typeof Blob=="function"?new Blob([he]):Buffer.from(he):he}function ue(he,fe,de){let pe=he;if(he&&!de&&typeof he=="object"){if(utils$1$1.endsWith(fe,"{}"))fe=ee?fe:fe.slice(0,-2),he=JSON.stringify(he);else if(utils$1$1.isArray(he)&&isFlatArray(he)||(utils$1$1.isFileList(he)||utils$1$1.endsWith(fe,"[]"))&&(pe=utils$1$1.toArray(he)))return fe=removeBrackets(fe),pe.forEach(function(me,ge){!(utils$1$1.isUndefined(me)||me===null)&&_.append(ne===!0?renderKey([fe],ge,re):ne===null?fe:fe+"[]",ae(me))}),!1}return isVisitable(he)?!0:(_.append(renderKey(de,fe,re),ae(he)),!1)}const oe=[],le=Object.assign(predicates,{defaultVisitor:ue,convertValue:ae,isVisitable});function ce(he,fe){if(!utils$1$1.isUndefined(he)){if(oe.indexOf(he)!==-1)throw Error("Circular reference detected in "+fe.join("."));oe.push(he),utils$1$1.forEach(he,function(pe,_e){(!(utils$1$1.isUndefined(pe)||pe===null)&&te.call(_,pe,utils$1$1.isString(_e)?_e.trim():_e,fe,le))===!0&&ce(pe,fe?fe.concat(_e):[_e])}),oe.pop()}}if(!utils$1$1.isObject(Z))throw new TypeError("data must be an object");return ce(Z),_}function encode$1(Z){const _={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(Z).replace(/[!'()~]|%20|%00/g,function(ee){return _[ee]})}function AxiosURLSearchParams(Z,_){this._pairs=[],Z&&toFormData(Z,this,_)}const prototype=AxiosURLSearchParams.prototype;prototype.append=function(_,Y){this._pairs.push([_,Y])};prototype.toString=function(_){const Y=_?function(ee){return _.call(this,ee,encode$1)}:encode$1;return this._pairs.map(function(te){return Y(te[0])+"="+Y(te[1])},"").join("&")};function encode(Z){return encodeURIComponent(Z).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(Z,_,Y){if(!_)return Z;const ee=Y&&Y.encode||encode,te=Y&&Y.serialize;let re;if(te?re=te(_,Y):re=utils$1$1.isURLSearchParams(_)?_.toString():new AxiosURLSearchParams(_,Y).toString(ee),re){const ne=Z.indexOf("#");ne!==-1&&(Z=Z.slice(0,ne)),Z+=(Z.indexOf("?")===-1?"?":"&")+re}return Z}class InterceptorManager{constructor(){this.handlers=[]}use(_,Y,ee){return this.handlers.push({fulfilled:_,rejected:Y,synchronous:ee?ee.synchronous:!1,runWhen:ee?ee.runWhen:null}),this.handlers.length-1}eject(_){this.handlers[_]&&(this.handlers[_]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(_){utils$1$1.forEach(this.handlers,function(ee){ee!==null&&_(ee)})}}var InterceptorManager$1=InterceptorManager,transitionalDefaults={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},URLSearchParams$1=typeof URLSearchParams<"u"?URLSearchParams:AxiosURLSearchParams,FormData$1=typeof FormData<"u"?FormData:null,Blob$1=typeof Blob<"u"?Blob:null,platform$1={isBrowser:!0,classes:{URLSearchParams:URLSearchParams$1,FormData:FormData$1,Blob:Blob$1},protocols:["http","https","file","blob","url","data"]};const hasBrowserEnv=typeof window<"u"&&typeof document<"u",hasStandardBrowserEnv=(Z=>hasBrowserEnv&&["ReactNative","NativeScript","NS"].indexOf(Z)<0)(typeof navigator<"u"&&navigator.product),hasStandardBrowserWebWorkerEnv=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",origin$1=hasBrowserEnv&&window.location.href||"http://localhost";var utils$2=Object.freeze({__proto__:null,hasBrowserEnv,hasStandardBrowserWebWorkerEnv,hasStandardBrowserEnv,origin:origin$1}),platform={...utils$2,...platform$1};function toURLEncodedForm(Z,_){return toFormData(Z,new platform.classes.URLSearchParams,Object.assign({visitor:function(Y,ee,te,re){return platform.isNode&&utils$1$1.isBuffer(Y)?(this.append(ee,Y.toString("base64")),!1):re.defaultVisitor.apply(this,arguments)}},_))}function parsePropPath(Z){return utils$1$1.matchAll(/\w+|\[(\w*)]/g,Z).map(_=>_[0]==="[]"?"":_[1]||_[0])}function arrayToObject(Z){const _={},Y=Object.keys(Z);let ee;const te=Y.length;let re;for(ee=0;ee=Y.length;return ne=!ne&&utils$1$1.isArray(te)?te.length:ne,se?(utils$1$1.hasOwnProp(te,ne)?te[ne]=[te[ne],ee]:te[ne]=ee,!ie):((!te[ne]||!utils$1$1.isObject(te[ne]))&&(te[ne]=[]),_(Y,ee,te[ne],re)&&utils$1$1.isArray(te[ne])&&(te[ne]=arrayToObject(te[ne])),!ie)}if(utils$1$1.isFormData(Z)&&utils$1$1.isFunction(Z.entries)){const Y={};return utils$1$1.forEachEntry(Z,(ee,te)=>{_(parsePropPath(ee),te,Y,0)}),Y}return null}function stringifySafely(Z,_,Y){if(utils$1$1.isString(Z))try{return(_||JSON.parse)(Z),utils$1$1.trim(Z)}catch(ee){if(ee.name!=="SyntaxError")throw ee}return(0,JSON.stringify)(Z)}const defaults={transitional:transitionalDefaults,adapter:["xhr","http","fetch"],transformRequest:[function(_,Y){const ee=Y.getContentType()||"",te=ee.indexOf("application/json")>-1,re=utils$1$1.isObject(_);if(re&&utils$1$1.isHTMLForm(_)&&(_=new FormData(_)),utils$1$1.isFormData(_))return te?JSON.stringify(formDataToJSON(_)):_;if(utils$1$1.isArrayBuffer(_)||utils$1$1.isBuffer(_)||utils$1$1.isStream(_)||utils$1$1.isFile(_)||utils$1$1.isBlob(_)||utils$1$1.isReadableStream(_))return _;if(utils$1$1.isArrayBufferView(_))return _.buffer;if(utils$1$1.isURLSearchParams(_))return Y.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),_.toString();let ie;if(re){if(ee.indexOf("application/x-www-form-urlencoded")>-1)return toURLEncodedForm(_,this.formSerializer).toString();if((ie=utils$1$1.isFileList(_))||ee.indexOf("multipart/form-data")>-1){const se=this.env&&this.env.FormData;return toFormData(ie?{"files[]":_}:_,se&&new se,this.formSerializer)}}return re||te?(Y.setContentType("application/json",!1),stringifySafely(_)):_}],transformResponse:[function(_){const Y=this.transitional||defaults.transitional,ee=Y&&Y.forcedJSONParsing,te=this.responseType==="json";if(utils$1$1.isResponse(_)||utils$1$1.isReadableStream(_))return _;if(_&&utils$1$1.isString(_)&&(ee&&!this.responseType||te)){const ne=!(Y&&Y.silentJSONParsing)&&te;try{return JSON.parse(_)}catch(ie){if(ne)throw ie.name==="SyntaxError"?AxiosError.from(ie,AxiosError.ERR_BAD_RESPONSE,this,null,this.response):ie}}return _}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:platform.classes.FormData,Blob:platform.classes.Blob},validateStatus:function(_){return _>=200&&_<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};utils$1$1.forEach(["delete","get","head","post","put","patch"],Z=>{defaults.headers[Z]={}});var defaults$1=defaults;const ignoreDuplicateOf=utils$1$1.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var parseHeaders=Z=>{const _={};let Y,ee,te;return Z&&Z.split(` +`).forEach(function(ne){te=ne.indexOf(":"),Y=ne.substring(0,te).trim().toLowerCase(),ee=ne.substring(te+1).trim(),!(!Y||_[Y]&&ignoreDuplicateOf[Y])&&(Y==="set-cookie"?_[Y]?_[Y].push(ee):_[Y]=[ee]:_[Y]=_[Y]?_[Y]+", "+ee:ee)}),_};const $internals=Symbol("internals");function normalizeHeader(Z){return Z&&String(Z).trim().toLowerCase()}function normalizeValue(Z){return Z===!1||Z==null?Z:utils$1$1.isArray(Z)?Z.map(normalizeValue):String(Z)}function parseTokens(Z){const _=Object.create(null),Y=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let ee;for(;ee=Y.exec(Z);)_[ee[1]]=ee[2];return _}const isValidHeaderName=Z=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(Z.trim());function matchHeaderValue(Z,_,Y,ee,te){if(utils$1$1.isFunction(ee))return ee.call(this,_,Y);if(te&&(_=Y),!!utils$1$1.isString(_)){if(utils$1$1.isString(ee))return _.indexOf(ee)!==-1;if(utils$1$1.isRegExp(ee))return ee.test(_)}}function formatHeader(Z){return Z.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(_,Y,ee)=>Y.toUpperCase()+ee)}function buildAccessors(Z,_){const Y=utils$1$1.toCamelCase(" "+_);["get","set","has"].forEach(ee=>{Object.defineProperty(Z,ee+Y,{value:function(te,re,ne){return this[ee].call(this,_,te,re,ne)},configurable:!0})})}class AxiosHeaders{constructor(_){_&&this.set(_)}set(_,Y,ee){const te=this;function re(ie,se,ae){const ue=normalizeHeader(se);if(!ue)throw new Error("header name must be a non-empty string");const oe=utils$1$1.findKey(te,ue);(!oe||te[oe]===void 0||ae===!0||ae===void 0&&te[oe]!==!1)&&(te[oe||se]=normalizeValue(ie))}const ne=(ie,se)=>utils$1$1.forEach(ie,(ae,ue)=>re(ae,ue,se));if(utils$1$1.isPlainObject(_)||_ instanceof this.constructor)ne(_,Y);else if(utils$1$1.isString(_)&&(_=_.trim())&&!isValidHeaderName(_))ne(parseHeaders(_),Y);else if(utils$1$1.isHeaders(_))for(const[ie,se]of _.entries())re(se,ie,ee);else _!=null&&re(Y,_,ee);return this}get(_,Y){if(_=normalizeHeader(_),_){const ee=utils$1$1.findKey(this,_);if(ee){const te=this[ee];if(!Y)return te;if(Y===!0)return parseTokens(te);if(utils$1$1.isFunction(Y))return Y.call(this,te,ee);if(utils$1$1.isRegExp(Y))return Y.exec(te);throw new TypeError("parser must be boolean|regexp|function")}}}has(_,Y){if(_=normalizeHeader(_),_){const ee=utils$1$1.findKey(this,_);return!!(ee&&this[ee]!==void 0&&(!Y||matchHeaderValue(this,this[ee],ee,Y)))}return!1}delete(_,Y){const ee=this;let te=!1;function re(ne){if(ne=normalizeHeader(ne),ne){const ie=utils$1$1.findKey(ee,ne);ie&&(!Y||matchHeaderValue(ee,ee[ie],ie,Y))&&(delete ee[ie],te=!0)}}return utils$1$1.isArray(_)?_.forEach(re):re(_),te}clear(_){const Y=Object.keys(this);let ee=Y.length,te=!1;for(;ee--;){const re=Y[ee];(!_||matchHeaderValue(this,this[re],re,_,!0))&&(delete this[re],te=!0)}return te}normalize(_){const Y=this,ee={};return utils$1$1.forEach(this,(te,re)=>{const ne=utils$1$1.findKey(ee,re);if(ne){Y[ne]=normalizeValue(te),delete Y[re];return}const ie=_?formatHeader(re):String(re).trim();ie!==re&&delete Y[re],Y[ie]=normalizeValue(te),ee[ie]=!0}),this}concat(..._){return this.constructor.concat(this,..._)}toJSON(_){const Y=Object.create(null);return utils$1$1.forEach(this,(ee,te)=>{ee!=null&&ee!==!1&&(Y[te]=_&&utils$1$1.isArray(ee)?ee.join(", "):ee)}),Y}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([_,Y])=>_+": "+Y).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(_){return _ instanceof this?_:new this(_)}static concat(_,...Y){const ee=new this(_);return Y.forEach(te=>ee.set(te)),ee}static accessor(_){const ee=(this[$internals]=this[$internals]={accessors:{}}).accessors,te=this.prototype;function re(ne){const ie=normalizeHeader(ne);ee[ie]||(buildAccessors(te,ne),ee[ie]=!0)}return utils$1$1.isArray(_)?_.forEach(re):re(_),this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);utils$1$1.reduceDescriptors(AxiosHeaders.prototype,({value:Z},_)=>{let Y=_[0].toUpperCase()+_.slice(1);return{get:()=>Z,set(ee){this[Y]=ee}}});utils$1$1.freezeMethods(AxiosHeaders);var AxiosHeaders$1=AxiosHeaders;function transformData(Z,_){const Y=this||defaults$1,ee=_||Y,te=AxiosHeaders$1.from(ee.headers);let re=ee.data;return utils$1$1.forEach(Z,function(ie){re=ie.call(Y,re,te.normalize(),_?_.status:void 0)}),te.normalize(),re}function isCancel(Z){return!!(Z&&Z.__CANCEL__)}function CanceledError(Z,_,Y){AxiosError.call(this,Z??"canceled",AxiosError.ERR_CANCELED,_,Y),this.name="CanceledError"}utils$1$1.inherits(CanceledError,AxiosError,{__CANCEL__:!0});function settle(Z,_,Y){const ee=Y.config.validateStatus;!Y.status||!ee||ee(Y.status)?Z(Y):_(new AxiosError("Request failed with status code "+Y.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(Y.status/100)-4],Y.config,Y.request,Y))}function parseProtocol(Z){const _=/^([-+\w]{1,25})(:?\/\/|:)/.exec(Z);return _&&_[1]||""}function speedometer(Z,_){Z=Z||10;const Y=new Array(Z),ee=new Array(Z);let te=0,re=0,ne;return _=_!==void 0?_:1e3,function(se){const ae=Date.now(),ue=ee[re];ne||(ne=ae),Y[te]=se,ee[te]=ae;let oe=re,le=0;for(;oe!==te;)le+=Y[oe++],oe=oe%Z;if(te=(te+1)%Z,te===re&&(re=(re+1)%Z),ae-ne<_)return;const ce=ue&&ae-ue;return ce?Math.round(le*1e3/ce):void 0}}function throttle(Z,_){let Y=0,ee=1e3/_,te,re;const ne=(ae,ue=Date.now())=>{Y=ue,te=null,re&&(clearTimeout(re),re=null),Z.apply(null,ae)};return[(...ae)=>{const ue=Date.now(),oe=ue-Y;oe>=ee?ne(ae,ue):(te=ae,re||(re=setTimeout(()=>{re=null,ne(te)},ee-oe)))},()=>te&&ne(te)]}const progressEventReducer=(Z,_,Y=3)=>{let ee=0;const te=speedometer(50,250);return throttle(re=>{const ne=re.loaded,ie=re.lengthComputable?re.total:void 0,se=ne-ee,ae=te(se),ue=ne<=ie;ee=ne;const oe={loaded:ne,total:ie,progress:ie?ne/ie:void 0,bytes:se,rate:ae||void 0,estimated:ae&&ie&&ue?(ie-ne)/ae:void 0,event:re,lengthComputable:ie!=null,[_?"download":"upload"]:!0};Z(oe)},Y)},progressEventDecorator=(Z,_)=>{const Y=Z!=null;return[ee=>_[0]({lengthComputable:Y,total:Z,loaded:ee}),_[1]]},asyncDecorator=Z=>(..._)=>utils$1$1.asap(()=>Z(..._));var isURLSameOrigin=platform.hasStandardBrowserEnv?function(){const _=/(msie|trident)/i.test(navigator.userAgent),Y=document.createElement("a");let ee;function te(re){let ne=re;return _&&(Y.setAttribute("href",ne),ne=Y.href),Y.setAttribute("href",ne),{href:Y.href,protocol:Y.protocol?Y.protocol.replace(/:$/,""):"",host:Y.host,search:Y.search?Y.search.replace(/^\?/,""):"",hash:Y.hash?Y.hash.replace(/^#/,""):"",hostname:Y.hostname,port:Y.port,pathname:Y.pathname.charAt(0)==="/"?Y.pathname:"/"+Y.pathname}}return ee=te(window.location.href),function(ne){const ie=utils$1$1.isString(ne)?te(ne):ne;return ie.protocol===ee.protocol&&ie.host===ee.host}}():function(){return function(){return!0}}(),cookies=platform.hasStandardBrowserEnv?{write(Z,_,Y,ee,te,re){const ne=[Z+"="+encodeURIComponent(_)];utils$1$1.isNumber(Y)&&ne.push("expires="+new Date(Y).toGMTString()),utils$1$1.isString(ee)&&ne.push("path="+ee),utils$1$1.isString(te)&&ne.push("domain="+te),re===!0&&ne.push("secure"),document.cookie=ne.join("; ")},read(Z){const _=document.cookie.match(new RegExp("(^|;\\s*)("+Z+")=([^;]*)"));return _?decodeURIComponent(_[3]):null},remove(Z){this.write(Z,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL(Z){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(Z)}function combineURLs(Z,_){return _?Z.replace(/\/?\/$/,"")+"/"+_.replace(/^\/+/,""):Z}function buildFullPath(Z,_){return Z&&!isAbsoluteURL(_)?combineURLs(Z,_):_}const headersToObject=Z=>Z instanceof AxiosHeaders$1?{...Z}:Z;function mergeConfig(Z,_){_=_||{};const Y={};function ee(ae,ue,oe){return utils$1$1.isPlainObject(ae)&&utils$1$1.isPlainObject(ue)?utils$1$1.merge.call({caseless:oe},ae,ue):utils$1$1.isPlainObject(ue)?utils$1$1.merge({},ue):utils$1$1.isArray(ue)?ue.slice():ue}function te(ae,ue,oe){if(utils$1$1.isUndefined(ue)){if(!utils$1$1.isUndefined(ae))return ee(void 0,ae,oe)}else return ee(ae,ue,oe)}function re(ae,ue){if(!utils$1$1.isUndefined(ue))return ee(void 0,ue)}function ne(ae,ue){if(utils$1$1.isUndefined(ue)){if(!utils$1$1.isUndefined(ae))return ee(void 0,ae)}else return ee(void 0,ue)}function ie(ae,ue,oe){if(oe in _)return ee(ae,ue);if(oe in Z)return ee(void 0,ae)}const se={url:re,method:re,data:re,baseURL:ne,transformRequest:ne,transformResponse:ne,paramsSerializer:ne,timeout:ne,timeoutMessage:ne,withCredentials:ne,withXSRFToken:ne,adapter:ne,responseType:ne,xsrfCookieName:ne,xsrfHeaderName:ne,onUploadProgress:ne,onDownloadProgress:ne,decompress:ne,maxContentLength:ne,maxBodyLength:ne,beforeRedirect:ne,transport:ne,httpAgent:ne,httpsAgent:ne,cancelToken:ne,socketPath:ne,responseEncoding:ne,validateStatus:ie,headers:(ae,ue)=>te(headersToObject(ae),headersToObject(ue),!0)};return utils$1$1.forEach(Object.keys(Object.assign({},Z,_)),function(ue){const oe=se[ue]||te,le=oe(Z[ue],_[ue],ue);utils$1$1.isUndefined(le)&&oe!==ie||(Y[ue]=le)}),Y}var resolveConfig=Z=>{const _=mergeConfig({},Z);let{data:Y,withXSRFToken:ee,xsrfHeaderName:te,xsrfCookieName:re,headers:ne,auth:ie}=_;_.headers=ne=AxiosHeaders$1.from(ne),_.url=buildURL(buildFullPath(_.baseURL,_.url),Z.params,Z.paramsSerializer),ie&&ne.set("Authorization","Basic "+btoa((ie.username||"")+":"+(ie.password?unescape(encodeURIComponent(ie.password)):"")));let se;if(utils$1$1.isFormData(Y)){if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)ne.setContentType(void 0);else if((se=ne.getContentType())!==!1){const[ae,...ue]=se?se.split(";").map(oe=>oe.trim()).filter(Boolean):[];ne.setContentType([ae||"multipart/form-data",...ue].join("; "))}}if(platform.hasStandardBrowserEnv&&(ee&&utils$1$1.isFunction(ee)&&(ee=ee(_)),ee||ee!==!1&&isURLSameOrigin(_.url))){const ae=te&&re&&cookies.read(re);ae&&ne.set(te,ae)}return _};const isXHRAdapterSupported=typeof XMLHttpRequest<"u";var xhrAdapter=isXHRAdapterSupported&&function(Z){return new Promise(function(Y,ee){const te=resolveConfig(Z);let re=te.data;const ne=AxiosHeaders$1.from(te.headers).normalize();let{responseType:ie,onUploadProgress:se,onDownloadProgress:ae}=te,ue,oe,le,ce,he;function fe(){ce&&ce(),he&&he(),te.cancelToken&&te.cancelToken.unsubscribe(ue),te.signal&&te.signal.removeEventListener("abort",ue)}let de=new XMLHttpRequest;de.open(te.method.toUpperCase(),te.url,!0),de.timeout=te.timeout;function pe(){if(!de)return;const me=AxiosHeaders$1.from("getAllResponseHeaders"in de&&de.getAllResponseHeaders()),ye={data:!ie||ie==="text"||ie==="json"?de.responseText:de.response,status:de.status,statusText:de.statusText,headers:me,config:Z,request:de};settle(function(Se){Y(Se),fe()},function(Se){ee(Se),fe()},ye),de=null}"onloadend"in de?de.onloadend=pe:de.onreadystatechange=function(){!de||de.readyState!==4||de.status===0&&!(de.responseURL&&de.responseURL.indexOf("file:")===0)||setTimeout(pe)},de.onabort=function(){de&&(ee(new AxiosError("Request aborted",AxiosError.ECONNABORTED,Z,de)),de=null)},de.onerror=function(){ee(new AxiosError("Network Error",AxiosError.ERR_NETWORK,Z,de)),de=null},de.ontimeout=function(){let ge=te.timeout?"timeout of "+te.timeout+"ms exceeded":"timeout exceeded";const ye=te.transitional||transitionalDefaults;te.timeoutErrorMessage&&(ge=te.timeoutErrorMessage),ee(new AxiosError(ge,ye.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,Z,de)),de=null},re===void 0&&ne.setContentType(null),"setRequestHeader"in de&&utils$1$1.forEach(ne.toJSON(),function(ge,ye){de.setRequestHeader(ye,ge)}),utils$1$1.isUndefined(te.withCredentials)||(de.withCredentials=!!te.withCredentials),ie&&ie!=="json"&&(de.responseType=te.responseType),ae&&([le,he]=progressEventReducer(ae,!0),de.addEventListener("progress",le)),se&&de.upload&&([oe,ce]=progressEventReducer(se),de.upload.addEventListener("progress",oe),de.upload.addEventListener("loadend",ce)),(te.cancelToken||te.signal)&&(ue=me=>{de&&(ee(!me||me.type?new CanceledError(null,Z,de):me),de.abort(),de=null)},te.cancelToken&&te.cancelToken.subscribe(ue),te.signal&&(te.signal.aborted?ue():te.signal.addEventListener("abort",ue)));const _e=parseProtocol(te.url);if(_e&&platform.protocols.indexOf(_e)===-1){ee(new AxiosError("Unsupported protocol "+_e+":",AxiosError.ERR_BAD_REQUEST,Z));return}de.send(re||null)})};const composeSignals=(Z,_)=>{let Y=new AbortController,ee;const te=function(se){if(!ee){ee=!0,ne();const ae=se instanceof Error?se:this.reason;Y.abort(ae instanceof AxiosError?ae:new CanceledError(ae instanceof Error?ae.message:ae))}};let re=_&&setTimeout(()=>{te(new AxiosError(`timeout ${_} of ms exceeded`,AxiosError.ETIMEDOUT))},_);const ne=()=>{Z&&(re&&clearTimeout(re),re=null,Z.forEach(se=>{se&&(se.removeEventListener?se.removeEventListener("abort",te):se.unsubscribe(te))}),Z=null)};Z.forEach(se=>se&&se.addEventListener&&se.addEventListener("abort",te));const{signal:ie}=Y;return ie.unsubscribe=ne,[ie,()=>{re&&clearTimeout(re),re=null}]};var composeSignals$1=composeSignals;const streamChunk=function*(Z,_){let Y=Z.byteLength;if(Y<_){yield Z;return}let ee=0,te;for(;ee{const re=readBytes(Z,_,te);let ne=0,ie,se=ae=>{ie||(ie=!0,ee&&ee(ae))};return new ReadableStream({async pull(ae){try{const{done:ue,value:oe}=await re.next();if(ue){se(),ae.close();return}let le=oe.byteLength;if(Y){let ce=ne+=le;Y(ce)}ae.enqueue(new Uint8Array(oe))}catch(ue){throw se(ue),ue}},cancel(ae){return se(ae),re.return()}},{highWaterMark:2})},isFetchSupported=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",isReadableStreamSupported=isFetchSupported&&typeof ReadableStream=="function",encodeText=isFetchSupported&&(typeof TextEncoder=="function"?(Z=>_=>Z.encode(_))(new TextEncoder):async Z=>new Uint8Array(await new Response(Z).arrayBuffer())),test=(Z,..._)=>{try{return!!Z(..._)}catch{return!1}},supportsRequestStream=isReadableStreamSupported&&test(()=>{let Z=!1;const _=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return Z=!0,"half"}}).headers.has("Content-Type");return Z&&!_}),DEFAULT_CHUNK_SIZE=64*1024,supportsResponseStream=isReadableStreamSupported&&test(()=>utils$1$1.isReadableStream(new Response("").body)),resolvers={stream:supportsResponseStream&&(Z=>Z.body)};isFetchSupported&&(Z=>{["text","arrayBuffer","blob","formData","stream"].forEach(_=>{!resolvers[_]&&(resolvers[_]=utils$1$1.isFunction(Z[_])?Y=>Y[_]():(Y,ee)=>{throw new AxiosError(`Response type '${_}' is not supported`,AxiosError.ERR_NOT_SUPPORT,ee)})})})(new Response);const getBodyLength=async Z=>{if(Z==null)return 0;if(utils$1$1.isBlob(Z))return Z.size;if(utils$1$1.isSpecCompliantForm(Z))return(await new Request(Z).arrayBuffer()).byteLength;if(utils$1$1.isArrayBufferView(Z)||utils$1$1.isArrayBuffer(Z))return Z.byteLength;if(utils$1$1.isURLSearchParams(Z)&&(Z=Z+""),utils$1$1.isString(Z))return(await encodeText(Z)).byteLength},resolveBodyLength=async(Z,_)=>{const Y=utils$1$1.toFiniteNumber(Z.getContentLength());return Y??getBodyLength(_)};var fetchAdapter=isFetchSupported&&(async Z=>{let{url:_,method:Y,data:ee,signal:te,cancelToken:re,timeout:ne,onDownloadProgress:ie,onUploadProgress:se,responseType:ae,headers:ue,withCredentials:oe="same-origin",fetchOptions:le}=resolveConfig(Z);ae=ae?(ae+"").toLowerCase():"text";let[ce,he]=te||re||ne?composeSignals$1([te,re],ne):[],fe,de;const pe=()=>{!fe&&setTimeout(()=>{ce&&ce.unsubscribe()}),fe=!0};let _e;try{if(se&&supportsRequestStream&&Y!=="get"&&Y!=="head"&&(_e=await resolveBodyLength(ue,ee))!==0){let Ie=new Request(_,{method:"POST",body:ee,duplex:"half"}),Se;if(utils$1$1.isFormData(ee)&&(Se=Ie.headers.get("content-type"))&&ue.setContentType(Se),Ie.body){const[Pe,Ae]=progressEventDecorator(_e,progressEventReducer(asyncDecorator(se)));ee=trackStream(Ie.body,DEFAULT_CHUNK_SIZE,Pe,Ae,encodeText)}}utils$1$1.isString(oe)||(oe=oe?"include":"omit"),de=new Request(_,{...le,signal:ce,method:Y.toUpperCase(),headers:ue.normalize().toJSON(),body:ee,duplex:"half",credentials:oe});let me=await fetch(de);const ge=supportsResponseStream&&(ae==="stream"||ae==="response");if(supportsResponseStream&&(ie||ge)){const Ie={};["status","statusText","headers"].forEach(De=>{Ie[De]=me[De]});const Se=utils$1$1.toFiniteNumber(me.headers.get("content-length")),[Pe,Ae]=ie&&progressEventDecorator(Se,progressEventReducer(asyncDecorator(ie),!0))||[];me=new Response(trackStream(me.body,DEFAULT_CHUNK_SIZE,Pe,()=>{Ae&&Ae(),ge&&pe()},encodeText),Ie)}ae=ae||"text";let ye=await resolvers[utils$1$1.findKey(resolvers,ae)||"text"](me,Z);return!ge&&pe(),he&&he(),await new Promise((Ie,Se)=>{settle(Ie,Se,{data:ye,headers:AxiosHeaders$1.from(me.headers),status:me.status,statusText:me.statusText,config:Z,request:de})})}catch(me){throw pe(),me&&me.name==="TypeError"&&/fetch/i.test(me.message)?Object.assign(new AxiosError("Network Error",AxiosError.ERR_NETWORK,Z,de),{cause:me.cause||me}):AxiosError.from(me,me&&me.code,Z,de)}});const knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1$1.forEach(knownAdapters,(Z,_)=>{if(Z){try{Object.defineProperty(Z,"name",{value:_})}catch{}Object.defineProperty(Z,"adapterName",{value:_})}});const renderReason=Z=>`- ${Z}`,isResolvedHandle=Z=>utils$1$1.isFunction(Z)||Z===null||Z===!1;var adapters={getAdapter:Z=>{Z=utils$1$1.isArray(Z)?Z:[Z];const{length:_}=Z;let Y,ee;const te={};for(let re=0;re<_;re++){Y=Z[re];let ne;if(ee=Y,!isResolvedHandle(Y)&&(ee=knownAdapters[(ne=String(Y)).toLowerCase()],ee===void 0))throw new AxiosError(`Unknown adapter '${ne}'`);if(ee)break;te[ne||"#"+re]=ee}if(!ee){const re=Object.entries(te).map(([ie,se])=>`adapter ${ie} `+(se===!1?"is not supported by the environment":"is not available in the build"));let ne=_?re.length>1?`since : +`+re.map(renderReason).join(` +`):" "+renderReason(re[0]):"as no adapter specified";throw new AxiosError("There is no suitable adapter to dispatch the request "+ne,"ERR_NOT_SUPPORT")}return ee},adapters:knownAdapters};function throwIfCancellationRequested(Z){if(Z.cancelToken&&Z.cancelToken.throwIfRequested(),Z.signal&&Z.signal.aborted)throw new CanceledError(null,Z)}function dispatchRequest(Z){return throwIfCancellationRequested(Z),Z.headers=AxiosHeaders$1.from(Z.headers),Z.data=transformData.call(Z,Z.transformRequest),["post","put","patch"].indexOf(Z.method)!==-1&&Z.headers.setContentType("application/x-www-form-urlencoded",!1),adapters.getAdapter(Z.adapter||defaults$1.adapter)(Z).then(function(ee){return throwIfCancellationRequested(Z),ee.data=transformData.call(Z,Z.transformResponse,ee),ee.headers=AxiosHeaders$1.from(ee.headers),ee},function(ee){return isCancel(ee)||(throwIfCancellationRequested(Z),ee&&ee.response&&(ee.response.data=transformData.call(Z,Z.transformResponse,ee.response),ee.response.headers=AxiosHeaders$1.from(ee.response.headers))),Promise.reject(ee)})}const VERSION$1="1.7.4",validators$1={};["object","boolean","number","function","string","symbol"].forEach((Z,_)=>{validators$1[Z]=function(ee){return typeof ee===Z||"a"+(_<1?"n ":" ")+Z}});const deprecatedWarnings={};validators$1.transitional=function(_,Y,ee){function te(re,ne){return"[Axios v"+VERSION$1+"] Transitional option '"+re+"'"+ne+(ee?". "+ee:"")}return(re,ne,ie)=>{if(_===!1)throw new AxiosError(te(ne," has been removed"+(Y?" in "+Y:"")),AxiosError.ERR_DEPRECATED);return Y&&!deprecatedWarnings[ne]&&(deprecatedWarnings[ne]=!0,console.warn(te(ne," has been deprecated since v"+Y+" and will be removed in the near future"))),_?_(re,ne,ie):!0}};function assertOptions(Z,_,Y){if(typeof Z!="object")throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const ee=Object.keys(Z);let te=ee.length;for(;te-- >0;){const re=ee[te],ne=_[re];if(ne){const ie=Z[re],se=ie===void 0||ne(ie,re,Z);if(se!==!0)throw new AxiosError("option "+re+" must be "+se,AxiosError.ERR_BAD_OPTION_VALUE);continue}if(Y!==!0)throw new AxiosError("Unknown option "+re,AxiosError.ERR_BAD_OPTION)}}var validator={assertOptions,validators:validators$1};const validators=validator.validators;class Axios{constructor(_){this.defaults=_,this.interceptors={request:new InterceptorManager$1,response:new InterceptorManager$1}}async request(_,Y){try{return await this._request(_,Y)}catch(ee){if(ee instanceof Error){let te;Error.captureStackTrace?Error.captureStackTrace(te={}):te=new Error;const re=te.stack?te.stack.replace(/^.+\n/,""):"";try{ee.stack?re&&!String(ee.stack).endsWith(re.replace(/^.+\n.+\n/,""))&&(ee.stack+=` +`+re):ee.stack=re}catch{}}throw ee}}_request(_,Y){typeof _=="string"?(Y=Y||{},Y.url=_):Y=_||{},Y=mergeConfig(this.defaults,Y);const{transitional:ee,paramsSerializer:te,headers:re}=Y;ee!==void 0&&validator.assertOptions(ee,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),te!=null&&(utils$1$1.isFunction(te)?Y.paramsSerializer={serialize:te}:validator.assertOptions(te,{encode:validators.function,serialize:validators.function},!0)),Y.method=(Y.method||this.defaults.method||"get").toLowerCase();let ne=re&&utils$1$1.merge(re.common,re[Y.method]);re&&utils$1$1.forEach(["delete","get","head","post","put","patch","common"],he=>{delete re[he]}),Y.headers=AxiosHeaders$1.concat(ne,re);const ie=[];let se=!0;this.interceptors.request.forEach(function(fe){typeof fe.runWhen=="function"&&fe.runWhen(Y)===!1||(se=se&&fe.synchronous,ie.unshift(fe.fulfilled,fe.rejected))});const ae=[];this.interceptors.response.forEach(function(fe){ae.push(fe.fulfilled,fe.rejected)});let ue,oe=0,le;if(!se){const he=[dispatchRequest.bind(this),void 0];for(he.unshift.apply(he,ie),he.push.apply(he,ae),le=he.length,ue=Promise.resolve(Y);oe{if(!ee._listeners)return;let re=ee._listeners.length;for(;re-- >0;)ee._listeners[re](te);ee._listeners=null}),this.promise.then=te=>{let re;const ne=new Promise(ie=>{ee.subscribe(ie),re=ie}).then(te);return ne.cancel=function(){ee.unsubscribe(re)},ne},_(function(re,ne,ie){ee.reason||(ee.reason=new CanceledError(re,ne,ie),Y(ee.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(_){if(this.reason){_(this.reason);return}this._listeners?this._listeners.push(_):this._listeners=[_]}unsubscribe(_){if(!this._listeners)return;const Y=this._listeners.indexOf(_);Y!==-1&&this._listeners.splice(Y,1)}static source(){let _;return{token:new CancelToken(function(te){_=te}),cancel:_}}}var CancelToken$1=CancelToken;function spread(Z){return function(Y){return Z.apply(null,Y)}}function isAxiosError(Z){return utils$1$1.isObject(Z)&&Z.isAxiosError===!0}const HttpStatusCode={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode).forEach(([Z,_])=>{HttpStatusCode[_]=Z});var HttpStatusCode$1=HttpStatusCode;function createInstance(Z){const _=new Axios$1(Z),Y=bind(Axios$1.prototype.request,_);return utils$1$1.extend(Y,Axios$1.prototype,_,{allOwnKeys:!0}),utils$1$1.extend(Y,_,null,{allOwnKeys:!0}),Y.create=function(te){return createInstance(mergeConfig(Z,te))},Y}const axios=createInstance(defaults$1);axios.Axios=Axios$1;axios.CanceledError=CanceledError;axios.CancelToken=CancelToken$1;axios.isCancel=isCancel;axios.VERSION=VERSION$1;axios.toFormData=toFormData;axios.AxiosError=AxiosError;axios.Cancel=axios.CanceledError;axios.all=function(_){return Promise.all(_)};axios.spread=spread;axios.isAxiosError=isAxiosError;axios.mergeConfig=mergeConfig;axios.AxiosHeaders=AxiosHeaders$1;axios.formToJSON=Z=>formDataToJSON(utils$1$1.isHTMLForm(Z)?new FormData(Z):Z);axios.getAdapter=adapters.getAdapter;axios.HttpStatusCode=HttpStatusCode$1;axios.default=axios;var axios_1=axios,__create$a=Object.create,__defProp$v=Object.defineProperty,__getOwnPropDesc$v=Object.getOwnPropertyDescriptor,__getOwnPropNames$v=Object.getOwnPropertyNames,__getProtoOf$a=Object.getPrototypeOf,__hasOwnProp$v=Object.prototype.hasOwnProperty,__export$q=(Z,_)=>{for(var Y in _)__defProp$v(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$v=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$v(_))!__hasOwnProp$v.call(Z,te)&&te!==Y&&__defProp$v(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$v(_,te))||ee.enumerable});return Z},__toESM$a=(Z,_,Y)=>(Y=Z!=null?__create$a(__getProtoOf$a(Z)):{},__copyProps$v(!Z||!Z.__esModule?__defProp$v(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$v=Z=>__copyProps$v(__defProp$v({},"__esModule",{value:!0}),Z),http_exports={};__export$q(http_exports,{Http:()=>Http,default:()=>http_default});var http=__toCommonJS$v(http_exports),import_axios=__toESM$a(axios_1);class Http{constructor(_){be(this,"instance");be(this,"config");be(this,"method",async(_,Y,ee,te="get")=>(await this.instance[te](_,Object.assign(this.config,ee||{},{params:Y}))).data);be(this,"get",(_,Y,ee)=>this.method(_,Y,ee,"get"));be(this,"post",async(_,Y,ee)=>(await import_axios.default.post(_,Y,Object.assign(this.config,ee))).data);be(this,"patch",async(_,Y,ee)=>(await import_axios.default.patch(_,Y,Object.assign(this.config,ee))).data);be(this,"put",async(_,Y,ee)=>(await import_axios.default.put(_,Y,Object.assign(this.config,ee))).data);be(this,"delete",(_,Y,ee)=>this.method(_,Y,ee,"delete"));be(this,"head",(_,Y,ee)=>this.method(_,Y,ee,"head"));be(this,"options",(_,Y,ee)=>this.method(_,Y,ee,"options"));be(this,"request");be(this,"response");this.config=_||{},this.instance=import_axios.default.create(this.config),this.request=this.instance.interceptors.request.use.bind(this.instance.interceptors.request),this.response=this.instance.interceptors.response.use.bind(this.instance.interceptors.response)}extend(_){return new Http(Object.assign(this.config,_))}ws(_,Y){return new WebSocket(`${this.config.baseURL??""}${_}`,Y)}}var http_default=Http,__defProp$u=Object.defineProperty,__getOwnPropDesc$u=Object.getOwnPropertyDescriptor,__getOwnPropNames$u=Object.getOwnPropertyNames,__hasOwnProp$u=Object.prototype.hasOwnProperty,__export$p=(Z,_)=>{for(var Y in _)__defProp$u(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$u=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$u(_))!__hasOwnProp$u.call(Z,te)&&te!==Y&&__defProp$u(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$u(_,te))||ee.enumerable});return Z},__toCommonJS$u=Z=>__copyProps$u(__defProp$u({},"__esModule",{value:!0}),Z),random_exports={};__export$p(random_exports,{random:()=>random});var random_1=__toCommonJS$u(random_exports);class Random{constructor(_=Math.random){be(this,"seed");this.seed=_}int(_=0,Y=100){const ee=Math.ceil(_),te=Math.floor(Y);return Math.floor(this.seed()*(te-ee))+ee}float(_=0,Y=1){return this.seed()*(Y-_)+_}bool(_=.5){return this.seed()<_}choice(_){if(_.length===0)throw new Error("Cannot choose from an empty list");const Y=this.int(0,_.length);return _[Y]}shuffle(_){const Y=[..._];for(let ee=Y.length-1;ee>0;ee--){const te=this.int(0,ee+1);[Y[ee],Y[te]]=[Y[te],Y[ee]]}return Y}uuid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,_=>{const Y=this.seed()*16|0;return(_==="x"?Y:Y&3|8).toString(16)})}}var random;(Z=>{const _=new Random;Z.int=_.int.bind(_),Z.float=_.float.bind(_),Z.bool=_.bool.bind(_),Z.choice=_.choice.bind(_),Z.shuffle=_.shuffle.bind(_),Z.uuid=_.uuid.bind(_),Z.clone=(Y=Math.random)=>new Random(Y)})(random||(random={}));(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,_function$1,Z.exports),ne(se,colorsExports,Z.exports),ne(se,http,Z.exports),ne(se,random_1,Z.exports)})(common$2);var commonExports$2=common$2.exports,__defProp$t=Object.defineProperty,__getOwnPropDesc$t=Object.getOwnPropertyDescriptor,__getOwnPropNames$t=Object.getOwnPropertyNames,__hasOwnProp$t=Object.prototype.hasOwnProperty,__copyProps$t=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$t(_))!__hasOwnProp$t.call(Z,te)&&te!==Y&&__defProp$t(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$t(_,te))||ee.enumerable});return Z},__toCommonJS$t=Z=>__copyProps$t(__defProp$t({},"__esModule",{value:!0}),Z),types_exports={},types$2=__toCommonJS$t(types_exports);(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,commonExports$2,Z.exports),ne(se,types$2,Z.exports)})(common$3);var commonExports$1=common$3.exports,common$1={exports:{}},__defProp$s=Object.defineProperty,__getOwnPropDesc$s=Object.getOwnPropertyDescriptor,__getOwnPropNames$s=Object.getOwnPropertyNames,__hasOwnProp$s=Object.prototype.hasOwnProperty,__export$o=(Z,_)=>{for(var Y in _)__defProp$s(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$s=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$s(_))!__hasOwnProp$s.call(Z,te)&&te!==Y&&__defProp$s(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$s(_,te))||ee.enumerable});return Z},__toCommonJS$s=Z=>__copyProps$s(__defProp$s({},"__esModule",{value:!0}),Z),locale_exports={};__export$o(locale_exports,{LocaleIdentifier:()=>LocaleIdentifier,default:()=>locale_default});var locale=__toCommonJS$s(locale_exports),LocaleIdentifier=(Z=>(Z.en_US="en-US",Z.en_GB="en-GB",Z.en_AU="en-AU",Z.zh_CN="zh-CN",Z.zh_HK="zh-HK",Z.zh_TW="zh-TW",Z.zh_SG="zh-SG",Z.es_ES="es-ES",Z.es_MX="es-MX",Z.ar_EG="ar-EG",Z.ar_AE="ar-AE",Z.ru_RU="ru-RU",Z.fr_FR="fr-FR",Z.fr_CA="fr-CA",Z.de_DE="de-DE",Z.de_CH="de-CH",Z.it_IT="it-IT",Z.it_CH="it-CH",Z.hi_IN="hi-IN",Z.pt_BR="pt-BR",Z.pt_PT="pt-PT",Z.tr_TR="tr-TR",Z.ja_JP="ja-JP",Z.id_ID="id-ID",Z.uk_UA="uk-UA",Z.vi_VN="vi-VN",Z.th_TH="th-TH",Z.sv_SE="sv-SE",Z.nb_NO="nb-NO",Z.da_DK="da-DK",Z.fi_FI="fi-FI",Z.he_IL="he-IL",Z.sk_SK="sk-SK",Z.bg_BG="bg-BG",Z.lt_LT="lt-LT",Z.sl_SI="sl-SI",Z.sr_RS="sr-RS",Z.mk_MK="mk-MK",Z.sq_AL="sq-AL",Z.et_EE="et-EE",Z.mt_MT="mt-MT",Z.common="COMMON",Z))(LocaleIdentifier||{}),locale_default=LocaleIdentifier,__create$9=Object.create,__defProp$r=Object.defineProperty,__getOwnPropDesc$r=Object.getOwnPropertyDescriptor,__getOwnPropNames$r=Object.getOwnPropertyNames,__getProtoOf$9=Object.getPrototypeOf,__hasOwnProp$r=Object.prototype.hasOwnProperty,__export$n=(Z,_)=>{for(var Y in _)__defProp$r(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$r=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$r(_))!__hasOwnProp$r.call(Z,te)&&te!==Y&&__defProp$r(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$r(_,te))||ee.enumerable});return Z},__toESM$9=(Z,_,Y)=>(Y=Z!=null?__create$9(__getProtoOf$9(Z)):{},__copyProps$r(!Z||!Z.__esModule?__defProp$r(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$r=Z=>__copyProps$r(__defProp$r({},"__esModule",{value:!0}),Z),const_exports$1={};__export$n(const_exports$1,{DEFAULT_EXT:()=>DEFAULT_EXT,DEFAULT_LANG:()=>DEFAULT_LANG,DEFAULT_SUPPORTS:()=>DEFAULT_SUPPORTS});var _const$1=__toCommonJS$r(const_exports$1),import_locale=__toESM$9(locale);const DEFAULT_SUPPORTS=Object.keys(import_locale.default),DEFAULT_LANG="en_US",DEFAULT_EXT=".json";(function(Z){var _=Object.create,Y=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyNames,re=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,ie=(pe,_e)=>{for(var me in _e)Y(pe,me,{get:_e[me],enumerable:!0})},se=(pe,_e,me,ge)=>{if(_e&&typeof _e=="object"||typeof _e=="function")for(let ye of te(_e))!ne.call(pe,ye)&&ye!==me&&Y(pe,ye,{get:()=>_e[ye],enumerable:!(ge=ee(_e,ye))||ge.enumerable});return pe},ae=(pe,_e,me)=>(se(pe,_e,"default"),me&&se(me,_e,"default")),ue=(pe,_e,me)=>(me=pe!=null?_(re(pe)):{},se(!pe||!pe.__esModule?Y(me,"default",{value:pe,enumerable:!0}):me,pe)),oe=pe=>se(Y({},"__esModule",{value:!0}),pe),le={};ie(le,{I18n:()=>fe,default:()=>de}),Z.exports=oe(le);var ce=_const$1,he=ue(locale);ae(le,locale,Z.exports),ae(le,_const$1,Z.exports);class fe{constructor(_e={lang:ce.DEFAULT_LANG}){be(this,"localesData",new Map);be(this,"lang");be(this,"supports");this.supports=_e.supports??ce.DEFAULT_SUPPORTS,this.lang=_e.lang;for(const me of this.supports)this.localesData.set(me,new Map)}use(_e,me=this.lang){var ge;for(const ye in _e)(ge=this.localesData.get(me))==null||ge.set(ye.toLowerCase(),_e[ye])}locale(_e,me=this.lang){var ge,ye;return((ge=this.localesData.get(me))==null?void 0:ge.get(_e.toLowerCase()))??((ye=this.localesData.get("common"))==null?void 0:ye.get(_e.toLowerCase()))??_e}t(_e){return this.locale(_e.join(""))}set(_e){this.lang=_e}get(){return this.lang}extends(_e){const me=Object.create(this);return _e&&me.set(_e),me}date(_e=new Date,me=void 0,ge=this.lang){return new Intl.DateTimeFormat(he.default[ge],{timeStyle:me}).format(_e)}time(_e=new Date,me=void 0,ge=this.lang){return new Intl.DateTimeFormat(he.default[ge],{timeStyle:me}).format(_e)}period(_e=new Date,me=void 0,ge=this.lang){return new Intl.DateTimeFormat(he.default[ge],{dayPeriod:me}).format(_e)}number(_e,me,ge=this.lang){return new Intl.NumberFormat(he.default[ge],me).format(_e)}list(_e,me,ge=this.lang){return new Intl.ListFormat(he.default[ge],me).format(_e)}rtime(_e,me,ge,ye=this.lang){return new Intl.RelativeTimeFormat(he.default[ye],ge).format(_e,me)}segmenter(_e,me,ge=this.lang){return new Intl.Segmenter(ge,me).segment(_e)}}var de=fe})(common$1);var commonExports=common$1.exports;function commonjsRequire(Z){throw new Error('Could not dynamically require "'+Z+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var global$1={exports:{}},__defProp$q=Object.defineProperty,__getOwnPropDesc$q=Object.getOwnPropertyDescriptor,__getOwnPropNames$q=Object.getOwnPropertyNames,__hasOwnProp$q=Object.prototype.hasOwnProperty,__export$m=(Z,_)=>{for(var Y in _)__defProp$q(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$q=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$q(_))!__hasOwnProp$q.call(Z,te)&&te!==Y&&__defProp$q(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$q(_,te))||ee.enumerable});return Z},__toCommonJS$q=Z=>__copyProps$q(__defProp$q({},"__esModule",{value:!0}),Z),constants_exports={};__export$m(constants_exports,{DEFAULT_CORE_CONFIG:()=>DEFAULT_CORE_CONFIG});var constants$1=__toCommonJS$q(constants_exports),import_i18n=commonExports;const DEFAULT_CORE_CONFIG={global:{lang:import_i18n.DEFAULT_LANG,commandPrefix:"/"},adapter:{},plugin:{}};var __defProp$p=Object.defineProperty,__getOwnPropDesc$p=Object.getOwnPropertyDescriptor,__getOwnPropNames$p=Object.getOwnPropertyNames,__hasOwnProp$p=Object.prototype.hasOwnProperty,__export$l=(Z,_)=>{for(var Y in _)__defProp$p(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$p=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$p(_))!__hasOwnProp$p.call(Z,te)&&te!==Y&&__defProp$p(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$p(_,te))||ee.enumerable});return Z},__toCommonJS$p=Z=>__copyProps$p(__defProp$p({},"__esModule",{value:!0}),Z),symbols_exports={};__export$l(symbols_exports,{Symbols:()=>Symbols,default:()=>symbols_default});var symbols=__toCommonJS$p(symbols_exports),Symbols;(Z=>{Z.adapter=Symbol.for("kotori.core.adapter"),Z.bot=Symbol.for("kotori.core.bot"),Z.midware=Symbol.for("kotori.core.midware"),Z.command=Symbol.for("kotori.core.command"),Z.regexp=Symbol.for("kotori.core.regexp"),Z.task=Symbol.for("kotori.core.task"),Z.filter=Symbol.for("kotori.core.filter"),Z.promise=Symbol.for("kotori.core.promise"),Z.decorator=Symbol.for("kotori.core.decorator"),Z.modules=Symbol.for("kotori.loader.module"),Z.getInstance=Symbol.for("kotori.cli.get_instance"),Z.setInstance=Symbol.for("kotori.cli.set_instance")})(Symbols||(Symbols={}));var symbols_default=Symbols;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,constants$1,Z.exports),ne(se,symbols,Z.exports)})(global$1);var globalExports=global$1.exports;const name="@kotori-bot/core",version="1.6.5",description="Kotori Core",main$2="lib/index.js",license="GPL-3.0",author="Arimura Sena ",keywords=["kotori","chatbot","bot"],files=["lib","LICENSE","README.md"],bugs={url:"https://github.com/kotorijs/kotori/issues"},repository={type:"git",url:"git+https://github.com/kotorijs/kotori.git"},homepage="https://kotori.js.org",dependencies={cron:"^3.1.7",minimist:"^1.2.8","reflect-metadata":"^0.2.2",tsukiko:"^1.4.2","@kotori-bot/i18n":"^1.3.2","@kotori-bot/tools":"^1.5.1",fluoro:"^1.1.1"},devDependencies={"@types/minimist":"^1.2.5"},require$$1={name,version,description,main:main$2,license,author,keywords,files,bugs,repository,homepage,dependencies,devDependencies};var __defProp$o=Object.defineProperty,__getOwnPropDesc$o=Object.getOwnPropertyDescriptor,__getOwnPropNames$o=Object.getOwnPropertyNames,__hasOwnProp$o=Object.prototype.hasOwnProperty,__export$k=(Z,_)=>{for(var Y in _)__defProp$o(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$o=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$o(_))!__hasOwnProp$o.call(Z,te)&&te!==Y&&__defProp$o(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$o(_,te))||ee.enumerable});return Z},__toCommonJS$o=Z=>__copyProps$o(__defProp$o({},"__esModule",{value:!0}),Z),config_exports$1={};__export$k(config_exports$1,{Config:()=>Config,default:()=>config_default});var config$1=__toCommonJS$o(config_exports$1),import_global$3=globalExports;class Config{constructor(_={}){be(this,"config");be(this,"meta");this.config={...import_global$3.DEFAULT_CORE_CONFIG,..._},this.config.global={...import_global$3.DEFAULT_CORE_CONFIG.global,...this.config.global};const Y=typeof commonjsRequire=="function"?require$$1:{name:"@kotori-bot/core",version:"BROWSER",description:"",author:"Arimura Sena ",main:"lib/index.js"};this.meta={name:Y.name,description:Y.description,main:Y.main,license:"GPL-3.0",author:Y.author,coreVersion:Y.version},globalThis.kotori=this.meta}}var config_default=Config,dist$1={},time={},luxon={};Object.defineProperty(luxon,"__esModule",{value:!0});class LuxonError extends Error{}class InvalidDateTimeError extends LuxonError{constructor(_){super(`Invalid DateTime: ${_.toMessage()}`)}}class InvalidIntervalError extends LuxonError{constructor(_){super(`Invalid Interval: ${_.toMessage()}`)}}class InvalidDurationError extends LuxonError{constructor(_){super(`Invalid Duration: ${_.toMessage()}`)}}class ConflictingSpecificationError extends LuxonError{}class InvalidUnitError extends LuxonError{constructor(_){super(`Invalid unit ${_}`)}}class InvalidArgumentError extends LuxonError{}class ZoneIsAbstractError extends LuxonError{constructor(){super("Zone is an abstract class")}}const n$3="numeric",s="short",l$2="long",DATE_SHORT={year:n$3,month:n$3,day:n$3},DATE_MED={year:n$3,month:s,day:n$3},DATE_MED_WITH_WEEKDAY={year:n$3,month:s,day:n$3,weekday:s},DATE_FULL={year:n$3,month:l$2,day:n$3},DATE_HUGE={year:n$3,month:l$2,day:n$3,weekday:l$2},TIME_SIMPLE={hour:n$3,minute:n$3},TIME_WITH_SECONDS={hour:n$3,minute:n$3,second:n$3},TIME_WITH_SHORT_OFFSET={hour:n$3,minute:n$3,second:n$3,timeZoneName:s},TIME_WITH_LONG_OFFSET={hour:n$3,minute:n$3,second:n$3,timeZoneName:l$2},TIME_24_SIMPLE={hour:n$3,minute:n$3,hourCycle:"h23"},TIME_24_WITH_SECONDS={hour:n$3,minute:n$3,second:n$3,hourCycle:"h23"},TIME_24_WITH_SHORT_OFFSET={hour:n$3,minute:n$3,second:n$3,hourCycle:"h23",timeZoneName:s},TIME_24_WITH_LONG_OFFSET={hour:n$3,minute:n$3,second:n$3,hourCycle:"h23",timeZoneName:l$2},DATETIME_SHORT={year:n$3,month:n$3,day:n$3,hour:n$3,minute:n$3},DATETIME_SHORT_WITH_SECONDS={year:n$3,month:n$3,day:n$3,hour:n$3,minute:n$3,second:n$3},DATETIME_MED={year:n$3,month:s,day:n$3,hour:n$3,minute:n$3},DATETIME_MED_WITH_SECONDS={year:n$3,month:s,day:n$3,hour:n$3,minute:n$3,second:n$3},DATETIME_MED_WITH_WEEKDAY={year:n$3,month:s,day:n$3,weekday:s,hour:n$3,minute:n$3},DATETIME_FULL={year:n$3,month:l$2,day:n$3,hour:n$3,minute:n$3,timeZoneName:s},DATETIME_FULL_WITH_SECONDS={year:n$3,month:l$2,day:n$3,hour:n$3,minute:n$3,second:n$3,timeZoneName:s},DATETIME_HUGE={year:n$3,month:l$2,day:n$3,weekday:l$2,hour:n$3,minute:n$3,timeZoneName:l$2},DATETIME_HUGE_WITH_SECONDS={year:n$3,month:l$2,day:n$3,weekday:l$2,hour:n$3,minute:n$3,second:n$3,timeZoneName:l$2};class Zone{get type(){throw new ZoneIsAbstractError}get name(){throw new ZoneIsAbstractError}get ianaName(){return this.name}get isUniversal(){throw new ZoneIsAbstractError}offsetName(_,Y){throw new ZoneIsAbstractError}formatOffset(_,Y){throw new ZoneIsAbstractError}offset(_){throw new ZoneIsAbstractError}equals(_){throw new ZoneIsAbstractError}get isValid(){throw new ZoneIsAbstractError}}let singleton$1=null;class SystemZone extends Zone{static get instance(){return singleton$1===null&&(singleton$1=new SystemZone),singleton$1}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(_,{format:Y,locale:ee}){return parseZoneInfo(_,Y,ee)}formatOffset(_,Y){return formatOffset(this.offset(_),Y)}offset(_){return-new Date(_).getTimezoneOffset()}equals(_){return _.type==="system"}get isValid(){return!0}}let dtfCache={};function makeDTF(Z){return dtfCache[Z]||(dtfCache[Z]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),dtfCache[Z]}const typeToPos={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function hackyOffset(Z,_){const Y=Z.format(_).replace(/\u200E/g,""),ee=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(Y),[,te,re,ne,ie,se,ae,ue]=ee;return[ne,te,re,ie,se,ae,ue]}function partsOffset(Z,_){const Y=Z.formatToParts(_),ee=[];for(let te=0;te=0?he:1e3+he,(le-ce)/(60*1e3)}equals(_){return _.type==="iana"&&_.name===this.name}get isValid(){return this.valid}}let intlLFCache={};function getCachedLF(Z,_={}){const Y=JSON.stringify([Z,_]);let ee=intlLFCache[Y];return ee||(ee=new Intl.ListFormat(Z,_),intlLFCache[Y]=ee),ee}let intlDTCache={};function getCachedDTF(Z,_={}){const Y=JSON.stringify([Z,_]);let ee=intlDTCache[Y];return ee||(ee=new Intl.DateTimeFormat(Z,_),intlDTCache[Y]=ee),ee}let intlNumCache={};function getCachedINF(Z,_={}){const Y=JSON.stringify([Z,_]);let ee=intlNumCache[Y];return ee||(ee=new Intl.NumberFormat(Z,_),intlNumCache[Y]=ee),ee}let intlRelCache={};function getCachedRTF(Z,_={}){const{base:Y,...ee}=_,te=JSON.stringify([Z,ee]);let re=intlRelCache[te];return re||(re=new Intl.RelativeTimeFormat(Z,_),intlRelCache[te]=re),re}let sysLocaleCache=null;function systemLocale(){return sysLocaleCache||(sysLocaleCache=new Intl.DateTimeFormat().resolvedOptions().locale,sysLocaleCache)}let weekInfoCache={};function getCachedWeekInfo(Z){let _=weekInfoCache[Z];if(!_){const Y=new Intl.Locale(Z);_="getWeekInfo"in Y?Y.getWeekInfo():Y.weekInfo,weekInfoCache[Z]=_}return _}function parseLocaleString(Z){const _=Z.indexOf("-x-");_!==-1&&(Z=Z.substring(0,_));const Y=Z.indexOf("-u-");if(Y===-1)return[Z];{let ee,te;try{ee=getCachedDTF(Z).resolvedOptions(),te=Z}catch{const se=Z.substring(0,Y);ee=getCachedDTF(se).resolvedOptions(),te=se}const{numberingSystem:re,calendar:ne}=ee;return[te,re,ne]}}function intlConfigString(Z,_,Y){return(Y||_)&&(Z.includes("-u-")||(Z+="-u"),Y&&(Z+=`-ca-${Y}`),_&&(Z+=`-nu-${_}`)),Z}function mapMonths(Z){const _=[];for(let Y=1;Y<=12;Y++){const ee=DateTime.utc(2009,Y,1);_.push(Z(ee))}return _}function mapWeekdays(Z){const _=[];for(let Y=1;Y<=7;Y++){const ee=DateTime.utc(2016,11,13+Y);_.push(Z(ee))}return _}function listStuff(Z,_,Y,ee){const te=Z.listingMode();return te==="error"?null:te==="en"?Y(_):ee(_)}function supportsFastNumbers(Z){return Z.numberingSystem&&Z.numberingSystem!=="latn"?!1:Z.numberingSystem==="latn"||!Z.locale||Z.locale.startsWith("en")||new Intl.DateTimeFormat(Z.intl).resolvedOptions().numberingSystem==="latn"}class PolyNumberFormatter{constructor(_,Y,ee){this.padTo=ee.padTo||0,this.floor=ee.floor||!1;const{padTo:te,floor:re,...ne}=ee;if(!Y||Object.keys(ne).length>0){const ie={useGrouping:!1,...ee};ee.padTo>0&&(ie.minimumIntegerDigits=ee.padTo),this.inf=getCachedINF(_,ie)}}format(_){if(this.inf){const Y=this.floor?Math.floor(_):_;return this.inf.format(Y)}else{const Y=this.floor?Math.floor(_):roundTo(_,3);return padStart(Y,this.padTo)}}}class PolyDateFormatter{constructor(_,Y,ee){this.opts=ee,this.originalZone=void 0;let te;if(this.opts.timeZone)this.dt=_;else if(_.zone.type==="fixed"){const ne=-1*(_.offset/60),ie=ne>=0?`Etc/GMT+${ne}`:`Etc/GMT${ne}`;_.offset!==0&&IANAZone.create(ie).valid?(te=ie,this.dt=_):(te="UTC",this.dt=_.offset===0?_:_.setZone("UTC").plus({minutes:_.offset}),this.originalZone=_.zone)}else _.zone.type==="system"?this.dt=_:_.zone.type==="iana"?(this.dt=_,te=_.zone.name):(te="UTC",this.dt=_.setZone("UTC").plus({minutes:_.offset}),this.originalZone=_.zone);const re={...this.opts};re.timeZone=re.timeZone||te,this.dtf=getCachedDTF(Y,re)}format(){return this.originalZone?this.formatToParts().map(({value:_})=>_).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const _=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?_.map(Y=>{if(Y.type==="timeZoneName"){const ee=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...Y,value:ee}}else return Y}):_}resolvedOptions(){return this.dtf.resolvedOptions()}}class PolyRelFormatter{constructor(_,Y,ee){this.opts={style:"long",...ee},!Y&&hasRelative()&&(this.rtf=getCachedRTF(_,ee))}format(_,Y){return this.rtf?this.rtf.format(_,Y):formatRelativeTime(Y,_,this.opts.numeric,this.opts.style!=="long")}formatToParts(_,Y){return this.rtf?this.rtf.formatToParts(_,Y):[]}}const fallbackWeekSettings={firstDay:1,minimalDays:4,weekend:[6,7]};class Locale{static fromOpts(_){return Locale.create(_.locale,_.numberingSystem,_.outputCalendar,_.weekSettings,_.defaultToEN)}static create(_,Y,ee,te,re=!1){const ne=_||Settings.defaultLocale,ie=ne||(re?"en-US":systemLocale()),se=Y||Settings.defaultNumberingSystem,ae=ee||Settings.defaultOutputCalendar,ue=validateWeekSettings(te)||Settings.defaultWeekSettings;return new Locale(ie,se,ae,ue,ne)}static resetCache(){sysLocaleCache=null,intlDTCache={},intlNumCache={},intlRelCache={}}static fromObject({locale:_,numberingSystem:Y,outputCalendar:ee,weekSettings:te}={}){return Locale.create(_,Y,ee,te)}constructor(_,Y,ee,te,re){const[ne,ie,se]=parseLocaleString(_);this.locale=ne,this.numberingSystem=Y||ie||null,this.outputCalendar=ee||se||null,this.weekSettings=te,this.intl=intlConfigString(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=re,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=supportsFastNumbers(this)),this.fastNumbersCached}listingMode(){const _=this.isEnglish(),Y=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return _&&Y?"en":"intl"}clone(_){return!_||Object.getOwnPropertyNames(_).length===0?this:Locale.create(_.locale||this.specifiedLocale,_.numberingSystem||this.numberingSystem,_.outputCalendar||this.outputCalendar,validateWeekSettings(_.weekSettings)||this.weekSettings,_.defaultToEN||!1)}redefaultToEN(_={}){return this.clone({..._,defaultToEN:!0})}redefaultToSystem(_={}){return this.clone({..._,defaultToEN:!1})}months(_,Y=!1){return listStuff(this,_,months,()=>{const ee=Y?{month:_,day:"numeric"}:{month:_},te=Y?"format":"standalone";return this.monthsCache[te][_]||(this.monthsCache[te][_]=mapMonths(re=>this.extract(re,ee,"month"))),this.monthsCache[te][_]})}weekdays(_,Y=!1){return listStuff(this,_,weekdays,()=>{const ee=Y?{weekday:_,year:"numeric",month:"long",day:"numeric"}:{weekday:_},te=Y?"format":"standalone";return this.weekdaysCache[te][_]||(this.weekdaysCache[te][_]=mapWeekdays(re=>this.extract(re,ee,"weekday"))),this.weekdaysCache[te][_]})}meridiems(){return listStuff(this,void 0,()=>meridiems,()=>{if(!this.meridiemCache){const _={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[DateTime.utc(2016,11,13,9),DateTime.utc(2016,11,13,19)].map(Y=>this.extract(Y,_,"dayperiod"))}return this.meridiemCache})}eras(_){return listStuff(this,_,eras,()=>{const Y={era:_};return this.eraCache[_]||(this.eraCache[_]=[DateTime.utc(-40,1,1),DateTime.utc(2017,1,1)].map(ee=>this.extract(ee,Y,"era"))),this.eraCache[_]})}extract(_,Y,ee){const te=this.dtFormatter(_,Y),re=te.formatToParts(),ne=re.find(ie=>ie.type.toLowerCase()===ee);return ne?ne.value:null}numberFormatter(_={}){return new PolyNumberFormatter(this.intl,_.forceSimple||this.fastNumbers,_)}dtFormatter(_,Y={}){return new PolyDateFormatter(_,this.intl,Y)}relFormatter(_={}){return new PolyRelFormatter(this.intl,this.isEnglish(),_)}listFormatter(_={}){return getCachedLF(this.intl,_)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:hasLocaleWeekInfo()?getCachedWeekInfo(this.locale):fallbackWeekSettings}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(_){return this.locale===_.locale&&this.numberingSystem===_.numberingSystem&&this.outputCalendar===_.outputCalendar}}let singleton=null;class FixedOffsetZone extends Zone{static get utcInstance(){return singleton===null&&(singleton=new FixedOffsetZone(0)),singleton}static instance(_){return _===0?FixedOffsetZone.utcInstance:new FixedOffsetZone(_)}static parseSpecifier(_){if(_){const Y=_.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(Y)return new FixedOffsetZone(signedOffset(Y[1],Y[2]))}return null}constructor(_){super(),this.fixed=_}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${formatOffset(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${formatOffset(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(_,Y){return formatOffset(this.fixed,Y)}get isUniversal(){return!0}offset(){return this.fixed}equals(_){return _.type==="fixed"&&_.fixed===this.fixed}get isValid(){return!0}}class InvalidZone extends Zone{constructor(_){super(),this.zoneName=_}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function normalizeZone(Z,_){if(isUndefined(Z)||Z===null)return _;if(Z instanceof Zone)return Z;if(isString(Z)){const Y=Z.toLowerCase();return Y==="default"?_:Y==="local"||Y==="system"?SystemZone.instance:Y==="utc"||Y==="gmt"?FixedOffsetZone.utcInstance:FixedOffsetZone.parseSpecifier(Y)||IANAZone.create(Z)}else return isNumber$1(Z)?FixedOffsetZone.instance(Z):typeof Z=="object"&&"offset"in Z&&typeof Z.offset=="function"?Z:new InvalidZone(Z)}let now=()=>Date.now(),defaultZone="system",defaultLocale=null,defaultNumberingSystem=null,defaultOutputCalendar=null,twoDigitCutoffYear=60,throwOnInvalid,defaultWeekSettings=null;class Settings{static get now(){return now}static set now(_){now=_}static set defaultZone(_){defaultZone=_}static get defaultZone(){return normalizeZone(defaultZone,SystemZone.instance)}static get defaultLocale(){return defaultLocale}static set defaultLocale(_){defaultLocale=_}static get defaultNumberingSystem(){return defaultNumberingSystem}static set defaultNumberingSystem(_){defaultNumberingSystem=_}static get defaultOutputCalendar(){return defaultOutputCalendar}static set defaultOutputCalendar(_){defaultOutputCalendar=_}static get defaultWeekSettings(){return defaultWeekSettings}static set defaultWeekSettings(_){defaultWeekSettings=validateWeekSettings(_)}static get twoDigitCutoffYear(){return twoDigitCutoffYear}static set twoDigitCutoffYear(_){twoDigitCutoffYear=_%100}static get throwOnInvalid(){return throwOnInvalid}static set throwOnInvalid(_){throwOnInvalid=_}static resetCaches(){Locale.resetCache(),IANAZone.resetCache()}}class Invalid{constructor(_,Y){this.reason=_,this.explanation=Y}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const nonLeapLadder=[0,31,59,90,120,151,181,212,243,273,304,334],leapLadder=[0,31,60,91,121,152,182,213,244,274,305,335];function unitOutOfRange(Z,_){return new Invalid("unit out of range",`you specified ${_} (of type ${typeof _}) as a ${Z}, which is invalid`)}function dayOfWeek(Z,_,Y){const ee=new Date(Date.UTC(Z,_-1,Y));Z<100&&Z>=0&&ee.setUTCFullYear(ee.getUTCFullYear()-1900);const te=ee.getUTCDay();return te===0?7:te}function computeOrdinal(Z,_,Y){return Y+(isLeapYear(Z)?leapLadder:nonLeapLadder)[_-1]}function uncomputeOrdinal(Z,_){const Y=isLeapYear(Z)?leapLadder:nonLeapLadder,ee=Y.findIndex(re=>re<_),te=_-Y[ee];return{month:ee+1,day:te}}function isoWeekdayToLocal(Z,_){return(Z-_+7)%7+1}function gregorianToWeek(Z,_=4,Y=1){const{year:ee,month:te,day:re}=Z,ne=computeOrdinal(ee,te,re),ie=isoWeekdayToLocal(dayOfWeek(ee,te,re),Y);let se=Math.floor((ne-ie+14-_)/7),ae;return se<1?(ae=ee-1,se=weeksInWeekYear(ae,_,Y)):se>weeksInWeekYear(ee,_,Y)?(ae=ee+1,se=1):ae=ee,{weekYear:ae,weekNumber:se,weekday:ie,...timeObject(Z)}}function weekToGregorian(Z,_=4,Y=1){const{weekYear:ee,weekNumber:te,weekday:re}=Z,ne=isoWeekdayToLocal(dayOfWeek(ee,1,_),Y),ie=daysInYear(ee);let se=te*7+re-ne-7+_,ae;se<1?(ae=ee-1,se+=daysInYear(ae)):se>ie?(ae=ee+1,se-=daysInYear(ee)):ae=ee;const{month:ue,day:oe}=uncomputeOrdinal(ae,se);return{year:ae,month:ue,day:oe,...timeObject(Z)}}function gregorianToOrdinal(Z){const{year:_,month:Y,day:ee}=Z,te=computeOrdinal(_,Y,ee);return{year:_,ordinal:te,...timeObject(Z)}}function ordinalToGregorian(Z){const{year:_,ordinal:Y}=Z,{month:ee,day:te}=uncomputeOrdinal(_,Y);return{year:_,month:ee,day:te,...timeObject(Z)}}function usesLocalWeekValues(Z,_){if(!isUndefined(Z.localWeekday)||!isUndefined(Z.localWeekNumber)||!isUndefined(Z.localWeekYear)){if(!isUndefined(Z.weekday)||!isUndefined(Z.weekNumber)||!isUndefined(Z.weekYear))throw new ConflictingSpecificationError("Cannot mix locale-based week fields with ISO-based week fields");return isUndefined(Z.localWeekday)||(Z.weekday=Z.localWeekday),isUndefined(Z.localWeekNumber)||(Z.weekNumber=Z.localWeekNumber),isUndefined(Z.localWeekYear)||(Z.weekYear=Z.localWeekYear),delete Z.localWeekday,delete Z.localWeekNumber,delete Z.localWeekYear,{minDaysInFirstWeek:_.getMinDaysInFirstWeek(),startOfWeek:_.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function hasInvalidWeekData(Z,_=4,Y=1){const ee=isInteger(Z.weekYear),te=integerBetween(Z.weekNumber,1,weeksInWeekYear(Z.weekYear,_,Y)),re=integerBetween(Z.weekday,1,7);return ee?te?re?!1:unitOutOfRange("weekday",Z.weekday):unitOutOfRange("week",Z.weekNumber):unitOutOfRange("weekYear",Z.weekYear)}function hasInvalidOrdinalData(Z){const _=isInteger(Z.year),Y=integerBetween(Z.ordinal,1,daysInYear(Z.year));return _?Y?!1:unitOutOfRange("ordinal",Z.ordinal):unitOutOfRange("year",Z.year)}function hasInvalidGregorianData(Z){const _=isInteger(Z.year),Y=integerBetween(Z.month,1,12),ee=integerBetween(Z.day,1,daysInMonth(Z.year,Z.month));return _?Y?ee?!1:unitOutOfRange("day",Z.day):unitOutOfRange("month",Z.month):unitOutOfRange("year",Z.year)}function hasInvalidTimeData(Z){const{hour:_,minute:Y,second:ee,millisecond:te}=Z,re=integerBetween(_,0,23)||_===24&&Y===0&&ee===0&&te===0,ne=integerBetween(Y,0,59),ie=integerBetween(ee,0,59),se=integerBetween(te,0,999);return re?ne?ie?se?!1:unitOutOfRange("millisecond",te):unitOutOfRange("second",ee):unitOutOfRange("minute",Y):unitOutOfRange("hour",_)}function isUndefined(Z){return typeof Z>"u"}function isNumber$1(Z){return typeof Z=="number"}function isInteger(Z){return typeof Z=="number"&&Z%1===0}function isString(Z){return typeof Z=="string"}function isDate(Z){return Object.prototype.toString.call(Z)==="[object Date]"}function hasRelative(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function hasLocaleWeekInfo(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function maybeArray(Z){return Array.isArray(Z)?Z:[Z]}function bestBy(Z,_,Y){if(Z.length!==0)return Z.reduce((ee,te)=>{const re=[_(te),te];return ee&&Y(ee[0],re[0])===ee[0]?ee:re},null)[1]}function pick(Z,_){return _.reduce((Y,ee)=>(Y[ee]=Z[ee],Y),{})}function hasOwnProperty(Z,_){return Object.prototype.hasOwnProperty.call(Z,_)}function validateWeekSettings(Z){if(Z==null)return null;if(typeof Z!="object")throw new InvalidArgumentError("Week settings must be an object");if(!integerBetween(Z.firstDay,1,7)||!integerBetween(Z.minimalDays,1,7)||!Array.isArray(Z.weekend)||Z.weekend.some(_=>!integerBetween(_,1,7)))throw new InvalidArgumentError("Invalid week settings");return{firstDay:Z.firstDay,minimalDays:Z.minimalDays,weekend:Array.from(Z.weekend)}}function integerBetween(Z,_,Y){return isInteger(Z)&&Z>=_&&Z<=Y}function floorMod(Z,_){return Z-_*Math.floor(Z/_)}function padStart(Z,_=2){const Y=Z<0;let ee;return Y?ee="-"+(""+-Z).padStart(_,"0"):ee=(""+Z).padStart(_,"0"),ee}function parseInteger(Z){if(!(isUndefined(Z)||Z===null||Z===""))return parseInt(Z,10)}function parseFloating(Z){if(!(isUndefined(Z)||Z===null||Z===""))return parseFloat(Z)}function parseMillis(Z){if(!(isUndefined(Z)||Z===null||Z==="")){const _=parseFloat("0."+Z)*1e3;return Math.floor(_)}}function roundTo(Z,_,Y=!1){const ee=10**_;return(Y?Math.trunc:Math.round)(Z*ee)/ee}function isLeapYear(Z){return Z%4===0&&(Z%100!==0||Z%400===0)}function daysInYear(Z){return isLeapYear(Z)?366:365}function daysInMonth(Z,_){const Y=floorMod(_-1,12)+1,ee=Z+(_-Y)/12;return Y===2?isLeapYear(ee)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][Y-1]}function objToLocalTS(Z){let _=Date.UTC(Z.year,Z.month-1,Z.day,Z.hour,Z.minute,Z.second,Z.millisecond);return Z.year<100&&Z.year>=0&&(_=new Date(_),_.setUTCFullYear(Z.year,Z.month-1,Z.day)),+_}function firstWeekOffset(Z,_,Y){return-isoWeekdayToLocal(dayOfWeek(Z,1,_),Y)+_-1}function weeksInWeekYear(Z,_=4,Y=1){const ee=firstWeekOffset(Z,_,Y),te=firstWeekOffset(Z+1,_,Y);return(daysInYear(Z)-ee+te)/7}function untruncateYear(Z){return Z>99?Z:Z>Settings.twoDigitCutoffYear?1900+Z:2e3+Z}function parseZoneInfo(Z,_,Y,ee=null){const te=new Date(Z),re={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};ee&&(re.timeZone=ee);const ne={timeZoneName:_,...re},ie=new Intl.DateTimeFormat(Y,ne).formatToParts(te).find(se=>se.type.toLowerCase()==="timezonename");return ie?ie.value:null}function signedOffset(Z,_){let Y=parseInt(Z,10);Number.isNaN(Y)&&(Y=0);const ee=parseInt(_,10)||0,te=Y<0||Object.is(Y,-0)?-ee:ee;return Y*60+te}function asNumber(Z){const _=Number(Z);if(typeof Z=="boolean"||Z===""||Number.isNaN(_))throw new InvalidArgumentError(`Invalid unit value ${Z}`);return _}function normalizeObject(Z,_){const Y={};for(const ee in Z)if(hasOwnProperty(Z,ee)){const te=Z[ee];if(te==null)continue;Y[_(ee)]=asNumber(te)}return Y}function formatOffset(Z,_){const Y=Math.trunc(Math.abs(Z/60)),ee=Math.trunc(Math.abs(Z%60)),te=Z>=0?"+":"-";switch(_){case"short":return`${te}${padStart(Y,2)}:${padStart(ee,2)}`;case"narrow":return`${te}${Y}${ee>0?`:${ee}`:""}`;case"techie":return`${te}${padStart(Y,2)}${padStart(ee,2)}`;default:throw new RangeError(`Value format ${_} is out of range for property format`)}}function timeObject(Z){return pick(Z,["hour","minute","second","millisecond"])}const monthsLong=["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],monthsNarrow=["J","F","M","A","M","J","J","A","S","O","N","D"];function months(Z){switch(Z){case"narrow":return[...monthsNarrow];case"short":return[...monthsShort];case"long":return[...monthsLong];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const weekdaysLong=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],weekdaysShort=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],weekdaysNarrow=["M","T","W","T","F","S","S"];function weekdays(Z){switch(Z){case"narrow":return[...weekdaysNarrow];case"short":return[...weekdaysShort];case"long":return[...weekdaysLong];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const meridiems=["AM","PM"],erasLong=["Before Christ","Anno Domini"],erasShort=["BC","AD"],erasNarrow=["B","A"];function eras(Z){switch(Z){case"narrow":return[...erasNarrow];case"short":return[...erasShort];case"long":return[...erasLong];default:return null}}function meridiemForDateTime(Z){return meridiems[Z.hour<12?0:1]}function weekdayForDateTime(Z,_){return weekdays(_)[Z.weekday-1]}function monthForDateTime(Z,_){return months(_)[Z.month-1]}function eraForDateTime(Z,_){return eras(_)[Z.year<0?0:1]}function formatRelativeTime(Z,_,Y="always",ee=!1){const te={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},re=["hours","minutes","seconds"].indexOf(Z)===-1;if(Y==="auto"&&re){const oe=Z==="days";switch(_){case 1:return oe?"tomorrow":`next ${te[Z][0]}`;case-1:return oe?"yesterday":`last ${te[Z][0]}`;case 0:return oe?"today":`this ${te[Z][0]}`}}const ne=Object.is(_,-0)||_<0,ie=Math.abs(_),se=ie===1,ae=te[Z],ue=ee?se?ae[1]:ae[2]||ae[1]:se?te[Z][0]:Z;return ne?`${ie} ${ue} ago`:`in ${ie} ${ue}`}function stringifyTokens(Z,_){let Y="";for(const ee of Z)ee.literal?Y+=ee.val:Y+=_(ee.val);return Y}const macroTokenToFormatOpts={D:DATE_SHORT,DD:DATE_MED,DDD:DATE_FULL,DDDD:DATE_HUGE,t:TIME_SIMPLE,tt:TIME_WITH_SECONDS,ttt:TIME_WITH_SHORT_OFFSET,tttt:TIME_WITH_LONG_OFFSET,T:TIME_24_SIMPLE,TT:TIME_24_WITH_SECONDS,TTT:TIME_24_WITH_SHORT_OFFSET,TTTT:TIME_24_WITH_LONG_OFFSET,f:DATETIME_SHORT,ff:DATETIME_MED,fff:DATETIME_FULL,ffff:DATETIME_HUGE,F:DATETIME_SHORT_WITH_SECONDS,FF:DATETIME_MED_WITH_SECONDS,FFF:DATETIME_FULL_WITH_SECONDS,FFFF:DATETIME_HUGE_WITH_SECONDS};class Formatter{static create(_,Y={}){return new Formatter(_,Y)}static parseFormat(_){let Y=null,ee="",te=!1;const re=[];for(let ne=0;ne<_.length;ne++){const ie=_.charAt(ne);ie==="'"?(ee.length>0&&re.push({literal:te||/^\s+$/.test(ee),val:ee}),Y=null,ee="",te=!te):te||ie===Y?ee+=ie:(ee.length>0&&re.push({literal:/^\s+$/.test(ee),val:ee}),ee=ie,Y=ie)}return ee.length>0&&re.push({literal:te||/^\s+$/.test(ee),val:ee}),re}static macroTokenToFormatOpts(_){return macroTokenToFormatOpts[_]}constructor(_,Y){this.opts=Y,this.loc=_,this.systemLoc=null}formatWithSystemDefault(_,Y){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(_,{...this.opts,...Y}).format()}dtFormatter(_,Y={}){return this.loc.dtFormatter(_,{...this.opts,...Y})}formatDateTime(_,Y){return this.dtFormatter(_,Y).format()}formatDateTimeParts(_,Y){return this.dtFormatter(_,Y).formatToParts()}formatInterval(_,Y){return this.dtFormatter(_.start,Y).dtf.formatRange(_.start.toJSDate(),_.end.toJSDate())}resolvedOptions(_,Y){return this.dtFormatter(_,Y).resolvedOptions()}num(_,Y=0){if(this.opts.forceSimple)return padStart(_,Y);const ee={...this.opts};return Y>0&&(ee.padTo=Y),this.loc.numberFormatter(ee).format(_)}formatDateTimeFromString(_,Y){const ee=this.loc.listingMode()==="en",te=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",re=(ce,he)=>this.loc.extract(_,ce,he),ne=ce=>_.isOffsetFixed&&_.offset===0&&ce.allowZ?"Z":_.isValid?_.zone.formatOffset(_.ts,ce.format):"",ie=()=>ee?meridiemForDateTime(_):re({hour:"numeric",hourCycle:"h12"},"dayperiod"),se=(ce,he)=>ee?monthForDateTime(_,ce):re(he?{month:ce}:{month:ce,day:"numeric"},"month"),ae=(ce,he)=>ee?weekdayForDateTime(_,ce):re(he?{weekday:ce}:{weekday:ce,month:"long",day:"numeric"},"weekday"),ue=ce=>{const he=Formatter.macroTokenToFormatOpts(ce);return he?this.formatWithSystemDefault(_,he):ce},oe=ce=>ee?eraForDateTime(_,ce):re({era:ce},"era"),le=ce=>{switch(ce){case"S":return this.num(_.millisecond);case"u":case"SSS":return this.num(_.millisecond,3);case"s":return this.num(_.second);case"ss":return this.num(_.second,2);case"uu":return this.num(Math.floor(_.millisecond/10),2);case"uuu":return this.num(Math.floor(_.millisecond/100));case"m":return this.num(_.minute);case"mm":return this.num(_.minute,2);case"h":return this.num(_.hour%12===0?12:_.hour%12);case"hh":return this.num(_.hour%12===0?12:_.hour%12,2);case"H":return this.num(_.hour);case"HH":return this.num(_.hour,2);case"Z":return ne({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return ne({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return ne({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return _.zone.offsetName(_.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return _.zone.offsetName(_.ts,{format:"long",locale:this.loc.locale});case"z":return _.zoneName;case"a":return ie();case"d":return te?re({day:"numeric"},"day"):this.num(_.day);case"dd":return te?re({day:"2-digit"},"day"):this.num(_.day,2);case"c":return this.num(_.weekday);case"ccc":return ae("short",!0);case"cccc":return ae("long",!0);case"ccccc":return ae("narrow",!0);case"E":return this.num(_.weekday);case"EEE":return ae("short",!1);case"EEEE":return ae("long",!1);case"EEEEE":return ae("narrow",!1);case"L":return te?re({month:"numeric",day:"numeric"},"month"):this.num(_.month);case"LL":return te?re({month:"2-digit",day:"numeric"},"month"):this.num(_.month,2);case"LLL":return se("short",!0);case"LLLL":return se("long",!0);case"LLLLL":return se("narrow",!0);case"M":return te?re({month:"numeric"},"month"):this.num(_.month);case"MM":return te?re({month:"2-digit"},"month"):this.num(_.month,2);case"MMM":return se("short",!1);case"MMMM":return se("long",!1);case"MMMMM":return se("narrow",!1);case"y":return te?re({year:"numeric"},"year"):this.num(_.year);case"yy":return te?re({year:"2-digit"},"year"):this.num(_.year.toString().slice(-2),2);case"yyyy":return te?re({year:"numeric"},"year"):this.num(_.year,4);case"yyyyyy":return te?re({year:"numeric"},"year"):this.num(_.year,6);case"G":return oe("short");case"GG":return oe("long");case"GGGGG":return oe("narrow");case"kk":return this.num(_.weekYear.toString().slice(-2),2);case"kkkk":return this.num(_.weekYear,4);case"W":return this.num(_.weekNumber);case"WW":return this.num(_.weekNumber,2);case"n":return this.num(_.localWeekNumber);case"nn":return this.num(_.localWeekNumber,2);case"ii":return this.num(_.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(_.localWeekYear,4);case"o":return this.num(_.ordinal);case"ooo":return this.num(_.ordinal,3);case"q":return this.num(_.quarter);case"qq":return this.num(_.quarter,2);case"X":return this.num(Math.floor(_.ts/1e3));case"x":return this.num(_.ts);default:return ue(ce)}};return stringifyTokens(Formatter.parseFormat(Y),le)}formatDurationFromString(_,Y){const ee=se=>{switch(se[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},te=se=>ae=>{const ue=ee(ae);return ue?this.num(se.get(ue),ae.length):ae},re=Formatter.parseFormat(Y),ne=re.reduce((se,{literal:ae,val:ue})=>ae?se:se.concat(ue),[]),ie=_.shiftTo(...ne.map(ee).filter(se=>se));return stringifyTokens(re,te(ie))}}const ianaRegex=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function combineRegexes(...Z){const _=Z.reduce((Y,ee)=>Y+ee.source,"");return RegExp(`^${_}$`)}function combineExtractors(...Z){return _=>Z.reduce(([Y,ee,te],re)=>{const[ne,ie,se]=re(_,te);return[{...Y,...ne},ie||ee,se]},[{},null,1]).slice(0,2)}function parse(Z,..._){if(Z==null)return[null,null];for(const[Y,ee]of _){const te=Y.exec(Z);if(te)return ee(te)}return[null,null]}function simpleParse(...Z){return(_,Y)=>{const ee={};let te;for(te=0;tece!==void 0&&(he||ce&&ue)?-ce:ce;return[{years:le(parseFloating(Y)),months:le(parseFloating(ee)),weeks:le(parseFloating(te)),days:le(parseFloating(re)),hours:le(parseFloating(ne)),minutes:le(parseFloating(ie)),seconds:le(parseFloating(se),se==="-0"),milliseconds:le(parseMillis(ae),oe)}]}const obsOffsets={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function fromStrings(Z,_,Y,ee,te,re,ne){const ie={year:_.length===2?untruncateYear(parseInteger(_)):parseInteger(_),month:monthsShort.indexOf(Y)+1,day:parseInteger(ee),hour:parseInteger(te),minute:parseInteger(re)};return ne&&(ie.second=parseInteger(ne)),Z&&(ie.weekday=Z.length>3?weekdaysLong.indexOf(Z)+1:weekdaysShort.indexOf(Z)+1),ie}const rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function extractRFC2822(Z){const[,_,Y,ee,te,re,ne,ie,se,ae,ue,oe]=Z,le=fromStrings(_,te,ee,Y,re,ne,ie);let ce;return se?ce=obsOffsets[se]:ae?ce=0:ce=signedOffset(ue,oe),[le,new FixedOffsetZone(ce)]}function preprocessRFC2822(Z){return Z.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const rfc1123=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,rfc850=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,ascii=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function extractRFC1123Or850(Z){const[,_,Y,ee,te,re,ne,ie]=Z;return[fromStrings(_,te,ee,Y,re,ne,ie),FixedOffsetZone.utcInstance]}function extractASCII(Z){const[,_,Y,ee,te,re,ne,ie]=Z;return[fromStrings(_,ie,Y,ee,te,re,ne),FixedOffsetZone.utcInstance]}const isoYmdWithTimeExtensionRegex=combineRegexes(isoYmdRegex,isoTimeExtensionRegex),isoWeekWithTimeExtensionRegex=combineRegexes(isoWeekRegex,isoTimeExtensionRegex),isoOrdinalWithTimeExtensionRegex=combineRegexes(isoOrdinalRegex,isoTimeExtensionRegex),isoTimeCombinedRegex=combineRegexes(isoTimeRegex),extractISOYmdTimeAndOffset=combineExtractors(extractISOYmd,extractISOTime,extractISOOffset,extractIANAZone),extractISOWeekTimeAndOffset=combineExtractors(extractISOWeekData,extractISOTime,extractISOOffset,extractIANAZone),extractISOOrdinalDateAndTime=combineExtractors(extractISOOrdinalData,extractISOTime,extractISOOffset,extractIANAZone),extractISOTimeAndOffset=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseISODate(Z){return parse(Z,[isoYmdWithTimeExtensionRegex,extractISOYmdTimeAndOffset],[isoWeekWithTimeExtensionRegex,extractISOWeekTimeAndOffset],[isoOrdinalWithTimeExtensionRegex,extractISOOrdinalDateAndTime],[isoTimeCombinedRegex,extractISOTimeAndOffset])}function parseRFC2822Date(Z){return parse(preprocessRFC2822(Z),[rfc2822,extractRFC2822])}function parseHTTPDate(Z){return parse(Z,[rfc1123,extractRFC1123Or850],[rfc850,extractRFC1123Or850],[ascii,extractASCII])}function parseISODuration(Z){return parse(Z,[isoDuration,extractISODuration])}const extractISOTimeOnly=combineExtractors(extractISOTime);function parseISOTimeOnly(Z){return parse(Z,[isoTimeOnly,extractISOTimeOnly])}const sqlYmdWithTimeExtensionRegex=combineRegexes(sqlYmdRegex,sqlTimeExtensionRegex),sqlTimeCombinedRegex=combineRegexes(sqlTimeRegex),extractISOTimeOffsetAndIANAZone=combineExtractors(extractISOTime,extractISOOffset,extractIANAZone);function parseSQL(Z){return parse(Z,[sqlYmdWithTimeExtensionRegex,extractISOYmdTimeAndOffset],[sqlTimeCombinedRegex,extractISOTimeOffsetAndIANAZone])}const INVALID$2="Invalid Duration",lowOrderMatrix={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},casualMatrix={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...lowOrderMatrix},daysInYearAccurate=146097/400,daysInMonthAccurate=146097/4800,accurateMatrix={years:{quarters:4,months:12,weeks:daysInYearAccurate/7,days:daysInYearAccurate,hours:daysInYearAccurate*24,minutes:daysInYearAccurate*24*60,seconds:daysInYearAccurate*24*60*60,milliseconds:daysInYearAccurate*24*60*60*1e3},quarters:{months:3,weeks:daysInYearAccurate/28,days:daysInYearAccurate/4,hours:daysInYearAccurate*24/4,minutes:daysInYearAccurate*24*60/4,seconds:daysInYearAccurate*24*60*60/4,milliseconds:daysInYearAccurate*24*60*60*1e3/4},months:{weeks:daysInMonthAccurate/7,days:daysInMonthAccurate,hours:daysInMonthAccurate*24,minutes:daysInMonthAccurate*24*60,seconds:daysInMonthAccurate*24*60*60,milliseconds:daysInMonthAccurate*24*60*60*1e3},...lowOrderMatrix},orderedUnits$1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],reverseUnits=orderedUnits$1.slice(0).reverse();function clone$1(Z,_,Y=!1){const ee={values:Y?_.values:{...Z.values,..._.values||{}},loc:Z.loc.clone(_.loc),conversionAccuracy:_.conversionAccuracy||Z.conversionAccuracy,matrix:_.matrix||Z.matrix};return new Duration(ee)}function durationToMillis(Z,_){var Y;let ee=(Y=_.milliseconds)!=null?Y:0;for(const te of reverseUnits.slice(1))_[te]&&(ee+=_[te]*Z[te].milliseconds);return ee}function normalizeValues(Z,_){const Y=durationToMillis(Z,_)<0?-1:1;orderedUnits$1.reduceRight((ee,te)=>{if(isUndefined(_[te]))return ee;if(ee){const re=_[ee]*Y,ne=Z[te][ee],ie=Math.floor(re/ne);_[te]+=ie*Y,_[ee]-=ie*ne*Y}return te},null),orderedUnits$1.reduce((ee,te)=>{if(isUndefined(_[te]))return ee;if(ee){const re=_[ee]%1;_[ee]-=re,_[te]+=re*Z[ee][te]}return te},null)}function removeZeroes(Z){const _={};for(const[Y,ee]of Object.entries(Z))ee!==0&&(_[Y]=ee);return _}class Duration{constructor(_){const Y=_.conversionAccuracy==="longterm"||!1;let ee=Y?accurateMatrix:casualMatrix;_.matrix&&(ee=_.matrix),this.values=_.values,this.loc=_.loc||Locale.create(),this.conversionAccuracy=Y?"longterm":"casual",this.invalid=_.invalid||null,this.matrix=ee,this.isLuxonDuration=!0}static fromMillis(_,Y){return Duration.fromObject({milliseconds:_},Y)}static fromObject(_,Y={}){if(_==null||typeof _!="object")throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${_===null?"null":typeof _}`);return new Duration({values:normalizeObject(_,Duration.normalizeUnit),loc:Locale.fromObject(Y),conversionAccuracy:Y.conversionAccuracy,matrix:Y.matrix})}static fromDurationLike(_){if(isNumber$1(_))return Duration.fromMillis(_);if(Duration.isDuration(_))return _;if(typeof _=="object")return Duration.fromObject(_);throw new InvalidArgumentError(`Unknown duration argument ${_} of type ${typeof _}`)}static fromISO(_,Y){const[ee]=parseISODuration(_);return ee?Duration.fromObject(ee,Y):Duration.invalid("unparsable",`the input "${_}" can't be parsed as ISO 8601`)}static fromISOTime(_,Y){const[ee]=parseISOTimeOnly(_);return ee?Duration.fromObject(ee,Y):Duration.invalid("unparsable",`the input "${_}" can't be parsed as ISO 8601`)}static invalid(_,Y=null){if(!_)throw new InvalidArgumentError("need to specify a reason the Duration is invalid");const ee=_ instanceof Invalid?_:new Invalid(_,Y);if(Settings.throwOnInvalid)throw new InvalidDurationError(ee);return new Duration({invalid:ee})}static normalizeUnit(_){const Y={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[_&&_.toLowerCase()];if(!Y)throw new InvalidUnitError(_);return Y}static isDuration(_){return _&&_.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(_,Y={}){const ee={...Y,floor:Y.round!==!1&&Y.floor!==!1};return this.isValid?Formatter.create(this.loc,ee).formatDurationFromString(this,_):INVALID$2}toHuman(_={}){if(!this.isValid)return INVALID$2;const Y=orderedUnits$1.map(ee=>{const te=this.values[ee];return isUndefined(te)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",..._,unit:ee.slice(0,-1)}).format(te)}).filter(ee=>ee);return this.loc.listFormatter({type:"conjunction",style:_.listStyle||"narrow",..._}).format(Y)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let _="P";return this.years!==0&&(_+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(_+=this.months+this.quarters*3+"M"),this.weeks!==0&&(_+=this.weeks+"W"),this.days!==0&&(_+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(_+="T"),this.hours!==0&&(_+=this.hours+"H"),this.minutes!==0&&(_+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(_+=roundTo(this.seconds+this.milliseconds/1e3,3)+"S"),_==="P"&&(_+="T0S"),_}toISOTime(_={}){if(!this.isValid)return null;const Y=this.toMillis();return Y<0||Y>=864e5?null:(_={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",..._,includeOffset:!1},DateTime.fromMillis(Y,{zone:"UTC"}).toISOTime(_))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?durationToMillis(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(_){if(!this.isValid)return this;const Y=Duration.fromDurationLike(_),ee={};for(const te of orderedUnits$1)(hasOwnProperty(Y.values,te)||hasOwnProperty(this.values,te))&&(ee[te]=Y.get(te)+this.get(te));return clone$1(this,{values:ee},!0)}minus(_){if(!this.isValid)return this;const Y=Duration.fromDurationLike(_);return this.plus(Y.negate())}mapUnits(_){if(!this.isValid)return this;const Y={};for(const ee of Object.keys(this.values))Y[ee]=asNumber(_(this.values[ee],ee));return clone$1(this,{values:Y},!0)}get(_){return this[Duration.normalizeUnit(_)]}set(_){if(!this.isValid)return this;const Y={...this.values,...normalizeObject(_,Duration.normalizeUnit)};return clone$1(this,{values:Y})}reconfigure({locale:_,numberingSystem:Y,conversionAccuracy:ee,matrix:te}={}){const ne={loc:this.loc.clone({locale:_,numberingSystem:Y}),matrix:te,conversionAccuracy:ee};return clone$1(this,ne)}as(_){return this.isValid?this.shiftTo(_).get(_):NaN}normalize(){if(!this.isValid)return this;const _=this.toObject();return normalizeValues(this.matrix,_),clone$1(this,{values:_},!0)}rescale(){if(!this.isValid)return this;const _=removeZeroes(this.normalize().shiftToAll().toObject());return clone$1(this,{values:_},!0)}shiftTo(..._){if(!this.isValid)return this;if(_.length===0)return this;_=_.map(ne=>Duration.normalizeUnit(ne));const Y={},ee={},te=this.toObject();let re;for(const ne of orderedUnits$1)if(_.indexOf(ne)>=0){re=ne;let ie=0;for(const ae in ee)ie+=this.matrix[ae][ne]*ee[ae],ee[ae]=0;isNumber$1(te[ne])&&(ie+=te[ne]);const se=Math.trunc(ie);Y[ne]=se,ee[ne]=(ie*1e3-se*1e3)/1e3}else isNumber$1(te[ne])&&(ee[ne]=te[ne]);for(const ne in ee)ee[ne]!==0&&(Y[re]+=ne===re?ee[ne]:ee[ne]/this.matrix[re][ne]);return normalizeValues(this.matrix,Y),clone$1(this,{values:Y},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const _={};for(const Y of Object.keys(this.values))_[Y]=this.values[Y]===0?0:-this.values[Y];return clone$1(this,{values:_},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(_){if(!this.isValid||!_.isValid||!this.loc.equals(_.loc))return!1;function Y(ee,te){return ee===void 0||ee===0?te===void 0||te===0:ee===te}for(const ee of orderedUnits$1)if(!Y(this.values[ee],_.values[ee]))return!1;return!0}}const INVALID$1="Invalid Interval";function validateStartEnd(Z,_){return!Z||!Z.isValid?Interval.invalid("missing or invalid start"):!_||!_.isValid?Interval.invalid("missing or invalid end"):__:!1}isBefore(_){return this.isValid?this.e<=_:!1}contains(_){return this.isValid?this.s<=_&&this.e>_:!1}set({start:_,end:Y}={}){return this.isValid?Interval.fromDateTimes(_||this.s,Y||this.e):this}splitAt(..._){if(!this.isValid)return[];const Y=_.map(friendlyDateTime).filter(ne=>this.contains(ne)).sort((ne,ie)=>ne.toMillis()-ie.toMillis()),ee=[];let{s:te}=this,re=0;for(;te+this.e?this.e:ne;ee.push(Interval.fromDateTimes(te,ie)),te=ie,re+=1}return ee}splitBy(_){const Y=Duration.fromDurationLike(_);if(!this.isValid||!Y.isValid||Y.as("milliseconds")===0)return[];let{s:ee}=this,te=1,re;const ne=[];for(;eese*te));re=+ie>+this.e?this.e:ie,ne.push(Interval.fromDateTimes(ee,re)),ee=re,te+=1}return ne}divideEqually(_){return this.isValid?this.splitBy(this.length()/_).slice(0,_):[]}overlaps(_){return this.e>_.s&&this.s<_.e}abutsStart(_){return this.isValid?+this.e==+_.s:!1}abutsEnd(_){return this.isValid?+_.e==+this.s:!1}engulfs(_){return this.isValid?this.s<=_.s&&this.e>=_.e:!1}equals(_){return!this.isValid||!_.isValid?!1:this.s.equals(_.s)&&this.e.equals(_.e)}intersection(_){if(!this.isValid)return this;const Y=this.s>_.s?this.s:_.s,ee=this.e<_.e?this.e:_.e;return Y>=ee?null:Interval.fromDateTimes(Y,ee)}union(_){if(!this.isValid)return this;const Y=this.s<_.s?this.s:_.s,ee=this.e>_.e?this.e:_.e;return Interval.fromDateTimes(Y,ee)}static merge(_){const[Y,ee]=_.sort((te,re)=>te.s-re.s).reduce(([te,re],ne)=>re?re.overlaps(ne)||re.abutsStart(ne)?[te,re.union(ne)]:[te.concat([re]),ne]:[te,ne],[[],null]);return ee&&Y.push(ee),Y}static xor(_){let Y=null,ee=0;const te=[],re=_.map(se=>[{time:se.s,type:"s"},{time:se.e,type:"e"}]),ne=Array.prototype.concat(...re),ie=ne.sort((se,ae)=>se.time-ae.time);for(const se of ie)ee+=se.type==="s"?1:-1,ee===1?Y=se.time:(Y&&+Y!=+se.time&&te.push(Interval.fromDateTimes(Y,se.time)),Y=null);return Interval.merge(te)}difference(..._){return Interval.xor([this].concat(_)).map(Y=>this.intersection(Y)).filter(Y=>Y&&!Y.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:INVALID$1}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(_=DATE_SHORT,Y={}){return this.isValid?Formatter.create(this.s.loc.clone(Y),_).formatInterval(this):INVALID$1}toISO(_){return this.isValid?`${this.s.toISO(_)}/${this.e.toISO(_)}`:INVALID$1}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:INVALID$1}toISOTime(_){return this.isValid?`${this.s.toISOTime(_)}/${this.e.toISOTime(_)}`:INVALID$1}toFormat(_,{separator:Y=" – "}={}){return this.isValid?`${this.s.toFormat(_)}${Y}${this.e.toFormat(_)}`:INVALID$1}toDuration(_,Y){return this.isValid?this.e.diff(this.s,_,Y):Duration.invalid(this.invalidReason)}mapEndpoints(_){return Interval.fromDateTimes(_(this.s),_(this.e))}}class Info{static hasDST(_=Settings.defaultZone){const Y=DateTime.now().setZone(_).set({month:12});return!_.isUniversal&&Y.offset!==Y.set({month:6}).offset}static isValidIANAZone(_){return IANAZone.isValidZone(_)}static normalizeZone(_){return normalizeZone(_,Settings.defaultZone)}static getStartOfWeek({locale:_=null,locObj:Y=null}={}){return(Y||Locale.create(_)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:_=null,locObj:Y=null}={}){return(Y||Locale.create(_)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:_=null,locObj:Y=null}={}){return(Y||Locale.create(_)).getWeekendDays().slice()}static months(_="long",{locale:Y=null,numberingSystem:ee=null,locObj:te=null,outputCalendar:re="gregory"}={}){return(te||Locale.create(Y,ee,re)).months(_)}static monthsFormat(_="long",{locale:Y=null,numberingSystem:ee=null,locObj:te=null,outputCalendar:re="gregory"}={}){return(te||Locale.create(Y,ee,re)).months(_,!0)}static weekdays(_="long",{locale:Y=null,numberingSystem:ee=null,locObj:te=null}={}){return(te||Locale.create(Y,ee,null)).weekdays(_)}static weekdaysFormat(_="long",{locale:Y=null,numberingSystem:ee=null,locObj:te=null}={}){return(te||Locale.create(Y,ee,null)).weekdays(_,!0)}static meridiems({locale:_=null}={}){return Locale.create(_).meridiems()}static eras(_="short",{locale:Y=null}={}){return Locale.create(Y,null,"gregory").eras(_)}static features(){return{relative:hasRelative(),localeWeek:hasLocaleWeekInfo()}}}function dayDiff(Z,_){const Y=te=>te.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),ee=Y(_)-Y(Z);return Math.floor(Duration.fromMillis(ee).as("days"))}function highOrderDiffs(Z,_,Y){const ee=[["years",(se,ae)=>ae.year-se.year],["quarters",(se,ae)=>ae.quarter-se.quarter+(ae.year-se.year)*4],["months",(se,ae)=>ae.month-se.month+(ae.year-se.year)*12],["weeks",(se,ae)=>{const ue=dayDiff(se,ae);return(ue-ue%7)/7}],["days",dayDiff]],te={},re=Z;let ne,ie;for(const[se,ae]of ee)Y.indexOf(se)>=0&&(ne=se,te[se]=ae(Z,_),ie=re.plus(te),ie>_?(te[se]--,Z=re.plus(te),Z>_&&(ie=Z,te[se]--,Z=re.plus(te))):Z=ie);return[Z,te,ie,ne]}function diff(Z,_,Y,ee){let[te,re,ne,ie]=highOrderDiffs(Z,_,Y);const se=_-te,ae=Y.filter(oe=>["hours","minutes","seconds","milliseconds"].indexOf(oe)>=0);ae.length===0&&(ne<_&&(ne=te.plus({[ie]:1})),ne!==te&&(re[ie]=(re[ie]||0)+se/(ne-te)));const ue=Duration.fromObject(re,ee);return ae.length>0?Duration.fromMillis(se,ee).shiftTo(...ae).plus(ue):ue}const numberingSystems={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},numberingSystemsUTF16={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},hanidecChars=numberingSystems.hanidec.replace(/[\[|\]]/g,"").split("");function parseDigits(Z){let _=parseInt(Z,10);if(isNaN(_)){_="";for(let Y=0;Y=re&&ee<=ne&&(_+=ee-re)}}return parseInt(_,10)}else return _}function digitRegex({numberingSystem:Z},_=""){return new RegExp(`${numberingSystems[Z||"latn"]}${_}`)}const MISSING_FTP="missing Intl.DateTimeFormat.formatToParts support";function intUnit(Z,_=Y=>Y){return{regex:Z,deser:([Y])=>_(parseDigits(Y))}}const NBSP=" ",spaceOrNBSP=`[ ${NBSP}]`,spaceOrNBSPRegExp=new RegExp(spaceOrNBSP,"g");function fixListRegex(Z){return Z.replace(/\./g,"\\.?").replace(spaceOrNBSPRegExp,spaceOrNBSP)}function stripInsensitivities(Z){return Z.replace(/\./g,"").replace(spaceOrNBSPRegExp," ").toLowerCase()}function oneOf(Z,_){return Z===null?null:{regex:RegExp(Z.map(fixListRegex).join("|")),deser:([Y])=>Z.findIndex(ee=>stripInsensitivities(Y)===stripInsensitivities(ee))+_}}function offset(Z,_){return{regex:Z,deser:([,Y,ee])=>signedOffset(Y,ee),groups:_}}function simple(Z){return{regex:Z,deser:([_])=>_}}function escapeToken(Z){return Z.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function unitForToken(Z,_){const Y=digitRegex(_),ee=digitRegex(_,"{2}"),te=digitRegex(_,"{3}"),re=digitRegex(_,"{4}"),ne=digitRegex(_,"{6}"),ie=digitRegex(_,"{1,2}"),se=digitRegex(_,"{1,3}"),ae=digitRegex(_,"{1,6}"),ue=digitRegex(_,"{1,9}"),oe=digitRegex(_,"{2,4}"),le=digitRegex(_,"{4,6}"),ce=de=>({regex:RegExp(escapeToken(de.val)),deser:([pe])=>pe,literal:!0}),fe=(de=>{if(Z.literal)return ce(de);switch(de.val){case"G":return oneOf(_.eras("short"),0);case"GG":return oneOf(_.eras("long"),0);case"y":return intUnit(ae);case"yy":return intUnit(oe,untruncateYear);case"yyyy":return intUnit(re);case"yyyyy":return intUnit(le);case"yyyyyy":return intUnit(ne);case"M":return intUnit(ie);case"MM":return intUnit(ee);case"MMM":return oneOf(_.months("short",!0),1);case"MMMM":return oneOf(_.months("long",!0),1);case"L":return intUnit(ie);case"LL":return intUnit(ee);case"LLL":return oneOf(_.months("short",!1),1);case"LLLL":return oneOf(_.months("long",!1),1);case"d":return intUnit(ie);case"dd":return intUnit(ee);case"o":return intUnit(se);case"ooo":return intUnit(te);case"HH":return intUnit(ee);case"H":return intUnit(ie);case"hh":return intUnit(ee);case"h":return intUnit(ie);case"mm":return intUnit(ee);case"m":return intUnit(ie);case"q":return intUnit(ie);case"qq":return intUnit(ee);case"s":return intUnit(ie);case"ss":return intUnit(ee);case"S":return intUnit(se);case"SSS":return intUnit(te);case"u":return simple(ue);case"uu":return simple(ie);case"uuu":return intUnit(Y);case"a":return oneOf(_.meridiems(),0);case"kkkk":return intUnit(re);case"kk":return intUnit(oe,untruncateYear);case"W":return intUnit(ie);case"WW":return intUnit(ee);case"E":case"c":return intUnit(Y);case"EEE":return oneOf(_.weekdays("short",!1),1);case"EEEE":return oneOf(_.weekdays("long",!1),1);case"ccc":return oneOf(_.weekdays("short",!0),1);case"cccc":return oneOf(_.weekdays("long",!0),1);case"Z":case"ZZ":return offset(new RegExp(`([+-]${ie.source})(?::(${ee.source}))?`),2);case"ZZZ":return offset(new RegExp(`([+-]${ie.source})(${ee.source})?`),2);case"z":return simple(/[a-z_+-/]{1,256}?/i);case" ":return simple(/[^\S\n\r]/);default:return ce(de)}})(Z)||{invalidReason:MISSING_FTP};return fe.token=Z,fe}const partTypeStyleToTokenVal={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function tokenForPart(Z,_,Y){const{type:ee,value:te}=Z;if(ee==="literal"){const se=/^\s+$/.test(te);return{literal:!se,val:se?" ":te}}const re=_[ee];let ne=ee;ee==="hour"&&(_.hour12!=null?ne=_.hour12?"hour12":"hour24":_.hourCycle!=null?_.hourCycle==="h11"||_.hourCycle==="h12"?ne="hour12":ne="hour24":ne=Y.hour12?"hour12":"hour24");let ie=partTypeStyleToTokenVal[ne];if(typeof ie=="object"&&(ie=ie[re]),ie)return{literal:!1,val:ie}}function buildRegex(Z){return[`^${Z.map(Y=>Y.regex).reduce((Y,ee)=>`${Y}(${ee.source})`,"")}$`,Z]}function match(Z,_,Y){const ee=Z.match(_);if(ee){const te={};let re=1;for(const ne in Y)if(hasOwnProperty(Y,ne)){const ie=Y[ne],se=ie.groups?ie.groups+1:1;!ie.literal&&ie.token&&(te[ie.token.val[0]]=ie.deser(ee.slice(re,re+se))),re+=se}return[ee,te]}else return[ee,{}]}function dateTimeFromMatches(Z){const _=re=>{switch(re){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let Y=null,ee;return isUndefined(Z.z)||(Y=IANAZone.create(Z.z)),isUndefined(Z.Z)||(Y||(Y=new FixedOffsetZone(Z.Z)),ee=Z.Z),isUndefined(Z.q)||(Z.M=(Z.q-1)*3+1),isUndefined(Z.h)||(Z.h<12&&Z.a===1?Z.h+=12:Z.h===12&&Z.a===0&&(Z.h=0)),Z.G===0&&Z.y&&(Z.y=-Z.y),isUndefined(Z.u)||(Z.S=parseMillis(Z.u)),[Object.keys(Z).reduce((re,ne)=>{const ie=_(ne);return ie&&(re[ie]=Z[ne]),re},{}),Y,ee]}let dummyDateTimeCache=null;function getDummyDateTime(){return dummyDateTimeCache||(dummyDateTimeCache=DateTime.fromMillis(1555555555555)),dummyDateTimeCache}function maybeExpandMacroToken(Z,_){if(Z.literal)return Z;const Y=Formatter.macroTokenToFormatOpts(Z.val),ee=formatOptsToTokens(Y,_);return ee==null||ee.includes(void 0)?Z:ee}function expandMacroTokens(Z,_){return Array.prototype.concat(...Z.map(Y=>maybeExpandMacroToken(Y,_)))}function explainFromTokens(Z,_,Y){const ee=expandMacroTokens(Formatter.parseFormat(Y),Z),te=ee.map(ne=>unitForToken(ne,Z)),re=te.find(ne=>ne.invalidReason);if(re)return{input:_,tokens:ee,invalidReason:re.invalidReason};{const[ne,ie]=buildRegex(te),se=RegExp(ne,"i"),[ae,ue]=match(_,se,ie),[oe,le,ce]=ue?dateTimeFromMatches(ue):[null,null,void 0];if(hasOwnProperty(ue,"a")&&hasOwnProperty(ue,"H"))throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");return{input:_,tokens:ee,regex:se,rawMatches:ae,matches:ue,result:oe,zone:le,specificOffset:ce}}}function parseFromTokens(Z,_,Y){const{result:ee,zone:te,specificOffset:re,invalidReason:ne}=explainFromTokens(Z,_,Y);return[ee,te,re,ne]}function formatOptsToTokens(Z,_){if(!Z)return null;const ee=Formatter.create(_,Z).dtFormatter(getDummyDateTime()),te=ee.formatToParts(),re=ee.resolvedOptions();return te.map(ne=>tokenForPart(ne,Z,re))}const INVALID="Invalid DateTime",MAX_DATE=864e13;function unsupportedZone(Z){return new Invalid("unsupported zone",`the zone "${Z.name}" is not supported`)}function possiblyCachedWeekData(Z){return Z.weekData===null&&(Z.weekData=gregorianToWeek(Z.c)),Z.weekData}function possiblyCachedLocalWeekData(Z){return Z.localWeekData===null&&(Z.localWeekData=gregorianToWeek(Z.c,Z.loc.getMinDaysInFirstWeek(),Z.loc.getStartOfWeek())),Z.localWeekData}function clone(Z,_){const Y={ts:Z.ts,zone:Z.zone,c:Z.c,o:Z.o,loc:Z.loc,invalid:Z.invalid};return new DateTime({...Y,..._,old:Y})}function fixOffset(Z,_,Y){let ee=Z-_*60*1e3;const te=Y.offset(ee);if(_===te)return[ee,_];ee-=(te-_)*60*1e3;const re=Y.offset(ee);return te===re?[ee,te]:[Z-Math.min(te,re)*60*1e3,Math.max(te,re)]}function tsToObj(Z,_){Z+=_*60*1e3;const Y=new Date(Z);return{year:Y.getUTCFullYear(),month:Y.getUTCMonth()+1,day:Y.getUTCDate(),hour:Y.getUTCHours(),minute:Y.getUTCMinutes(),second:Y.getUTCSeconds(),millisecond:Y.getUTCMilliseconds()}}function objToTS(Z,_,Y){return fixOffset(objToLocalTS(Z),_,Y)}function adjustTime(Z,_){const Y=Z.o,ee=Z.c.year+Math.trunc(_.years),te=Z.c.month+Math.trunc(_.months)+Math.trunc(_.quarters)*3,re={...Z.c,year:ee,month:te,day:Math.min(Z.c.day,daysInMonth(ee,te))+Math.trunc(_.days)+Math.trunc(_.weeks)*7},ne=Duration.fromObject({years:_.years-Math.trunc(_.years),quarters:_.quarters-Math.trunc(_.quarters),months:_.months-Math.trunc(_.months),weeks:_.weeks-Math.trunc(_.weeks),days:_.days-Math.trunc(_.days),hours:_.hours,minutes:_.minutes,seconds:_.seconds,milliseconds:_.milliseconds}).as("milliseconds"),ie=objToLocalTS(re);let[se,ae]=fixOffset(ie,Y,Z.zone);return ne!==0&&(se+=ne,ae=Z.zone.offset(se)),{ts:se,o:ae}}function parseDataToDateTime(Z,_,Y,ee,te,re){const{setZone:ne,zone:ie}=Y;if(Z&&Object.keys(Z).length!==0||_){const se=_||ie,ae=DateTime.fromObject(Z,{...Y,zone:se,specificOffset:re});return ne?ae:ae.setZone(ie)}else return DateTime.invalid(new Invalid("unparsable",`the input "${te}" can't be parsed as ${ee}`))}function toTechFormat(Z,_,Y=!0){return Z.isValid?Formatter.create(Locale.create("en-US"),{allowZ:Y,forceSimple:!0}).formatDateTimeFromString(Z,_):null}function toISODate(Z,_){const Y=Z.c.year>9999||Z.c.year<0;let ee="";return Y&&Z.c.year>=0&&(ee+="+"),ee+=padStart(Z.c.year,Y?6:4),_?(ee+="-",ee+=padStart(Z.c.month),ee+="-",ee+=padStart(Z.c.day)):(ee+=padStart(Z.c.month),ee+=padStart(Z.c.day)),ee}function toISOTime(Z,_,Y,ee,te,re){let ne=padStart(Z.c.hour);return _?(ne+=":",ne+=padStart(Z.c.minute),(Z.c.millisecond!==0||Z.c.second!==0||!Y)&&(ne+=":")):ne+=padStart(Z.c.minute),(Z.c.millisecond!==0||Z.c.second!==0||!Y)&&(ne+=padStart(Z.c.second),(Z.c.millisecond!==0||!ee)&&(ne+=".",ne+=padStart(Z.c.millisecond,3))),te&&(Z.isOffsetFixed&&Z.offset===0&&!re?ne+="Z":Z.o<0?(ne+="-",ne+=padStart(Math.trunc(-Z.o/60)),ne+=":",ne+=padStart(Math.trunc(-Z.o%60))):(ne+="+",ne+=padStart(Math.trunc(Z.o/60)),ne+=":",ne+=padStart(Math.trunc(Z.o%60)))),re&&(ne+="["+Z.zone.ianaName+"]"),ne}const defaultUnitValues={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},defaultWeekUnitValues={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},defaultOrdinalUnitValues={ordinal:1,hour:0,minute:0,second:0,millisecond:0},orderedUnits=["year","month","day","hour","minute","second","millisecond"],orderedWeekUnits=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],orderedOrdinalUnits=["year","ordinal","hour","minute","second","millisecond"];function normalizeUnit(Z){const _={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[Z.toLowerCase()];if(!_)throw new InvalidUnitError(Z);return _}function normalizeUnitWithLocalWeeks(Z){switch(Z.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return normalizeUnit(Z)}}function quickDT(Z,_){const Y=normalizeZone(_.zone,Settings.defaultZone),ee=Locale.fromObject(_),te=Settings.now();let re,ne;if(isUndefined(Z.year))re=te;else{for(const ae of orderedUnits)isUndefined(Z[ae])&&(Z[ae]=defaultUnitValues[ae]);const ie=hasInvalidGregorianData(Z)||hasInvalidTimeData(Z);if(ie)return DateTime.invalid(ie);const se=Y.offset(te);[re,ne]=objToTS(Z,se,Y)}return new DateTime({ts:re,zone:Y,loc:ee,o:ne})}function diffRelative(Z,_,Y){const ee=isUndefined(Y.round)?!0:Y.round,te=(ne,ie)=>(ne=roundTo(ne,ee||Y.calendary?0:2,!0),_.loc.clone(Y).relFormatter(Y).format(ne,ie)),re=ne=>Y.calendary?_.hasSame(Z,ne)?0:_.startOf(ne).diff(Z.startOf(ne),ne).get(ne):_.diff(Z,ne).get(ne);if(Y.unit)return te(re(Y.unit),Y.unit);for(const ne of Y.units){const ie=re(ne);if(Math.abs(ie)>=1)return te(ie,ne)}return te(Z>_?-0:0,Y.units[Y.units.length-1])}function lastOpts(Z){let _={},Y;return Z.length>0&&typeof Z[Z.length-1]=="object"?(_=Z[Z.length-1],Y=Array.from(Z).slice(0,Z.length-1)):Y=Array.from(Z),[_,Y]}class DateTime{constructor(_){const Y=_.zone||Settings.defaultZone;let ee=_.invalid||(Number.isNaN(_.ts)?new Invalid("invalid input"):null)||(Y.isValid?null:unsupportedZone(Y));this.ts=isUndefined(_.ts)?Settings.now():_.ts;let te=null,re=null;if(!ee)if(_.old&&_.old.ts===this.ts&&_.old.zone.equals(Y))[te,re]=[_.old.c,_.old.o];else{const ie=Y.offset(this.ts);te=tsToObj(this.ts,ie),ee=Number.isNaN(te.year)?new Invalid("invalid input"):null,te=ee?null:te,re=ee?null:ie}this._zone=Y,this.loc=_.loc||Locale.create(),this.invalid=ee,this.weekData=null,this.localWeekData=null,this.c=te,this.o=re,this.isLuxonDateTime=!0}static now(){return new DateTime({})}static local(){const[_,Y]=lastOpts(arguments),[ee,te,re,ne,ie,se,ae]=Y;return quickDT({year:ee,month:te,day:re,hour:ne,minute:ie,second:se,millisecond:ae},_)}static utc(){const[_,Y]=lastOpts(arguments),[ee,te,re,ne,ie,se,ae]=Y;return _.zone=FixedOffsetZone.utcInstance,quickDT({year:ee,month:te,day:re,hour:ne,minute:ie,second:se,millisecond:ae},_)}static fromJSDate(_,Y={}){const ee=isDate(_)?_.valueOf():NaN;if(Number.isNaN(ee))return DateTime.invalid("invalid input");const te=normalizeZone(Y.zone,Settings.defaultZone);return te.isValid?new DateTime({ts:ee,zone:te,loc:Locale.fromObject(Y)}):DateTime.invalid(unsupportedZone(te))}static fromMillis(_,Y={}){if(isNumber$1(_))return _<-MAX_DATE||_>MAX_DATE?DateTime.invalid("Timestamp out of range"):new DateTime({ts:_,zone:normalizeZone(Y.zone,Settings.defaultZone),loc:Locale.fromObject(Y)});throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof _} with value ${_}`)}static fromSeconds(_,Y={}){if(isNumber$1(_))return new DateTime({ts:_*1e3,zone:normalizeZone(Y.zone,Settings.defaultZone),loc:Locale.fromObject(Y)});throw new InvalidArgumentError("fromSeconds requires a numerical input")}static fromObject(_,Y={}){_=_||{};const ee=normalizeZone(Y.zone,Settings.defaultZone);if(!ee.isValid)return DateTime.invalid(unsupportedZone(ee));const te=Locale.fromObject(Y),re=normalizeObject(_,normalizeUnitWithLocalWeeks),{minDaysInFirstWeek:ne,startOfWeek:ie}=usesLocalWeekValues(re,te),se=Settings.now(),ae=isUndefined(Y.specificOffset)?ee.offset(se):Y.specificOffset,ue=!isUndefined(re.ordinal),oe=!isUndefined(re.year),le=!isUndefined(re.month)||!isUndefined(re.day),ce=oe||le,he=re.weekYear||re.weekNumber;if((ce||ue)&&he)throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(le&&ue)throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day");const fe=he||re.weekday&&!ce;let de,pe,_e=tsToObj(se,ae);fe?(de=orderedWeekUnits,pe=defaultWeekUnitValues,_e=gregorianToWeek(_e,ne,ie)):ue?(de=orderedOrdinalUnits,pe=defaultOrdinalUnitValues,_e=gregorianToOrdinal(_e)):(de=orderedUnits,pe=defaultUnitValues);let me=!1;for(const De of de){const ke=re[De];isUndefined(ke)?me?re[De]=pe[De]:re[De]=_e[De]:me=!0}const ge=fe?hasInvalidWeekData(re,ne,ie):ue?hasInvalidOrdinalData(re):hasInvalidGregorianData(re),ye=ge||hasInvalidTimeData(re);if(ye)return DateTime.invalid(ye);const Ie=fe?weekToGregorian(re,ne,ie):ue?ordinalToGregorian(re):re,[Se,Pe]=objToTS(Ie,ae,ee),Ae=new DateTime({ts:Se,zone:ee,o:Pe,loc:te});return re.weekday&&ce&&_.weekday!==Ae.weekday?DateTime.invalid("mismatched weekday",`you can't specify both a weekday of ${re.weekday} and a date of ${Ae.toISO()}`):Ae}static fromISO(_,Y={}){const[ee,te]=parseISODate(_);return parseDataToDateTime(ee,te,Y,"ISO 8601",_)}static fromRFC2822(_,Y={}){const[ee,te]=parseRFC2822Date(_);return parseDataToDateTime(ee,te,Y,"RFC 2822",_)}static fromHTTP(_,Y={}){const[ee,te]=parseHTTPDate(_);return parseDataToDateTime(ee,te,Y,"HTTP",Y)}static fromFormat(_,Y,ee={}){if(isUndefined(_)||isUndefined(Y))throw new InvalidArgumentError("fromFormat requires an input string and a format");const{locale:te=null,numberingSystem:re=null}=ee,ne=Locale.fromOpts({locale:te,numberingSystem:re,defaultToEN:!0}),[ie,se,ae,ue]=parseFromTokens(ne,_,Y);return ue?DateTime.invalid(ue):parseDataToDateTime(ie,se,ee,`format ${Y}`,_,ae)}static fromString(_,Y,ee={}){return DateTime.fromFormat(_,Y,ee)}static fromSQL(_,Y={}){const[ee,te]=parseSQL(_);return parseDataToDateTime(ee,te,Y,"SQL",_)}static invalid(_,Y=null){if(!_)throw new InvalidArgumentError("need to specify a reason the DateTime is invalid");const ee=_ instanceof Invalid?_:new Invalid(_,Y);if(Settings.throwOnInvalid)throw new InvalidDateTimeError(ee);return new DateTime({invalid:ee})}static isDateTime(_){return _&&_.isLuxonDateTime||!1}static parseFormatForOpts(_,Y={}){const ee=formatOptsToTokens(_,Locale.fromObject(Y));return ee?ee.map(te=>te?te.val:null).join(""):null}static expandFormat(_,Y={}){return expandMacroTokens(Formatter.parseFormat(_),Locale.fromObject(Y)).map(te=>te.val).join("")}get(_){return this[_]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?possiblyCachedWeekData(this).weekYear:NaN}get weekNumber(){return this.isValid?possiblyCachedWeekData(this).weekNumber:NaN}get weekday(){return this.isValid?possiblyCachedWeekData(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?possiblyCachedLocalWeekData(this).weekday:NaN}get localWeekNumber(){return this.isValid?possiblyCachedLocalWeekData(this).weekNumber:NaN}get localWeekYear(){return this.isValid?possiblyCachedLocalWeekData(this).weekYear:NaN}get ordinal(){return this.isValid?gregorianToOrdinal(this.c).ordinal:NaN}get monthShort(){return this.isValid?Info.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Info.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Info.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Info.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const _=864e5,Y=6e4,ee=objToLocalTS(this.c),te=this.zone.offset(ee-_),re=this.zone.offset(ee+_),ne=this.zone.offset(ee-te*Y),ie=this.zone.offset(ee-re*Y);if(ne===ie)return[this];const se=ee-ne*Y,ae=ee-ie*Y,ue=tsToObj(se,ne),oe=tsToObj(ae,ie);return ue.hour===oe.hour&&ue.minute===oe.minute&&ue.second===oe.second&&ue.millisecond===oe.millisecond?[clone(this,{ts:se}),clone(this,{ts:ae})]:[this]}get isInLeapYear(){return isLeapYear(this.year)}get daysInMonth(){return daysInMonth(this.year,this.month)}get daysInYear(){return this.isValid?daysInYear(this.year):NaN}get weeksInWeekYear(){return this.isValid?weeksInWeekYear(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?weeksInWeekYear(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(_={}){const{locale:Y,numberingSystem:ee,calendar:te}=Formatter.create(this.loc.clone(_),_).resolvedOptions(this);return{locale:Y,numberingSystem:ee,outputCalendar:te}}toUTC(_=0,Y={}){return this.setZone(FixedOffsetZone.instance(_),Y)}toLocal(){return this.setZone(Settings.defaultZone)}setZone(_,{keepLocalTime:Y=!1,keepCalendarTime:ee=!1}={}){if(_=normalizeZone(_,Settings.defaultZone),_.equals(this.zone))return this;if(_.isValid){let te=this.ts;if(Y||ee){const re=_.offset(this.ts),ne=this.toObject();[te]=objToTS(ne,re,_)}return clone(this,{ts:te,zone:_})}else return DateTime.invalid(unsupportedZone(_))}reconfigure({locale:_,numberingSystem:Y,outputCalendar:ee}={}){const te=this.loc.clone({locale:_,numberingSystem:Y,outputCalendar:ee});return clone(this,{loc:te})}setLocale(_){return this.reconfigure({locale:_})}set(_){if(!this.isValid)return this;const Y=normalizeObject(_,normalizeUnitWithLocalWeeks),{minDaysInFirstWeek:ee,startOfWeek:te}=usesLocalWeekValues(Y,this.loc),re=!isUndefined(Y.weekYear)||!isUndefined(Y.weekNumber)||!isUndefined(Y.weekday),ne=!isUndefined(Y.ordinal),ie=!isUndefined(Y.year),se=!isUndefined(Y.month)||!isUndefined(Y.day),ae=ie||se,ue=Y.weekYear||Y.weekNumber;if((ae||ne)&&ue)throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(se&&ne)throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day");let oe;re?oe=weekToGregorian({...gregorianToWeek(this.c,ee,te),...Y},ee,te):isUndefined(Y.ordinal)?(oe={...this.toObject(),...Y},isUndefined(Y.day)&&(oe.day=Math.min(daysInMonth(oe.year,oe.month),oe.day))):oe=ordinalToGregorian({...gregorianToOrdinal(this.c),...Y});const[le,ce]=objToTS(oe,this.o,this.zone);return clone(this,{ts:le,o:ce})}plus(_){if(!this.isValid)return this;const Y=Duration.fromDurationLike(_);return clone(this,adjustTime(this,Y))}minus(_){if(!this.isValid)return this;const Y=Duration.fromDurationLike(_).negate();return clone(this,adjustTime(this,Y))}startOf(_,{useLocaleWeeks:Y=!1}={}){if(!this.isValid)return this;const ee={},te=Duration.normalizeUnit(_);switch(te){case"years":ee.month=1;case"quarters":case"months":ee.day=1;case"weeks":case"days":ee.hour=0;case"hours":ee.minute=0;case"minutes":ee.second=0;case"seconds":ee.millisecond=0;break}if(te==="weeks")if(Y){const re=this.loc.getStartOfWeek(),{weekday:ne}=this;nethis.valueOf(),ie=ne?this:_,se=ne?_:this,ae=diff(ie,se,re,te);return ne?ae.negate():ae}diffNow(_="milliseconds",Y={}){return this.diff(DateTime.now(),_,Y)}until(_){return this.isValid?Interval.fromDateTimes(this,_):this}hasSame(_,Y,ee){if(!this.isValid)return!1;const te=_.valueOf(),re=this.setZone(_.zone,{keepLocalTime:!0});return re.startOf(Y,ee)<=te&&te<=re.endOf(Y,ee)}equals(_){return this.isValid&&_.isValid&&this.valueOf()===_.valueOf()&&this.zone.equals(_.zone)&&this.loc.equals(_.loc)}toRelative(_={}){if(!this.isValid)return null;const Y=_.base||DateTime.fromObject({},{zone:this.zone}),ee=_.padding?thisY.valueOf(),Math.min)}static max(..._){if(!_.every(DateTime.isDateTime))throw new InvalidArgumentError("max requires all arguments be DateTimes");return bestBy(_,Y=>Y.valueOf(),Math.max)}static fromFormatExplain(_,Y,ee={}){const{locale:te=null,numberingSystem:re=null}=ee,ne=Locale.fromOpts({locale:te,numberingSystem:re,defaultToEN:!0});return explainFromTokens(ne,_,Y)}static fromStringExplain(_,Y,ee={}){return DateTime.fromFormatExplain(_,Y,ee)}static get DATE_SHORT(){return DATE_SHORT}static get DATE_MED(){return DATE_MED}static get DATE_MED_WITH_WEEKDAY(){return DATE_MED_WITH_WEEKDAY}static get DATE_FULL(){return DATE_FULL}static get DATE_HUGE(){return DATE_HUGE}static get TIME_SIMPLE(){return TIME_SIMPLE}static get TIME_WITH_SECONDS(){return TIME_WITH_SECONDS}static get TIME_WITH_SHORT_OFFSET(){return TIME_WITH_SHORT_OFFSET}static get TIME_WITH_LONG_OFFSET(){return TIME_WITH_LONG_OFFSET}static get TIME_24_SIMPLE(){return TIME_24_SIMPLE}static get TIME_24_WITH_SECONDS(){return TIME_24_WITH_SECONDS}static get TIME_24_WITH_SHORT_OFFSET(){return TIME_24_WITH_SHORT_OFFSET}static get TIME_24_WITH_LONG_OFFSET(){return TIME_24_WITH_LONG_OFFSET}static get DATETIME_SHORT(){return DATETIME_SHORT}static get DATETIME_SHORT_WITH_SECONDS(){return DATETIME_SHORT_WITH_SECONDS}static get DATETIME_MED(){return DATETIME_MED}static get DATETIME_MED_WITH_SECONDS(){return DATETIME_MED_WITH_SECONDS}static get DATETIME_MED_WITH_WEEKDAY(){return DATETIME_MED_WITH_WEEKDAY}static get DATETIME_FULL(){return DATETIME_FULL}static get DATETIME_FULL_WITH_SECONDS(){return DATETIME_FULL_WITH_SECONDS}static get DATETIME_HUGE(){return DATETIME_HUGE}static get DATETIME_HUGE_WITH_SECONDS(){return DATETIME_HUGE_WITH_SECONDS}}function friendlyDateTime(Z){if(DateTime.isDateTime(Z))return Z;if(Z&&Z.valueOf&&isNumber$1(Z.valueOf()))return DateTime.fromJSDate(Z);if(Z&&typeof Z=="object")return DateTime.fromObject(Z);throw new InvalidArgumentError(`Unknown datetime argument: ${Z}, of type ${typeof Z}`)}const VERSION="3.4.4";luxon.DateTime=DateTime;luxon.Duration=Duration;luxon.FixedOffsetZone=FixedOffsetZone;luxon.IANAZone=IANAZone;luxon.Info=Info;luxon.Interval=Interval;luxon.InvalidZone=InvalidZone;luxon.Settings=Settings;luxon.SystemZone=SystemZone;luxon.VERSION=VERSION;luxon.Zone=Zone;var constants={};(function(Z){Object.defineProperty(Z,"__esModule",{value:!0}),Z.RE_RANGE=Z.RE_WILDCARDS=Z.PRESETS=Z.TIME_UNITS_LEN=Z.TIME_UNITS=Z.TIME_UNITS_MAP=Z.ALIASES=Z.PARSE_DEFAULTS=Z.MONTH_CONSTRAINTS=Z.CONSTRAINTS=void 0,Z.CONSTRAINTS=Object.freeze({second:[0,59],minute:[0,59],hour:[0,23],dayOfMonth:[1,31],month:[1,12],dayOfWeek:[0,7]}),Z.MONTH_CONSTRAINTS=Object.freeze({1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}),Z.PARSE_DEFAULTS=Object.freeze({second:"0",minute:"*",hour:"*",dayOfMonth:"*",month:"*",dayOfWeek:"*"}),Z.ALIASES=Object.freeze({jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}),Z.TIME_UNITS_MAP=Object.freeze({SECOND:"second",MINUTE:"minute",HOUR:"hour",DAY_OF_MONTH:"dayOfMonth",MONTH:"month",DAY_OF_WEEK:"dayOfWeek"}),Z.TIME_UNITS=Object.freeze(Object.values(Z.TIME_UNITS_MAP)),Z.TIME_UNITS_LEN=Z.TIME_UNITS.length,Z.PRESETS=Object.freeze({"@yearly":"0 0 0 1 1 *","@monthly":"0 0 0 1 * *","@weekly":"0 0 0 * * 0","@daily":"0 0 0 * * *","@hourly":"0 0 * * * *","@minutely":"0 * * * * *","@secondly":"* * * * * *","@weekdays":"0 0 0 * * 1-5","@weekends":"0 0 0 * * 0,6"}),Z.RE_WILDCARDS=/\*/g,Z.RE_RANGE=/^(\d+)(?:-(\d+))?(?:\/(\d+))?$/g})(constants);var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ExclusiveParametersError=errors.CronError=void 0;class CronError extends Error{}errors.CronError=CronError;class ExclusiveParametersError extends CronError{constructor(_,Y){super(`You can't specify both ${_} and ${Y}`)}}errors.ExclusiveParametersError=ExclusiveParametersError;var utils$1={};Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.getRecordKeys=void 0;const getRecordKeys=Z=>Object.keys(Z);utils$1.getRecordKeys=getRecordKeys;Object.defineProperty(time,"__esModule",{value:!0});time.CronTime=void 0;const luxon_1=luxon,constants_1=constants,errors_1$1=errors,utils_1=utils$1;class CronTime{constructor(_,Y,ee){if(this.realDate=!1,this.second={},this.minute={},this.hour={},this.dayOfMonth={},this.month={},this.dayOfWeek={},Y!=null&&ee!=null)throw new errors_1$1.ExclusiveParametersError("timeZone","utcOffset");if(Y){if(!luxon_1.DateTime.fromObject({},{zone:Y}).isValid)throw new errors_1$1.CronError("Invalid timezone.");this.timeZone=Y}ee!=null&&(this.utcOffset=ee),_ instanceof Date||_ instanceof luxon_1.DateTime?(this.source=_ instanceof Date?luxon_1.DateTime.fromJSDate(_):_,this.realDate=!0):(this.source=_,this._parse(this.source),this._verifyParse())}_getWeekDay(_){return _.weekday===7?0:_.weekday}_verifyParse(){const _=(0,utils_1.getRecordKeys)(this.month),Y=(0,utils_1.getRecordKeys)(this.dayOfMonth);let ee=!1,te=null;for(const re of _){const ne=constants_1.MONTH_CONSTRAINTS[re];for(const ie of Y)ie<=ne&&(ee=!0);ee||(te=re,console.warn(`Month '${re}' is limited to '${ne}' days.`))}if(!ee&&te!==null){const re=constants_1.MONTH_CONSTRAINTS[te];for(const ne of Y)if(ne>re){delete this.dayOfMonth[ne];const ie=ne%re;this.dayOfMonth[ie]=!0}}}sendAt(_){let Y=this.realDate&&this.source instanceof luxon_1.DateTime?this.source:luxon_1.DateTime.local();if(this.timeZone&&(Y=Y.setZone(this.timeZone)),this.utcOffset!==void 0){const ee=this.utcOffset<0?"-":"+",te=Math.trunc(this.utcOffset/60),re=String(Math.abs(te)).padStart(2,"0"),ne=Math.abs(this.utcOffset-te*60),ie=String(ne).padStart(2,"0"),se=`UTC${ee}${re}:${ie}`;if(Y=Y.setZone(se),!Y.isValid)throw new errors_1$1.CronError("ERROR: You specified an invalid UTC offset.")}if(this.realDate){if(luxon_1.DateTime.local()>Y)throw new errors_1$1.CronError("WARNING: Date in past. Will never be fired.");return Y}if(_===void 0||isNaN(_)||_<0)return this.getNextDateFrom(Y);{const ee=[];for(;_>0;_--)Y=this.getNextDateFrom(Y),ee.push(Y);return ee}}getTimeout(){return Math.max(-1,this.sendAt().toMillis()-luxon_1.DateTime.local().toMillis())}toString(){return this.toJSON().join(" ")}toJSON(){return constants_1.TIME_UNITS.map(_=>this._wcOrAll(_))}getNextDateFrom(_,Y){var ee;_ instanceof Date&&(_=luxon_1.DateTime.fromJSDate(_));let te=_;const re=_.toMillis();if(Y&&(te=te.setZone(Y)),this.realDate||te.millisecond>0&&(te=te.set({millisecond:0,second:te.second+1})),!te.isValid)throw new errors_1$1.CronError("ERROR: You specified an invalid date.");const ne=luxon_1.DateTime.now().plus({years:8});for(;;){const ie=te.toMillis()-_.toMillis();if(te>ne)throw new errors_1$1.CronError(`Something went wrong. No execution date was found in the next 8 years. + Please provide the following string if you would like to help debug: + Time Zone: ${(ee=Y==null?void 0:Y.toString())!==null&&ee!==void 0?ee:'""'} - Cron String: ${this.source.toString()} - UTC offset: ${te.offset} - current Date: ${luxon_1.DateTime.local().toString()}`);if(!(te.month in this.month)&&Object.keys(this.month).length!==12){if(te=te.plus({months:1}),te=te.set({day:1,hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,te)){const[se,ae]=this._findPreviousDSTJump(te);if(te=ae,se)break}continue}if(!(te.day in this.dayOfMonth)&&Object.keys(this.dayOfMonth).length!==31&&!(this._getWeekDay(te)in this.dayOfWeek&&Object.keys(this.dayOfWeek).length!==7)){if(te=te.plus({days:1}),te=te.set({hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,te)){const[se,ae]=this._findPreviousDSTJump(te);if(te=ae,se)break}continue}if(!(this._getWeekDay(te)in this.dayOfWeek)&&Object.keys(this.dayOfWeek).length!==7&&!(te.day in this.dayOfMonth&&Object.keys(this.dayOfMonth).length!==31)){if(te=te.plus({days:1}),te=te.set({hour:0,minute:0,second:0}),this._forwardDSTJump(0,0,te)){const[se,ae]=this._findPreviousDSTJump(te);if(te=ae,se)break}continue}if(!(te.hour in this.hour)&&Object.keys(this.hour).length!==24){const se=te.hour===23&&ie>864e5?0:te.hour+1,ae=te.minute;if(te=te.set({hour:se}),te=te.set({minute:0,second:0}),this._forwardDSTJump(se,ae,te)){const[ue,oe]=this._findPreviousDSTJump(te);if(te=oe,ue)break}continue}if(!(te.minute in this.minute)&&Object.keys(this.minute).length!==60){const se=te.minute===59&&ie>36e5?0:te.minute+1,ae=te.hour+(se===60?1:0);if(te=te.set({minute:se}),te=te.set({second:0}),this._forwardDSTJump(ae,se,te)){const[ue,oe]=this._findPreviousDSTJump(te);if(te=oe,ue)break}continue}if(!(te.second in this.second)&&Object.keys(this.second).length!==60){const se=te.second===59&&ie>6e4?0:te.second+1,ae=te.minute+(se===60?1:0),ue=te.hour+(ae===60?1:0);if(te=te.set({second:se}),this._forwardDSTJump(ue,ae,te)){const[oe,le]=this._findPreviousDSTJump(te);if(te=le,oe)break}continue}if(te.toMillis()===re){const se=te.second+1,ae=te.minute+(se===60?1:0),ue=te.hour+(ae===60?1:0);if(te=te.set({second:se}),this._forwardDSTJump(ue,ae,te)){const[oe,le]=this._findPreviousDSTJump(te);if(te=le,oe)break}continue}break}return te}_findPreviousDSTJump(_){var Y;let ee,te,re,ne,ie=_;const se=60*24;let ae=0;do{if(++ae>se)throw new errors_1$1.CronError(`ERROR: This DST checking related function assumes the input DateTime (${(Y=_.toISO())!==null&&Y!==void 0?Y:_.toMillis()}) is within 24 hours of a DST jump.`);ee=ie.minute-1,te=ie.hour,ee<0&&(ee+=60,te=(te+24-1)%24),ie=ie.minus({minute:1}),re=ie.minute,ne=ie.hour}while(ee===re&&te===ne);const ue=ie.plus({minute:1}).set({second:0,millisecond:0}),oe=ue.minus({second:1});return _.month+1 in this.month&&_.day in this.dayOfMonth&&this._getWeekDay(_)in this.dayOfWeek?[this._checkTimeInSkippedRange(oe,ue),ue]:[!1,ue]}_checkTimeInSkippedRange(_,Y){const ee=(_.minute+1)%60,te=(_.hour+(ee===0?1:0))%24,re=Y.hour-te+1,ne=ee===0&&Y.minute===0;return re===2&&ne?te in this.hour:re===1?te in this.hour&&this._checkTimeInSkippedRangeSingleHour(ee,Y.minute):this._checkTimeInSkippedRangeMultiHour(te,ee,Y.hour,Y.minute)}_checkTimeInSkippedRangeSingleHour(_,Y){for(let ee=_;ee=ee)throw new errors_1$1.CronError(`ERROR: This DST checking related function assumes the forward jump starting hour (${_}) is less than the end hour (${ee})`);const re=Array.from({length:60-Y},(ae,ue)=>Y+ue),ne=Array.from({length:te},(ae,ue)=>ue),ie=Array.from({length:60},(ae,ue)=>ue),se=ae=>ae===_?re:ae===ee?ne:ie;for(let ae=_;ae<=ee;++ae){if(!(ae in this.hour))continue;const ue=se(ae);for(const oe of ue)if(oe in this.minute)return!0}return ee in this.hour&&te in this.minute&&0 in this.second}_forwardDSTJump(_,Y,ee){const te=ee.hour,re=ee.minute,ne=_%24{if(Object.keys(constants_1.ALIASES).includes(re))return constants_1.ALIASES[re].toString();throw new errors_1$1.CronError(`Unknown alias: ${re}`)});const ee=_.trim().split(/\s+/);if(ee.lengthconstants_1.TIME_UNITS_LEN)throw new errors_1$1.CronError("Too many fields");const te=ee.length;for(const re of constants_1.TIME_UNITS){const ne=constants_1.TIME_UNITS.indexOf(re),ie=(Y=ee[ne-(constants_1.TIME_UNITS_LEN-te)])!==null&&Y!==void 0?Y:constants_1.PARSE_DEFAULTS[re];this._parseField(ie,re)}}_parseField(_,Y){const ee=this[Y];let te;const re=constants_1.CONSTRAINTS[Y],ne=re[0],ie=re[1];_.split(",").forEach(ue=>{const oe=ue.indexOf("*");if(oe!==-1&&oe!==0)throw new errors_1$1.CronError(`Field (${ue}) has an invalid wildcard expression`)}),_=_.replace(constants_1.RE_WILDCARDS,`${ne}-${ie}`);const ae=_.split(",");for(const ue of ae){const oe=[...ue.matchAll(constants_1.RE_RANGE)][0];if((oe==null?void 0:oe[1])!==void 0){const[,le,ce,he]=oe;let fe=parseInt(le,10),de=ce!==void 0?parseInt(ce,10):void 0;const pe=he!==void 0,_e=parseInt(he??"1",10);if(_e===0)throw new errors_1$1.CronError(`Field (${Y}) has a step of zero`);if(de!==void 0&&fe>de)throw new errors_1$1.CronError(`Field (${Y}) has an invalid range`);if(feie||de===void 0&&fe>ie)throw new errors_1$1.CronError(`Field value (${_}) is out of range`);fe=Math.min(Math.max(ne,~~Math.abs(fe)),ie),de!==void 0?de=Math.min(ie,~~Math.abs(de)):de=pe?ie:fe,te=fe;do ee[te]=!0,te+=_e;while(te<=de);Y==="dayOfWeek"&&(!ee[0]&&ee[7]&&(ee[0]=ee[7]),delete ee[7])}else throw new errors_1$1.CronError(`Field (${Y}) cannot be parsed`)}}}time.CronTime=CronTime;var job={};Object.defineProperty(job,"__esModule",{value:!0});job.CronJob=void 0;const child_process_1=require$$3,errors_1=errors,time_1=time;class CronJob{constructor(_,Y,ee,te,re,ne,ie,se,ae){if(this.running=!1,this.unrefTimeout=!1,this.lastExecution=null,this.runOnce=!1,this._callbacks=[],this.context=ne??this,re!=null&&se!=null)throw new errors_1.ExclusiveParametersError("timeZone","utcOffset");re!=null?this.cronTime=new time_1.CronTime(_,re,null):se!=null?this.cronTime=new time_1.CronTime(_,null,se):this.cronTime=new time_1.CronTime(_,re,se),ae!=null&&(this.unrefTimeout=ae),ee!=null&&(this.onComplete=this._fnWrap(ee)),this.cronTime.realDate&&(this.runOnce=!0),this.addCallback(this._fnWrap(Y)),ie&&(this.lastExecution=new Date,this.fireOnTick()),te&&this.start()}static from(_){if(_.timeZone!=null&&_.utcOffset!=null)throw new errors_1.ExclusiveParametersError("timeZone","utcOffset");return _.timeZone!=null?new CronJob(_.cronTime,_.onTick,_.onComplete,_.start,_.timeZone,_.context,_.runOnInit,_.utcOffset,_.unrefTimeout):_.utcOffset!=null?new CronJob(_.cronTime,_.onTick,_.onComplete,_.start,null,_.context,_.runOnInit,_.utcOffset,_.unrefTimeout):new CronJob(_.cronTime,_.onTick,_.onComplete,_.start,_.timeZone,_.context,_.runOnInit,_.utcOffset,_.unrefTimeout)}_fnWrap(_){var Y,ee;switch(typeof _){case"function":return _;case"string":{const[te,...re]=_.split(" ");return child_process_1.spawn.bind(void 0,te??_,re,{})}case"object":return child_process_1.spawn.bind(void 0,_.command,(Y=_.args)!==null&&Y!==void 0?Y:[],(ee=_.options)!==null&&ee!==void 0?ee:{})}}addCallback(_){typeof _=="function"&&this._callbacks.push(_)}setTime(_){if(!(_ instanceof time_1.CronTime))throw new errors_1.CronError("time must be an instance of CronTime.");const Y=this.running;this.stop(),this.cronTime=_,_.realDate&&(this.runOnce=!0),Y&&this.start()}nextDate(){return this.cronTime.sendAt()}fireOnTick(){for(const _ of this._callbacks)_.call(this.context,this.onComplete)}nextDates(_){return this.cronTime.sendAt(_??0)}start(){if(this.running)return;const _=2147483647;let Y=this.cronTime.getTimeout(),ee=0,te;const re=ie=>{te=Date.now(),this._timeout=setTimeout(ne,ie),this.unrefTimeout&&typeof this._timeout.unref=="function"&&this._timeout.unref()},ne=()=>{const ie=te+Y-Date.now();if(ie>0){let se=this.cronTime.getTimeout();se>ie&&(se=ie),ee+=se}ee?(ee>_?(ee-=_,Y=_):(Y=ee,ee=0),re(Y)):(this.lastExecution=new Date,this.running=!1,this.runOnce||this.start(),this.fireOnTick())};Y>=0?(this.running=!0,Y>_&&(ee=Y-_,Y=_),re(Y)):this.stop()}lastDate(){return this.lastExecution}stop(){this._timeout&&clearTimeout(this._timeout),this.running=!1,typeof this.onComplete=="function"&&this.onComplete.call(this.context)}}job.CronJob=CronJob;(function(Z){Object.defineProperty(Z,"__esModule",{value:!0}),Z.timeout=Z.sendAt=Z.CronTime=Z.CronJob=void 0;const _=time;var Y=job;Object.defineProperty(Z,"CronJob",{enumerable:!0,get:function(){return Y.CronJob}});var ee=time;Object.defineProperty(Z,"CronTime",{enumerable:!0,get:function(){return ee.CronTime}});const te=ne=>new _.CronTime(ne).sendAt();Z.sendAt=te;const re=ne=>new _.CronTime(ne).getTimeout();Z.timeout=re})(dist$1);var types$1={exports:{}},__defProp$n=Object.defineProperty,__getOwnPropDesc$n=Object.getOwnPropertyDescriptor,__getOwnPropNames$n=Object.getOwnPropertyNames,__hasOwnProp$n=Object.prototype.hasOwnProperty,__copyProps$n=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$n(_))!__hasOwnProp$n.call(Z,te)&&te!==Y&&__defProp$n(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$n(_,te))||ee.enumerable});return Z},__toCommonJS$n=Z=>__copyProps$n(__defProp$n({},"__esModule",{value:!0}),Z),config_exports={},config=__toCommonJS$n(config_exports),__defProp$m=Object.defineProperty,__getOwnPropDesc$m=Object.getOwnPropertyDescriptor,__getOwnPropNames$m=Object.getOwnPropertyNames,__hasOwnProp$m=Object.prototype.hasOwnProperty,__export$j=(Z,_)=>{for(var Y in _)__defProp$m(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$m=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$m(_))!__hasOwnProp$m.call(Z,te)&&te!==Y&&__defProp$m(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$m(_,te))||ee.enumerable});return Z},__toCommonJS$m=Z=>__copyProps$m(__defProp$m({},"__esModule",{value:!0}),Z),message_exports={};__export$j(message_exports,{MessageScope:()=>MessageScope,UserAccess:()=>UserAccess});var message$1=__toCommonJS$m(message_exports),UserAccess=(Z=>(Z[Z.MEMBER=0]="MEMBER",Z[Z.MANGER=1]="MANGER",Z[Z.ADMIN=2]="ADMIN",Z))(UserAccess||{}),MessageScope=(Z=>(Z[Z.PRIVATE=0]="PRIVATE",Z[Z.GROUP=1]="GROUP",Z[Z.CHANNEL=2]="CHANNEL",Z))(MessageScope||{}),__defProp$l=Object.defineProperty,__getOwnPropDesc$l=Object.getOwnPropertyDescriptor,__getOwnPropNames$l=Object.getOwnPropertyNames,__hasOwnProp$l=Object.prototype.hasOwnProperty,__copyProps$l=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$l(_))!__hasOwnProp$l.call(Z,te)&&te!==Y&&__defProp$l(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$l(_,te))||ee.enumerable});return Z},__toCommonJS$l=Z=>__copyProps$l(__defProp$l({},"__esModule",{value:!0}),Z),adapter_exports={},adapter$1=__toCommonJS$l(adapter_exports),__defProp$k=Object.defineProperty,__getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__getOwnPropNames$k=Object.getOwnPropertyNames,__hasOwnProp$k=Object.prototype.hasOwnProperty,__copyProps$k=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$k(_))!__hasOwnProp$k.call(Z,te)&&te!==Y&&__defProp$k(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$k(_,te))||ee.enumerable});return Z},__toCommonJS$k=Z=>__copyProps$k(__defProp$k({},"__esModule",{value:!0}),Z),api_exports$1={},api$1=__toCommonJS$k(api_exports$1),dist={},factory$1={},parsers={},number={},parser={},error$1={},i18n={},en_US={};Object.defineProperty(en_US,"__esModule",{value:!0});en_US.default={not_string:"Target is not a string",not_a_email:'Target string "%input%" is not an email',not_a_domain:'Target string "%input%" is not a domain',not_a_url:'Target string "%input%" is not a URL',illegal_match_string:'Target string "%input%" does not match the pattern %value%',illegal_starts_with:'Target string "%input%" does not start with %value%',illegal_ends_with:'Target string "%input%" does not end with %value%',too_long:'Target string "%input%" is too long, should be <= %value%',too_short:'Target string "%input%" is too short, should be >= %value%',not_number:"Target is not a number",not_integer_number:'Target number "%input%" is not an integer',not_odd_number:'Target number "%input%" is not an odd number',not_even_number:'Target number "%input%" is not an even number',not_natural_number:'Target number "%input%" is not a natural number ( >= 0 )',not_positive_number:'Target number "%input%" is not a positive number ( > 0 )',not_negative_number:'Target number "%input%" is not a negative number ( < 0 )',not_percentage:'Target number "%input%" is not a percentage ( >= 0, <= 1 )',too_bigger:'Target number "%input%" is too big, should be < %value%',too_bigger_has:'Target number "%input%" is too big, should be <= %value%',too_smaller:'Target number "%input%" is too small, should be > %value%',too_smaller_has:'Target number "%input%" is too small, should be >= %value%',not_multiple_number:'Target number "%input%" is not a multiple of %value%',is_a_NaN:"Target number is a NaN",not_boolean:"Target is not a boolean",not_true:"Target is not true",not_false:"Target is not false",not_null:"Target is not null",not_undefined:"Target is not undefined",not_never:"Target is not never",not_an_array:"Target is not an array",array_error:"Target array error at %length%: %value%",too_many_items:"Too many items for target array, should be %value% or less, not %input%",too_few_items:"Too few items for target array, should be %value% or more, not %input%",not_a_tuple:"Target is not a tuple",illegal_tuple_length:"Target tuple length should be %value%, not %input%",tuple_error:"Target tuple error at %length%: %value%",not_an_object:"Target is not an object",object_is_null:"Target object is null",object_is_an_array:"Target object is an array",object_not_instance_of_constructor:"Target object is not an instance of constructor",object_keys_too_many:"Too many keys for target object, should be %value% or less, not %input%",object_keys_too_few:"Too few keys for target object, should be %value% or more, not %input%",object_error:"Target object error at %key%: %value%",object_key_error:"Target object key type error",intersection_error:"Intersection type error",union_error:"Union type error",literal_only:"Literal types allow only strings and numbers",literal_number_error:"Target number cannot assign to %value%",literal_string_error:"Target string cannot assign to %value%",literal_boolean_error:"Target boolean cannot assign to %value%",custom_error:"Cannot pass custom validation: %value%",not_a_function:"Target is not a function",not_a_constructor:"Target is not a constructor",not_an_async_function:"Target is not an async function",not_a_generator_function:"Target is not a generator function",not_an_async_generator_function:"Target is not an async generator function",not_an_arrow_function:"Target is not an arrow function",function_args_count_mismatch:"Target function call arguments count mismatch, expected %expected%, got %actual%",function_name_mismatch:"Target function name mismatch: %value%",not_a_class:"Target is not a class",class_args_count_mismatch:"Target class constructor arguments count mismatch, expected %expected%, got %actual%",class_name_mismatch:"Target class name mismatch: %value%",class_prototype_error:"Target class does not inherit specified Constructor"};var ja_JP={};Object.defineProperty(ja_JP,"__esModule",{value:!0});ja_JP.default={not_string:"対象は文字列ではありません",not_a_email:'対象の文字列 "%input%" はメールアドレスではありません',not_a_domain:'対象の文字列 "%input%" はドメインではありません',not_a_url:'対象の文字列 "%input%" はURLではありません',illegal_match_string:'対象の文字列 "%input%" は %value% のパターンと一致しません',illegal_starts_with:'対象の文字列 "%input%" のprefixは %value% ではありません',illegal_ends_with:'対象の文字列 "%input%" のsuffixは %value% ではありません',too_long:'対象の文字列 "%input%" は長すぎます。%value%文字以下であるべきです',too_short:'対象の文字列 "%input%" は短すぎます。%value%文字以上であるべきです',not_number:"対象は数値ではありません",not_integer_number:'対象の数値 "%input%" は整数ではありません',not_odd_number:'対象の数値 "%input%" は奇数ではありません',not_even_number:'対象の数値 "%input%"は偶数ではありません',not_natural_number:'対象の数値 "%input%" は自然数ではありません ( >= 0 )',not_positive_number:'対象の数値 "%input%" は正の数ではありません ( > 0 )',not_negative_number:'対象の数値 "%input%" は負の数ではありません ( < 0 )',not_percentage:'対象の数値 "%input%" はパーセンテージではありません ( >= 0, <= 1 )',too_bigger:'対象の数値 "%input%" は大きすぎます。%value%未満であるべきです',too_bigger_has:'対象の数値 "%input%" は大きすぎます。%value%以下であるべきです',too_smaller:'対象の数値 "%input%" は小さすぎます。%value%より大きいべきです',too_smaller_has:'対象の数値 "%input%" は小さすぎます。%value%以上であるべきです',is_a_NaN:"対象の数値は NaN です",not_multiple_number:'対象の数値 "%input%" は %value% の倍数ではありません',not_boolean:"対象はブール値ではありません",not_true:"対象は true ではありません",not_false:"対象は false ではありません",not_null:"対象は null ではありません",not_undefined:"対象は undefined ではありません",not_never:"対象は never ではありません",not_an_array:"対象は配列ではありません",array_error:"配列の %length% 番目でエラーが発生しました: %value%",too_many_items:"対象の配列は長すぎます。%value%個以下であるべきですが、%input%個存在しました",too_few_items:"対象の配列は短すぎます。%value%個以上であるべきですが、%input%個存在しました",not_a_tuple:"対象はタプルではありません",illegal_tuple_length:"タプルの長さは %value% であるべきですが、 %input% でした",tuple_error:"タプルの %length% 番目でエラーが発生しました: %value%",not_an_object:"対象はオブジェクトではありません",object_is_null:"対象のオブジェクトは null です",object_is_an_array:"対象のオブジェクトは配列です",object_not_instance_of_constructor:"対象のオブジェクトは インスタンスではありません",object_keys_too_many:"オブジェクトのキーが多すぎます。%value%個以下であるべきですが、%input%個存在しました",object_keys_too_few:"オブジェクトのキーが少なすぎます。%value%個以上であるべきですが、%input%個存在しました",object_error:"%key% でエラーが発生しました: %value%",object_key_error:"対象のオブジェクトのキーの型が間違っています",intersection_error:"交差型でエラーが発生しました",union_error:"合併型でエラーが発生しました",literal_only:"リテラル型は文字列と数値のみ許可されます",literal_number_error:"対象の数値を %value% に代入できません",literal_string_error:"対象の文字列を %value% に代入できません",literal_boolean_error:"対象のブール値を %value% に代入できません",custom_error:"カスタム検証をパスできませんでした: %value%",not_a_function:"対象は関数ではありません",not_a_constructor:"対象はコンストラクタではありません",not_an_async_function:"対象は非同期関数ではありません",not_a_generator_function:"対象はジェネレータ関数ではありません",not_an_async_generator_function:"対象は非同期ジェネレータ関数ではありません",not_an_arrow_function:"対象はアロー関数ではありません",function_args_count_mismatch:"対象の関数呼び出しの引数数が一致しません。期待値は %expected% ですが、実際の値は %actual% です",function_name_mismatch:"対象の関数名が一致しません。期待値は %value% ですが、実際の値は %actual% です",not_a_class:"対象はクラスではありません",class_args_count_mismatch:"対象のクラスのコンストラクタの引数数が一致しません。期待値は %expected% ですが、実際の値は %actual% です",class_name_mismatch:"対象のクラス名が一致しません。期待値は %value% ですが、実際の値は %actual% です",class_prototype_error:"対象のクラスは指定されたコンストラクタを継承していません"};var zh_TW={};Object.defineProperty(zh_TW,"__esModule",{value:!0});zh_TW.default={not_string:"目標不是 string 類型",not_a_email:"目標 string 「%input%」 不是一個 email",not_a_domain:"目標 string 「%input%」 目標不是一個 域名 ",not_a_url:"目標 string 「%input%」 不是一個 URL ",illegal_match_string:"目標 string 「%input%」 不符合規則 %value%",illegal_starts_with:"目標 string 「%input%」 開頭字符不與 %value% 匹配",illegal_ends_with:"目標 string 「%input%」 末尾字符不與 %value% 匹配",too_long:"目標 string 「%input%」 過長,應 <= %value%",too_short:"目標 string 「%input%」 過短,應 >= %value%",not_number:"目標不是 number 類型",not_integer_number:"目標 number 「%input%」 不是一個整數",not_odd_number:"目標 number 「%input%」 不是一個奇數",not_even_number:"目標 number 「%input%」 不是一個偶數",not_natural_number:"目標 number 「%input%」 不是一個自然數 ( >= 0 )",not_positive_number:"目標 number 「%input%」 不是一個正數 ( > 0 )",not_negative_number:"目標 number 「%input%」 不是一個負數 ( < 0 )",not_percentage:"目標 number 「%input%」 不是一個百分數 ( >= 0, <= 1 )",too_bigger:"目標 number 「%input%」 過大,應 < %value%",too_bigger_has:"目標 number 「%input%」 過大,應 <= %value%",too_smaller:"目標 number 「%input%」 過小,應 > %value%",too_smaller_has:"目標 number 「%input%」 過小,應 >= %value%",is_a_NaN:"目標 number 是一個 NaN",not_multiple_number:"目標 number 「%input%」 不是 %value% 的倍數",not_boolean:"目標不是 boolean 類型",not_true:"目標不是 true 類型",not_false:"目標不是 false 類型",not_null:"目標不是 null 類型",not_undefined:"目標不是 undefined 類型",not_never:"目標不是 never 類型",not_an_array:"目標不是一個 array 類型",array_error:"目標 array 在 %length% 處發生錯誤:%value%",too_many_items:"目標 array 過多,應 <= %value%,而不是 %input%",too_few_items:"目標 array 過少,應 >= %value%,而不是 %input%",not_a_tuple:"目標不是一個 tuple 類型",illegal_tuple_length:"目標 tuple 的長度應是 %value%,而不是 %input%",tuple_error:"目標 tuple 在 %length% 處發生錯誤:%value%",not_an_object:"目標不是一個 object 類型",object_is_null:"目標 object 是 null 類型",object_is_an_array:"目標 object 是一個 array 類型",object_not_instance_of_constructor:"目標 object 不是實例",object_keys_too_many:"目標 object 鍵值數過多,應是 %value% 以內 而不是 %input%",object_keys_too_few:"目標 object 鍵值數過少,應是 %value% 以內 而不是 %input%",object_error:"目標 object 在 %key% 處發生錯誤:%value%",object_key_error:"目標 object 鍵類型錯誤",intersection_error:"交叉類型發生錯誤",union_error:"聯合類型發生錯誤",literal_only:"字面量類型僅允許 string 與 number",literal_number_error:"目標 number 不能賦給 %value%",literal_string_error:"目標 string 不能賦給 %value%",literal_boolean_error:"目標 boolean 不能賦給 %value%",custom_error:"無法通過自定義規則: %value%",not_a_function:"目標不是一個 function 類型",not_a_constructor:"目標不是一個 constructor 類型",not_an_async_function:"目標不是一個 async function 類型",not_a_generator_function:"目標不是一個 generator function 類型",not_an_async_generator_function:"目標不是一個 async generator function 類型",not_an_arrow_function:"目標不是一個 arrow function 類型",function_args_count_mismatch:"目標 function 呼叫參數數目不符合規則,應為 %expected%,而不是 %actual%",function_name_mismatch:"目標 function 名稱不符合規則:%value%",not_a_class:"目標不是一個 class 類型",class_args_count_mismatch:"目標 class 建構參數數目不符合規則,應為 %expected%,而不是 %actual%",class_name_mismatch:"目標 class 名稱不符合規則:%value%",class_prototype_error:"目標 class 沒有繼承指定 Constructor"};var zh_CN={};Object.defineProperty(zh_CN,"__esModule",{value:!0});zh_CN.default={not_string:"目标不是 string 类型",not_a_email:"目标 string “%input%” 不是一个 email",not_a_domain:"目标 string “%input%” 目标不是一个 域名 ",not_a_url:"目标 string “%input%” 不是一个 URL ",illegal_match_string:"目标 string “%input%” 不符合规则 %value%",illegal_starts_with:"目标 string “%input%” 开头字符不与 %value% 匹配",illegal_ends_with:"目标 string “%input%” 末尾字符不与 %value% 匹配",too_long:"目标 string “%input%” 过长,应 <= %value%",too_short:"目标 string “%input%” 过短,应 >= %value%",not_number:"目标不是 number 类型",not_integer_number:"目标 number “%input%” 不是一个整数",not_odd_number:"目标 number “%input%” 不是一个奇数",not_even_number:"目标 number “%input%” 不是一个偶数",not_natural_number:"目标 number “%input%” 不是一个自然数 ( >= 0 )",not_positive_number:"目标 number “%input%” 不是一个正数 ( > 0 )",not_negative_number:"目标 number “%input%” 不是一个负数 ( < 0 )",not_percentage:"目标 number “%input%” 不是一个百分数 ( >= 0, <= 1 )",too_bigger:"目标 number “%input%” 过大,应 < %value%",too_bigger_has:"目标 number “%input%” 过大,应 <= %value%",too_smaller:"目标 number “%input%” 过小,应 > %value%",too_smaller_has:"目标 number “%input%” 过小,应 >= %value%",is_a_NaN:"目标 number 是一个 NaN",not_multiple_number:"目标 number “%input%” 不是 %value% 的倍数",not_boolean:"目标不是 boolean 类型",not_true:"目标不是 true 类型",not_false:"目标不是 false 类型",not_null:"目标不是 null 类型",not_undefined:"目标不是 undefined 类型",not_never:"目标不是 never 类型",not_an_array:"目标不是一个 array 类型",array_error:"目标 array 在 %length% 处发生错误:%value%",too_many_items:"目标 array 的元素过多,应是 %value% 以内 而不是 %input%",too_few_items:"目标 array 的元素过少,应是 %value% 以内 而不是 %input%",not_a_tuple:"目标不是一个 tuple 类型",illegal_tuple_length:"目标 tuple 的长度应是 %value%,而不是 %input%",tuple_error:"目标 tuple 在 %length% 处发生错误:%value%",not_an_object:"目标不是一个 object 类型",object_is_null:"目标 object 是 null 类型",object_is_an_array:"目标 object 是一个 array 类型",object_not_instance_of_constructor:"目标 object 不是构造函数的实例",object_keys_too_many:"目标 object 键值数过多,应是 %value% 以内 而不是 %input%",object_keys_too_few:"目标 object 键值数过少,应是 %value% 以内 而不是 %input%",object_error:"目标 object 在 %key% 处发生错误:%value%",object_key_error:"目标 object 键类型错误",intersection_error:"交叉类型发生错误",union_error:"联合类型发生错误",literal_only:"字面量类型仅允许 string 与 number",literal_number_error:"目标 number 不能赋给 %value%",literal_string_error:"目标 string 不能赋给 %value%",literal_boolean_error:"目标 boolean 不能赋给 %value%",custom_error:"无法通过自定义规则: %value%",not_a_function:"目标不是一个 function 类型",not_a_constructor:"目标不是一个构造函数",not_an_async_function:"目标不是一个 async function 类型",not_a_generator_function:"目标不是一个 generator function 类型",not_an_async_generator_function:"目标不是一个 async generator function 类型",not_an_arrow_function:"目标不是一个 arrow function 类型",function_args_count_mismatch:"目标 function 调用参数数目不匹配,应是 %expected%,而不是 %actual%",function_name_mismatch:"目标 function 名称不匹配:%value%",not_a_class:"目标不是一个 class 类型",class_args_count_mismatch:"目标 class 构造参数数目不匹配,应是 %expected%,而不是 %actual%",class_name_mismatch:"目标 class 名称不匹配:%value%",class_prototype_error:"目标 class 没有继承指定 Constructor"};(function(Z){var _=commonjsGlobal&&commonjsGlobal.__importDefault||function(ie){return ie&&ie.__esModule?ie:{default:ie}};Object.defineProperty(Z,"__esModule",{value:!0}),Z.i18n=void 0;const Y=_(commonExports),ee=_(en_US),te=_(ja_JP),re=_(zh_TW),ne=_(zh_CN);Z.i18n=new Y.default,Z.i18n.use(ee.default,"en_US"),Z.i18n.use(te.default,"ja_JP"),Z.i18n.use(re.default,"zh_TW"),Z.i18n.use(ne.default,"zh_CN"),Z.default=Z.i18n})(i18n);var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(Z){return Z&&Z.__esModule?Z:{default:Z}};Object.defineProperty(error$1,"__esModule",{value:!0});error$1.TsuError=void 0;const i18n_1=__importDefault(i18n);function stringTemp(Z,_){var te;const Y=_;let ee=Z;if(!Y||typeof Y!="object")return ee;for(const re in Y)typeof Y[re]!="string"&&typeof _[re]!="number"&&(Y[re]=""),((te=Y[re])==null?void 0:te.toString)instanceof Function&&(Y[re]=Y[re].toString()),ee=ee.replace(new RegExp(`%${re}%`,"g"),Y[re]);return ee}class TsuError extends Error{constructor(_,Y,ee){const te=i18n_1.default.locale(Y,_);super(ee?stringTemp(te,ee):te)}}error$1.TsuError=TsuError;error$1.default=TsuError;var lang={};(function(Z){Object.defineProperty(Z,"__esModule",{value:!0}),Z.Lang=Z.DEFAULT_LANG=void 0,Z.DEFAULT_LANG="en_US";class _{constructor(){be(this,"langType",Z.DEFAULT_LANG)}lang(ee=Z.DEFAULT_LANG){return this.langType=ee,this}}Z.Lang=_,Z.default=_})(lang);var schema={},hasRequiredSchema;function requireSchema(){if(hasRequiredSchema)return schema;hasRequiredSchema=1,Object.defineProperty(schema,"__esModule",{value:!0}),schema.setSchemaMeta=Y,schema.getSchemaMeta=ee,schema.generateSchema=te;const Z=requireDist(),_=Symbol("json-schema");function Y(re,ne){Reflect.defineMetadata(_,{...ee(re),...ne},re)}function ee(re){return Reflect.getMetadata(_,re)??{}}function te(re){const ne=re instanceof Z.Parser?ee(re):re;if(!ne.type)return{};const ie={};if(ne.description!==void 0&&(ie.description=ne.description),ne.title!==void 0&&(ie.title=ne.title),ne.default!==void 0&&(ie.default=ne.default),typeof ne.type!="string")return"enum"in ne.type?(ie.enum=ne.type.enum,ie):"const"in ne.type?(ie.const=ne.type.const,ie):(ie[ne.type.mode]=ne.type.items.map(te),ie);if(ie.type=ne.type,["boolean","null"].includes(ne.type))return ie;if(ne.type==="string")return ne.pattern&&(ie.pattern=String(ne.pattern).substring(1,String(ne.pattern).length-1)),ne.maxItems&&(ie.maxLength=ne.maxItems),ne.minItems&&(ie.minLength=ne.minItems),ie;if(["number","integer"].includes(ne.type))return ne.maximum&&(ne.exclusiveMax?ie.exclusiveMaximum=ne.maximum:ie.maximum=ne.maximum),ne.minimum&&(ne.exclusiveMin?ie.exclusiveMinimum=ne.minimum:ie.minimum=ne.minimum),ne.multipleOf&&(ie.multipleOf=ne.multipleOf),ie;if(ne.type==="array")return ne.maxItems&&(ie.maxItems=ne.maxItems),ne.minItems&&(ie.minItems=ne.minItems),ne.items&&(typeof ne.items=="string"||Array.isArray(ne.items))&&(ie.items=Array.isArray(ne.items)?ne.items.map(te):ne.items),ie;if(ne.additionalProperties&&(ie.additionalItems=ne.additionalProperties),typeof ne.items=="object"&&!Array.isArray(ne.items)){ie.required=[];for(const[se,ae]of Object.entries(ne.items))se==="*"?ie.patternProperties={"*":te(ae)}:ie.properties={...ie.properties,[se]:te(ae)},ae.optional||ie.required.push(se)}return ie}return schema}var hasRequiredParser;function requireParser(){if(hasRequiredParser)return parser;hasRequiredParser=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(re){return re&&re.__esModule?re:{default:re}};Object.defineProperty(parser,"__esModule",{value:!0}),parser.Parser=void 0;const _=Z(error$1),Y=Z(lang),ee=requireSchema();class te extends Y.default{constructor(){super(...arguments);be(this,"isOptional",!1);be(this,"onlyEmpty",!1);be(this,"defaultValue")}testInput(ie){if(this.isOptional&&(ie===void 0||!this.onlyEmpty&&ie===null))return null;try{for(const se of this.rules){const ae=se(ie);if(ae)throw ae}}catch(se){if(!(se instanceof _.default))throw se;return se}return null}defaultHandleBefore(ie){const se=ie===void 0||!this.onlyEmpty&&ie===null;if(!(se&&!this.defaultValue))return this.defaultHandle(se&&this.defaultValue?this.defaultValue:ie)}defaultHandle(ie){return this.defaultHandle.toString(),ie}error(ie,se){return this.error.toString(),new _.default(this.langType,ie,se)}setMeta(ie){(0,ee.setSchemaMeta)(this,ie)}parse(ie){const se=this.testInput(ie);if(!se)return this.defaultHandleBefore(ie);throw se}parseSafe(ie){try{return{value:!0,data:this.parse(ie)}}catch(se){if(!(se instanceof _.default))throw se;return{value:!1,error:se}}}parseAsync(ie){return new Promise((se,ae)=>{const ue=this.parseSafe(ie);ue.value?se(ue.data):ae(ue.error)})}check(ie){return!this.testInput(ie)}optional(){return this.setMeta({optional:!0}),this.isOptional=!0,this}default(ie){return(0,ee.getSchemaMeta)(this).type&&this.setMeta({default:ie}),this.defaultValue=ie,this.optional()}empty(){return this.onlyEmpty=!0,this}describe(ie){return this.setMeta({description:ie}),this}title(ie){return this.setMeta({title:ie}),this}schema(ie=!0){const se=(0,ee.generateSchema)(this);return ie&&(se.$schema="http://json-schema.org/draft-07/schema#"),se}}return parser.Parser=te,parser.default=te,parser}var hasRequiredNumber;function requireNumber(){if(hasRequiredNumber)return number;hasRequiredNumber=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(te){return te&&te.__esModule?te:{default:te}};Object.defineProperty(number,"__esModule",{value:!0}),number.NumberParser=void 0;const _=Z(requireParser());function Y(te,re,ne,ie,se){if(se)return te===0&&re===Number.POSITIVE_INFINITY&&!ne&&!ie?"not_natural_number":void 0;if(te===0&&re===Number.POSITIVE_INFINITY&&ne&&!ie)return"not_positive_number";if(te===Number.NEGATIVE_INFINITY&&re===0&&!ne&&ie)return"not_negative_number";if(te===0&&re===100&&!ne&&!ie)return"not_percentage"}class ee extends _.default{constructor(){super();be(this,"minimum",Number.NEGATIVE_INFINITY);be(this,"exclusiveMin",!1);be(this,"maximum",Number.POSITIVE_INFINITY);be(this,"exclusiveMax",!1);be(this,"isInteger",!1);be(this,"rate");be(this,"rules",[ne=>{if(typeof ne!="number")return this.error("not_number");if(Number.isNaN(ne))return this.error("is_a_NaN");const ie=Y(this.minimum,this.maximum,this.exclusiveMin,this.exclusiveMax,this.isInteger);return ne>this.maximum||this.exclusiveMax&&ne===this.maximum?this.error(ie??this.exclusiveMax?"too_bigger":"too_bigger_has",{input:ne,value:this.maximum}):nene%2!==0?null:this.error("not_odd_number")),this}even(){return this.rules.push(ne=>ne%2===0?null:this.error("not_even_number")),this}multiple(ne){return this.setMeta({multipleOf:ne}),this.rate=ne,this}natural(){return this.int(),this.min(0)}positive(){return this.min(0,!0)}negative(){return this.max(0,!0)}percent(){return this.range(0,100)}port(){return this.int(),this.range(1,65535)}}return number.NumberParser=ee,number.default=ee,number}var string={},hasRequiredString;function requireString(){if(hasRequiredString)return string;hasRequiredString=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ne){return ne&&ne.__esModule?ne:{default:ne}};Object.defineProperty(string,"__esModule",{value:!0}),string.StringParser=void 0;const _=Z(requireParser()),Y=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,ee=/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\/.?/,te=/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?$/;class re extends _.default{constructor(){super();be(this,"isStrict",!1);be(this,"starts","");be(this,"ends","");be(this,"pattern");be(this,"maxLength",Number.POSITIVE_INFINITY);be(this,"minLength",0);be(this,"rules",[se=>{if(typeof se=="string"){if(se.length>this.maxLength)return this.error("too_long",{input:se,value:this.maxLength});if(se.lengthtypeof re!="boolean"?this.error("not_boolean"):this.fixed!==void 0&&this.fixed!==re?this.error(this.fixed?"not_true":"not_false"):null]);this.setMeta({type:"boolean"})}true(){return this.setMeta({type:{const:!0}}),this.fixed=!0,this}false(){return this.setMeta({type:{const:!1}}),this.fixed=!1,this}}return boolean.BooleanParser=Y,boolean.default=Y,boolean}var _null={},hasRequired_null;function require_null(){if(hasRequired_null)return _null;hasRequired_null=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(_null,"__esModule",{value:!0}),_null.NullParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(){super();be(this,"rules",[re=>re===null?null:this.error("not_null")]);this.setMeta({type:"null"})}}return _null.NullParser=Y,_null.default=Y,_null}var _undefined={},hasRequired_undefined;function require_undefined(){if(hasRequired_undefined)return _undefined;hasRequired_undefined=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(_undefined,"__esModule",{value:!0}),_undefined.UndefinedParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(){super(...arguments);be(this,"rules",[re=>re===void 0?null:this.error("not_undefined")])}}return _undefined.UndefinedParser=Y,_undefined.default=Y,_undefined}var any={},hasRequiredAny;function requireAny(){if(hasRequiredAny)return any;hasRequiredAny=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(any,"__esModule",{value:!0}),any.AnyParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(){super(...arguments);be(this,"rules",[()=>null])}}return any.AnyParser=Y,any.default=Y,any}var unknown={},hasRequiredUnknown;function requireUnknown(){if(hasRequiredUnknown)return unknown;hasRequiredUnknown=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(unknown,"__esModule",{value:!0}),unknown.UnknownParser=void 0;const _=Z(requireAny());class Y extends _.default{}return unknown.UnknownParser=Y,unknown.default=Y,unknown}var never={},hasRequiredNever;function requireNever(){if(hasRequiredNever)return never;hasRequiredNever=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(never,"__esModule",{value:!0}),never.NeverParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(){super(...arguments);be(this,"rules",[()=>this.error("not_never")])}}return never.NeverParser=Y,never.default=Y,never}var array={},hasRequiredArray;function requireArray(){if(hasRequiredArray)return array;hasRequiredArray=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(re){return re&&re.__esModule?re:{default:re}};Object.defineProperty(array,"__esModule",{value:!0}),array.ArrayParser=void 0;const _=requireParser(),Y=Z(error$1),ee=requireSchema();class te extends _.Parser{constructor(ie){super();be(this,"maxItems",Number.POSITIVE_INFINITY);be(this,"minItems",0);be(this,"rules",[ie=>{if(!Array.isArray(ie))return this.error("not_an_array");if(ie.length>this.maxItems)return this.error("too_many_items",{input:ie.length,value:this.maxItems});if(ie.length{if(!Array.isArray(ie))return this.error("not_a_tuple");if(ie.length!==this.elementsParser.length)return this.error("illegal_tuple_length",{value:this.elementsParser.length,input:ie.length});let se=0;try{for(const ae of ie)this.elementsParser[se].parse(ae),se+=1}catch(ae){if(!(ae instanceof Y.default))throw ae;return this.error("tuple_error",{length:se,value:ae.message})}return null}]);be(this,"elementsParser");this.setMeta({type:"array",items:ie.map(ee.getSchemaMeta)}),this.elementsParser=ie}}return tuple.TupleParser=te,tuple.default=te,tuple}var object={},hasRequiredObject;function requireObject(){if(hasRequiredObject)return object;hasRequiredObject=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ne){return ne&&ne.__esModule?ne:{default:ne}};Object.defineProperty(object,"__esModule",{value:!0}),object.ObjectParser=void 0;const _=Z(requireParser()),Y=requireString(),ee=Z(error$1),te=requireSchema();class re extends _.default{constructor(se){super();be(this,"maxProperties",Number.POSITIVE_INFINITY);be(this,"minProperties",0);be(this,"rules",[se=>{var le;if(se===null)return this.error("object_is_null");if(typeof se!="object")return this.error("not_an_object");if(Array.isArray(se))return this.error("object_is_an_array");if(this.constructors.filter(ce=>se instanceof ce).length!==this.constructors.length)return this.error("object_not_instance_of_constructor");const ae=Object.keys(this.valuesParser).length,ue=Object.keys(se).length;if(this.isStrict&&ue>ae)return this.error("object_keys_too_many",{value:ae,input:ue});if(ue>this.maxProperties)return this.error("object_keys_too_many",{value:this.maxProperties,input:ue});if(ue{const ie=typeof ne=="string",se=typeof ne=="number";return!ie&&!se&&!(typeof ne=="boolean")?this.error("literal_only"):re===ne?null:ie?this.error("literal_string_error",{value:String(re)}):se?this.error("literal_number_error",{value:String(re)}):this.error("literal_boolean_error",{value:String(re)})})}}return literal.LiteralParser=Y,literal.default=Y,literal}var intersection={},hasRequiredIntersection;function requireIntersection(){if(hasRequiredIntersection)return intersection;hasRequiredIntersection=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(re){return re&&re.__esModule?re:{default:re}};Object.defineProperty(intersection,"__esModule",{value:!0}),intersection.IntersectionParser=void 0;const _=requireDist(),Y=Z(requireParser()),ee=requireSchema();class te extends Y.default{constructor(...ie){super();be(this,"values");be(this,"rules",[]);this.setMeta({type:{mode:"allOf",items:ie.map(ee.getSchemaMeta)}}),this.values=ie,this.rules.push(se=>{if(ie.filter(ae=>ae.check(se)).length===ie.length)return null;throw this.error("intersection_error")})}defaultHandle(ie){return this.values[0]instanceof _.ObjectParser&&this.values[1]instanceof _.ObjectParser?Object.assign(this.values[0].strict(!1).parse(ie),this.values[1].strict(!1).parse(ie)):ie}}return intersection.IntersectionParser=te,intersection.default=te,intersection}var union={},hasRequiredUnion;function requireUnion(){if(hasRequiredUnion)return union;hasRequiredUnion=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(re){return re&&re.__esModule?re:{default:re}};Object.defineProperty(union,"__esModule",{value:!0}),union.UnionParser=void 0;const _=requireParsers(),Y=Z(requireParser()),ee=requireSchema();class te extends Y.default{constructor(...ie){super();be(this,"values");be(this,"rules",[]);this.setMeta({type:{mode:"oneOf",items:ie.map(ee.getSchemaMeta)}}),this.values=ie,this.rules.push(se=>{if(ie.filter(ae=>ae.check(se)).length>=1)return null;throw this.error("union_error")})}defaultHandle(ie){if(!(this.values[0]instanceof _.ObjectParser&&this.values[1]instanceof _.ObjectParser))return ie;const se=this.values[0].parseSafe(ie);return se.value?se.data:this.values[1].parse(ie)}}return union.UnionParser=te,union.default=te,union}var _enum={},hasRequired_enum;function require_enum(){if(hasRequired_enum)return _enum;hasRequired_enum=1,Object.defineProperty(_enum,"__esModule",{value:!0}),_enum.EnumParser=void 0;const Z=requireUnion(),_=requireSchema();class Y extends Z.UnionParser{constructor(...te){super(...te),this.setMeta({type:{enum:te.map(re=>{const{type:ne}=(0,_.getSchemaMeta)(re);if(typeof ne=="object"&&"const"in ne)return ne.const}).filter(re=>re!==void 0)}})}}return _enum.EnumParser=Y,_enum.default=Z.UnionParser,_enum}var custom={},hasRequiredCustom;function requireCustom(){if(hasRequiredCustom)return custom;hasRequiredCustom=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(custom,"__esModule",{value:!0}),custom.CustomParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(re){super();be(this,"rules",[]);this.rules.push(ne=>re(ne)?null:this.error("custom_error",{value:re.toString()}))}}return custom.CustomParser=Y,custom.default=Y,custom}var _function={},hasRequired_function;function require_function(){if(hasRequired_function)return _function;hasRequired_function=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ne){return ne&&ne.__esModule?ne:{default:ne}};Object.defineProperty(_function,"__esModule",{value:!0}),_function.FunctionParser=void 0;const _=Z(requireParser()),Y=Object.getPrototypeOf(async()=>{}).constructor,ee=Object.getPrototypeOf(function*(){}).constructor,te=Object.getPrototypeOf(async function*(){}).constructor;class re extends _.default{constructor(){super(...arguments);be(this,"isAsync",!1);be(this,"isGenerator",!1);be(this,"isArrow",!1);be(this,"isConstructor",!1);be(this,"argsCount");be(this,"nameParser");be(this,"rules",[se=>{if(typeof se!="function")return this.error("not_a_function");if(se.toString().startsWith("class"))return this.error("not_a_function");if(this.isConstructor&&se.name[0]!==se.name[0].toUpperCase())return this.error("not_a_constructor");if(this.isAsync&&!this.isGenerator&&!(se instanceof Y))return this.error("not_an_async_function");if(!this.isAsync&&this.isGenerator&&!(se instanceof ee))return this.error("not_a_generator_function");if(this.isAsync&&this.isGenerator&&!(se instanceof te))return this.error("not_an_async_generator_function");if(this.isArrow&&se.toString().includes("function"))return this.error("not_an_arrow_function");if(this.argsCount&&se.length!==this.argsCount)return this.error("function_args_count_mismatch",{expected:this.argsCount,actual:se.length});if(this.nameParser){const ae=this.nameParser.parseSafe(se.name);if(!ae.value)return this.error("function_name_mismatch",{value:ae.error.message})}return null}])}async(se=!0){return this.isAsync=se,this}arrow(se=!0){return this.isArrow=se,this}generator(se=!0){return this.isGenerator=se,this}args(se){return this.argsCount=se,this}name(se){return this.nameParser=se,this}constructed(se=!0){return this.isConstructor=se,this}}return _function.FunctionParser=re,_function.default=re,_function}var _class={},hasRequired_class;function require_class(){if(hasRequired_class)return _class;hasRequired_class=1;var Z=commonjsGlobal&&commonjsGlobal.__importDefault||function(ee){return ee&&ee.__esModule?ee:{default:ee}};Object.defineProperty(_class,"__esModule",{value:!0}),_class.ClassParser=void 0;const _=Z(requireParser());class Y extends _.default{constructor(){super(...arguments);be(this,"argsCount");be(this,"nameParser");be(this,"constructors",[]);be(this,"rules",[re=>{if(typeof re!="function")return this.error("not_a_class");if(re.toString().startsWith("function"))return this.error("not_a_class");if(this.argsCount&&re.length!==this.argsCount)return this.error("class_args_count_mismatch",{expected:this.argsCount,actual:re.length});if(this.nameParser){const ne=this.nameParser.parseSafe(re.name);if(!ne.value)return this.error("class_name_mismatch",{value:ne.error.message})}return this.constructors.filter(ne=>Object.isPrototypeOf.call(ne,re.prototype)).length!==this.constructors.length?this.error("class_prototype_error"):null}])}args(re){return this.argsCount=re,this}name(re){return this.nameParser=re,this}}return _class.ClassParser=Y,_class.default=Y,_class}var hasRequiredParsers;function requireParsers(){return hasRequiredParsers||(hasRequiredParsers=1,function(Z){var _=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(ee,te,re,ne){ne===void 0&&(ne=re);var ie=Object.getOwnPropertyDescriptor(te,re);(!ie||("get"in ie?!te.__esModule:ie.writable||ie.configurable))&&(ie={enumerable:!0,get:function(){return te[re]}}),Object.defineProperty(ee,ne,ie)}:function(ee,te,re,ne){ne===void 0&&(ne=re),ee[ne]=te[re]}),Y=commonjsGlobal&&commonjsGlobal.__exportStar||function(ee,te){for(var re in ee)re!=="default"&&!Object.prototype.hasOwnProperty.call(te,re)&&_(te,ee,re)};Object.defineProperty(Z,"__esModule",{value:!0}),Y(requireNumber(),Z),Y(requireString(),Z),Y(requireBoolean(),Z),Y(require_null(),Z),Y(require_undefined(),Z),Y(requireAny(),Z),Y(requireUnknown(),Z),Y(requireNever(),Z),Y(requireArray(),Z),Y(requireTuple(),Z),Y(requireObject(),Z),Y(requireLiteral(),Z),Y(requireIntersection(),Z),Y(requireUnion(),Z),Y(require_enum(),Z),Y(requireCustom(),Z),Y(require_function(),Z),Y(require_class(),Z)}(parsers)),parsers}var hasRequiredFactory$1;function requireFactory$1(){if(hasRequiredFactory$1)return factory$1;hasRequiredFactory$1=1,Object.defineProperty(factory$1,"__esModule",{value:!0}),factory$1.numberFactory=_,factory$1.stringFactory=Y,factory$1.booleanFactory=ee,factory$1.undefinedFactory=te,factory$1.nullFactory=re,factory$1.anyFactory=ne,factory$1.unknownFactory=ie,factory$1.neverFactory=se,factory$1.arrayFactory=ae,factory$1.tupleFactory=ue,factory$1.objectFactory=oe,factory$1.literalFactory=le,factory$1.intersectionFactory=ce,factory$1.unionFactory=he,factory$1.enumFactory=fe,factory$1.customFactory=de,factory$1.functionFactory=pe,factory$1.classFactory=_e;const Z=requireParsers();function _(){return new Z.NumberParser}function Y(){return new Z.StringParser}function ee(){return new Z.BooleanParser}function te(){return new Z.UndefinedParser}function re(){return new Z.NullParser}function ne(){return new Z.AnyParser}function ie(){return new Z.UnknownParser}function se(){return new Z.NeverParser}function ae(me){return new Z.ArrayParser(me)}function ue(me){return new Z.TupleParser(me)}function oe(me){return new Z.ObjectParser(me??{})}function le(me){return new Z.LiteralParser(me)}function ce(...me){return new Z.IntersectionParser(...me)}function he(...me){return new Z.UnionParser(...me)}function fe(...me){return new Z.EnumParser(...me)}function de(me){return new Z.CustomParser(me)}function pe(){return new Z.FunctionParser}function _e(){return new Z.ClassParser}return factory$1}var types={};Object.defineProperty(types,"__esModule",{value:!0});var hasRequiredDist;function requireDist(){return hasRequiredDist||(hasRequiredDist=1,function(Z){var _=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(ie,se,ae,ue){ue===void 0&&(ue=ae);var oe=Object.getOwnPropertyDescriptor(se,ae);(!oe||("get"in oe?!se.__esModule:oe.writable||oe.configurable))&&(oe={enumerable:!0,get:function(){return se[ae]}}),Object.defineProperty(ie,ue,oe)}:function(ie,se,ae,ue){ue===void 0&&(ue=ae),ie[ue]=se[ae]}),Y=commonjsGlobal&&commonjsGlobal.__exportStar||function(ie,se){for(var ae in ie)ae!=="default"&&!Object.prototype.hasOwnProperty.call(se,ae)&&_(se,ie,ae)};Object.defineProperty(Z,"__esModule",{value:!0}),Z.Tsu=void 0,Z.tsuFactory=ne;const ee=requireFactory$1(),te=lang;Y(requireFactory$1(),Z),Y(types,Z),Y(requireParsers(),Z),Y(requireParser(),Z),Y(error$1,Z);var re;(function(ie){ie.Number=ee.numberFactory,ie.String=ee.stringFactory,ie.Boolean=ee.booleanFactory,ie.Null=ee.nullFactory,ie.Undefined=ee.undefinedFactory,ie.Any=ee.anyFactory,ie.Unknown=ee.unknownFactory,ie.Never=ee.neverFactory,ie.Array=ee.arrayFactory,ie.Tuple=ee.tupleFactory,ie.Object=ee.objectFactory,ie.Literal=ee.literalFactory,ie.Intersection=ee.intersectionFactory,ie.Union=ee.unionFactory,ie.Enum=ee.enumFactory,ie.Custom=ee.customFactory,ie.Function=ee.functionFactory,ie.Class=ee.classFactory})(re||(Z.Tsu=re={}));function ne(ie=te.DEFAULT_LANG){return{Number(){return re.Number().lang(ie)},String(){return re.String().lang(ie)},Boolean(){return re.Boolean().lang(ie)},Null(){return re.Null().lang(ie)},Undefined(){return re.Undefined().lang(ie)},Any(){return re.Any().lang(ie)},Unknown(){return re.Unknown().lang(ie)},Never(){return re.Never().lang(ie)},Array(se){return re.Array(se).lang(ie)},Tuple(se){return re.Tuple(se).lang(ie)},Object(se){return re.Object(se).lang(ie)},Literal(se){return re.Literal(se).lang(ie)},Intersection(...se){return re.Intersection(...se).lang(ie)},Union(...se){return re.Union(...se).lang(ie)},Enum(...se){return re.Enum(...se).lang(ie)},Custom(se){return re.Custom(se).lang(ie)},Function(){return(0,ee.functionFactory)().lang(ie)},Class(){return(0,ee.classFactory)()}}}Z.default=re}(dist)),dist}var __create$8=Object.create,__defProp$j=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__getOwnPropNames$j=Object.getOwnPropertyNames,__getProtoOf$8=Object.getPrototypeOf,__hasOwnProp$j=Object.prototype.hasOwnProperty,__export$i=(Z,_)=>{for(var Y in _)__defProp$j(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$j=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$j(_))!__hasOwnProp$j.call(Z,te)&&te!==Y&&__defProp$j(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$j(_,te))||ee.enumerable});return Z},__toESM$8=(Z,_,Y)=>(Y=Z!=null?__create$8(__getProtoOf$8(Z)):{},__copyProps$j(!Z||!Z.__esModule?__defProp$j(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$j=Z=>__copyProps$j(__defProp$j({},"__esModule",{value:!0}),Z),filter_exports$1={};__export$i(filter_exports$1,{FilterTestList:()=>FilterTestList,filterOptionBaseSchema:()=>filterOptionBaseSchema,filterOptionGroupSchema:()=>filterOptionGroupSchema,filterOptionSchema:()=>filterOptionSchema});var filter$1=__toCommonJS$j(filter_exports$1),import_tsukiko$2=__toESM$8(requireDist()),FilterTestList=(Z=>(Z.PLATFORM="platform",Z.USER_ID="userId",Z.GROUP_ID="groupId",Z.OPERATOR_ID="operatorId",Z.MESSAGE_ID="messageId",Z.SCOPE="scope",Z.ACCESS="access",Z.IDENTITY="identity",Z.LOCALE_TYPE="localeType",Z.SELF_ID="selfId",Z))(FilterTestList||{});const filterOptionBaseSchema=import_tsukiko$2.default.Object({test:import_tsukiko$2.default.Custom(Z=>typeof Z=="string"&&Object.values(FilterTestList).includes(Z)).describe("Testing item"),operator:import_tsukiko$2.default.Union(import_tsukiko$2.default.Literal("=="),import_tsukiko$2.default.Literal("!="),import_tsukiko$2.default.Literal(">"),import_tsukiko$2.default.Literal("<"),import_tsukiko$2.default.Literal(">="),import_tsukiko$2.default.Literal("<=")).describe("Testing operation"),value:import_tsukiko$2.default.Union(import_tsukiko$2.default.String(),import_tsukiko$2.default.Number(),import_tsukiko$2.default.Boolean()).describe("Expect value")}),filterOptionGroupSchema=import_tsukiko$2.default.Object({type:import_tsukiko$2.default.Union(import_tsukiko$2.default.Literal("all_of"),import_tsukiko$2.default.Literal("any_of"),import_tsukiko$2.default.Literal("none_of")).describe("Match type"),filters:import_tsukiko$2.default.Array(filterOptionBaseSchema).describe("Filters list")}),filterOptionSchema=import_tsukiko$2.default.Union(filterOptionBaseSchema,filterOptionGroupSchema);var __defProp$i=Object.defineProperty,__getOwnPropDesc$i=Object.getOwnPropertyDescriptor,__getOwnPropNames$i=Object.getOwnPropertyNames,__hasOwnProp$i=Object.prototype.hasOwnProperty,__copyProps$i=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$i(_))!__hasOwnProp$i.call(Z,te)&&te!==Y&&__defProp$i(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$i(_,te))||ee.enumerable});return Z},__toCommonJS$i=Z=>__copyProps$i(__defProp$i({},"__esModule",{value:!0}),Z),session_exports={},session$1=__toCommonJS$i(session_exports),__create$7=Object.create,__defProp$h=Object.defineProperty,__getOwnPropDesc$h=Object.getOwnPropertyDescriptor,__getOwnPropNames$h=Object.getOwnPropertyNames,__getProtoOf$7=Object.getPrototypeOf,__hasOwnProp$h=Object.prototype.hasOwnProperty,__export$h=(Z,_)=>{for(var Y in _)__defProp$h(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$h=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$h(_))!__hasOwnProp$h.call(Z,te)&&te!==Y&&__defProp$h(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$h(_,te))||ee.enumerable});return Z},__toESM$7=(Z,_,Y)=>(Y=Z!=null?__create$7(__getProtoOf$7(Z)):{},__copyProps$h(!Z||!Z.__esModule?__defProp$h(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$h=Z=>__copyProps$h(__defProp$h({},"__esModule",{value:!0}),Z),command_exports$1={};__export$h(command_exports$1,{commandArgTypeSignSchema:()=>commandArgTypeSignSchema});var command$1=__toCommonJS$h(command_exports$1),import_tsukiko$1=__toESM$7(requireDist());const commandArgTypeSignSchema=import_tsukiko$1.default.Union(import_tsukiko$1.default.Literal("string"),import_tsukiko$1.default.Literal("number"),import_tsukiko$1.default.Literal("boolean"));(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,config,Z.exports),ne(se,message$1,Z.exports),ne(se,adapter$1,Z.exports),ne(se,api$1,Z.exports),ne(se,filter$1,Z.exports),ne(se,session$1,Z.exports),ne(se,command$1,Z.exports)})(types$1);var typesExports=types$1.exports,__defProp$g=Object.defineProperty,__getOwnPropDesc$g=Object.getOwnPropertyDescriptor,__getOwnPropNames$g=Object.getOwnPropertyNames,__hasOwnProp$g=Object.prototype.hasOwnProperty,__export$g=(Z,_)=>{for(var Y in _)__defProp$g(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$g=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$g(_))!__hasOwnProp$g.call(Z,te)&&te!==Y&&__defProp$g(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$g(_,te))||ee.enumerable});return Z},__toCommonJS$g=Z=>__copyProps$g(__defProp$g({},"__esModule",{value:!0}),Z),internal_exports={};__export$g(internal_exports,{cancelFactory:()=>cancelFactory,default:()=>internal_default,getCommandMeta:()=>getCommandMeta,getMidwareMeta:()=>getMidwareMeta,getRegExpMeta:()=>getRegExpMeta,getTaskMeta:()=>getTaskMeta,setCommandMeta:()=>setCommandMeta,setMidwareMeta:()=>setMidwareMeta,setRegExpMeta:()=>setRegExpMeta,setTaskMeta:()=>setTaskMeta});var internal=__toCommonJS$g(internal_exports),import_global$2=globalExports;function cancelFactory(){return{get(){return()=>this.fn()},fn(){this.value=!0},value:!1}}function getCommandMeta(Z){return Reflect.getMetadata(import_global$2.Symbols.command,Z)}function setCommandMeta(Z,_){Reflect.defineMetadata(import_global$2.Symbols.command,_,Z)}function getMidwareMeta(Z){return Reflect.getMetadata(import_global$2.Symbols.midware,Z)}function setMidwareMeta(Z,_){Reflect.defineMetadata(import_global$2.Symbols.midware,_,Z)}function getRegExpMeta(Z){return Reflect.getMetadata(import_global$2.Symbols.regexp,Z)}function setRegExpMeta(Z,_){Reflect.defineMetadata(import_global$2.Symbols.regexp,_,Z)}function getTaskMeta(Z){return Reflect.getMetadata(import_global$2.Symbols.task,Z)}function setTaskMeta(Z,_){Reflect.defineMetadata(import_global$2.Symbols.task,_,Z)}var internal_default={getCommandMeta,setCommandMeta,getMidwareMeta,setMidwareMeta,getRegExpMeta,setRegExpMeta,getTaskMeta,setTaskMeta},components={exports:{}},factory,hasRequiredFactory;function requireFactory(){if(hasRequiredFactory)return factory;hasRequiredFactory=1;var Z=Object.defineProperty,_=Object.getOwnPropertyDescriptor,Y=Object.getOwnPropertyNames,ee=Object.prototype.hasOwnProperty,te=(oe,le)=>{for(var ce in le)Z(oe,ce,{get:le[ce],enumerable:!0})},re=(oe,le,ce,he)=>{if(le&&typeof le=="object"||typeof le=="function")for(let fe of Y(le))!ee.call(oe,fe)&&fe!==ce&&Z(oe,fe,{get:()=>le[fe],enumerable:!(he=_(le,fe))||he.enumerable});return oe},ne=oe=>re(Z({},"__esModule",{value:!0}),oe),ie={};te(ie,{formatFactory:()=>ue}),factory=ne(ie);var se=commonExports$1,ae=requireComponents();function ue(oe){function le(ce,he){if(!Array.isArray(he)){for(const me of Object.keys(he))he[me]===void 0||he[me]===null||(typeof he[me]!="string"&&(he[me]=String(he[me])),he[me]=oe.locale(he[me]));return(0,se.stringTemp)(oe.locale(ce),he)}const fe=(Array.isArray(he)?he:Object.values(he)).every(me=>!(me instanceof ae.MessageList||me instanceof ae.MessageSingle)),de=oe.locale(ce).split(/(\{[0-9]+\})/),pe=[];let _e="";for(const me of de){if(me==null)continue;if(!me.match(/^\{[0-9]+\}$/)){_e+=me;continue}const ge=Number.parseInt(me.slice(1,-1),10),ye=he[ge];ye!=null&&(ye instanceof ae.MessageList||ye instanceof ae.MessageSingle?(_e&&(pe.push(_e),_e=""),pe.push(ye)):_e+=String(ye))}return _e&&pe.push(_e),fe?pe.join(""):(0,ae.Messages)(...pe)}return le}return factory}var __defProp$f=Object.defineProperty,__getOwnPropDesc$f=Object.getOwnPropertyDescriptor,__getOwnPropNames$f=Object.getOwnPropertyNames,__hasOwnProp$f=Object.prototype.hasOwnProperty,__export$f=(Z,_)=>{for(var Y in _)__defProp$f(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$f=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$f(_))!__hasOwnProp$f.call(Z,te)&&te!==Y&&__defProp$f(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$f(_,te))||ee.enumerable});return Z},__toCommonJS$f=Z=>__copyProps$f(__defProp$f({},"__esModule",{value:!0}),Z),error_exports={};__export$f(error_exports,{CommandError:()=>CommandError$1,DevError:()=>DevError,KotoriError:()=>KotoriError,ModuleError:()=>ModuleError});var error=__toCommonJS$f(error_exports);class KotoriError extends Error{constructor(Y,ee){super(Y);be(this,"label");this.name=ee?`${ee.charAt(0).toUpperCase()}${ee.slice(1)}Error`:"KotoriError",this.label=ee}extend(){return new Proxy(KotoriError,{construct:(Y,ee,te)=>Reflect.construct(Y,[`${this.message?`${this.message} `:""}${ee[0]}`,ee[1]??this.label],te)})}static from(Y,ee){const te=Y instanceof Error?Y:new Error(String(Y)),re=new KotoriError(te.message,ee??te.name);return te.cause&&(re.cause=te.cause),te.stack&&(re.stack=te.stack),re}}const ModuleError=new KotoriError(void 0,"module").extend(),DevError=new KotoriError(void 0,"dev").extend();let CommandError$1=class extends KotoriError{constructor(Y){super();be(this,"value");this.value=Y}};var __defProp$e=Object.defineProperty,__getOwnPropDesc$e=Object.getOwnPropertyDescriptor,__getOwnPropNames$e=Object.getOwnPropertyNames,__hasOwnProp$e=Object.prototype.hasOwnProperty,__export$e=(Z,_)=>{for(var Y in _)__defProp$e(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$e=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$e(_))!__hasOwnProp$e.call(Z,te)&&te!==Y&&__defProp$e(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$e(_,te))||ee.enumerable});return Z},__toCommonJS$e=Z=>__copyProps$e(__defProp$e({},"__esModule",{value:!0}),Z),messages_exports={};__export$e(messages_exports,{MessageList:()=>MessageList,MessageSingle:()=>MessageSingle,Messages:()=>Messages,default:()=>messages_default});var messages=__toCommonJS$e(messages_exports);class MessageSingle extends String{constructor(Y,ee){super(Messages.stringify(Y,ee,!1));be(this,"data");this.data={type:Y,...ee}}toString(Y=!0){return Messages.stringify(this.data.type,this.data,Y)}isText(){return this.data.type==="text"}}class MessageListOrigin extends Array{constructor(..._){const Y=[];for(const ee of _)typeof ee=="string"?Y.push(Messages.text(ee)):Y.push(...ee instanceof MessageListOrigin?[...ee]:[ee]);super(...Y),Object.setPrototypeOf(this,MessageList.prototype)}toString(_=!0){return Array.from(this).map(Y=>Y.toString(_)).join("")}isPure(..._){return this.every(Y=>_.includes(Y.data.type))}isText(){return this.isPure("text")}pick(..._){return Messages(...this.filter(Y=>_.includes(Y.data.type)))}omit(..._){return Messages(...this.filter(Y=>!_.includes(Y.data.type)))}}const MessageList=new Proxy(MessageListOrigin,{construct:(Z,_,Y)=>new Proxy(Reflect.construct(Z,_,Y),{get:(ee,te,re)=>{if(te in ee)return Reflect.get(ee,te,re);const ne=String.prototype[ee];ne instanceof Function&&ne.bind(void 0)}})});function Messages(...Z){return new MessageList(...Z)}(Z=>{function _(le){return new MessageSingle("text",{text:le})}Z.text=_;function Y(le){return new MessageSingle("mention",{userId:le})}Z.mention=Y;function ee(){return new MessageSingle("mentionAll",{})}Z.mentionAll=ee;function te(le){return new MessageSingle("image",{content:le})}Z.image=te;function re(le){return new MessageSingle("voice",{content:le})}Z.voice=re;function ne(le){return new MessageSingle("audio",{content:le})}Z.audio=ne;function ie(le){return new MessageSingle("video",{content:le})}Z.video=ie;function se(le){return new MessageSingle("file",{content:le})}Z.file=se;function ae(le,ce,he,fe){return new MessageSingle("location",{latitude:le,longitude:ce,title:he,content:fe})}Z.location=ae;function ue(le){return new MessageSingle("reply",{messageId:le})}Z.reply=ue;function oe(le,ce,he=!0){if(he)return le==="text"?ce.text:"";switch(le){case"text":return ce.text;case"mention":return`@${ce.userId}`;case"mentionAll":return"@all";case"location":return"[Location]";default:return`[${le.charAt(0).toUpperCase()}${le.slice(1)}]`}}Z.stringify=oe})(Messages||(Messages={}));var messages_default=Messages,session,hasRequiredSession;function requireSession(){if(hasRequiredSession)return session;hasRequiredSession=1;var Z=Object.defineProperty,_=Object.getOwnPropertyDescriptor,Y=Object.getOwnPropertyNames,ee=Object.prototype.hasOwnProperty,te=(fe,de)=>{for(var pe in de)Z(fe,pe,{get:de[pe],enumerable:!0})},re=(fe,de,pe,_e)=>{if(de&&typeof de=="object"||typeof de=="function")for(let me of Y(de))!ee.call(fe,me)&&me!==pe&&Z(fe,me,{get:()=>de[me],enumerable:!(_e=_(de,me))||_e.enumerable});return fe},ne=fe=>re(Z({},"__esModule",{value:!0}),fe),ie={};te(ie,{Session:()=>he}),session=ne(ie);var se=typesExports,ae=requireFactory(),ue=error,oe=globalExports,le=messages;class ce{constructor(de,pe){be(this,"api");be(this,"el");be(this,"i18n");be(this,"id");be(this,"format");be(this,"t");be(this,"type");be(this,"time");be(this,"userId");be(this,"operatorId");be(this,"messageId");be(this,"groupId");be(this,"channelId");be(this,"guildId");be(this,"meta");switch(this.api=pe.api,this.el=pe.elements,this.i18n=pe.ctx.i18n.extends(pe.config.lang),this.type=de.type,this.userId=de.userId,this.groupId=de.groupId,this.operatorId=de.operatorId,this.time=de.time,this.meta=de.meta,this.type){case se.MessageScope.PRIVATE:this.id=`${se.MessageScope.PRIVATE}|${this.userId}`;break;case se.MessageScope.GROUP:this.id=`${se.MessageScope.GROUP}|${this.groupId}|${this.userId}`;break;case se.MessageScope.CHANNEL:this.id=`${se.MessageScope.CHANNEL}|${this.channelId}|${this.guildId}|${this.userId}`;break}this.format=(0,ae.formatFactory)(this.i18n),this.t=this.i18n.t.bind(this.i18n)}async send(de){return this.type===se.MessageScope.GROUP?await this.api.sendGroupMsg(de,this.groupId,this.meta):this.type===se.MessageScope.CHANNEL?await this.api.sendChannelMsg(de,this.guildId,this.channelId,this.meta):this.type===se.MessageScope.PRIVATE?await this.api.sendPrivateMsg(de,this.userId,this.meta):{messageId:"",time:0}}async quick(de){const pe=await de;if(!(!pe||pe instanceof ue.CommandError)){if(pe instanceof le.MessageList&&(pe.toString()===""||pe.pick("text").length===0)){this.send(pe);return}if(Array.isArray(pe)&&!(pe instanceof le.MessageList)&&pe.length===2){this.send(this.format(pe[0],pe[1]));return}this.send(typeof pe=="string"?this.i18n.locale(pe):pe)}}async json(de){if(typeof de=="string")return this.send(de);if(de&&typeof de=="object"){const pe=JSON.stringify(de,void 0,2);return pe==="{}"?this.send(String(de)):pe}return typeof de=="function"?`[${de.toString().slice(0,5)==="class"?"class":"Function"} ${de.name||"(anonymous)"}]`:this.send(String(de))}prompt(de){return new Promise(pe=>{this.api.adapter.ctx[oe.Symbols.promise].set(this.id,[...this.api.adapter.ctx[oe.Symbols.promise].get(this.id)??[],pe]),this.quick(de??"corei18n.template.prompt").then(()=>{})}).finally(()=>this.api.adapter.ctx[oe.Symbols.promise].delete(this.id))}confirm(de){return new Promise(pe=>{this.api.adapter.ctx[oe.Symbols.promise].set(this.id,[...this.api.adapter.ctx[oe.Symbols.promise].get(this.id)??[],_e=>pe(_e===((de==null?void 0:de.sure)??"corei18n.template.confirm.sure"))]),this.quick((de==null?void 0:de.message)??"corei18n.template.confirm").then(()=>{})}).finally(()=>this.api.adapter.ctx[oe.Symbols.promise].delete(this.id))}error(de,pe){return new ue.CommandError(Object.assign(pe??{},{type:de}))}}const he=new Proxy(ce,{construct:(fe,de,pe)=>new Proxy(Reflect.construct(fe,de,pe),{get:(_e,me,ge)=>{const ye=Reflect.get(_e,me,ge);return ye===void 0?de[0][me]:ye}})});return session}var adapter,hasRequiredAdapter;function requireAdapter(){if(hasRequiredAdapter)return adapter;hasRequiredAdapter=1;var Z=Object.defineProperty,_=Object.getOwnPropertyDescriptor,Y=Object.getOwnPropertyNames,ee=Object.prototype.hasOwnProperty,te=(oe,le)=>{for(var ce in le)Z(oe,ce,{get:le[ce],enumerable:!0})},re=(oe,le,ce,he)=>{if(le&&typeof le=="object"||typeof le=="function")for(let fe of Y(le))!ee.call(oe,fe)&&fe!==ce&&Z(oe,fe,{get:()=>le[fe],enumerable:!(he=_(le,fe))||he.enumerable});return oe},ne=oe=>re(Z({},"__esModule",{value:!0}),oe),ie={};te(ie,{Adapter:()=>ae,default:()=>ue}),adapter=ne(ie);var se=requireSession();class ae{constructor(le,ce,he){be(this,"ctx");be(this,"config");be(this,"identity");be(this,"status",{value:"offline",createTime:new Date,lastMsgTime:null,receivedMsg:0,sentMsg:0,offlineTimes:0});be(this,"selfId","");this.ctx=le,this.config=ce,this.identity=he}online(){this.status.value==="offline"&&(this.status.value="online",this.ctx.emit("status",{adapter:this,status:"online"}))}offline(){this.status.value==="online"&&(this.status.value="offline",this.status.offlineTimes+=1,this.ctx.emit("status",{adapter:this,status:"offline"}))}session(le,ce){const he=new se.Session(ce,this);this.ctx.emit(le,he)}}var ue=ae;return adapter}var __defProp$d=Object.defineProperty,__getOwnPropDesc$d=Object.getOwnPropertyDescriptor,__getOwnPropNames$d=Object.getOwnPropertyNames,__hasOwnProp$d=Object.prototype.hasOwnProperty,__export$d=(Z,_)=>{for(var Y in _)__defProp$d(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$d=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$d(_))!__hasOwnProp$d.call(Z,te)&&te!==Y&&__defProp$d(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$d(_,te))||ee.enumerable});return Z},__toCommonJS$d=Z=>__copyProps$d(__defProp$d({},"__esModule",{value:!0}),Z),api_exports={};__export$d(api_exports,{Api:()=>Api,default:()=>api_default});var api=__toCommonJS$d(api_exports),import_tools$2=commonExports$1;class Api{constructor(_){be(this,"adapter");this.adapter=_}getSupportedActions(){return Object.getOwnPropertyNames(Api.prototype).filter(_=>typeof _=="string"&&!["getSupportedActions","adapter","constructor"].includes(_)&&this[_]instanceof Function&&this[_]!==Api.prototype[_])}async sendPrivateMsg(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{messageId:"",time:0}}async sendGroupMsg(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee,ee),{messageId:"",time:0}}async sendChannelMsg(_,Y,ee,te={}){return(0,import_tools$2.none)(this,_,Y,ee,te),{messageId:"",time:0}}deleteMsg(_,Y={}){(0,import_tools$2.none)(this,_,Y)}async getSelfInfo(_={}){return(0,import_tools$2.none)(this,_),{userId:"",username:"",userDisplayname:""}}async getUserInfo(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{userId:"",username:"",userDisplayname:"",userRemark:""}}async getFriendList(_={}){return(0,import_tools$2.none)(this,_),[]}async getGroupInfo(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{groupId:"",groupName:""}}async getGroupList(_={}){return(0,import_tools$2.none)(this,_),[]}async getGroupMemberInfo(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{userId:"",username:"",userDisplayname:""}}async getGroupMemberList(_,Y={}){return(0,import_tools$2.none)(this,_,Y),[]}setGroupName(_,Y,ee={}){(0,import_tools$2.none)(this,_,Y,ee)}leaveGroup(_,Y={}){(0,import_tools$2.none)(this,_,Y)}async getGuildInfo(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{guildId:"",guildName:""}}async getGuildList(_={}){return(0,import_tools$2.none)(this,_),[]}setGuildName(_,Y,ee={}){(0,import_tools$2.none)(this,_,Y,ee)}async getGuildMemberInfo(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{userId:"",username:"",userDisplayname:"",userRemark:""}}async getGuildMemberList(_,Y={}){return(0,import_tools$2.none)(this,_,Y),[]}leaveGuild(_,Y={}){(0,import_tools$2.none)(this,_,Y)}async getChannelInfo(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{channelId:"",channelName:""}}async getChannelList(_,Y=!1,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),[]}setChannelName(_,Y,ee,te={}){(0,import_tools$2.none)(this,_,Y,ee,te)}async getChannelMemberInfo(_,Y,ee,te={}){return(0,import_tools$2.none)(this,_,Y,ee,te),{userId:"",username:"",userDisplayname:"",userRemark:""}}async getChannelMemberList(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),[]}leaveChannel(_,Y,ee={}){(0,import_tools$2.none)(this,_,Y,ee)}async uploadFileUrl(_,Y,ee={},te={}){return(0,import_tools$2.none)(this,_,Y,ee,te),{filedId:""}}async uploadFilePath(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{filedId:""}}async uploadFileData(_,Y,ee={}){return(0,import_tools$2.none)(this,_,Y,ee),{filedId:""}}async getFileUrl(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{name:"",sha256:"",url:"",headers:{}}}async getFilePath(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{name:"",sha256:"",path:""}}async getFileData(_,Y={}){return(0,import_tools$2.none)(this,_,Y),{name:"",sha256:"",data:Buffer.from("")}}setGroupAvatar(_,Y,ee={}){(0,import_tools$2.none)(this,_,Y,ee)}setGroupAdmin(_,Y,ee,te={}){(0,import_tools$2.none)(this,_,Y,ee,te)}setGroupCard(_,Y,ee,te={}){(0,import_tools$2.none)(this,_,Y,ee,te)}setGroupBan(_,Y,ee,te={}){(0,import_tools$2.none)(this,_,Y,ee,te)}sendGroupNotice(_,Y,ee,te={}){(0,import_tools$2.none)(this,_,Y,ee,te)}setGroupWholeBan(_,Y=!0){this.adapter.send("set_group_whole_ban",{group_id:Number(_),enable:Y})}setGroupKick(_,Y,ee={}){(0,import_tools$2.none)(this,_,Y,ee)}}var api_default=Api,__defProp$c=Object.defineProperty,__getOwnPropDesc$c=Object.getOwnPropertyDescriptor,__getOwnPropNames$c=Object.getOwnPropertyNames,__hasOwnProp$c=Object.prototype.hasOwnProperty,__export$c=(Z,_)=>{for(var Y in _)__defProp$c(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$c=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$c(_))!__hasOwnProp$c.call(Z,te)&&te!==Y&&__defProp$c(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$c(_,te))||ee.enumerable});return Z},__toCommonJS$c=Z=>__copyProps$c(__defProp$c({},"__esModule",{value:!0}),Z),elements_exports={};__export$c(elements_exports,{Elements:()=>Elements,default:()=>elements_default});var elements=__toCommonJS$c(elements_exports),import_tools$1=commonExports$1,import_messages=messages;class Elements{constructor(_){be(this,"adapter");this.adapter=_}mention(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.mention(_))}mentionAll(_={}){return(0,import_tools$1.none)(_),this.decode(import_messages.Messages.mentionAll())}image(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.image(_))}voice(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.voice(_))}audio(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.audio(_))}video(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.video(_))}file(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.file(_))}location(_,Y,ee,te,re={}){return(0,import_tools$1.none)(re),this.decode(import_messages.Messages.location(_,Y,ee,te))}reply(_,Y={}){return(0,import_tools$1.none)(Y),this.decode(import_messages.Messages.reply(_))}}var elements_default=Elements,cache,hasRequiredCache;function requireCache(){if(hasRequiredCache)return cache;hasRequiredCache=1;var Z=Object.defineProperty,_=Object.getOwnPropertyDescriptor,Y=Object.getOwnPropertyNames,ee=Object.prototype.hasOwnProperty,te=(le,ce)=>{for(var he in ce)Z(le,he,{get:ce[he],enumerable:!0})},re=(le,ce,he,fe)=>{if(ce&&typeof ce=="object"||typeof ce=="function")for(let de of Y(ce))!ee.call(le,de)&&de!==he&&Z(le,de,{get:()=>ce[de],enumerable:!(fe=_(ce,de))||fe.enumerable});return le},ne=le=>re(Z({},"__esModule",{value:!0}),le),ie={};te(ie,{Cache:()=>ue,default:()=>oe}),cache=ne(ie);var se=error,ae=requireApp();class ue extends ae.Service{constructor(he){super(he,{},"cache");be(this,"cache",new Map)}start(){this.cache||(this.cache=new Map)}stop(){if(this.cache){for(const he of this.cache.values())he.clear();this.cache.clear()}delete this.cache}getContainer(){if(!this.cache)throw new se.KotoriError("Cache service is not started.","cache");const he=this.ctx.identity??"root";return this.cache.has(he)||this.cache.set(he,new Map),this.cache.get(he)}get(he){return this.getContainer().get(he)}set(he,fe){this.getContainer().set(he,fe)}}var oe=ue;return cache}var __defProp$b=Object.defineProperty,__getOwnPropDesc$b=Object.getOwnPropertyDescriptor,__getOwnPropNames$b=Object.getOwnPropertyNames,__hasOwnProp$b=Object.prototype.hasOwnProperty,__export$b=(Z,_)=>{for(var Y in _)__defProp$b(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$b=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$b(_))!__hasOwnProp$b.call(Z,te)&&te!==Y&&__defProp$b(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$b(_,te))||ee.enumerable});return Z},__toCommonJS$b=Z=>__copyProps$b(__defProp$b({},"__esModule",{value:!0}),Z),filter_exports={};__export$b(filter_exports,{Filter:()=>Filter,default:()=>filter_default});var filter=__toCommonJS$b(filter_exports),import_types$1=typesExports;class Filter{constructor(_){be(this,"option");this.option=_}static getTestDomain(_,Y){switch(Y){case import_types$1.FilterTestList.LOCALE_TYPE:return _.i18n.get();case import_types$1.FilterTestList.IDENTITY:return _.api.adapter.identity;case import_types$1.FilterTestList.PLATFORM:return _.api.adapter.platform;case import_types$1.FilterTestList.SELF_ID:return _.api.adapter.selfId;case import_types$1.FilterTestList.USER_ID:return _.userId;case import_types$1.FilterTestList.GROUP_ID:return _.groupId??-1;case import_types$1.FilterTestList.OPERATOR_ID:return _.operatorId??-1;case import_types$1.FilterTestList.MESSAGE_ID:return _.messageId;case import_types$1.FilterTestList.SCOPE:return _.type;case import_types$1.FilterTestList.ACCESS:return String(_.api.adapter.config.master)===String(_.userId)?import_types$1.UserAccess.ADMIN:_.sender&&"role"in _.sender&&["owner","admin"].includes(String(_.sender.role))?import_types$1.UserAccess.MANGER:import_types$1.UserAccess.MEMBER;default:return-1}}static handleFilter(_,{test:Y,operator:ee,value:te}){const re=Filter.getTestDomain(_,Y);if(re===-1)return!1;if([">","<"].includes(ee)){if(typeof te!="number"||typeof re!="number")return!1;switch(ee){case">":return re>te;case"<":return re=","<=","=="].includes(ee)){if(typeof te!="number"||typeof re!="number")return typeof te=="boolean"?!!re===te:String(re)===String(te);switch(ee){case">=":return re>=te;case"<=":return re<=te;case"==":return re===te}}return typeof te=="boolean"?!!re!==te:String(re)!==String(te)}test(_){if(!("type"in this.option))return Filter.handleFilter(_,this.option);const{type:Y,filters:ee}=this.option;for(const te of ee){const re=new Filter(te).test(_);switch(Y){case"all_of":if(!re)return!1;break;case"any_of":if(re)return!0;break;case"none_of":if(re)return!1;break}}return Y!=="any_of"}}var filter_default=Filter;function hasKey(Z,_){var Y=Z;_.slice(0,-1).forEach(function(te){Y=Y[te]||{}});var ee=_[_.length-1];return ee in Y}function isNumber(Z){return typeof Z=="number"||/^0x[0-9a-f]+$/i.test(Z)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(Z)}function isConstructorOrProto(Z,_){return _==="constructor"&&typeof Z[_]=="function"||_==="__proto__"}var minimist=function(Z,_){_||(_={});var Y={bools:{},strings:{},unknownFn:null};typeof _.unknown=="function"&&(Y.unknownFn=_.unknown),typeof _.boolean=="boolean"&&_.boolean?Y.allBools=!0:[].concat(_.boolean).filter(Boolean).forEach(function(ge){Y.bools[ge]=!0});var ee={};function te(ge){return ee[ge].some(function(ye){return Y.bools[ye]})}Object.keys(_.alias||{}).forEach(function(ge){ee[ge]=[].concat(_.alias[ge]),ee[ge].forEach(function(ye){ee[ye]=[ge].concat(ee[ge].filter(function(Ie){return ye!==Ie}))})}),[].concat(_.string).filter(Boolean).forEach(function(ge){Y.strings[ge]=!0,ee[ge]&&[].concat(ee[ge]).forEach(function(ye){Y.strings[ye]=!0})});var re=_.default||{},ne={_:[]};function ie(ge,ye){return Y.allBools&&/^--[^=]+$/.test(ye)||Y.strings[ge]||Y.bools[ge]||ee[ge]}function se(ge,ye,Ie){for(var Se=ge,Pe=0;Pe{for(var Y in _)__defProp$a(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$a=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$a(_))!__hasOwnProp$a.call(Z,te)&&te!==Y&&__defProp$a(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$a(_,te))||ee.enumerable});return Z},__toESM$6=(Z,_,Y)=>(Y=Z!=null?__create$6(__getProtoOf$6(Z)):{},__copyProps$a(!Z||!Z.__esModule?__defProp$a(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$a=Z=>__copyProps$a(__defProp$a({},"__esModule",{value:!0}),Z),command_exports={};__export$a(command_exports,{Command:()=>Command,default:()=>command_default});var command=__toCommonJS$a(command_exports),import_minimist=__toESM$6(minimist),import_types=typesExports,import_error$2=error;const requiredParamMatch=/<(\.\.\.)?(.*?)(:(.*?))?(=(.*?))?>/,optionalParamMatch=/\[(\.\.\.)?(.*?)(:(.*?))?(=(.*?))?\]/,defaultType="string";class Command{constructor(_,Y){be(this,"template");be(this,"meta",{root:"",alias:[],scope:"all",access:import_types.UserAccess.MEMBER,args:[],options:[],hide:!1,shortcut:[]});this.template=_,this.meta=Object.assign(this.meta,Y),this.parse()}static handleDefaultValue(_,Y){if(Y==="boolean")return _!=="false"&&!!_;if(Y==="number"){if(typeof _=="number")return _;if(_===!0)return 1;if(_===!1)return 0;const ee=Number.parseFloat(_),te=Number.parseInt(_);return ee===te?te:ee}return _.toString()}static parseArgs(_){const Y=[];let ee="",te=!1,re=null,ne=null;for(let ie=0;ie<_.length;ie+=1){let se=_[ie];te?se===re?(te=!1,re=null):se==="\\"&&ie+1<_.length?(ie+=1,se=_[ie],se==='"'||se==="'"?ee+=se:ee+=`\\${se}`):ee+=se:se==='"'||se==="'"?(te=!0,re=se,ne=se):se===" "&&ee?(Y.push(ee),ee=""):ee+=se}return te||re?{char:ne,index:_.lastIndexOf(ne)}:(ee&&Y.push(ee),Y)}static run(_,Y){let ee="";for(const oe of[Y.root,...Y.alias])ee||(_.startsWith(`${oe} `)||_===oe)&&(ee=oe);if(!ee)return new import_error$2.CommandError({type:"unknown",input:_});const te={string:[],boolean:[],alias:{}};for(const oe of Y.options)oe.type==="string"?te.string.push(oe.realname):oe.type==="boolean"&&te.boolean.push(oe.realname),te.alias[oe.realname]=oe.name;const re=Command.parseArgs(_.slice(ee.length).trim());if(!Array.isArray(re))return new import_error$2.CommandError({type:"syntax",...re});const ne=(0,import_minimist.default)(re,te),ie=ne._,se={expected:Y.args.filter(oe=>!oe.optional).length,reality:ie.length};if(se.realityse.expected)return new import_error$2.CommandError({type:"arg_many",...se});let ae;if(Y.args.forEach((oe,le)=>{if(!(ae||le>0&&!ie[le-1])){if(!ie[le]&&oe.default){ie[le]=oe.default;return}oe.rest||!ie[le]||(ie[le]=Command.handleDefaultValue(ie[le],oe.type),Number.isNaN(ie[le])&&(ae=new import_error$2.CommandError({type:"arg_error",expected:"number",reality:"string",index:le})))}}),ae)return ae;const ue={};for(const oe of Y.options)oe.realname in ne&&(ue[oe.realname]=Array.isArray(ne[oe.realname])?ne[oe.realname][0]:ne[oe.realname],ue[oe.realname]=Command.handleDefaultValue(ue[oe.realname],oe.type),Number.isNaN(ue[oe.realname])&&(ae=new import_error$2.CommandError({type:"option_error",expected:"number",reality:"string",target:oe.realname})));return ae||{args:Y.args.length>0&&Y.args[Y.args.length-1].rest?ie:ie.slice(0,Y.args.length),options:ue}}parse(){const[_,Y]=this.template.trim().split(" - ");this.meta.description=Y;const ee=_.indexOf(" <"),te=_.indexOf(" [");if(ee===-1&&te===-1){this.meta.root=_.trim();return}ee!==-1&&(te===-1||ee{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,requireAdapter(),Z.exports),ne(se,api,Z.exports),ne(se,elements,Z.exports),ne(se,requireCache(),Z.exports),ne(se,filter,Z.exports),ne(se,requireSession(),Z.exports),ne(se,command,Z.exports),ne(se,messages,Z.exports)}(components)),components.exports}var __create$5=Object.create,__defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__getOwnPropNames$9=Object.getOwnPropertyNames,__getProtoOf$5=Object.getPrototypeOf,__hasOwnProp$9=Object.prototype.hasOwnProperty,__export$9=(Z,_)=>{for(var Y in _)__defProp$9(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$9=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$9(_))!__hasOwnProp$9.call(Z,te)&&te!==Y&&__defProp$9(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$9(_,te))||ee.enumerable});return Z},__toESM$5=(Z,_,Y)=>(Y=Z!=null?__create$5(__getProtoOf$5(Z)):{},__copyProps$9(!Z||!Z.__esModule?__defProp$9(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$9=Z=>__copyProps$9(__defProp$9({},"__esModule",{value:!0}),Z),utils_exports={};__export$9(utils_exports,{Decorators:()=>Decorators,default:()=>utils_default});var utils=__toCommonJS$9(utils_exports),import_fluoro=distExports,import_tsukiko=__toESM$5(requireDist()),import_error$1=error,import_global$1=globalExports,import_node_path$1=require$$3,Kt;Kt=import_global$1.Symbols.decorator;const _t=class _t{constructor(_){be(this,"pkgName");be(this,"import",_=>{if(_t[import_global$1.Symbols.decorator].has(this.pkgName))throw this.error("plugin already decorated");const Y=this.getMeta(_);Y.name=this.pkgName,_t[import_global$1.Symbols.decorator].set(this.pkgName,_)});be(this,"lang",(_,Y)=>{const ee=this.getMeta(_),te=import_tsukiko.default.Union(import_tsukiko.default.String(),import_tsukiko.default.Array(import_tsukiko.default.String())).parseSafe(_[Y]);if(!te.value)throw this.error("lang must be string or string[]");ee.lang=(0,import_node_path$1.resolve)(...typeof te.data=="string"?[te.data]:te.data)});be(this,"inject",(_,Y)=>{const ee=this.getMeta(_),te=import_tsukiko.default.Array(import_tsukiko.default.String()).parseSafe(_[Y]);if(!te.value)throw this.error(`inject must be string[] at ${this.pkgName}`);ee.inject=te.data});be(this,"schema",(_,Y)=>{const ee=this.getMeta(_),te=_[Y];if(!(te instanceof import_tsukiko.Parser))throw this.error("schema must be Parser");ee.schema=te});this.pkgName=_}static getMeta(_){return Reflect.getMetadata(import_global$1.Symbols.modules,typeof _=="string"?_t[import_global$1.Symbols.decorator].get(_)??{}:_)}static setup(_){_.on("literal_ready_module_decorator",(Y,ee)=>_t.load(_,Y,ee))}static load(_,Y,ee){const te=typeof Y=="string"?_t[import_global$1.Symbols.decorator].get(Y):Y;if(!te)return!1;const re=_t.getMeta(te);if(!re)return!1;const{name:ne}=re;re.lang&&_.i18n.use(re.lang);let ie=ee;if(re.schema){const le=re.schema.parseSafe(ee);if(!le.value)throw new import_error$1.ModuleError(`config format of module ${ne} is error: ${le.error.message}`);ie=le.data}const se=_.extends(ne);for(const le of re.inject){const ce=Array.from(_[import_fluoro.Tokens.container]).find(([,he])=>he instanceof import_fluoro.Service&&he.identity===le);ce&&se.inject(ce[0])}const ae=new te(se,ie),ue=(le,ce)=>le.bind(ce?te:ae);for(const[le,ce,he]of re.events)se[ce.isOnce?"once":"on"](ce.type,ue(le,he));for(const[le,ce,he]of re.midwares)se.midware(ue(le,he),ce.priority);for(const[le,ce,he]of re.commands){const fe=se.command(ce.template,{...ce,action:ue(le,he)});for(const de of JSON.parse(JSON.stringify(ce.options??[])))fe.option(de[0],de[1])}for(const[le,ce,he]of re.regexps)se.regexp(ce.match,ue(le,he));for(const[le,ce,he]of re.tasks)se.task(ce,ue(le,he));const oe={instance:{inject:re.inject,name:ne,config:ie,default:te}};return _.emit("ready_module",oe),!0}error(_="plugin not decorated"){return new import_error$1.DevError(`${_} at module ${this.pkgName}`)}getMeta(_){const Y="prototype"in _?_:_.constructor;let ee=_t.getMeta(Y);return ee||(ee={commands:[],events:[],midwares:[],inject:[],regexps:[],name:"unknown",tasks:[]},Reflect.defineMetadata(import_global$1.Symbols.modules,ee,Y),ee)}on(_){return(Y,ee)=>{const te=this.getMeta(Y),re=Y[ee];if(typeof re!="function")throw this.error("event callback must be function");te.events=[...te.events??[],[re,_,"prototype"in Y]]}}midware(_={}){return(Y,ee)=>{const te=this.getMeta(Y),re=Y[ee];if(typeof re!="function")throw this.error("middlewares callback must be function");te.midwares=[...te.midwares??[],[re,_,"prototype"in Y]]}}command(_){return(Y,ee)=>{const te=this.getMeta(Y),re=Y[ee];if(typeof re!="function")throw this.error("command callback must be function");te.commands=[...te.commands??[],[re,_,"prototype"in Y]]}}regexp(_){return(Y,ee)=>{const te=this.getMeta(Y),re=Y[ee];if(typeof re!="function")throw this.error("regexp callback must be function");te.regexps=[...te.regexps??[],[re,_,"prototype"in Y]]}}task(_){return(Y,ee)=>{const te=this.getMeta(Y),re=Y[ee];if(typeof re!="function")throw this.error("task callback must be function");te.tasks=[...te.tasks??[],[re,_,"prototype"in Y]]}}};be(_t,Kt,new Map);let Decorators=_t;var utils_default=Decorators,message,hasRequiredMessage;function requireMessage(){var ye,Ie,Se,Pe,Ae,De;if(hasRequiredMessage)return message;hasRequiredMessage=1;var Z=Object.create,_=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty,ne=(ke,Ce)=>{for(var xe in Ce)_(ke,xe,{get:Ce[xe],enumerable:!0})},ie=(ke,Ce,xe,ve)=>{if(Ce&&typeof Ce=="object"||typeof Ce=="function")for(let Te of ee(Ce))!re.call(ke,Te)&&Te!==xe&&_(ke,Te,{get:()=>Ce[Te],enumerable:!(ve=Y(Ce,Te))||ve.enumerable});return ke},se=(ke,Ce,xe)=>(xe=ke!=null?Z(te(ke)):{},ie(!ke||!ke.__esModule?_(xe,"default",{value:ke,enumerable:!0}):xe,ke)),ae=ke=>ie(_({},"__esModule",{value:!0}),ke),ue={};ne(ue,{Message:()=>me,default:()=>ge}),message=ae(ue);var oe=dist$1,le=typesExports,ce=internal,he=requireComponents(),fe=error,de=globalExports,pe=require$$3,_e=se(utils);De=de.Symbols.midware,Ae=de.Symbols.command,Pe=de.Symbols.regexp,Se=de.Symbols.task,Ie=de.Symbols.filter,ye=de.Symbols.promise;class me{constructor(Ce){be(this,De,new Set);be(this,Ae,new Set);be(this,Pe,new Set);be(this,Se,new Set);be(this,Ie,new Map);be(this,ye,new Map);be(this,"ctx");this.ctx=Ce,this.ctx.on("ready",()=>{for(const ve of this.ctx[de.Symbols.bot].values())for(const Te of ve)for(const we of["sendPrivateMsg","sendGroupMsg","sendChannelMsg"])Te[we]=new Proxy(Te[we],{apply:(Re,$e,Ue)=>{const[Me,Le,Ne]=Ue,ze=(0,ce.cancelFactory)();this.ctx.emit("before_send",{api:Te,message:Me,cancel:ze.get(),target:we==="sendPrivateMsg"?{type:le.MessageScope.PRIVATE,userId:Le}:we==="sendGroupMsg"?{type:le.MessageScope.GROUP,groupId:Le}:{type:le.MessageScope.CHANNEL,guildId:Le,channelId:Ne}}),!ze.value&&Reflect.apply(Re,$e,Ue)}})}),this.ctx.on("on_message",ve=>this.handleMidware(ve)),this.ctx.on("before_send",ve=>{const{api:Te}=ve;Te.adapter.status.sentMsg+=1,Te.adapter.status.lastMsgTime=new Date});const xe=(ve,Te)=>{for(const[we,Re]of this[de.Symbols.filter].entries())if(ve.toString().includes(we))return Re.test(Te);return!0};this.ctx.on("before_command",ve=>{const{identity:Te}=(0,ce.getCommandMeta)(ve.command)??{};if(Te&&!xe(Te,ve.session)){ve.cancel();const we=new fe.CommandError({type:"unknown",input:ve.raw});this.ctx.emit("command",{command:new he.Command(""),result:we,raw:ve.raw,session:ve.session})}}),this.ctx.on("before_regexp",ve=>{const{callback:Te}=Array.from(this[de.Symbols.regexp]).find(({match:Re})=>Re===ve.regexp)??{};if(!Te)return;const{identity:we}=(0,ce.getRegExpMeta)(Te)??{};we&&!xe(we,ve.session)&&ve.cancel()}),this.midware((ve,Te)=>{const we=this[de.Symbols.promise].get(Te.id);if(we){for(const Re of we)Re(Te.message);return}ve()},10),_e.default.setup(this.ctx)}handleMidware(Ce){const{api:xe}=Ce;xe.adapter.status.receivedMsg+=1,Array.from(this[de.Symbols.midware].values()).sort((Te,we)=>Te.priority-we.priority).map(({callback:Te})=>Te).reverse().reduce((Te,we)=>{const Re=()=>{Te(()=>{},Ce)};return()=>{we(Re,Ce)}},(Te,we)=>{this.handleCommand(we),this.handleRegexp(we)})(()=>{},Ce)}async handleRegexp(Ce){for(const xe of this[de.Symbols.regexp]){const ve=Ce.message.match(xe.match);if(!ve)continue;const Te=(0,ce.cancelFactory)();this.ctx.emit("before_regexp",{session:Ce,regexp:xe.match,raw:Ce.message.toString(),cancel:Te.get()}),!Te.value&&(Ce.quick(xe.callback(ve,Ce)),this.ctx.emit("regexp",{result:ve,session:Ce,regexp:xe.match,raw:Ce.message.toString()}))}}async handleCommand(Ce){const xe=Ce.api.adapter.config.commandPrefix??this.ctx.config.global.commandPrefix;for(const Re of this[de.Symbols.command])for(const $e of Re.meta.shortcut)Ce.message.startsWith($e)&&(Ce.message=Ce.message.replace($e,`${xe}${Re.meta.root}`));if(!Ce.message.startsWith(xe))return;const ve=Ce.message.slice(xe.length);if(!ve)return;let Te;for(const Re of this[de.Symbols.command]){if(Te||!Re.meta.action)continue;const $e=he.Command.run(ve,Re.meta);if($e instanceof fe.CommandError&&$e.value.type==="unknown")continue;Te=Re;const Ue=(0,ce.cancelFactory)();if(this.ctx.emit("before_command",{command:Re,result:$e,raw:ve,session:Ce,cancel:Ue.get()}),!Ue.value&&!($e instanceof fe.CommandError))try{const Me=await Re.meta.action({args:$e.args,options:$e.options},Ce);if(Me instanceof fe.CommandError){this.ctx.emit("command",{command:Re,result:Me,raw:ve,session:Ce});continue}Me!==void 0&&Ce.quick(Me),this.ctx.emit("command",{command:Re,result:Me instanceof fe.CommandError?$e:Me,raw:ve,session:Ce})}catch(Me){this.ctx.emit("command",{command:Te,result:new fe.CommandError({type:"error",error:Me}),raw:ve,session:Ce})}}if(Te)return;const we=new fe.CommandError({type:"unknown",input:ve});this.ctx.emit("command",{command:new he.Command(""),result:we,raw:ve,session:Ce})}midware(Ce,xe=100){(0,ce.setMidwareMeta)(Ce,{identity:this.ctx.identity,priority:xe});const ve={callback:Ce,priority:xe};return this[de.Symbols.midware].add(ve),()=>this[de.Symbols.midware].delete(ve)}command(Ce,xe){const ve=new he.Command(Ce,xe);return this[de.Symbols.command].add(ve),(0,ce.setCommandMeta)(ve,{identity:this.ctx.identity,...ve.meta}),ve}regexp(Ce,xe){(0,ce.setRegExpMeta)(xe,{identity:this.ctx.identity,match:Ce});const ve={match:Ce,callback:xe};return this[de.Symbols.regexp].add(ve),()=>this[de.Symbols.regexp].delete(ve)}boardcast(){}notify(){const Ce=Object.keys(this.ctx.config.adapter)[0];for(const xe of this.ctx[de.Symbols.bot].values())for(const ve of xe)ve.adapter.identity}task(Ce,xe){const[ve,Te]=typeof Ce=="string"?[Ce,{}]:[Ce.cron,Ce],we=new oe.CronJob(ve,()=>xe(this.ctx),null,Te.start??!0,Te.timeZone);return(0,ce.setTaskMeta)(we,{identity:this.ctx.identity,task:we,options:Ce}),this[de.Symbols.task].add(we),()=>this[de.Symbols.task].delete(we)}filter(Ce){var ve;const xe=(0,pe.randomUUID)().slice(0,12).replaceAll("-","");return this[de.Symbols.filter].set(xe,new he.Filter(Ce)),this.ctx.extends(void 0,`${(ve=this.ctx.identity)==null?void 0:ve.toString()}_${xe}`)}}var ge=me;return message}var core,hasRequiredCore;function requireCore(){var ye,Ie,Se;if(hasRequiredCore)return core;hasRequiredCore=1;var Z=Object.create,_=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty,ne=(Pe,Ae)=>{for(var De in Ae)_(Pe,De,{get:Ae[De],enumerable:!0})},ie=(Pe,Ae,De,ke)=>{if(Ae&&typeof Ae=="object"||typeof Ae=="function")for(let Ce of ee(Ae))!re.call(Pe,Ce)&&Ce!==De&&_(Pe,Ce,{get:()=>Ae[Ce],enumerable:!(ke=Y(Ae,Ce))||ke.enumerable});return Pe},se=(Pe,Ae,De)=>(De=Pe!=null?Z(te(Pe)):{},ie(!Pe||!Pe.__esModule?_(De,"default",{value:Pe,enumerable:!0}):De,Pe)),ae=Pe=>ie(_({},"__esModule",{value:!0}),Pe),ue={};ne(ue,{Context:()=>_e,Core:()=>me,default:()=>ge}),core=ae(ue);var oe=commonExports$1,le=se(commonExports),ce=se(distExports),he=se(config$1),fe=se(requireMessage()),de=requireComponents(),pe=globalExports;class _e extends(Se=ce.default,Ie=pe.Symbols.adapter,ye=pe.Symbols.bot,Se){constructor(De){super();be(this,Ie,new Map);be(this,ye,new Map);this.provide("config",new he.default(De)),this.mixin("config",["config","meta"]),this.provide("message",new fe.default(this)),this.mixin("message",["midware","command","regexp","notify","boardcast","task","filter",pe.Symbols.command,pe.Symbols.midware,pe.Symbols.task,pe.Symbols.filter,pe.Symbols.promise,pe.Symbols.regexp]),this.provide("http",new oe.Http),this.inject("http"),this.provide("i18n",new le.default({lang:this.config.global.lang})),this.inject("i18n"),this.service("cache",new de.Cache(this.extends("cache")))}start(){this.emit("ready")}stop(){this.emit("dispose")}}const me=_e;var ge=me;return core}var hasRequiredApp;function requireApp(){return hasRequiredApp||(hasRequiredApp=1,function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(le,ce)=>{for(var he in ce)_(le,he,{get:ce[he],enumerable:!0})},ne=(le,ce,he,fe)=>{if(ce&&typeof ce=="object"||typeof ce=="function")for(let de of ee(ce))!te.call(le,de)&&de!==he&&_(le,de,{get:()=>ce[de],enumerable:!(fe=Y(ce,de))||fe.enumerable});return le},ie=(le,ce,he)=>(ne(le,ce,"default"),he&&ne(he,ce,"default")),se=le=>ne(_({},"__esModule",{value:!0}),le),ae={};re(ae,{Context:()=>oe.Context,Core:()=>oe.Core,EventsList:()=>ue.EventsList,Service:()=>ue.Service}),Z.exports=se(ae);var ue=common$4;ie(ae,distExports,Z.exports);var oe=requireCore()}(app)),app.exports}var decorators={exports:{}},__defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__getOwnPropNames$8=Object.getOwnPropertyNames,__hasOwnProp$8=Object.prototype.hasOwnProperty,__export$8=(Z,_)=>{for(var Y in _)__defProp$8(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$8=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$8(_))!__hasOwnProp$8.call(Z,te)&&te!==Y&&__defProp$8(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$8(_,te))||ee.enumerable});return Z},__toCommonJS$8=Z=>__copyProps$8(__defProp$8({},"__esModule",{value:!0}),Z),plugin_exports={};__export$8(plugin_exports,{KotoriPlugin:()=>KotoriPlugin,default:()=>plugin_default});var plugin=__toCommonJS$8(plugin_exports);class KotoriPlugin{constructor(_,Y){be(this,"ctx");be(this,"config");this.ctx=_,this.config=Y}}var plugin_default=KotoriPlugin;(function(Z){var _=Object.create,Y=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyNames,re=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,ie=(pe,_e)=>{for(var me in _e)Y(pe,me,{get:_e[me],enumerable:!0})},se=(pe,_e,me,ge)=>{if(_e&&typeof _e=="object"||typeof _e=="function")for(let ye of te(_e))!ne.call(pe,ye)&&ye!==me&&Y(pe,ye,{get:()=>_e[ye],enumerable:!(ge=ee(_e,ye))||ge.enumerable});return pe},ae=(pe,_e,me)=>(se(pe,_e,"default"),me&&se(me,_e,"default")),ue=(pe,_e,me)=>(me=pe!=null?_(re(pe)):{},se(!pe||!pe.__esModule?Y(me,"default",{value:pe,enumerable:!0}):me,pe)),oe=pe=>se(Y({},"__esModule",{value:!0}),pe),le={};ie(le,{default:()=>de,plugins:()=>fe}),Z.exports=oe(le);var ce=require$$3,he=ue(utils);ae(le,plugin,Z.exports),ae(le,utils,Z.exports);function fe(pe){let _e;return!Array.isArray(pe)&&typeof pe=="object"?_e=pe.name:_e=commonjsRequire((0,ce.resolve)(...Array.isArray(pe)?pe:[pe],"package.json")).name,new he.default(_e)}var de=fe})(decorators);var decoratorsExports=decorators.exports,__defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__getOwnPropNames$7=Object.getOwnPropertyNames,__hasOwnProp$7=Object.prototype.hasOwnProperty,__export$7=(Z,_)=>{for(var Y in _)__defProp$7(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$7=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$7(_))!__hasOwnProp$7.call(Z,te)&&te!==Y&&__defProp$7(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$7(_,te))||ee.enumerable});return Z},__toCommonJS$7=Z=>__copyProps$7(__defProp$7({},"__esModule",{value:!0}),Z),container_exports={};__export$7(container_exports,{Container:()=>Container,default:()=>container_default});var container=__toCommonJS$7(container_exports),import_error=error,import_global=globalExports;const vt=class vt{constructor(){}static[import_global.Symbols.setInstance](_){if(vt.instance)throw new import_error.KotoriError("Default context instance is already set");vt.instance=_}static[import_global.Symbols.getInstance](){if(!vt.instance)throw new import_error.KotoriError("Default context instance is not set");return vt.instance}};be(vt,"instance");let Container=vt;var container_default=Container;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,requireApp(),Z.exports),ne(se,requireComponents(),Z.exports),ne(se,decoratorsExports,Z.exports),ne(se,error,Z.exports),ne(se,requireFactory(),Z.exports),ne(se,container,Z.exports),ne(se,globalExports,Z.exports),ne(se,typesExports,Z.exports),ne(se,commonExports$1,Z.exports),ne(se,commonExports,Z.exports),ne(se,requireDist(),Z.exports)})(lib$1);var libExports$1=lib$1.exports;class Character{constructor(_,Y,ee){be(this,"dialog");be(this,"identity");be(this,"element");be(this,"name");be(this,"position");be(this,"figureAssets");this.dialog=_,this.identity=Y,this.name=ee??Y}isShow(){return this.element&&this.dialog.layer.has(this.element)}view(_="auto"){var re;if(!this.element||(this.dialog.layer.add(this.element),_!=="auto"))return;const Y=Array.from(this.dialog.els.chars.values()).filter(ne=>ne.isShow()),ee=this.dialog.ctx.width()-this.dialog.ctx.config.styles.margin*2,te=1/(Y.length+1);for(const[ne,ie]of Y.entries())(re=ie.element)==null||re.position.set(te*(ne+1)*ee+this.dialog.ctx.config.styles.margin,this.dialog.ctx.height());this.position={type:_,order:Y.length}}hide(){this.element&&(this.dialog.layer.remove(this.element),this.position=void 0)}async figure(_){var ne;this.figureAssets=_;const Y=await loadAssets(this.figureAssets);Y.anchor.set(.5,.6);const ee=this.isShow(),te=this.element;if(this.element=Y,this.element.height>1677&&this.element.scale.set(1677/this.element.height),!ee)return;const re=this.dialog.layer.findIndex(ie=>ie===te);if(!te||re===-1){this.hide(),this.view();return}(ne=this.element)==null||ne.position.set(te.x,te.y),this.dialog.layer.remove(te),this.dialog.layer.addAt(this.element,re)}display(_){this.name=_}}const locales={"corei18n.template.args_error":'The type of argument "{0}" is incorrect, expected type: {1}, actual type: {2}',"corei18n.template.args_few":"Fewer arguments than expected were provided. Expected number: {0}, actual number: {1}","corei18n.template.args_many":"More arguments than expected were provided. Please reduce the number of arguments. Expected number: {0}, actual number: {1}","corei18n.template.option_error":'The type of option "{0}" is incorrect, expected type: {1}, actual type: {2}',"corei18n.template.syntax":'Syntax error in command. Unexpected character "{1}" at position {0}',"corei18n.template.unknown":'Unknown command "{0}". Please check if the command is entered correctly',"corei18n.template.error":`An unexpected error has occurred! +Captured information: {0}`,"corei18n.template.res_error":`Error in response data format! +Error message: {0}`,"corei18n.template.num_error":"Incorrect sequence number, please resend","corei18n.template.exists":'The target argument "{0}" already exists, do not execute repeatedly',"corei18n.template.no_exists":'The target argument "{0}" does not exist, please confirm and resend',"corei18n.template.data_error.args":'Error in data passed to argument "{0}"',"corei18n.template.data_error.options":'Error in data passed to option "{0}"',"corei18n.template.scope":"This command can only be used in group chats or private chats!","corei18n.template.no_access_manger":"This command can only be used by group managers and group BOT administrators!","corei18n.template.no_access_admin":"This command can only be used by the highest administrator of the BOT!","corei18n.template.empty":"None","corei18n.template.unsupported":"The current platform does not support this message element","corei18n.template":"The current platform does not support this message element","corei18n.template.prompt":"Please enter a value:","corei18n.template.confirm":"Are you sure? (Yes/No)","corei18n.template.confirm.sure":"Yes","core.descr.core":"View instance statistics information","core.descr.bot":"View information and status of the current bot","core.descr.bots":"View information and status of all bots","core.descr.about":"View about information","core.descr.locale":"Set the display language","core.descr.module":"View the list of modules","core.msg.bot":`ID: %identity% +Language: %lang% +Platform: %platform% +ID: %self_id% +Connection time: %create_time% +Number of received messages: %received_msg% +Number of sent messages: %sent_msg% +Number of instance shutdowns: %offline_times% +Last message time: %last_msg_time%`,"core.msg.core":`Global language: %lang% +Instance directory: %root% +Running mode: %mode% +Number of modules: %modules% +Number of services: %services% +Number of bot instances: %bots% +Number of middlewares: %midwares% +Number of commands: %commands% +Number of regular expressions: %regexps%`,"core.msg.bots":"Instance list: %list%","core.msg.bots.list":` +---------- +ID: %identity% +Language: %lang% +Platform: %platform% +Status: %status%`,"core.msg.about":`Kotori version: %version% +Core version: %core_version% +Loader version: %loader_version% +License: %license% +NodeJS version: %node_version%`,"core.msg.locale":"Successfully set the display language for the current instance to: %lang%","core.msg.locale.global":"Successfully set the global display language to: %lang%","core.msg.locale.invalid":"Parameter is invalid, must be one of the following values: en_US, ja_JP, zh_CN, zh_TW","core.msg.module":"Module list: %list%","core.msg.module.list":` +---------- +Name: %name% +Description: %description% +Version: %version%`,"core.msg.module.not_found":"Module %name% not found","core.descr.restart":"Restart the Kotori program","core.msg.restart":"Kotori is restarting...","core.msg.restart.not_daemon":"Error, need daemon environment"};var lib={exports:{}},__defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__getOwnPropNames$6=Object.getOwnPropertyNames,__hasOwnProp$6=Object.prototype.hasOwnProperty,__export$6=(Z,_)=>{for(var Y in _)__defProp$6(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$6=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$6(_))!__hasOwnProp$6.call(Z,te)&&te!==Y&&__defProp$6(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$6(_,te))||ee.enumerable});return Z},__toCommonJS$6=Z=>__copyProps$6(__defProp$6({},"__esModule",{value:!0}),Z),common_exports={};__export$6(common_exports,{LoggerLevel:()=>LoggerLevel});var common=__toCommonJS$6(common_exports),LoggerLevel=(Z=>(Z[Z.TRACE=10]="TRACE",Z[Z.DEBUG=20]="DEBUG",Z[Z.RECORD=25]="RECORD",Z[Z.INFO=30]="INFO",Z[Z.WARN=40]="WARN",Z[Z.ERROR=50]="ERROR",Z[Z.FATAL=60]="FATAL",Z[Z.SILENT=70]="SILENT",Z))(LoggerLevel||{}),fastSafeStringify=stringify;stringify.default=stringify;stringify.stable=deterministicStringify;stringify.stableStringify=deterministicStringify;var LIMIT_REPLACE_NODE="[...]",CIRCULAR_REPLACE_NODE="[Circular]",arr=[],replacerStack=[];function defaultOptions(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function stringify(Z,_,Y,ee){typeof ee>"u"&&(ee=defaultOptions()),decirc(Z,"",0,[],void 0,0,ee);var te;try{replacerStack.length===0?te=JSON.stringify(Z,_,Y):te=JSON.stringify(Z,replaceGetterValues(_),Y)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;arr.length!==0;){var re=arr.pop();re.length===4?Object.defineProperty(re[0],re[1],re[3]):re[0][re[1]]=re[2]}}return te}function setReplace(Z,_,Y,ee){var te=Object.getOwnPropertyDescriptor(ee,Y);te.get!==void 0?te.configurable?(Object.defineProperty(ee,Y,{value:Z}),arr.push([ee,Y,_,te])):replacerStack.push([_,Y,Z]):(ee[Y]=Z,arr.push([ee,Y,_]))}function decirc(Z,_,Y,ee,te,re,ne){re+=1;var ie;if(typeof Z=="object"&&Z!==null){for(ie=0;iene.depthLimit){setReplace(LIMIT_REPLACE_NODE,Z,_,te);return}if(typeof ne.edgesLimit<"u"&&Y+1>ne.edgesLimit){setReplace(LIMIT_REPLACE_NODE,Z,_,te);return}if(ee.push(Z),Array.isArray(Z))for(ie=0;ie_?1:0}function deterministicStringify(Z,_,Y,ee){typeof ee>"u"&&(ee=defaultOptions());var te=deterministicDecirc(Z,"",0,[],void 0,0,ee)||Z,re;try{replacerStack.length===0?re=JSON.stringify(te,_,Y):re=JSON.stringify(te,replaceGetterValues(_),Y)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;arr.length!==0;){var ne=arr.pop();ne.length===4?Object.defineProperty(ne[0],ne[1],ne[3]):ne[0][ne[1]]=ne[2]}}return re}function deterministicDecirc(Z,_,Y,ee,te,re,ne){re+=1;var ie;if(typeof Z=="object"&&Z!==null){for(ie=0;iene.depthLimit){setReplace(LIMIT_REPLACE_NODE,Z,_,te);return}if(typeof ne.edgesLimit<"u"&&Y+1>ne.edgesLimit){setReplace(LIMIT_REPLACE_NODE,Z,_,te);return}if(ee.push(Z),Array.isArray(Z))for(ie=0;ie0)for(var ee=0;ee{for(var Y in _)__defProp$5(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$5=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$5(_))!__hasOwnProp$5.call(Z,te)&&te!==Y&&__defProp$5(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$5(_,te))||ee.enumerable});return Z},__toESM$4=(Z,_,Y)=>(Y=Z!=null?__create$4(__getProtoOf$4(Z)):{},__copyProps$5(!Z||!Z.__esModule?__defProp$5(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$5=Z=>__copyProps$5(__defProp$5({},"__esModule",{value:!0}),Z),escaper_exports={};__export$5(escaper_exports,{escaper:()=>escaper,escaperSingle:()=>escaperSingle});var escaper_1=__toCommonJS$5(escaper_exports),import_fast_safe_stringify$3=__toESM$4(fastSafeStringify);function escaperSingle(Z){if(typeof Z=="string")return Z;if(Z&&typeof Z=="object"){const _=(0,import_fast_safe_stringify$3.default)(Z,void 0,2);return _==="{}"?String(Z):_}return typeof Z=="function"?`[${Z.toString().slice(0,5)==="class"?"class":"Function"} ${Z.name||"(anonymous)"}]`:String(Z)}function escaper(Z){return Z.map(_=>escaperSingle(_)).join(" ")}var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__getOwnPropNames$4=Object.getOwnPropertyNames,__hasOwnProp$4=Object.prototype.hasOwnProperty,__export$4=(Z,_)=>{for(var Y in _)__defProp$4(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$4=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$4(_))!__hasOwnProp$4.call(Z,te)&&te!==Y&&__defProp$4(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$4(_,te))||ee.enumerable});return Z},__toCommonJS$4=Z=>__copyProps$4(__defProp$4({},"__esModule",{value:!0}),Z),transport_exports={};__export$4(transport_exports,{Transport:()=>Transport,default:()=>transport_default});var transport$1=__toCommonJS$4(transport_exports);class Transport{constructor(_){be(this,"options");be(this,"escaper");this.options=_}}var transport_default=Transport,__create$3=Object.create,__defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__getOwnPropNames$3=Object.getOwnPropertyNames,__getProtoOf$3=Object.getPrototypeOf,__hasOwnProp$3=Object.prototype.hasOwnProperty,__export$3=(Z,_)=>{for(var Y in _)__defProp$3(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$3=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$3(_))!__hasOwnProp$3.call(Z,te)&&te!==Y&&__defProp$3(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$3(_,te))||ee.enumerable});return Z},__toESM$3=(Z,_,Y)=>(Y=Z!=null?__create$3(__getProtoOf$3(Z)):{},__copyProps$3(!Z||!Z.__esModule?__defProp$3(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$3=Z=>__copyProps$3(__defProp$3({},"__esModule",{value:!0}),Z),io_exports={};__export$3(io_exports,{IOTransport:()=>IOTransport,default:()=>io_default});var io=__toCommonJS$3(io_exports),import_fast_safe_stringify$2=__toESM$3(fastSafeStringify),import_transport$2=__toESM$3(transport$1),import_common$2=common;class IOTransport extends import_transport$2.default{handle(_){if(this.options.method==="vanilla"){_.level===import_common$2.LoggerLevel.FATAL||_.level===import_common$2.LoggerLevel.ERROR?console.error(_):console.log(_);return}const Y=`${(0,import_fast_safe_stringify$2.default)(_)} +`;_.level===import_common$2.LoggerLevel.FATAL||_.level===import_common$2.LoggerLevel.ERROR?process.stderr.write(Y):process.stdout.write(Y)}}var io_default=IOTransport,__create$2=Object.create,__defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__getOwnPropNames$2=Object.getOwnPropertyNames,__getProtoOf$2=Object.getPrototypeOf,__hasOwnProp$2=Object.prototype.hasOwnProperty,__export$2=(Z,_)=>{for(var Y in _)__defProp$2(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$2=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$2(_))!__hasOwnProp$2.call(Z,te)&&te!==Y&&__defProp$2(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$2(_,te))||ee.enumerable});return Z},__toESM$2=(Z,_,Y)=>(Y=Z!=null?__create$2(__getProtoOf$2(Z)):{},__copyProps$2(!Z||!Z.__esModule?__defProp$2(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$2=Z=>__copyProps$2(__defProp$2({},"__esModule",{value:!0}),Z),const_exports={};__export$2(const_exports,{DEFAULT_LOGGER_OPTIONS:()=>DEFAULT_LOGGER_OPTIONS});var _const=__toCommonJS$2(const_exports),import_io=__toESM$2(io),import_common$1=common;const DEFAULT_LOGGER_OPTIONS={level:import_common$1.LoggerLevel.INFO,label:[],transports:new import_io.default({method:"process"})};var transport={exports:{}},dayjs_min={exports:{}};(function(Z,_){(function(Y,ee){Z.exports=ee()})(commonjsGlobal,function(){var Y=1e3,ee=6e4,te=36e5,re="millisecond",ne="second",ie="minute",se="hour",ae="day",ue="week",oe="month",le="quarter",ce="year",he="date",fe="Invalid Date",de=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,pe=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_e={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(ve){var Te=["th","st","nd","rd"],we=ve%100;return"["+ve+(Te[(we-20)%10]||Te[we]||Te[0])+"]"}},me=function(ve,Te,we){var Re=String(ve);return!Re||Re.length>=Te?ve:""+Array(Te+1-Re.length).join(we)+ve},ge={s:me,z:function(ve){var Te=-ve.utcOffset(),we=Math.abs(Te),Re=Math.floor(we/60),$e=we%60;return(Te<=0?"+":"-")+me(Re,2,"0")+":"+me($e,2,"0")},m:function ve(Te,we){if(Te.date()1)return ve(Me[0])}else{var Le=Te.name;Ie[Le]=Te,$e=Le}return!Re&&$e&&(ye=$e),$e||!Re&&ye},De=function(ve,Te){if(Pe(ve))return ve.clone();var we=typeof Te=="object"?Te:{};return we.date=ve,we.args=arguments,new Ce(we)},ke=ge;ke.l=Ae,ke.i=Pe,ke.w=function(ve,Te){return De(ve,{locale:Te.$L,utc:Te.$u,x:Te.$x,$offset:Te.$offset})};var Ce=function(){function ve(we){this.$L=Ae(we.locale,null,!0),this.parse(we),this.$x=this.$x||we.x||{},this[Se]=!0}var Te=ve.prototype;return Te.parse=function(we){this.$d=function(Re){var $e=Re.date,Ue=Re.utc;if($e===null)return new Date(NaN);if(ke.u($e))return new Date;if($e instanceof Date)return new Date($e);if(typeof $e=="string"&&!/Z$/i.test($e)){var Me=$e.match(de);if(Me){var Le=Me[2]-1||0,Ne=(Me[7]||"0").substring(0,3);return Ue?new Date(Date.UTC(Me[1],Le,Me[3]||1,Me[4]||0,Me[5]||0,Me[6]||0,Ne)):new Date(Me[1],Le,Me[3]||1,Me[4]||0,Me[5]||0,Me[6]||0,Ne)}}return new Date($e)}(we),this.init()},Te.init=function(){var we=this.$d;this.$y=we.getFullYear(),this.$M=we.getMonth(),this.$D=we.getDate(),this.$W=we.getDay(),this.$H=we.getHours(),this.$m=we.getMinutes(),this.$s=we.getSeconds(),this.$ms=we.getMilliseconds()},Te.$utils=function(){return ke},Te.isValid=function(){return this.$d.toString()!==fe},Te.isSame=function(we,Re){var $e=De(we);return this.startOf(Re)<=$e&&$e<=this.endOf(Re)},Te.isAfter=function(we,Re){return De(we){for(var Y in _)__defProp$1(Z,Y,{get:_[Y],enumerable:!0})},__copyProps$1=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames$1(_))!__hasOwnProp$1.call(Z,te)&&te!==Y&&__defProp$1(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc$1(_,te))||ee.enumerable});return Z},__toESM$1=(Z,_,Y)=>(Y=Z!=null?__create$1(__getProtoOf$1(Z)):{},__copyProps$1(!Z||!Z.__esModule?__defProp$1(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS$1=Z=>__copyProps$1(__defProp$1({},"__esModule",{value:!0}),Z),console_exports={};__export$1(console_exports,{ConsoleTransport:()=>ConsoleTransport,default:()=>console_default});var console_1=__toCommonJS$1(console_exports),import_fast_safe_stringify$1=__toESM$1(fastSafeStringify),import_dayjs$1=__toESM$1(dayjs_minExports),import_tools=commonExports$1,import_transport$1=__toESM$1(transport$1),import_escaper=escaper_1,import_common=common;const DEFAULT_OPTIONS$1={template:"%time% %level% (%pid%) %labels%: %msg%",label:"[%name%]",time:"YY/M/D H:m:s",useColor:!0,levels:{FATAL:["FATAL ","redBright"],ERROR:["ERROR","red"],WARN:["WARN","yellowBright"],INFO:["INFO"],RECORD:["LOG"],DEBUG:["DEBUG","magentaBright"],TRACE:["TRACE","gray"]},indent:2};class ConsoleTransport extends import_transport$1.default{constructor(Y){super(Object.assign(DEFAULT_OPTIONS$1,Y??{}));be(this,"cs");be(this,"print",typeof process>"u"?console.log:process.stdout.write.bind(process.stdout));be(this,"printErr",typeof process>"u"?console.error:process.stderr.write.bind(process.stderr));be(this,"escaper",Y=>Y.map(te=>{if(te&&typeof te=="object"){const re=(0,import_fast_safe_stringify$1.default)(te,void 0,this.options.indent??DEFAULT_OPTIONS$1.indent);return re==="{}"?String(te):re}return(0,import_escaper.escaperSingle)(te)}).join(" ").replace(/([0-9]+)/g,"$1").replaceAll("undefined","undefined").replaceAll("null","null").replaceAll("true","true").replaceAll("false","false"));this.cs=new import_tools.Colors(new import_tools.TerminalAdapter({useColor:!!this.options.useColor}))}render({label:Y,level:ee,msg:te,time:re,pid:ne}){const{options:ie}=this,se=(ie.levels??DEFAULT_OPTIONS$1.levels)[import_common.LoggerLevel[ee]];return(0,import_tools.stringTemp)(ie.template??DEFAULT_OPTIONS$1.template,{time:(0,import_dayjs$1.default)(re).format(ie.time??DEFAULT_OPTIONS$1.time),pid:String(ne),level:(se==null?void 0:se[0])??DEFAULT_OPTIONS$1.levels[import_common.LoggerLevel[ee]][0],labels:Y.map(ae=>(0,import_tools.stringTemp)(ie.label??DEFAULT_OPTIONS$1.label,{name:ae})).join(" "),msg:se!=null&&se[1]?`<${se[1]}>${te}`:te})}handle(Y){const ee=typeof this.options.template=="function"?this.options.template(Y):this.render(Y);if(Y.level===import_common.LoggerLevel.FATAL||Y.level===import_common.LoggerLevel.ERROR){this.printErr(`${this.cs.parse(ee)} +`);return}this.print(`${this.cs.parse(ee)} +`)}}var console_default=ConsoleTransport,__create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(Z,_)=>{for(var Y in _)__defProp(Z,Y,{get:_[Y],enumerable:!0})},__copyProps=(Z,_,Y,ee)=>{if(_&&typeof _=="object"||typeof _=="function")for(let te of __getOwnPropNames(_))!__hasOwnProp.call(Z,te)&&te!==Y&&__defProp(Z,te,{get:()=>_[te],enumerable:!(ee=__getOwnPropDesc(_,te))||ee.enumerable});return Z},__toESM=(Z,_,Y)=>(Y=Z!=null?__create(__getProtoOf(Z)):{},__copyProps(!Z||!Z.__esModule?__defProp(Y,"default",{value:Z,enumerable:!0}):Y,Z)),__toCommonJS=Z=>__copyProps(__defProp({},"__esModule",{value:!0}),Z),file_exports={};__export(file_exports,{FileTransport:()=>FileTransport,default:()=>file_default});var file=__toCommonJS(file_exports),import_fast_safe_stringify=__toESM(fastSafeStringify),import_dayjs=__toESM(dayjs_minExports),import_node_fs=require$$3,import_node_path=require$$3,import_transport=__toESM(transport$1);const DEFAULT_OPTIONS={filename:"default",time:"YY-M-D",ext:".log",maxLen:500};class FileTransport extends import_transport.default{constructor(Y){super({...DEFAULT_OPTIONS,...Y});be(this,"list",new Set)}filename(){return(0,import_dayjs.default)().format(this.options.time)}handle(Y){const ee=this.options.filename instanceof Function?this.options.filename():this.filename(),te=(0,import_node_path.resolve)(this.options.dir,`${ee}${this.options.ext}`),re=Y;re.msg=re.msg.length>this.options.maxLen?`${re.msg.slice(0,this.options.maxLen)}...`:re.msg;const ne=(0,import_fast_safe_stringify.default)(re);(0,import_node_fs.writeFileSync)(te,(0,import_node_fs.existsSync)(te)?`${(0,import_node_fs.readFileSync)(te).toString()} +${ne}`:ne)}}var file_default=FileTransport;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(ae,ue,oe,le)=>{if(ue&&typeof ue=="object"||typeof ue=="function")for(let ce of ee(ue))!te.call(ae,ce)&&ce!==oe&&_(ae,ce,{get:()=>ue[ce],enumerable:!(le=Y(ue,ce))||le.enumerable});return ae},ne=(ae,ue,oe)=>(re(ae,ue,"default"),oe&&re(oe,ue,"default")),ie=ae=>re(_({},"__esModule",{value:!0}),ae),se={};Z.exports=ie(se),ne(se,io,Z.exports),ne(se,console_1,Z.exports),ne(se,file,Z.exports)})(transport);var transportExports=transport.exports;(function(Z){var _=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.prototype.hasOwnProperty,re=(pe,_e)=>{for(var me in _e)_(pe,me,{get:_e[me],enumerable:!0})},ne=(pe,_e,me,ge)=>{if(_e&&typeof _e=="object"||typeof _e=="function")for(let ye of ee(_e))!te.call(pe,ye)&&ye!==me&&_(pe,ye,{get:()=>_e[ye],enumerable:!(ge=Y(_e,ye))||ge.enumerable});return pe},ie=(pe,_e,me)=>(ne(pe,_e,"default"),me&&ne(me,_e,"default")),se=pe=>ne(_({},"__esModule",{value:!0}),pe),ae={};re(ae,{Logger:()=>fe,default:()=>de}),Z.exports=se(ae);var ue=common,oe=escaper_1,le=_const,ce=transportExports;ie(ae,escaper_1,Z.exports),ie(ae,transport$1,Z.exports),ie(ae,common,Z.exports),ie(ae,transportExports,Z.exports),ie(ae,_const,Z.exports);function he(pe,_e,me){me&&!me(_e)||pe.options.filter&&!pe.options.filter(_e)||pe.handle(_e)}class fe{constructor(_e=le.DEFAULT_LOGGER_OPTIONS){be(this,"options");this.options=Object.assign(le.DEFAULT_LOGGER_OPTIONS,_e)}creator(_e,me){const{label:ge,transports:ye,filter:Ie}=this.options,Se={level:_e,time:new Date().getTime(),pid:process.pid,label:ge};if(!Array.isArray(ye)){he(ye,{...Se,msg:(ye.escaper??oe.escaper)(me)},Ie);return}let Pe;for(const Ae of ye){if(Ae.escaper){he(Ae,{...Se,msg:Ae.escaper(me)},Ie);continue}Pe===void 0&&(Pe=(0,oe.escaper)(me)),he(Ae,{...Se,msg:Pe},Ie)}}extends(_e={}){const me=new Proxy(_e,{get:(ge,ye)=>_e[ye]!==void 0?_e[ye]:this.options[ye]});return new Proxy(new fe,{get:(ge,ye,Ie)=>ye==="options"?me:Reflect.get(ge,ye,Ie)})}label(_e){return this.extends({label:[...this.options.label,...typeof _e=="string"?[_e]:_e]})}fatal(..._e){this.options.level>ue.LoggerLevel.FATAL||this.creator(ue.LoggerLevel.FATAL,_e)}error(..._e){this.options.level>ue.LoggerLevel.ERROR||this.creator(ue.LoggerLevel.ERROR,_e)}warn(..._e){this.options.level>ue.LoggerLevel.WARN||this.creator(ue.LoggerLevel.WARN,_e)}info(..._e){this.options.level>ue.LoggerLevel.INFO||this.creator(ue.LoggerLevel.INFO,_e)}record(..._e){this.options.level>ue.LoggerLevel.RECORD||this.creator(ue.LoggerLevel.RECORD,_e)}debug(..._e){this.options.level>ue.LoggerLevel.DEBUG||this.creator(ue.LoggerLevel.DEBUG,_e)}trace(..._e){this.options.level>ue.LoggerLevel.TRACE||this.creator(ue.LoggerLevel.TRACE,_e)}}(pe=>{const _e=new pe({level:ue.LoggerLevel.INFO,transports:new ce.ConsoleTransport});pe.fatal=_e.fatal.bind(_e),pe.error=_e.error.bind(_e),pe.warn=_e.warn.bind(_e),pe.info=_e.info.bind(_e)})(fe||(fe={}));var de=fe})(lib);var libExports=lib.exports;const Logger=getDefaultExportFromCjs(libExports),logger=new Logger({level:libExports.LoggerLevel.DEBUG,transports:new libExports.ConsoleTransport({template:"%time% %level% %labels%: %msg%"})});function main$1(Z){Z.i18n.use(locales,"en_US"),Z.on("before_command",_=>{const Y=te=>{if(!te)return;let re;Array.isArray(te)?re=_.session.format(_.session.i18n.locale(te[0]),te[1]):re=_.session.i18n.locale(te.toString()),logger.label("CommandError").error(re)};if(!(_.result instanceof libExports$1.CommandError)){const{scope:te,access:re}=_.command.meta;te&&te!=="all"&&_.session.type!==te?(Y("corei18n.template.scope"),_.cancel()):String(_.session.userId)!==String(_.session.api.adapter.config.master)&&(re===libExports$1.UserAccess.ADMIN?(Y("corei18n.template.no_access_admin"),_.cancel()):re===libExports$1.UserAccess.MANGER&&(_.session.type===libExports$1.MessageScope.PRIVATE||_.session.type===libExports$1.MessageScope.GROUP&&!["owner","admin"].includes(_.session.sender.role))&&(Y("corei18n.template.no_access_manger"),_.cancel()));return}_.cancel();const{value:ee}=_.result;switch(ee.type){case"arg_error":Y(["corei18n.template.args_error",[ee.index,ee.expected,ee.reality]]);break;case"arg_few":Y(["corei18n.template.args_few",[ee.expected,ee.reality]]);break;case"arg_many":Y(["corei18n.template.args_many",[ee.expected,ee.reality]]);break;case"option_error":Y(["corei18n.template.option_error",[ee.target,ee.expected,ee.reality]]);break;case"syntax":Y(["corei18n.template.syntax",[ee.index,ee.char]]);break}}),Z.on("command",({result:_,session:Y})=>{if(!(_ instanceof libExports$1.CommandError))return;const{value:ee}=_,te=Y.quick.bind(Y);switch(ee.type){case"unknown":te(["corei18n.template.unknown",[ee.input]]);break;case"res_error":te(["corei18n.template.res_error",[ee.error.message]]);break;case"num_error":te("corei18n.template.num_error");break;case"no_access_manger":te("corei18n.template.no_access_manger");break;case"no_access_admin":te("corei18n.template.no_access_admin");break;case"disable":te("corei18n.template.disable");break;case"exists":te(["corei18n.template.exists",[ee.target]]);break;case"no_exists":te(["corei18n.template.no_exists",[ee.target]]);break;case"error":Z.emit("error",ee.error instanceof Error?ee.error:new libExports$1.ModuleError(String(ee.error))),ee.error instanceof libExports$1.CommandError?logger.label(ee.error.name).error(ee.error.message):ee.error instanceof libExports$1.TsuError?te(["corei18n.template.res_error",[ee.error.message]]):ee.error instanceof Error?te(["corei18n.template.error",[`${ee.error.name} ${ee.error.message}`]]):typeof ee.error=="object"?te(["corei18n.template.error",[JSON.stringify(ee.error)]]):te(["corei18n.template.error",[String(ee.error)]]);break;case"data_error":te([`corei18n.template.data_error.${typeof ee.target=="string"?"options":"args"}`,[ee.target]]);break}})}class MisakuraApi extends libExports$1.Api{getSupportedEvents(){return["on_message"]}async sendPrivateMsg(_){return logger.record(...Array.isArray(_)?_:[_.toString()]),{time:Date.now(),messageId:libExports$1.random.uuid()}}async sendGroupMsg(){return{time:Date.now(),messageId:libExports$1.random.uuid()}}}class MisakuraElements extends libExports$1.Elements{getSupportsElements(){return["text"]}decode(_){return _.toString()}encode(_){return libExports$1.Messages.text(_)}}class MisakuraAdapter extends libExports$1.Adapter{constructor(Y){super(Y,{extends:"misakura",master:"808",...Y.config.global},"misakura");be(this,"api",new MisakuraApi(this));be(this,"elements",new MisakuraElements(this));be(this,"platform",this.identity)}exec(Y){if(Y.startsWith("pre")){this.session("on_message",{type:libExports$1.MessageScope.GROUP,groupId:"808",messageId:libExports$1.random.int().toString(),message:Y,messageAlt:Y,time:Date.now(),userId:"808",sender:{nickname:this.identity,role:"member"}});return}this.session("on_message",{type:libExports$1.MessageScope.PRIVATE,messageId:libExports$1.random.int().toString(),message:Y,messageAlt:Y,time:Date.now(),userId:"808",sender:{nickname:this.identity}})}handle(){}start(){}send(){}stop(){}}class Parser extends libExports$1.Context{constructor(){super({global:{commandPrefix:""}});be(this,"bot",new MisakuraAdapter(this));this.load(main$1),this.start()}exec(Y,ee=!1){this.bot.exec(ee?`pre${Y}`:Y)}}class CommandError extends Error{constructor(_){super(_),this.name="CommandError"}}function commander(dialog){const{parser:ctx}=dialog;ctx.command("background ").action(({args:[Z]})=>(dialog.currentPromise=dialog.background(Z),`Update background to ${Z}`)),ctx.command("character ").option("N","name:string").option("F","figure:string").action(({args:[Z],options:_})=>(dialog.currentPromise=dialog.character(Z,_),`Update character ${Z} with options: ${JSON.stringify(_,null,2)}`)),ctx.command("show ").option("H","hide:boolean").option("F","figure:string").action(({args:[Z],options:{figure:_,hide:Y}})=>(dialog.currentPromise=dialog.character(Z,{show:!Y,figure:_}),`Update character ${Z} name to ${_} and state to ${Y?"hide":"show"}`)),ctx.command("say ").option("S","speaker:string").action(({args:[Z],options:{speaker:_}})=>{var ee;let Y=_?((ee=dialog.els.chars.get(_))==null?void 0:ee.name)??_:"";return Y=Y==="think"?"":Y==="unknown"?"未知的声音":Y,Y?(dialog.currentPromise=dialog.text(`⌈${Z}⌋`,Y),`The character ${Y} said: ${Z})`):(dialog.currentPromise=dialog.text(Z,Y),`Self thinking: ${Z}`)}),ctx.command("pause [time:number]").action(({args:[Z]})=>(dialog.currentPromise=dialog.pause(void 0,Z||void 0),Z?`Paused for ${Z} seconds`:"Paused util to next click")),ctx.command("music [name]").action(({args:[Z]})=>(dialog.music(Z),Z?`Playing music ${Z}`:"Stop music")),ctx.command("voice ").action(({args:[Z]})=>(dialog.ctx.media.voice(Z),`Playing voice ${Z}`)),ctx.command("sound [volume:number=1]").action(({args:[Z,_]})=>(dialog.ctx.media.sound(Z,_),`Playing sound ${Z} with volume ${_}`)),ctx.command("const ").action(({args:[Z,_]})=>{if(dialog.ctx.store.getDialogConstant(Z)!==void 0)throw new CommandError(`Constant ${Z} already exists`);return dialog.ctx.store.setDialogConstant(Z,_),`Set constant ${Z} to ${_}`});const setVariable=(Z,_)=>{const Y=typeof dialog.ctx.store.getDialogVariable(Z),ee=(()=>{try{return typeof _=="string"?JSON.parse(_):_}catch{return _}})(),te=typeof ee;if(Y!=="undefined"&&typeof origin<"u"&&Y!==te)throw new CommandError(`Type of variable ${Z} is ${Y}, but type of value is ${te}`);return dialog.ctx.store.setDialogVariable(Z,ee),`Set variable ${Z} to ${ee}`};ctx.command("let ").action(({args:[Z,_]})=>setVariable(Z,_));const handleCalc=exprs=>{try{return JSON.stringify(eval(exprs.replaceAll(" == "," === ")))}catch(Z){throw new CommandError(`Expression ${exprs} is invalid: ${Z instanceof Error?Z.message:String(Z)}`)}};ctx.command("calc ").action(({args:[Z,_]})=>{if(typeof typeof dialog.ctx.store.getDialogVariable(Z)>"u")throw new CommandError(`Variable ${Z} not found`);const ee=handleCalc(_);return setVariable(Z,ee),`Calculate ${_} to ${ee} and set variable ${Z} to ${ee}`}),ctx.command("if ").action(({args:[Z,_]})=>handleCalc(Z)==="true"?(ctx.exec(_),`If ${Z} is true, execute commands: ${_}`):`If ${Z} is false, skip commands: ${_}`),ctx.command("prompt ").action(({args:[Z]})=>(dialog.currentPromise=dialog.input(Z,""),"Show prompt dialog with message")),ctx.command("confirm ").action(({args:[Z,_,Y]})=>{var ee;return(ee=dialog.currentPromise)==null||ee.then(()=>{var te;ctx.exec(`options ${JSON.stringify(`${Z}_temp`)} ${JSON.stringify(_)} ${JSON.stringify(Y)}`),(te=dialog.currentPromise)==null||te.then(()=>setVariable(Z,!dialog.ctx.store.getDialogVariable(`${Z}_temp`)))}),"Show confirm dialog with message"}),ctx.command("options <...text>").action(({args:[Z,..._]})=>(dialog.currentPromise=dialog.options(Z,..._),`Show options ${Z} with text: ${_.join(", ")}`)),ctx.command("label ").action(({args:[Z]})=>(setVariable(`label_${Z}`,dialog.ctx.store.getDialogLine()),`Set label ${Z} to current line`)),ctx.command("goto ").action(({args:[Z]})=>{const _=dialog.ctx.store.getDialogVariable(`label_${Z}`);if(typeof _>"u")throw new CommandError(`Label ${Z} not found`);return dialog.ctx.store.setDialogLine(Number(_)),`Jump to label ${Z}`}),ctx.command("apply ").action(({args:[Z]})=>(dialog.setActive(!1),dialog.ctx.store.setDialogScript({entry:Z,line:0},!0),dialog.setActive(),`Apply misakura script ${Z}`)),ctx.command("call ").action(({args:[Z]})=>(dialog.currentPromise=dialog.call(Z),`Call javascript ${Z}`)),ctx.command("final").action(()=>(dialog.ctx.store.openFinalPlot(),"Open final plot")),ctx.command("exit").action(()=>dialog.ctx.emit("exit")),ctx.command("title [seconds:number=0]").option("T","textColor:string").option("B","bgColor:string").action(({args:[Z,_],options:{textColor:Y,bgColor:ee}})=>{dialog.currentPromise=dialog.title(Z,_,Y,ee)}),ctx.midware((Z,_)=>{const Y=_.message.toString();if(Y.includes(":")){const ee=Y.split(":"),te=ee[0]||dialog.ctx.store.getDialogSpeaker();if(!te.includes(" ")){const re=ee.slice(1).join(":");_.message=`say ${JSON.stringify(re)} -S ${te?JSON.stringify(te):""}`}}return _.message=_.message.replace(/\$(\w+)/g,(ee,te)=>{const re=dialog.ctx.store.getDialogVariable()[te]??dialog.ctx.store.getDialogConstant()[te];if(re===void 0)throw console.log(dialog.ctx.store.getDialogVariable()),new CommandError(`Undefined variable: ${te}`);return JSON.stringify(re)}),Z()},1)}async function loadText(Z,_=!1){try{const Y=await fetch(Z);if(Y.status!==200)throw new Error;const ee=await Y.text();return _?ee.split(ee.includes(`\r +`)?`\r +`:` +`):ee}catch{return}}async function loadScript(Z){const _=await loadText(Z,!0);return _==null?void 0:_.filter(Y=>Y.trim()&&!Y.trim().startsWith("#"))}async function loadScriptPart(Z,_="msg"){const Y=path.join(path.parse(Z).dir,`${path.parse(Z).name}${_==="voice"?`.${_}`:""}.txt`),ee=await loadText(Y,!0);if(!ee)return;const te=[];for(let re=0;rere.length>0)}class DialogPage extends Page{constructor(){super(...arguments);be(this,"lastPressNextDialogTime",0);be(this,"clickLock",!1);be(this,"autoMode",!1);be(this,"currentPromise");be(this,"setClickLock",()=>{this.clickLock=!0,nextTick(()=>{this.clickLock=!1})});be(this,"parser",new Parser);be(this,"els",{bg:new Sprite,msg:new HTMLText,speaker:new HTMLText,chars:new Map,bgm:"",msgParts:[],voiceParts:[]});be(this,"level",LayerLevel.MIDDLE)}async init(){const _=this.ctx.config.styles,Y=await loadAssets(_.dialog,{width:this.ctx.width()});Y.anchor.set(.5,1),Y.position.set(this.ctx.width()/2,this.ctx.height()),this.els.speaker.position.set(_.dialogNameX,_.dialogNameY),this.els.speaker.style={fontSize:_.dialogNameSize},this.els.msg.position.set(_.dialogMsgX,_.dialogMsgY),this.els.msg.style={breakWords:!0,wordWrap:!0,wordWrapWidth:_.dialogMsgWrap,fontSize:_.dialogMsgSize},this.layer.add(Y,LayerLevel.BEFORE),this.layer.add(this.els.speaker,LayerLevel.BEFORE),this.layer.add(this.els.msg,LayerLevel.BEFORE);const ee=createAutoLayout([["load",()=>{this.ctx.pages.load.setActive()}],["save",()=>{this.ctx.pages.save.setActive()}],["quickLoad",()=>{}],["quickSave",()=>{}],["log",()=>{}],["skip",()=>{}],["auto",()=>{this.autoMode=!this.autoMode,logger.info(`Auto mode ${this.autoMode?"on":"off"}`),this.autoMode&&this.ctx.emit("next_dialog")}],["config",()=>{this.ctx.pages.config.setActive()}]],{pos:[1150,1055],direction:"right",spacing:60},([re,ne])=>{const ie=new SpriteButton("",se=>{this.setClickLock(),se==="onPress"&&ne()},{button:`/gui/dialog/buttons/${re}.png`,hoverButton:`/gui/dialog/buttons/${re}Hover.png`,pressedButton:`/gui/dialog/buttons/${re}Hover.png`});return ie.view.scale.set(.38,.38),ie.view});this.layer.add(ee,LayerLevel.BEFORE),commander(this);const te=(re=!1)=>{const ne=Date.now();ne-this.lastPressNextDialogTime>(re?200:600)&&(this.lastPressNextDialogTime=ne,this.ctx.emit("next_dialog"))};this.listen("keydown",re=>{if(["Enter","ArrowDown","ArrowRight"].includes(re.key)){te();return}switch(re.key){case"Escape":this.ctx.pages.pause.getActive()||this.ctx.pages.pause.setActive(!0,!1);break;case"Control":te(!0);break}}),this.listen("click",()=>{!this.clickLock&&this.getActive(!0)&&te()})}async load(){this.ctx.store.getHistoryPage().includes("dialog")||this.ctx.store.clearHistoryPage(),await this.background(this.ctx.store.getDialogBackground()),this.ctx.store.getHistoryPage().includes("dialog")||this.music(this.ctx.store.getDialogMusic().name,this.ctx.store.getDialogMusic().seconds),this.els.speaker.text=this.ctx.store.getDialogSpeaker();const Y=(await Promise.all(this.ctx.store.getDialogCharacters().map(async te=>[te,await this.character(te.identity,te)]))).filter(([te])=>te.position).filter(([te])=>{var re;return((re=te.position)==null?void 0:re.type)==="auto"}).sort(([te],[re])=>{var ne,ie;return((ne=te.position)==null?void 0:ne.order)-((ie=re.position)==null?void 0:ie.order)});for(const[,te]of Y)te.view();await this.apply(this.ctx.store.getDialogScript())&&(await this.pause(void 0,1),this.ctx.store.setDialogScript({entry:"",line:0}),this.ctx.pages.home.setActive())}async apply(_){let Y=!1;const ee=ce=>{ce!==this||ce.getActive()||(Y=!0)};this.ctx.on("page_active_change",ee);let te;const re=new Promise(ce=>{te=interval(()=>{Y&&ce()},100)}),ne=()=>{this.ctx.off("page_active_change",ee),te==null||te()},ie=this.ctx.path("scripts",_),se=await loadScript(ie);if(!se||this.ctx.store.getDialogLine()===se.length)return logger.warn("Script error: empty or not found"),ne(),!Y;this.els.msgParts=await loadScriptPart(ie)??[],this.els.msgParts.length===0&&logger.warn("Script dialog message content be empty or not found"),this.els.voiceParts=await loadScriptPart(ie,"voice")??[],this.els.voiceParts.length===0&&logger.warn("Script dialog message voice be empty or not found");const ae=[];if(this.els.msgParts.length===this.els.voiceParts.length){let ce=0;for(const he of se){if(he!=="read"){ae.push(he);continue}if(ce>=this.els.msgParts.length||this.els.msgParts[ce].length===0){logger.warn(`Script pre handle failed: no content found for 'read' at position ${ce}`);break}for(const[fe,de]of this.els.msgParts[ce].entries()){const pe=this.els.voiceParts[ce][fe];pe.length>1&&ae.push(`voice ${JSON.stringify(pe)}`),ae.push(de)}ce+=1}}else ae.push(...se),logger.warn("Script pre handle failed: dialog message content and voice length not match");if(this.ctx.store.getDialogLine()>ae.length)return logger.error("Script error: running line to bigger"),ne(),!Y;let ue;const oe=()=>!ue||ue===this.currentPromise;for(;this.ctx.store.getDialogLine(){timeout(()=>{_&&_(),ee()},Y*1e3)}):new Promise(ee=>{this.once("next_dialog",()=>{this.getActive(!0)&&(_&&_(),ee())})})}text(_,Y=""){this.ctx.store.setDialogSpeaker(Y);let ee=0,te="",re;this.els.speaker.text=Y,this.els.msg.text=_[ee];const ne=()=>{re=timeout(()=>{if(ee+=1,ee>=_.length||_[ee]===void 0){te&&(this.els.msg.text+=te,te="");return}_[ee]==="<"?(te&&(this.els.msg.text+=te),te="<"):_[ee]===">"?(this.els.msg.text+=`${te??""}>`,te=""):te?te+=_[ee]:this.els.msg.text+=_[ee],ne()},te?0:30),this.ctx.once("resize",re)};ne();const ie=this.pause(re);return this.autoMode?Promise.race([ie,new Promise(se=>timeout(()=>{this.autoMode&&se()},_.length*165))]):ie}music(_,Y=0){if(!_){this.ctx.media.stopAll(),this.els.bgm="",this.ctx.store.setDialogMusic();return}this.ctx.media.stopAll(),this.els.bgm=_;const ee=this.ctx.media.music(_,Y);this.ctx.store.setDialogMusic(_,Y);const re=interval(()=>{if(this.els.bgm!==_||this.ctx.pages.home.getActive()){this.ctx.media.stop(_),re();return}this.ctx.store.setDialogMusic(_,ee.seek())},.5*1e3)}options(_,...Y){return new Promise(ee=>{const te=createAutoLayout(Y,{pos:[this.ctx.width()/2,this.ctx.height()/2],direction:"column",spacing:40},(ne,ie)=>new SpriteButton(ne,se=>{se==="onPress"&&(this.parser.exec(`let ${JSON.stringify(_)} ${ie}`),this.layer.remove(te,LayerLevel.BEFORE),nextTick(()=>ee()))},{style:{fontSize:30},button:"/gui/dialog/option.png",hoverButton:"/gui/dialog/optionHover.png",pressedButton:"/gui/dialog/optionHover.png"}).view);this.layer.has(te,LayerLevel.BEFORE)||this.layer.add(te,LayerLevel.BEFORE);const re=ne=>{this===ne&&!this.getActive()&&this.layer.remove(te,LayerLevel.BEFORE),this.layer.has(te,LayerLevel.BEFORE)||this.ctx.off("page_active_change",re)};this.ctx.on("page_active_change",re)})}input(_,Y){return new Promise(ee=>{let te="";for(;!te.trim();)te=prompt()??"";this.parser.exec(`let ${JSON.stringify(_)} ${JSON.stringify(te.replaceAll(" ",""))}`),nextTick(()=>ee())})}title(_,Y=0,ee="#fff",te="#333"){const re=new Graphics;re.beginFill(te),re.drawRect(0,0,this.ctx.width(),this.ctx.height()),re.endFill();const ne=new Text(_,{breakWords:!0,wordWrap:!0,fontSize:65,wordWrapWidth:this.ctx.width()*.8,fill:ee,align:"center"});return ne.anchor.set(.5,.5),ne.position.set(this.ctx.width()/2,this.ctx.height()/2),this.layer.add(re,LayerLevel.BEFORE),this.layer.add(ne,LayerLevel.BEFORE),this.pause(()=>{this.layer.remove(re,LayerLevel.BEFORE),this.layer.remove(ne,LayerLevel.BEFORE)},Y||void 0)}}class ExtraPage extends SidebarPageAbstract{constructor(Y){super(Y,"EXTRA","Extra");be(this,"level",LayerLevel.MIDDLE)}async init(){}}class HomePage extends SidebarPageAbstract{constructor(){super(...arguments);be(this,"level",LayerLevel.MIDDLE)}async init(){const Y={width:this.ctx.width(),height:this.ctx.height()};this.layer.add([await loadAssets("/gui/home/background.png",Y)],LayerLevel.AFTER);const ee=new Text("視覚小説ゲームテスト",{fontFamily:"Noto Sans JP",fontSize:100,fill:65520}),te=new Text("Visual novel game demonstration",{fontFamily:"Raleway",fontSize:50,fill:52416});ee.anchor.set(1,0),te.anchor.set(1,0),ee.position.set(1880,50),te.position.set(1790,160);const re={fontFamily:"Raleway",fontSize:40,fill:46335},ne=new Text("v0.1.0",re),ie=new Text("© 2024 Hotaru",re);ne.anchor.set(1,1),ie.anchor.set(1,1),ne.position.set(1910,1020),ie.position.set(1910,1070),this.layer.add([ne,ie,ee,te],LayerLevel.BEFORE)}load(){this.ctx.store.clearHistoryPage()}}class LoadPage extends SidebarPageAbstract{constructor(Y){super(Y,"LOAD","Load");be(this,"level",LayerLevel.MIDDLE)}async init(){}}class PausePage extends SidebarPageAbstract{constructor(Y){super(Y,void 0,"Pause","");be(this,"level",LayerLevel.BEFORE)}async init(){}}class SavePage extends SidebarPageAbstract{constructor(Y){super(Y,"SAVE","Save");be(this,"level",LayerLevel.MIDDLE)}async init(){const Y=new Graphics;Y.lineStyle(2,0,1),Y.moveTo(0,160),this.layer.add([Y],LayerLevel.BEFORE)}}const routes={home:HomePage,dialog:DialogPage,pause:PausePage,load:LoadPage,save:SavePage,extra:ExtraPage,config:ConfigPage,about:AboutPage};var howler={};/*! + * howler.js v2.2.4 + * howlerjs.com + * + * (c) 2013-2020, James Simpson of GoldFire Studios + * goldfirestudios.com + * + * MIT License + */(function(Z){(function(){var _=function(){this.init()};_.prototype={init:function(){var oe=this||Y;return oe._counter=1e3,oe._html5AudioPool=[],oe.html5PoolSize=10,oe._codecs={},oe._howls=[],oe._muted=!1,oe._volume=1,oe._canPlayEvent="canplaythrough",oe._navigator=typeof window<"u"&&window.navigator?window.navigator:null,oe.masterGain=null,oe.noAudio=!1,oe.usingWebAudio=!0,oe.autoSuspend=!0,oe.ctx=null,oe.autoUnlock=!0,oe._setup(),oe},volume:function(oe){var le=this||Y;if(oe=parseFloat(oe),le.ctx||ue(),typeof oe<"u"&&oe>=0&&oe<=1){if(le._volume=oe,le._muted)return le;le.usingWebAudio&&le.masterGain.gain.setValueAtTime(oe,Y.ctx.currentTime);for(var ce=0;ce=0;le--)oe._howls[le].unload();return oe.usingWebAudio&&oe.ctx&&typeof oe.ctx.close<"u"&&(oe.ctx.close(),oe.ctx=null,ue()),oe},codecs:function(oe){return(this||Y)._codecs[oe.replace(/^x-/,"")]},_setup:function(){var oe=this||Y;if(oe.state=oe.ctx&&oe.ctx.state||"suspended",oe._autoSuspend(),!oe.usingWebAudio)if(typeof Audio<"u")try{var le=new Audio;typeof le.oncanplaythrough>"u"&&(oe._canPlayEvent="canplay")}catch{oe.noAudio=!0}else oe.noAudio=!0;try{var le=new Audio;le.muted&&(oe.noAudio=!0)}catch{}return oe.noAudio||oe._setupCodecs(),oe},_setupCodecs:function(){var oe=this||Y,le=null;try{le=typeof Audio<"u"?new Audio:null}catch{return oe}if(!le||typeof le.canPlayType!="function")return oe;var ce=le.canPlayType("audio/mpeg;").replace(/^no$/,""),he=oe._navigator?oe._navigator.userAgent:"",fe=he.match(/OPR\/(\d+)/g),de=fe&&parseInt(fe[0].split("/")[1],10)<33,pe=he.indexOf("Safari")!==-1&&he.indexOf("Chrome")===-1,_e=he.match(/Version\/(.*?) /),me=pe&&_e&&parseInt(_e[1],10)<15;return oe._codecs={mp3:!!(!de&&(ce||le.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!ce,opus:!!le.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!le.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!le.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(le.canPlayType('audio/wav; codecs="1"')||le.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!le.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!le.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(le.canPlayType("audio/x-m4a;")||le.canPlayType("audio/m4a;")||le.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(le.canPlayType("audio/x-m4b;")||le.canPlayType("audio/m4b;")||le.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(le.canPlayType("audio/x-mp4;")||le.canPlayType("audio/mp4;")||le.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!me&&le.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!me&&le.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!le.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(le.canPlayType("audio/x-flac;")||le.canPlayType("audio/flac;")).replace(/^no$/,"")},oe},_unlockAudio:function(){var oe=this||Y;if(!(oe._audioUnlocked||!oe.ctx)){oe._audioUnlocked=!1,oe.autoUnlock=!1,!oe._mobileUnloaded&&oe.ctx.sampleRate!==44100&&(oe._mobileUnloaded=!0,oe.unload()),oe._scratchBuffer=oe.ctx.createBuffer(1,1,22050);var le=function(ce){for(;oe._html5AudioPool.length"u"?me.noteOn(0):me.start(0),typeof oe.ctx.resume=="function"&&oe.ctx.resume(),me.onended=function(){me.disconnect(0),oe._audioUnlocked=!0,document.removeEventListener("touchstart",le,!0),document.removeEventListener("touchend",le,!0),document.removeEventListener("click",le,!0),document.removeEventListener("keydown",le,!0);for(var ge=0;ge"u"||!Y.usingWebAudio)){for(var le=0;le"u"||!Y.usingWebAudio))return oe.state==="running"&&oe.ctx.state!=="interrupted"&&oe._suspendTimer?(clearTimeout(oe._suspendTimer),oe._suspendTimer=null):oe.state==="suspended"||oe.state==="running"&&oe.ctx.state==="interrupted"?(oe.ctx.resume().then(function(){oe.state="running";for(var le=0;le"u"&&(oe="__default",!ce._playLock)){for(var fe=0,de=0;de0?pe._seek:ce._sprite[oe][0]/1e3),ge=Math.max(0,(ce._sprite[oe][0]+ce._sprite[oe][1])/1e3-me),ye=ge*1e3/Math.abs(pe._rate),Ie=ce._sprite[oe][0]/1e3,Se=(ce._sprite[oe][0]+ce._sprite[oe][1])/1e3;pe._sprite=oe,pe._ended=!1;var Pe=function(){pe._paused=!1,pe._seek=me,pe._start=Ie,pe._stop=Se,pe._loop=!!(pe._loop||ce._sprite[oe][2])};if(me>=Se){ce._ended(pe);return}var Ae=pe._node;if(ce._webAudio){var De=function(){ce._playLock=!1,Pe(),ce._refreshBuffer(pe);var ve=pe._muted||ce._muted?0:pe._volume;Ae.gain.setValueAtTime(ve,Y.ctx.currentTime),pe._playStart=Y.ctx.currentTime,typeof Ae.bufferSource.start>"u"?pe._loop?Ae.bufferSource.noteGrainOn(0,me,86400):Ae.bufferSource.noteGrainOn(0,me,ge):pe._loop?Ae.bufferSource.start(0,me,86400):Ae.bufferSource.start(0,me,ge),ye!==1/0&&(ce._endTimers[pe._id]=setTimeout(ce._ended.bind(ce,pe),ye)),le||setTimeout(function(){ce._emit("play",pe._id),ce._loadQueue()},0)};Y.state==="running"&&Y.ctx.state!=="interrupted"?De():(ce._playLock=!0,ce.once("resume",De),ce._clearTimer(pe._id))}else{var ke=function(){Ae.currentTime=me,Ae.muted=pe._muted||ce._muted||Y._muted||Ae.muted,Ae.volume=pe._volume*Y.volume(),Ae.playbackRate=pe._rate;try{var ve=Ae.play();if(ve&&typeof Promise<"u"&&(ve instanceof Promise||typeof ve.then=="function")?(ce._playLock=!0,Pe(),ve.then(function(){ce._playLock=!1,Ae._unlocked=!0,le?ce._loadQueue():ce._emit("play",pe._id)}).catch(function(){ce._playLock=!1,ce._emit("playerror",pe._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),pe._ended=!0,pe._paused=!0})):le||(ce._playLock=!1,Pe(),ce._emit("play",pe._id)),Ae.playbackRate=pe._rate,Ae.paused){ce._emit("playerror",pe._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}oe!=="__default"||pe._loop?ce._endTimers[pe._id]=setTimeout(ce._ended.bind(ce,pe),ye):(ce._endTimers[pe._id]=function(){ce._ended(pe),Ae.removeEventListener("ended",ce._endTimers[pe._id],!1)},Ae.addEventListener("ended",ce._endTimers[pe._id],!1))}catch(Te){ce._emit("playerror",pe._id,Te)}};Ae.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(Ae.src=ce._src,Ae.load());var Ce=window&&window.ejecta||!Ae.readyState&&Y._navigator.isCocoonJS;if(Ae.readyState>=3||Ce)ke();else{ce._playLock=!0,ce._state="loading";var xe=function(){ce._state="loaded",ke(),Ae.removeEventListener(Y._canPlayEvent,xe,!1)};Ae.addEventListener(Y._canPlayEvent,xe,!1),ce._clearTimer(pe._id)}}return pe._id},pause:function(oe){var le=this;if(le._state!=="loaded"||le._playLock)return le._queue.push({event:"pause",action:function(){le.pause(oe)}}),le;for(var ce=le._getSoundIds(oe),he=0;he"u"?fe._node.bufferSource.noteOff(0):fe._node.bufferSource.stop(0),le._cleanBuffer(fe._node)}else(!isNaN(fe._node.duration)||fe._node.duration===1/0)&&fe._node.pause();arguments[1]||le._emit("pause",fe?fe._id:null)}return le},stop:function(oe,le){var ce=this;if(ce._state!=="loaded"||ce._playLock)return ce._queue.push({event:"stop",action:function(){ce.stop(oe)}}),ce;for(var he=ce._getSoundIds(oe),fe=0;fe"u"?de._node.bufferSource.noteOff(0):de._node.bufferSource.stop(0),ce._cleanBuffer(de._node)):(!isNaN(de._node.duration)||de._node.duration===1/0)&&(de._node.currentTime=de._start||0,de._node.pause(),de._node.duration===1/0&&ce._clearSound(de._node))),le||ce._emit("stop",de._id))}return ce},mute:function(oe,le){var ce=this;if(ce._state!=="loaded"||ce._playLock)return ce._queue.push({event:"mute",action:function(){ce.mute(oe,le)}}),ce;if(typeof le>"u")if(typeof oe=="boolean")ce._muted=oe;else return ce._muted;for(var he=ce._getSoundIds(le),fe=0;fe"u"){var fe=oe._getSoundIds(),de=fe.indexOf(le[0]);de>=0?he=parseInt(le[0],10):ce=parseFloat(le[0])}else le.length>=2&&(ce=parseFloat(le[0]),he=parseInt(le[1],10));var pe;if(typeof ce<"u"&&ce>=0&&ce<=1){if(oe._state!=="loaded"||oe._playLock)return oe._queue.push({event:"volume",action:function(){oe.volume.apply(oe,le)}}),oe;typeof he>"u"&&(oe._volume=ce),he=oe._getSoundIds(he);for(var _e=0;_e"u")}}return fe},_startFadeInterval:function(oe,le,ce,he,fe,de){var pe=this,_e=le,me=ce-le,ge=Math.abs(me/.01),ye=Math.max(4,ge>0?he/ge:he),Ie=Date.now();oe._fadeTo=ce,oe._interval=setInterval(function(){var Se=(Date.now()-Ie)/he;Ie=Date.now(),_e+=me*Se,_e=Math.round(_e*100)/100,me<0?_e=Math.max(ce,_e):_e=Math.min(ce,_e),pe._webAudio?oe._volume=_e:pe.volume(_e,oe._id,!0),de&&(pe._volume=_e),(cele&&_e>=ce)&&(clearInterval(oe._interval),oe._interval=null,oe._fadeTo=null,pe.volume(ce,oe._id),pe._emit("fade",oe._id))},ye)},_stopFade:function(oe){var le=this,ce=le._soundById(oe);return ce&&ce._interval&&(le._webAudio&&ce._node.gain.cancelScheduledValues(Y.ctx.currentTime),clearInterval(ce._interval),ce._interval=null,le.volume(ce._fadeTo,oe),ce._fadeTo=null,le._emit("fade",oe)),le},loop:function(){var oe=this,le=arguments,ce,he,fe;if(le.length===0)return oe._loop;if(le.length===1)if(typeof le[0]=="boolean")ce=le[0],oe._loop=ce;else return fe=oe._soundById(parseInt(le[0],10)),fe?fe._loop:!1;else le.length===2&&(ce=le[0],he=parseInt(le[1],10));for(var de=oe._getSoundIds(he),pe=0;pe=0?he=parseInt(le[0],10):ce=parseFloat(le[0])}else le.length===2&&(ce=parseFloat(le[0]),he=parseInt(le[1],10));var pe;if(typeof ce=="number"){if(oe._state!=="loaded"||oe._playLock)return oe._queue.push({event:"rate",action:function(){oe.rate.apply(oe,le)}}),oe;typeof he>"u"&&(oe._rate=ce),he=oe._getSoundIds(he);for(var _e=0;_e=0?he=parseInt(le[0],10):oe._sounds.length&&(he=oe._sounds[0]._id,ce=parseFloat(le[0]))}else le.length===2&&(ce=parseFloat(le[0]),he=parseInt(le[1],10));if(typeof he>"u")return 0;if(typeof ce=="number"&&(oe._state!=="loaded"||oe._playLock))return oe._queue.push({event:"seek",action:function(){oe.seek.apply(oe,le)}}),oe;var pe=oe._soundById(he);if(pe)if(typeof ce=="number"&&ce>=0){var _e=oe.playing(he);_e&&oe.pause(he,!0),pe._seek=ce,pe._ended=!1,oe._clearTimer(he),!oe._webAudio&&pe._node&&!isNaN(pe._node.duration)&&(pe._node.currentTime=ce);var me=function(){_e&&oe.play(he,!0),oe._emit("seek",he)};if(_e&&!oe._webAudio){var ge=function(){oe._playLock?setTimeout(ge,0):me()};setTimeout(ge,0)}else me()}else if(oe._webAudio){var ye=oe.playing(he)?Y.ctx.currentTime-pe._playStart:0,Ie=pe._rateSeek?pe._rateSeek-pe._seek:0;return pe._seek+(Ie+ye*Math.abs(pe._rate))}else return pe._node.currentTime;return oe},playing:function(oe){var le=this;if(typeof oe=="number"){var ce=le._soundById(oe);return ce?!ce._paused:!1}for(var he=0;he=0&&Y._howls.splice(he,1);var fe=!0;for(ce=0;ce=0){fe=!1;break}return re&&fe&&delete re[oe._src],Y.noAudio=!1,oe._state="unloaded",oe._sounds=[],oe=null,null},on:function(oe,le,ce,he){var fe=this,de=fe["_on"+oe];return typeof le=="function"&&de.push(he?{id:ce,fn:le,once:he}:{id:ce,fn:le}),fe},off:function(oe,le,ce){var he=this,fe=he["_on"+oe],de=0;if(typeof le=="number"&&(ce=le,le=null),le||ce)for(de=0;de=0;de--)(!fe[de].id||fe[de].id===le||oe==="load")&&(setTimeout((function(pe){pe.call(this,le,ce)}).bind(he,fe[de].fn),0),fe[de].once&&he.off(oe,fe[de].fn,fe[de].id));return he._loadQueue(oe),he},_loadQueue:function(oe){var le=this;if(le._queue.length>0){var ce=le._queue[0];ce.event===oe&&(le._queue.shift(),le._loadQueue()),oe||ce.action()}return le},_ended:function(oe){var le=this,ce=oe._sprite;if(!le._webAudio&&oe._node&&!oe._node.paused&&!oe._node.ended&&oe._node.currentTime=0;he--){if(ce<=le)return;oe._sounds[he]._ended&&(oe._webAudio&&oe._sounds[he]._node&&oe._sounds[he]._node.disconnect(0),oe._sounds.splice(he,1),ce--)}}},_getSoundIds:function(oe){var le=this;if(typeof oe>"u"){for(var ce=[],he=0;he=0;if(!oe.bufferSource)return le;if(Y._scratchBuffer&&oe.bufferSource&&(oe.bufferSource.onended=null,oe.bufferSource.disconnect(0),ce))try{oe.bufferSource.buffer=Y._scratchBuffer}catch{}return oe.bufferSource=null,le},_clearSound:function(oe){var le=/MSIE |Trident\//.test(Y._navigator&&Y._navigator.userAgent);le||(oe.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var te=function(oe){this._parent=oe,this.init()};te.prototype={init:function(){var oe=this,le=oe._parent;return oe._muted=le._muted,oe._loop=le._loop,oe._volume=le._volume,oe._rate=le._rate,oe._seek=0,oe._paused=!0,oe._ended=!0,oe._sprite="__default",oe._id=++Y._counter,le._sounds.push(oe),oe.create(),oe},create:function(){var oe=this,le=oe._parent,ce=Y._muted||oe._muted||oe._parent._muted?0:oe._volume;return le._webAudio?(oe._node=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),oe._node.gain.setValueAtTime(ce,Y.ctx.currentTime),oe._node.paused=!0,oe._node.connect(Y.masterGain)):Y.noAudio||(oe._node=Y._obtainHtml5Audio(),oe._errorFn=oe._errorListener.bind(oe),oe._node.addEventListener("error",oe._errorFn,!1),oe._loadFn=oe._loadListener.bind(oe),oe._node.addEventListener(Y._canPlayEvent,oe._loadFn,!1),oe._endFn=oe._endListener.bind(oe),oe._node.addEventListener("ended",oe._endFn,!1),oe._node.src=le._src,oe._node.preload=le._preload===!0?"auto":le._preload,oe._node.volume=ce*Y.volume(),oe._node.load()),oe},reset:function(){var oe=this,le=oe._parent;return oe._muted=le._muted,oe._loop=le._loop,oe._volume=le._volume,oe._rate=le._rate,oe._seek=0,oe._rateSeek=0,oe._paused=!0,oe._ended=!0,oe._sprite="__default",oe._id=++Y._counter,oe},_errorListener:function(){var oe=this;oe._parent._emit("loaderror",oe._id,oe._node.error?oe._node.error.code:0),oe._node.removeEventListener("error",oe._errorFn,!1)},_loadListener:function(){var oe=this,le=oe._parent;le._duration=Math.ceil(oe._node.duration*10)/10,Object.keys(le._sprite).length===0&&(le._sprite={__default:[0,le._duration*1e3]}),le._state!=="loaded"&&(le._state="loaded",le._emit("load"),le._loadQueue()),oe._node.removeEventListener(Y._canPlayEvent,oe._loadFn,!1)},_endListener:function(){var oe=this,le=oe._parent;le._duration===1/0&&(le._duration=Math.ceil(oe._node.duration*10)/10,le._sprite.__default[1]===1/0&&(le._sprite.__default[1]=le._duration*1e3),le._ended(oe)),oe._node.removeEventListener("ended",oe._endFn,!1)}};var re={},ne=function(oe){var le=oe._src;if(re[le]){oe._duration=re[le].duration,ae(oe);return}if(/^data:[^;]+;base64,/.test(le)){for(var ce=atob(le.split(",")[1]),he=new Uint8Array(ce.length),fe=0;fe0?(re[le._src]=fe,ae(le,fe)):ce()};typeof Promise<"u"&&Y.ctx.decodeAudioData.length===1?Y.ctx.decodeAudioData(oe).then(he).catch(ce):Y.ctx.decodeAudioData(oe,he,ce)},ae=function(oe,le){le&&!oe._duration&&(oe._duration=le.duration),Object.keys(oe._sprite).length===0&&(oe._sprite={__default:[0,oe._duration*1e3]}),oe._state!=="loaded"&&(oe._state="loaded",oe._emit("load"),oe._loadQueue())},ue=function(){if(Y.usingWebAudio){try{typeof AudioContext<"u"?Y.ctx=new AudioContext:typeof webkitAudioContext<"u"?Y.ctx=new webkitAudioContext:Y.usingWebAudio=!1}catch{Y.usingWebAudio=!1}Y.ctx||(Y.usingWebAudio=!1);var oe=/iP(hone|od|ad)/.test(Y._navigator&&Y._navigator.platform),le=Y._navigator&&Y._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),ce=le?parseInt(le[1],10):null;if(oe&&ce&&ce<9){var he=/safari/.test(Y._navigator&&Y._navigator.userAgent.toLowerCase());Y._navigator&&!he&&(Y.usingWebAudio=!1)}Y.usingWebAudio&&(Y.masterGain=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),Y.masterGain.gain.setValueAtTime(Y._muted?0:Y._volume,Y.ctx.currentTime),Y.masterGain.connect(Y.ctx.destination)),Y._setup()}};Z.Howler=Y,Z.Howl=ee,typeof commonjsGlobal<"u"?(commonjsGlobal.HowlerGlobal=_,commonjsGlobal.Howler=Y,commonjsGlobal.Howl=ee,commonjsGlobal.Sound=te):typeof window<"u"&&(window.HowlerGlobal=_,window.Howler=Y,window.Howl=ee,window.Sound=te)})();/*! + * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. + * + * howler.js v2.2.4 + * howlerjs.com + * + * (c) 2013-2020, James Simpson of GoldFire Studios + * goldfirestudios.com + * + * MIT License + */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(Y){var ee=this;if(!ee.ctx||!ee.ctx.listener)return ee;for(var te=ee._howls.length-1;te>=0;te--)ee._howls[te].stereo(Y);return ee},HowlerGlobal.prototype.pos=function(Y,ee,te){var re=this;if(!re.ctx||!re.ctx.listener)return re;if(ee=typeof ee!="number"?re._pos[1]:ee,te=typeof te!="number"?re._pos[2]:te,typeof Y=="number")re._pos=[Y,ee,te],typeof re.ctx.listener.positionX<"u"?(re.ctx.listener.positionX.setTargetAtTime(re._pos[0],Howler.ctx.currentTime,.1),re.ctx.listener.positionY.setTargetAtTime(re._pos[1],Howler.ctx.currentTime,.1),re.ctx.listener.positionZ.setTargetAtTime(re._pos[2],Howler.ctx.currentTime,.1)):re.ctx.listener.setPosition(re._pos[0],re._pos[1],re._pos[2]);else return re._pos;return re},HowlerGlobal.prototype.orientation=function(Y,ee,te,re,ne,ie){var se=this;if(!se.ctx||!se.ctx.listener)return se;var ae=se._orientation;if(ee=typeof ee!="number"?ae[1]:ee,te=typeof te!="number"?ae[2]:te,re=typeof re!="number"?ae[3]:re,ne=typeof ne!="number"?ae[4]:ne,ie=typeof ie!="number"?ae[5]:ie,typeof Y=="number")se._orientation=[Y,ee,te,re,ne,ie],typeof se.ctx.listener.forwardX<"u"?(se.ctx.listener.forwardX.setTargetAtTime(Y,Howler.ctx.currentTime,.1),se.ctx.listener.forwardY.setTargetAtTime(ee,Howler.ctx.currentTime,.1),se.ctx.listener.forwardZ.setTargetAtTime(te,Howler.ctx.currentTime,.1),se.ctx.listener.upX.setTargetAtTime(re,Howler.ctx.currentTime,.1),se.ctx.listener.upY.setTargetAtTime(ne,Howler.ctx.currentTime,.1),se.ctx.listener.upZ.setTargetAtTime(ie,Howler.ctx.currentTime,.1)):se.ctx.listener.setOrientation(Y,ee,te,re,ne,ie);else return ae;return se},Howl.prototype.init=function(Y){return function(ee){var te=this;return te._orientation=ee.orientation||[1,0,0],te._stereo=ee.stereo||null,te._pos=ee.pos||null,te._pannerAttr={coneInnerAngle:typeof ee.coneInnerAngle<"u"?ee.coneInnerAngle:360,coneOuterAngle:typeof ee.coneOuterAngle<"u"?ee.coneOuterAngle:360,coneOuterGain:typeof ee.coneOuterGain<"u"?ee.coneOuterGain:0,distanceModel:typeof ee.distanceModel<"u"?ee.distanceModel:"inverse",maxDistance:typeof ee.maxDistance<"u"?ee.maxDistance:1e4,panningModel:typeof ee.panningModel<"u"?ee.panningModel:"HRTF",refDistance:typeof ee.refDistance<"u"?ee.refDistance:1,rolloffFactor:typeof ee.rolloffFactor<"u"?ee.rolloffFactor:1},te._onstereo=ee.onstereo?[{fn:ee.onstereo}]:[],te._onpos=ee.onpos?[{fn:ee.onpos}]:[],te._onorientation=ee.onorientation?[{fn:ee.onorientation}]:[],Y.call(this,ee)}}(Howl.prototype.init),Howl.prototype.stereo=function(Y,ee){var te=this;if(!te._webAudio)return te;if(te._state!=="loaded")return te._queue.push({event:"stereo",action:function(){te.stereo(Y,ee)}}),te;var re=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof ee>"u")if(typeof Y=="number")te._stereo=Y,te._pos=[Y,0,0];else return te._stereo;for(var ne=te._getSoundIds(ee),ie=0;ie"u")if(typeof Y=="number")ne._pos=[Y,ee,te];else return ne._pos;for(var ie=ne._getSoundIds(re),se=0;se"u")if(typeof Y=="number")ne._orientation=[Y,ee,te];else return ne._orientation;for(var ie=ne._getSoundIds(re),se=0;se"u"&&(te.pannerAttr||(te.pannerAttr={coneInnerAngle:te.coneInnerAngle,coneOuterAngle:te.coneOuterAngle,coneOuterGain:te.coneOuterGain,distanceModel:te.distanceModel,maxDistance:te.maxDistance,refDistance:te.refDistance,rolloffFactor:te.rolloffFactor,panningModel:te.panningModel}),Y._pannerAttr={coneInnerAngle:typeof te.pannerAttr.coneInnerAngle<"u"?te.pannerAttr.coneInnerAngle:Y._coneInnerAngle,coneOuterAngle:typeof te.pannerAttr.coneOuterAngle<"u"?te.pannerAttr.coneOuterAngle:Y._coneOuterAngle,coneOuterGain:typeof te.pannerAttr.coneOuterGain<"u"?te.pannerAttr.coneOuterGain:Y._coneOuterGain,distanceModel:typeof te.pannerAttr.distanceModel<"u"?te.pannerAttr.distanceModel:Y._distanceModel,maxDistance:typeof te.pannerAttr.maxDistance<"u"?te.pannerAttr.maxDistance:Y._maxDistance,refDistance:typeof te.pannerAttr.refDistance<"u"?te.pannerAttr.refDistance:Y._refDistance,rolloffFactor:typeof te.pannerAttr.rolloffFactor<"u"?te.pannerAttr.rolloffFactor:Y._rolloffFactor,panningModel:typeof te.pannerAttr.panningModel<"u"?te.pannerAttr.panningModel:Y._panningModel});else return ne=Y._soundById(parseInt(ee[0],10)),ne?ne._pannerAttr:Y._pannerAttr;else ee.length===2&&(te=ee[0],re=parseInt(ee[1],10));for(var ie=Y._getSoundIds(re),se=0;seee.unload()),ee}}const __vite_import_meta_env__$2={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},createStoreImpl=Z=>{let _;const Y=new Set,ee=(ue,oe)=>{const le=typeof ue=="function"?ue(_):ue;if(!Object.is(le,_)){const ce=_;_=oe??(typeof le!="object"||le===null)?le:Object.assign({},_,le),Y.forEach(he=>he(_,ce))}},te=()=>_,se={setState:ee,getState:te,getInitialState:()=>ae,subscribe:ue=>(Y.add(ue),()=>Y.delete(ue)),destroy:()=>{(__vite_import_meta_env__$2?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),Y.clear()}},ae=_=Z(ee,te,se);return se},createStore=Z=>Z?createStoreImpl(Z):createStoreImpl;var react={exports:{}},react_production_min={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var l$1=Symbol.for("react.element"),n$2=Symbol.for("react.portal"),p$2=Symbol.for("react.fragment"),q$2=Symbol.for("react.strict_mode"),r$2=Symbol.for("react.profiler"),t$2=Symbol.for("react.provider"),u$2=Symbol.for("react.context"),v$1=Symbol.for("react.forward_ref"),w$1=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(Z){return Z===null||typeof Z!="object"?null:(Z=z&&Z[z]||Z["@@iterator"],typeof Z=="function"?Z:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(Z,_,Y){this.props=Z,this.context=_,this.refs=D,this.updater=Y||B}E.prototype.isReactComponent={};E.prototype.setState=function(Z,_){if(typeof Z!="object"&&typeof Z!="function"&&Z!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,Z,_,"setState")};E.prototype.forceUpdate=function(Z){this.updater.enqueueForceUpdate(this,Z,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(Z,_,Y){this.props=Z,this.context=_,this.refs=D,this.updater=Y||B}var H=G.prototype=new F;H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};function M(Z,_,Y){var ee,te={},re=null,ne=null;if(_!=null)for(ee in _.ref!==void 0&&(ne=_.ref),_.key!==void 0&&(re=""+_.key),_)J.call(_,ee)&&!L.hasOwnProperty(ee)&&(te[ee]=_[ee]);var ie=arguments.length-2;if(ie===1)te.children=Y;else if(1"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?t$1:q$1;useSyncExternalStoreShim_production_min.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u$1;shim.exports=useSyncExternalStoreShim_production_min;var shimExports=shim.exports;/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var h=reactExports,n=shimExports;function p(Z,_){return Z===_&&(Z!==0||1/Z===1/_)||Z!==Z&&_!==_}var q=typeof Object.is=="function"?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;withSelector_production_min.useSyncExternalStoreWithSelector=function(Z,_,Y,ee,te){var re=t(null);if(re.current===null){var ne={hasValue:!1,value:null};re.current=ne}else ne=re.current;re=v(function(){function se(ce){if(!ae){if(ae=!0,ue=ce,ce=ee(ce),te!==void 0&&ne.hasValue){var he=ne.value;if(te(he,ce))return oe=he}return oe=ce}if(he=oe,q(ue,ce))return he;var fe=ee(ce);return te!==void 0&&te(he,fe)?he:(ue=ce,oe=fe)}var ae=!1,ue,oe,le=Y===void 0?null:Y;return[function(){return se(_())},le===null?void 0:function(){return se(le())}]},[_,Y,ee,te]);var ie=r(Z,re[0],re[1]);return u(function(){ne.hasValue=!0,ne.value=ie},[ie]),w(ie),ie};withSelector.exports=withSelector_production_min;var withSelectorExports=withSelector.exports;const useSyncExternalStoreExports=getDefaultExportFromCjs(withSelectorExports),__vite_import_meta_env__$1={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},{useDebugValue}=ReactExports,{useSyncExternalStoreWithSelector}=useSyncExternalStoreExports;let didWarnAboutEqualityFn=!1;const identity=Z=>Z;function useStore(Z,_=identity,Y){(__vite_import_meta_env__$1?"production":void 0)!=="production"&&Y&&!didWarnAboutEqualityFn&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),didWarnAboutEqualityFn=!0);const ee=useSyncExternalStoreWithSelector(Z.subscribe,Z.getState,Z.getServerState||Z.getInitialState,_,Y);return useDebugValue(ee),ee}const createImpl=Z=>{(__vite_import_meta_env__$1?"production":void 0)!=="production"&&typeof Z!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const _=typeof Z=="function"?createStore(Z):Z,Y=(ee,te)=>useStore(_,ee,te);return Object.assign(Y,_),Y},create=Z=>Z?createImpl(Z):createImpl,__vite_import_meta_env__={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function createJSONStorage(Z,_){let Y;try{Y=Z()}catch{return}return{getItem:te=>{var re;const ne=se=>se===null?null:JSON.parse(se,void 0),ie=(re=Y.getItem(te))!=null?re:null;return ie instanceof Promise?ie.then(ne):ne(ie)},setItem:(te,re)=>Y.setItem(te,JSON.stringify(re,void 0)),removeItem:te=>Y.removeItem(te)}}const toThenable=Z=>_=>{try{const Y=Z(_);return Y instanceof Promise?Y:{then(ee){return toThenable(ee)(Y)},catch(ee){return this}}}catch(Y){return{then(ee){return this},catch(ee){return toThenable(ee)(Y)}}}},oldImpl=(Z,_)=>(Y,ee,te)=>{let re={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:de=>de,version:0,merge:(de,pe)=>({...pe,...de}),..._},ne=!1;const ie=new Set,se=new Set;let ae;try{ae=re.getStorage()}catch{}if(!ae)return Z((...de)=>{console.warn(`[zustand persist middleware] Unable to update item '${re.name}', the given storage is currently unavailable.`),Y(...de)},ee,te);const ue=toThenable(re.serialize),oe=()=>{const de=re.partialize({...ee()});let pe;const _e=ue({state:de,version:re.version}).then(me=>ae.setItem(re.name,me)).catch(me=>{pe=me});if(pe)throw pe;return _e},le=te.setState;te.setState=(de,pe)=>{le(de,pe),oe()};const ce=Z((...de)=>{Y(...de),oe()},ee,te);let he;const fe=()=>{var de;if(!ae)return;ne=!1,ie.forEach(_e=>_e(ee()));const pe=((de=re.onRehydrateStorage)==null?void 0:de.call(re,ee()))||void 0;return toThenable(ae.getItem.bind(ae))(re.name).then(_e=>{if(_e)return re.deserialize(_e)}).then(_e=>{if(_e)if(typeof _e.version=="number"&&_e.version!==re.version){if(re.migrate)return re.migrate(_e.state,_e.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return _e.state}).then(_e=>{var me;return he=re.merge(_e,(me=ee())!=null?me:ce),Y(he,!0),oe()}).then(()=>{pe==null||pe(he,void 0),ne=!0,se.forEach(_e=>_e(he))}).catch(_e=>{pe==null||pe(void 0,_e)})};return te.persist={setOptions:de=>{re={...re,...de},de.getStorage&&(ae=de.getStorage())},clearStorage:()=>{ae==null||ae.removeItem(re.name)},getOptions:()=>re,rehydrate:()=>fe(),hasHydrated:()=>ne,onHydrate:de=>(ie.add(de),()=>{ie.delete(de)}),onFinishHydration:de=>(se.add(de),()=>{se.delete(de)})},fe(),he||ce},newImpl=(Z,_)=>(Y,ee,te)=>{let re={storage:createJSONStorage(()=>localStorage),partialize:fe=>fe,version:0,merge:(fe,de)=>({...de,...fe}),..._},ne=!1;const ie=new Set,se=new Set;let ae=re.storage;if(!ae)return Z((...fe)=>{console.warn(`[zustand persist middleware] Unable to update item '${re.name}', the given storage is currently unavailable.`),Y(...fe)},ee,te);const ue=()=>{const fe=re.partialize({...ee()});return ae.setItem(re.name,{state:fe,version:re.version})},oe=te.setState;te.setState=(fe,de)=>{oe(fe,de),ue()};const le=Z((...fe)=>{Y(...fe),ue()},ee,te);te.getInitialState=()=>le;let ce;const he=()=>{var fe,de;if(!ae)return;ne=!1,ie.forEach(_e=>{var me;return _e((me=ee())!=null?me:le)});const pe=((de=re.onRehydrateStorage)==null?void 0:de.call(re,(fe=ee())!=null?fe:le))||void 0;return toThenable(ae.getItem.bind(ae))(re.name).then(_e=>{if(_e)if(typeof _e.version=="number"&&_e.version!==re.version){if(re.migrate)return[!0,re.migrate(_e.state,_e.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,_e.state];return[!1,void 0]}).then(_e=>{var me;const[ge,ye]=_e;if(ce=re.merge(ye,(me=ee())!=null?me:le),Y(ce,!0),ge)return ue()}).then(()=>{pe==null||pe(ce,void 0),ce=ee(),ne=!0,se.forEach(_e=>_e(ce))}).catch(_e=>{pe==null||pe(void 0,_e)})};return te.persist={setOptions:fe=>{re={...re,...fe},fe.storage&&(ae=fe.storage)},clearStorage:()=>{ae==null||ae.removeItem(re.name)},getOptions:()=>re,rehydrate:()=>he(),hasHydrated:()=>ne,onHydrate:fe=>(ie.add(fe),()=>{ie.delete(fe)}),onFinishHydration:fe=>(se.add(fe),()=>{se.delete(fe)})},re.skipHydration||he(),ce||le},persistImpl=(Z,_)=>"getStorage"in _||"serialize"in _||"deserialize"in _?((__vite_import_meta_env__?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),oldImpl(Z,_)):newImpl(Z,_),persist=persistImpl,initialized={dialog:{script:{entry:"",line:0},background:DEFAULT_CORE_OPTION.styles.background,music:{name:"",seconds:0},characters:[],speaker:"",values:{constant:{},variables:{}}},lastPages:[],historyPages:[],isFinalPlot:!1},Store=create(persist((Z,_)=>({...initialized,getDialogScript(){return _().dialog.script.entry},setDialogScript(Y,ee=!1){Z(te=>({dialog:{...ee?te.dialog:initialized.dialog,script:Y}}))},getDialogLine(){return _().dialog.script.line},setDialogLine(Y){Z(ee=>({dialog:{...ee.dialog,script:defu({line:Y},ee.dialog.script)}}))},nextDialogLine(){Z(Y=>({dialog:{...Y.dialog,script:defu({line:Y.dialog.script.line+1},Y.dialog.script)}}))},getDialogBackground(){return _().dialog.background},setDialogBackground(Y){Z(ee=>({dialog:defu({background:Y},ee.dialog)}))},getDialogSpeaker(){return _().dialog.speaker},setDialogSpeaker(Y){Z(ee=>({dialog:defu({speaker:Y},ee.dialog)}))},getDialogCharacters(){return _().dialog.characters},setDialogCharacters(...Y){Z(ee=>({dialog:{...ee.dialog,characters:Y.map(te=>{const re=_().dialog.characters.find(ne=>te.identity===ne.identity);return{identity:te.identity,name:re!=null&&re.name&&te.name===te.identity?re.name:te.name,figure:te.figureAssets??(re==null?void 0:re.figure),position:te.position??(re==null?void 0:re.position)}})}}))},getDialogMusic(){return _().dialog.music},setDialogMusic(Y,ee){if(Y===void 0){Z(te=>({dialog:defu({music:initialized.dialog.music},te.dialog)}));return}Z(te=>({dialog:defu({music:{name:Y,seconds:ee??0}},te.dialog)}))},getDialogConstant(Y){const ee=_().dialog.values.constant;return Y===void 0?ee:ee[Y]},setDialogConstant(Y,ee){if(typeof Y!="string"){Z(te=>({dialog:defu({values:{constant:Y}},te.dialog)}));return}Z(te=>({dialog:defu({values:{constant:{[Y]:ee}}},te.dialog)}))},getDialogVariable(Y){return Y===void 0?_().dialog.values.variables:_().dialog.values.variables[Y]},setDialogVariable(Y,ee){Z(te=>({dialog:defu({values:{variables:{[Y]:ee}}},te.dialog)}))},getLastPage(){return _().lastPages},setLastPage(Y){Z(()=>({lastPages:Y}))},getHistoryPage(){return _().historyPages},setHistoryPage(Y){Z(ee=>({historyPages:[...ee.historyPages,Y]}))},clearHistoryPage(){Z(()=>({historyPages:[]}))},getFinalPlot(){return _().isFinalPlot},openFinalPlot(){Z(()=>({isFinalPlot:!0}))}}),{name:"misakura",storage:createJSONStorage(()=>localStorage)}));function uid(){return window.crypto.getRandomValues(new Uint32Array(1))[0]}function transformCallback(Z,_=!1){const Y=uid(),ee=`_${Y}`;return Object.defineProperty(window,ee,{value:te=>(_&&Reflect.deleteProperty(window,ee),Z==null?void 0:Z(te)),writable:!1,configurable:!0}),Y}async function invoke(Z,_={}){return new Promise((Y,ee)=>{const te=transformCallback(ne=>{Y(ne),Reflect.deleteProperty(window,`_${re}`)},!0),re=transformCallback(ne=>{ee(ne),Reflect.deleteProperty(window,`_${te}`)},!0);window.__TAURI_IPC__({cmd:Z,callback:te,error:re,..._})})}async function invokeTauriCommand(Z){return invoke("tauri",Z)}async function _unlisten(Z,_){return invokeTauriCommand({__tauriModule:"Event",message:{cmd:"unlisten",event:Z,eventId:_}})}async function emit(Z,_,Y){await invokeTauriCommand({__tauriModule:"Event",message:{cmd:"emit",event:Z,windowLabel:_,payload:Y}})}async function listen(Z,_,Y){return invokeTauriCommand({__tauriModule:"Event",message:{cmd:"listen",event:Z,windowLabel:_,handler:transformCallback(Y)}}).then(ee=>async()=>_unlisten(Z,ee))}async function once(Z,_,Y){return listen(Z,_,ee=>{Y(ee),_unlisten(Z,ee.id).catch(()=>{})})}var TauriEvent;(function(Z){Z.WINDOW_RESIZED="tauri://resize",Z.WINDOW_MOVED="tauri://move",Z.WINDOW_CLOSE_REQUESTED="tauri://close-requested",Z.WINDOW_CREATED="tauri://window-created",Z.WINDOW_DESTROYED="tauri://destroyed",Z.WINDOW_FOCUS="tauri://focus",Z.WINDOW_BLUR="tauri://blur",Z.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",Z.WINDOW_THEME_CHANGED="tauri://theme-changed",Z.WINDOW_FILE_DROP="tauri://file-drop",Z.WINDOW_FILE_DROP_HOVER="tauri://file-drop-hover",Z.WINDOW_FILE_DROP_CANCELLED="tauri://file-drop-cancelled",Z.MENU="tauri://menu",Z.CHECK_UPDATE="tauri://update",Z.UPDATE_AVAILABLE="tauri://update-available",Z.INSTALL_UPDATE="tauri://update-install",Z.STATUS_UPDATE="tauri://update-status",Z.DOWNLOAD_PROGRESS="tauri://update-download-progress"})(TauriEvent||(TauriEvent={}));class LogicalSize{constructor(_,Y){this.type="Logical",this.width=_,this.height=Y}}class PhysicalSize{constructor(_,Y){this.type="Physical",this.width=_,this.height=Y}toLogical(_){return new LogicalSize(this.width/_,this.height/_)}}class LogicalPosition{constructor(_,Y){this.type="Logical",this.x=_,this.y=Y}}class PhysicalPosition{constructor(_,Y){this.type="Physical",this.x=_,this.y=Y}toLogical(_){return new LogicalPosition(this.x/_,this.y/_)}}var UserAttentionType;(function(Z){Z[Z.Critical=1]="Critical",Z[Z.Informational=2]="Informational"})(UserAttentionType||(UserAttentionType={}));function getAll(){return window.__TAURI_METADATA__.__windows.map(Z=>new WebviewWindow(Z.label,{skip:!0}))}const localTauriEvents=["tauri://created","tauri://error"];class WebviewWindowHandle{constructor(_){this.label=_,this.listeners=Object.create(null)}async listen(_,Y){return this._handleTauriEvent(_,Y)?Promise.resolve(()=>{const ee=this.listeners[_];ee.splice(ee.indexOf(Y),1)}):listen(_,this.label,Y)}async once(_,Y){return this._handleTauriEvent(_,Y)?Promise.resolve(()=>{const ee=this.listeners[_];ee.splice(ee.indexOf(Y),1)}):once(_,this.label,Y)}async emit(_,Y){if(localTauriEvents.includes(_)){for(const ee of this.listeners[_]||[])ee({event:_,id:-1,windowLabel:this.label,payload:Y});return Promise.resolve()}return emit(_,this.label,Y)}_handleTauriEvent(_,Y){return localTauriEvents.includes(_)?(_ in this.listeners?this.listeners[_].push(Y):this.listeners[_]=[Y],!0):!1}}class WindowManager extends WebviewWindowHandle{async scaleFactor(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"scaleFactor"}}}})}async innerPosition(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"innerPosition"}}}}).then(({x:_,y:Y})=>new PhysicalPosition(_,Y))}async outerPosition(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"outerPosition"}}}}).then(({x:_,y:Y})=>new PhysicalPosition(_,Y))}async innerSize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"innerSize"}}}}).then(({width:_,height:Y})=>new PhysicalSize(_,Y))}async outerSize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"outerSize"}}}}).then(({width:_,height:Y})=>new PhysicalSize(_,Y))}async isFullscreen(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isFullscreen"}}}})}async isMinimized(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isMinimized"}}}})}async isMaximized(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isMaximized"}}}})}async isFocused(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isFocused"}}}})}async isDecorated(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isDecorated"}}}})}async isResizable(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isResizable"}}}})}async isMaximizable(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isMaximizable"}}}})}async isMinimizable(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isMinimizable"}}}})}async isClosable(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isClosable"}}}})}async isVisible(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"isVisible"}}}})}async title(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"title"}}}})}async theme(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"theme"}}}})}async center(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"center"}}}})}async requestUserAttention(_){let Y=null;return _&&(_===UserAttentionType.Critical?Y={type:"Critical"}:Y={type:"Informational"}),invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"requestUserAttention",payload:Y}}}})}async setResizable(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setResizable",payload:_}}}})}async setMaximizable(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setMaximizable",payload:_}}}})}async setMinimizable(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setMinimizable",payload:_}}}})}async setClosable(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setClosable",payload:_}}}})}async setTitle(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setTitle",payload:_}}}})}async maximize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"maximize"}}}})}async unmaximize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"unmaximize"}}}})}async toggleMaximize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"toggleMaximize"}}}})}async minimize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"minimize"}}}})}async unminimize(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"unminimize"}}}})}async show(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"show"}}}})}async hide(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"hide"}}}})}async close(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"close"}}}})}async setDecorations(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setDecorations",payload:_}}}})}async setAlwaysOnTop(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setAlwaysOnTop",payload:_}}}})}async setContentProtected(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setContentProtected",payload:_}}}})}async setSize(_){if(!_||_.type!=="Logical"&&_.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setSize",payload:{type:_.type,data:{width:_.width,height:_.height}}}}}})}async setMinSize(_){if(_&&_.type!=="Logical"&&_.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setMinSize",payload:_?{type:_.type,data:{width:_.width,height:_.height}}:null}}}})}async setMaxSize(_){if(_&&_.type!=="Logical"&&_.type!=="Physical")throw new Error("the `size` argument must be either a LogicalSize or a PhysicalSize instance");return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setMaxSize",payload:_?{type:_.type,data:{width:_.width,height:_.height}}:null}}}})}async setPosition(_){if(!_||_.type!=="Logical"&&_.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setPosition",payload:{type:_.type,data:{x:_.x,y:_.y}}}}}})}async setFullscreen(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setFullscreen",payload:_}}}})}async setFocus(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setFocus"}}}})}async setIcon(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setIcon",payload:{icon:typeof _=="string"?_:Array.from(_)}}}}})}async setSkipTaskbar(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setSkipTaskbar",payload:_}}}})}async setCursorGrab(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setCursorGrab",payload:_}}}})}async setCursorVisible(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setCursorVisible",payload:_}}}})}async setCursorIcon(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setCursorIcon",payload:_}}}})}async setCursorPosition(_){if(!_||_.type!=="Logical"&&_.type!=="Physical")throw new Error("the `position` argument must be either a LogicalPosition or a PhysicalPosition instance");return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setCursorPosition",payload:{type:_.type,data:{x:_.x,y:_.y}}}}}})}async setIgnoreCursorEvents(_){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"setIgnoreCursorEvents",payload:_}}}})}async startDragging(){return invokeTauriCommand({__tauriModule:"Window",message:{cmd:"manage",data:{label:this.label,cmd:{type:"startDragging"}}}})}async onResized(_){return this.listen(TauriEvent.WINDOW_RESIZED,Y=>{Y.payload=mapPhysicalSize(Y.payload),_(Y)})}async onMoved(_){return this.listen(TauriEvent.WINDOW_MOVED,Y=>{Y.payload=mapPhysicalPosition(Y.payload),_(Y)})}async onCloseRequested(_){return this.listen(TauriEvent.WINDOW_CLOSE_REQUESTED,Y=>{const ee=new CloseRequestedEvent(Y);Promise.resolve(_(ee)).then(()=>{if(!ee.isPreventDefault())return this.close()})})}async onFocusChanged(_){const Y=await this.listen(TauriEvent.WINDOW_FOCUS,te=>{_({...te,payload:!0})}),ee=await this.listen(TauriEvent.WINDOW_BLUR,te=>{_({...te,payload:!1})});return()=>{Y(),ee()}}async onScaleChanged(_){return this.listen(TauriEvent.WINDOW_SCALE_FACTOR_CHANGED,_)}async onMenuClicked(_){return this.listen(TauriEvent.MENU,_)}async onFileDropEvent(_){const Y=await this.listen(TauriEvent.WINDOW_FILE_DROP,re=>{_({...re,payload:{type:"drop",paths:re.payload}})}),ee=await this.listen(TauriEvent.WINDOW_FILE_DROP_HOVER,re=>{_({...re,payload:{type:"hover",paths:re.payload}})}),te=await this.listen(TauriEvent.WINDOW_FILE_DROP_CANCELLED,re=>{_({...re,payload:{type:"cancel"}})});return()=>{Y(),ee(),te()}}async onThemeChanged(_){return this.listen(TauriEvent.WINDOW_THEME_CHANGED,_)}}class CloseRequestedEvent{constructor(_){this._preventDefault=!1,this.event=_.event,this.windowLabel=_.windowLabel,this.id=_.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}class WebviewWindow extends WindowManager{constructor(_,Y={}){super(_),Y!=null&&Y.skip||invokeTauriCommand({__tauriModule:"Window",message:{cmd:"createWebview",data:{options:{label:_,...Y}}}}).then(async()=>this.emit("tauri://created")).catch(async ee=>this.emit("tauri://error",ee))}static getByLabel(_){return getAll().some(Y=>Y.label===_)?new WebviewWindow(_,{skip:!0}):null}static async getFocusedWindow(){for(const _ of getAll())if(await _.isFocused())return _;return null}}let appWindow;"__TAURI_METADATA__"in window?appWindow=new WebviewWindow(window.__TAURI_METADATA__.__currentWindow.label,{skip:!0}):(console.warn(`Could not find "window.__TAURI_METADATA__". The "appWindow" value will reference the "main" window label. +Note that this is not an issue if running this frontend on a browser instead of a Tauri window.`),appWindow=new WebviewWindow("main",{skip:!0}));function mapPhysicalPosition(Z){return new PhysicalPosition(Z.x,Z.y)}function mapPhysicalSize(Z){return new PhysicalSize(Z.width,Z.height)}class Context extends FluoroContext{constructor(_){super(),this.provide("config",new Config$1(_)),this.mixin("config",["config"]),this.provide("media",new Media(this)),this.inject("media"),this.provide("store",Store.getState()),this.inject("store"),this.provide("controller",new Controller(this)),this.mixin("controller",["app","layer","pages","listen","clear","height","width","path"],!0),window.ms=this}start(){for(const _ in routes)this.pages[_]=new routes[_](this);this.emit("ready"),this.on("exit",()=>{this.clear(),appWindow.close()})}}globalThis.process={pid:new Date().getTime()};const background="/gui/dialog/background.png",dialog="/gui/dialog/dialog.png",dialogX=0,dialogY=768,dialogNameX=240,dialogNameY=775,dialogNameSize=47,dialogMsgX=136,dialogMsgY=843,dialogMsgWrap=1688,dialogMsgSize=39,margin=48,characterHeight=718,styles=Object.freeze(Object.defineProperty({__proto__:null,background,characterHeight,dialog,dialogMsgSize,dialogMsgWrap,dialogMsgX,dialogMsgY,dialogNameSize,dialogNameX,dialogNameY,dialogX,dialogY,margin},Symbol.toStringTag,{value:"Module"}));function main(Z){const _=new Context({entry:Z,styles});return _.start(),_}main(); diff --git a/docs/src/public/assets/index-dUDQZV40.css b/docs/src/public/assets/index-dUDQZV40.css new file mode 100644 index 0000000..02d579e --- /dev/null +++ b/docs/src/public/assets/index-dUDQZV40.css @@ -0,0 +1 @@ +body,#misakura-app{overflow:hidden;height:100vh;width:100%;margin:auto;display:flex;align-items:center;justify-content:center;padding:0;line-height:100vh}@keyframes gradientAnimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}body{background:linear-gradient(45deg,#ff85b3,#e2b9ff,#c3ffc2);background-size:400% 400%;animation:gradientAnimation 20s ease infinite;box-shadow:0 0 50px #fff2f2,0 0 100px #ffbdfc,0 0 150px #d6baff,0 0 200px #b3ffd9} diff --git a/docs/src/public/demo.html b/docs/src/public/demo.html index e69de29..8a50a85 100644 --- a/docs/src/public/demo.html +++ b/docs/src/public/demo.html @@ -0,0 +1,34 @@ + + + + + + + Misakura + + + + + + + + +
+
+
+ + diff --git a/docs/src/public/gui/dialog/background.png b/docs/src/public/gui/dialog/background.png new file mode 100644 index 0000000..0ff98f5 Binary files /dev/null and b/docs/src/public/gui/dialog/background.png differ diff --git a/docs/src/public/gui/dialog/buttons/auto.png b/docs/src/public/gui/dialog/buttons/auto.png new file mode 100644 index 0000000..0111ef7 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/auto.png differ diff --git a/docs/src/public/gui/dialog/buttons/autoHover.png b/docs/src/public/gui/dialog/buttons/autoHover.png new file mode 100644 index 0000000..fc94622 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/autoHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/config.png b/docs/src/public/gui/dialog/buttons/config.png new file mode 100644 index 0000000..cf51945 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/config.png differ diff --git a/docs/src/public/gui/dialog/buttons/configHover.png b/docs/src/public/gui/dialog/buttons/configHover.png new file mode 100644 index 0000000..c1a8b00 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/configHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/load.png b/docs/src/public/gui/dialog/buttons/load.png new file mode 100644 index 0000000..6ceb5fe Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/load.png differ diff --git a/docs/src/public/gui/dialog/buttons/loadHover.png b/docs/src/public/gui/dialog/buttons/loadHover.png new file mode 100644 index 0000000..355aa6b Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/loadHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/log.png b/docs/src/public/gui/dialog/buttons/log.png new file mode 100644 index 0000000..5c3ea1e Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/log.png differ diff --git a/docs/src/public/gui/dialog/buttons/logHover.png b/docs/src/public/gui/dialog/buttons/logHover.png new file mode 100644 index 0000000..9764b2d Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/logHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/quickLoad.png b/docs/src/public/gui/dialog/buttons/quickLoad.png new file mode 100644 index 0000000..cb5fc04 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/quickLoad.png differ diff --git a/docs/src/public/gui/dialog/buttons/quickLoadHover.png b/docs/src/public/gui/dialog/buttons/quickLoadHover.png new file mode 100644 index 0000000..778f90a Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/quickLoadHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/quickSave.png b/docs/src/public/gui/dialog/buttons/quickSave.png new file mode 100644 index 0000000..e4749b6 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/quickSave.png differ diff --git a/docs/src/public/gui/dialog/buttons/quickSaveHover.png b/docs/src/public/gui/dialog/buttons/quickSaveHover.png new file mode 100644 index 0000000..5e8edfb Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/quickSaveHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/save.png b/docs/src/public/gui/dialog/buttons/save.png new file mode 100644 index 0000000..a537e8a Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/save.png differ diff --git a/docs/src/public/gui/dialog/buttons/saveHover.png b/docs/src/public/gui/dialog/buttons/saveHover.png new file mode 100644 index 0000000..823d491 Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/saveHover.png differ diff --git a/docs/src/public/gui/dialog/buttons/skip.png b/docs/src/public/gui/dialog/buttons/skip.png new file mode 100644 index 0000000..ff5cbff Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/skip.png differ diff --git a/docs/src/public/gui/dialog/buttons/skipHover.png b/docs/src/public/gui/dialog/buttons/skipHover.png new file mode 100644 index 0000000..6d7cfab Binary files /dev/null and b/docs/src/public/gui/dialog/buttons/skipHover.png differ diff --git a/docs/src/public/gui/dialog/dialog.png b/docs/src/public/gui/dialog/dialog.png new file mode 100644 index 0000000..9867924 Binary files /dev/null and b/docs/src/public/gui/dialog/dialog.png differ diff --git a/docs/src/public/gui/dialog/dialog3.png b/docs/src/public/gui/dialog/dialog3.png new file mode 100644 index 0000000..7eb4c0c Binary files /dev/null and b/docs/src/public/gui/dialog/dialog3.png differ diff --git a/docs/src/public/gui/dialog/input.png b/docs/src/public/gui/dialog/input.png new file mode 100644 index 0000000..a658434 Binary files /dev/null and b/docs/src/public/gui/dialog/input.png differ diff --git a/docs/src/public/gui/dialog/option.png b/docs/src/public/gui/dialog/option.png new file mode 100644 index 0000000..0b43428 Binary files /dev/null and b/docs/src/public/gui/dialog/option.png differ diff --git a/docs/src/public/gui/dialog/optionHover.png b/docs/src/public/gui/dialog/optionHover.png new file mode 100644 index 0000000..6faca80 Binary files /dev/null and b/docs/src/public/gui/dialog/optionHover.png differ diff --git a/docs/src/public/gui/home/background.png b/docs/src/public/gui/home/background.png new file mode 100644 index 0000000..14c5f22 Binary files /dev/null and b/docs/src/public/gui/home/background.png differ diff --git a/docs/src/public/gui/home/foreground.png b/docs/src/public/gui/home/foreground.png new file mode 100644 index 0000000..fe6f386 Binary files /dev/null and b/docs/src/public/gui/home/foreground.png differ diff --git a/docs/src/public/images/background/inside.png b/docs/src/public/images/background/inside.png new file mode 100644 index 0000000..fede1b2 Binary files /dev/null and b/docs/src/public/images/background/inside.png differ diff --git a/docs/src/public/images/background/outside.png b/docs/src/public/images/background/outside.png new file mode 100644 index 0000000..0f092c0 Binary files /dev/null and b/docs/src/public/images/background/outside.png differ diff --git a/docs/src/public/images/background/outside_2.png b/docs/src/public/images/background/outside_2.png new file mode 100644 index 0000000..df6d7f1 Binary files /dev/null and b/docs/src/public/images/background/outside_2.png differ diff --git a/docs/src/public/images/background/seaside_beach.png b/docs/src/public/images/background/seaside_beach.png new file mode 100644 index 0000000..2a92d1d Binary files /dev/null and b/docs/src/public/images/background/seaside_beach.png differ diff --git a/docs/src/public/images/background/seaside_beach_sunset.png b/docs/src/public/images/background/seaside_beach_sunset.png new file mode 100644 index 0000000..6b478fc Binary files /dev/null and b/docs/src/public/images/background/seaside_beach_sunset.png differ diff --git a/docs/src/public/images/background/sky_night.png b/docs/src/public/images/background/sky_night.png new file mode 100644 index 0000000..1190320 Binary files /dev/null and b/docs/src/public/images/background/sky_night.png differ diff --git a/docs/src/public/images/background/station.png b/docs/src/public/images/background/station.png new file mode 100644 index 0000000..c17696e Binary files /dev/null and b/docs/src/public/images/background/station.png differ diff --git a/docs/src/public/images/background/station_night.png b/docs/src/public/images/background/station_night.png new file mode 100644 index 0000000..b0ce3f4 Binary files /dev/null and b/docs/src/public/images/background/station_night.png differ diff --git a/docs/src/public/images/background/sunset.png b/docs/src/public/images/background/sunset.png new file mode 100644 index 0000000..9e75534 Binary files /dev/null and b/docs/src/public/images/background/sunset.png differ diff --git a/docs/src/public/images/background/train_outside_night.png b/docs/src/public/images/background/train_outside_night.png new file mode 100644 index 0000000..5a9c638 Binary files /dev/null and b/docs/src/public/images/background/train_outside_night.png differ diff --git a/docs/src/public/images/figure/shiori.png b/docs/src/public/images/figure/shiori.png new file mode 100644 index 0000000..c911800 Binary files /dev/null and b/docs/src/public/images/figure/shiori.png differ diff --git a/docs/src/public/images/figure/shiori_close.png b/docs/src/public/images/figure/shiori_close.png new file mode 100644 index 0000000..df425e2 Binary files /dev/null and b/docs/src/public/images/figure/shiori_close.png differ diff --git a/docs/src/public/images/figure/shiori_close_smile.png b/docs/src/public/images/figure/shiori_close_smile.png new file mode 100644 index 0000000..4aefb24 Binary files /dev/null and b/docs/src/public/images/figure/shiori_close_smile.png differ diff --git a/docs/src/public/images/figure/shiori_open.png b/docs/src/public/images/figure/shiori_open.png new file mode 100644 index 0000000..3680897 Binary files /dev/null and b/docs/src/public/images/figure/shiori_open.png differ diff --git a/docs/src/public/images/figure/shiori_open_low.png b/docs/src/public/images/figure/shiori_open_low.png new file mode 100644 index 0000000..afda340 Binary files /dev/null and b/docs/src/public/images/figure/shiori_open_low.png differ diff --git a/docs/src/public/images/figure/shiori_shy.png b/docs/src/public/images/figure/shiori_shy.png new file mode 100644 index 0000000..3e31c90 Binary files /dev/null and b/docs/src/public/images/figure/shiori_shy.png differ diff --git a/docs/src/public/images/figure/shiori_smile.png b/docs/src/public/images/figure/shiori_smile.png new file mode 100644 index 0000000..56d6b9c Binary files /dev/null and b/docs/src/public/images/figure/shiori_smile.png differ diff --git a/docs/src/public/images/figure/shiori_squint.png b/docs/src/public/images/figure/shiori_squint.png new file mode 100644 index 0000000..6121c52 Binary files /dev/null and b/docs/src/public/images/figure/shiori_squint.png differ diff --git a/docs/src/public/misakura.svg b/docs/src/public/misakura.svg new file mode 100644 index 0000000..cd11243 --- /dev/null +++ b/docs/src/public/misakura.svg @@ -0,0 +1,1208 @@ + + + + + + + + + + diff --git a/docs/src/public/scripts/main.mrs b/docs/src/public/scripts/main.mrs new file mode 100644 index 0000000..4f6b7aa --- /dev/null +++ b/docs/src/public/scripts/main.mrs @@ -0,0 +1,178 @@ +# Misakura/AvgJS Engine Game Demo +# Version: 1.0.0 +# Author: Arimura Sena +# License: GPL-3.0 +# Repository: https://github.com/biyuehu/avgjs + +# Main.mrs - Misakura scritp entry point + +# Register global variables +const soi shiori.png +const soiC shiori_close.png +const soiCS shiori_close_smile.png +const soiS shiori_smile.png +const soiO shiori_open.png +const soiOL shiori_open_low.png +const soiSh shiori_shy.png +const soiSq shiori_squint.png +let score 0 + +# Register characters +character soi --name '少女' --figure $soi +character self --name '“我”?' +character author --name '夏叶的师傅' + +# Start game + +title 现实的边缘开始模糊... +title 闪烁的霓虹—— -T red +title 伴随意识的碎片—— -T orange +title 世界在头脑中不断重组... -T yellow +title . +title ... +title ...... +title ... +title . +title "⌈世界」连接成功。" -T lightgreen + +think: 刺眼的阳光令我难以忍受。 + +background /images/background/seaside_beach.png + +: 我睁开了眼—— +: 我意识到我似乎我一直都在这站着。 +: 我向四周望去,没有所谓陌生的天花板,视野格外广阔。 +: 等下... + +show soi + +: 不知什么时候,在我面前出现了一位和服少女。 +: 浅蓝色的瞳孔,和一副看起来既可爱又显冷淡的样子。 +: 少女目不转睛地盯着我。 +: 某种本能让我产生开口说些什么的欲望,以试图解答各种眼前的疑惑。 +: 正当我准备开口时,突然发现。 +: 我对自己的名字有点模糊了...我是“我”吗?我在心里问着自己。 + +show soi -F $soiSq + +soi: 有什么疑惑吗? +think: 少女向满脸疑惑的我轻声开口道。 +self: 请问...你是? +soi: 啊...抱歉,忘记做自我介绍了。 + +character soi --name '诗织' + +show soi -F $soiSh + +soi: 初次见面,我叫夏叶诗织。 +self: 你好,我是... +think: 我不断努力地从脑海中寻找名字的信息。 +title "Uncaught ReferenceError: name is not defined" -B red -T black +: ...? +: 搜寻名字的过程中突然出现了一串费解的文字在我眼前。 + +show soi -F $soi + +soi: 看来情况有点乱啊...那就让我一一回答下你的疑惑吧。 +think: 夏叶看着不知所措的我再次说道。 +soi: 这里是由我的师傅创造出的世界,而我是这个世界的管理者之一。 +self: 之一? +soi: 嗯...师傅是这样跟我说的,可能是在挖坑吧。 +: 至于你自己,当我尝试使用 typeof 操作符后发现你并非 Character 及其子类的实例—— +: 而是 Player 的实例,这说明你并非这个世界的角色或路人,在你这一实例的 prototype 上还定义了一些 setTime 之类与时间相关的方法。 +self: 啊?这是什么意思? +soi: 怎么说呢,我也是第一次见到这种实例,之前只是听闻过。 +: 总之你有操作这个世界时间的能力,在我所知的 Constructor 中甚至是我自己都没有被定义与时间相关的方法—— +: 据我推测,你并不属于这个世界,而是来自第四维度的人,Player 实例是你寄宿在这个世界的一种方式。 +self: 啊???那为什么我不知道自己的名字也没有这方面的记忆? +soi: 嗯...你不知道自己名字应该是师傅不知道怎么取名,所以没有为 Player 实例定义 name 属性吧,至于剩下的,可能得问他本人呢,当然也说不定是程序 bug 哦。 +: 总之,要不这样吧...请你现在给自己想一个称呼—— +think: 叫什么好呢? + +prompt name + +character self --name $name + +show soi -F $soiCS + +soi: 你好$name,以后请多多关照哦 +self: 初次见面。对了,你一直说的师傅是...? + +show soi -F $soiS + +soi: 如前面所说,师傅他创造了这个世界,同时也创造出了我的一切,给予了我生命和名字,是我非常非常尊敬的人,而他本身也不属于这个世界,跟你一样都来自第四维度。 +: 顺带一提,师傅给我的设定是带有反差萌并且充满智慧的三无少女,因为他似乎很喜欢这一类角色...不过我觉得也有他懒得给我画表情这一原因在里面。 + +options choice 我好像想起什么了 那你话是不是有点多了? +if "$choice == 1" "say 请不要在意这些细节! -S soi" +if "$choice == 1" "calc score $score-1" +if "$choice == 0" "say 是指? -S soi" +if "$choice == 0" "say 可能是几分钟前,又或者更早,我点开了一个叫做⌈Misakura」的程序,好像是什么视觉小说制作引擎? -S self" +if "$choice == 0" "say 原来如此...世界之外的存在是这样称呼这个世界的啊 -S soi" + +think: 紧接着,夏叶的旁边出现了一个人。 + +show soi -F $soi + +soi: 来得正好。$name,在我旁边的这位就是我的师傅。 +author: ... +soi: 喂喂,要不说点什么吧...? +author: ... +show soi -F $soiO +soi: 抱歉,师傅他有点不善言谈,接下来就由我替他给你进一步解释吧—— +think: 夏叶接过了师傅给他的稿子,距离有点远,没能看清上面的字。 +show soi -F $soi +soi: 我尽量按照师傅的原意转述,有些地方会有点理解困难我会尽量补充说明,还请见谅。 +: 咳咳。 +: 如你所见,在第四维度,这个世界的一切都被一个称之为⌈Misakura」的程序所运行着,世界的创造者...确切的说是这个程序的制作者是我的师傅。 + +calc device "navigator.userAgent.toLowerCase().includes(`windows`) && `电脑` || `手机`" +self: 说起来,我确实在我的$device上打开了这样一个程序,然后就...眼前一黑了? +show soi -F $soiSh +soi: 在你们的世界,这个世界被统一称之为视觉小说或者说美少女游戏...? +self: 确实是这么回事,我记得我玩过许多的美少女游戏—— +: 那是由文字、音乐、图像巧妙结合的一种独特载体,每一个美少女游戏对我来说都是一个故事—— +: 尽管有些故事看似平凡又枯燥,但却依旧动人心弦,足以铭记良久的眼泪收割情景。 +show soi -F $soi +soi: 嗯...身为这个世界之中的我并不是很能体会到这种心情...能说说为什么喜欢这样的世界呢? +self: 无论最终是喜是悲,这里都有太多美好和感动,或许是我过于厌倦真正枯燥无味的现实了吧... +soi: 对你们而言,这样的世界是虚拟的吗?如果是的话...那还有什么意义呢? + +options choice 世界的意义在于世界之外 不是虚拟的!一定在某个遥远的地方真实存在! +if "$choice == 0" "say 净说些难懂的话欺负我! -S soi" +if "$choice == 1" "say 这样啊...我明白呢。 -S soi" + +show soi -F $soiS +soi: 那么对你们而言,这样的世界或者说...故事。在结束之后是否会有失落感呢? +self: 肯定会的啊—— +: 就像我刚才说的那样,有些故事是 bad end,这会让人感到意难平,即便是一些留白的或者美好的 good end,也不免会让人产生一种空虚感,似乎叫什么⌈完结综合征」? +: 不同的人会用不同的方式去回味故事中的点点滴滴。有些人会写感言,有些人会循环播放游戏的音乐、会把自己的账号头像、壁纸、背景甚至是签名都换成游戏中的某一角色—— +: 当然,我想也会有选择沉默将这份感情藏于心底的人吧。 +soi: 看来你对这样的虚拟世界感到满足呢。 +self: 是啊,不过...当空虚感经历地太多,我就会想着自己也要去做些什么的念头—— +soi: 具体是指? +self: 比如说成为一名脚本家,或者一名作曲家制作音乐感动他人,又或者成为一名画师通过画笔绘制出令人喜爱的美少女。 +show soi -F $soiOL +soi: 脚..本..家? +self: 就是指故事的编写者,类似于⌈编剧」吧? +soi: 呃,是吗...还以为是写脚本文件的程序员呢...能否告诉我你最喜欢的脚本家呢? +self: 那当然是—— + +options choice 麻子 爱的战士 奈须蘑菇 片岗智 RKR 扶她自 雪人 濑户口 口三才 丸户史明 打越钢太郎 其它 +if "$choice == 11" "prompt temp" + +show soi -F $soiS +soi: 我知道了。 +self: 简而言之就是想要自己制作一款美少女游戏,让其它的观众也能因自己笔下的角色流泪或者产生共鸣! +: 没错,这也正是我打开⌈Misakura」的原因。 +soi: 那么说回正题—— + +show soi -F $soi + +: ⌈Misakura」基于 PIXIJS、Tauri 与 TypeScript 开发,致力于为用户提供一个简单、易用、功能丰富的编辑环境与游戏框架,让用户能够轻松制作出一个独属于自己的作品。 +: 前端底层使用基于真实 DOM 操作的 SolidJS 框架,桌面端使用基于 Rust 开发的 Tauri 框架,保证了高性能与流畅的渲染效果—— +: SolidJS 从根本实现上便碾压一众基于 Vue / React 框架的视觉小说引擎,而 Tauri 从性能与打包大小上双重碾压肮脏的 Electron 等框架。 +: 并且同时支持原生 Web 应用、桌面应用、移动应用等多个平台。 +: 既支持自定义脚本文件,也支持引用 JavaScript 文件实现各种复杂逻辑,以及高定制度的 JsonUI。 +: 好了,故事就暂时到这里了。 +: bye~ diff --git a/packages/demo/public/scripts/main.mrs b/packages/demo/public/scripts/main.mrs index 1649735..4f6b7aa 100644 --- a/packages/demo/public/scripts/main.mrs +++ b/packages/demo/public/scripts/main.mrs @@ -15,79 +15,164 @@ const soiO shiori_open.png const soiOL shiori_open_low.png const soiSh shiori_shy.png const soiSq shiori_squint.png - +let score 0 # Register characters character soi --name '少女' --figure $soi character self --name '“我”?' +character author --name '夏叶的师傅' # Start game title 现实的边缘开始模糊... -title 闪烁的霓虹, -T red -title 伴随意识的碎片, -T red -title 世界在头脑中不断重组... +title 闪烁的霓虹—— -T red +title 伴随意识的碎片—— -T orange +title 世界在头脑中不断重组... -T yellow title . title ... title ...... title ... -title "World connected successfully" -T lightgreen +title . +title "⌈世界」连接成功。" -T lightgreen -think: 刺眼的阳光令我难以忍受 +think: 刺眼的阳光令我难以忍受。 background /images/background/seaside_beach.png -: 我睁开了眼 -: 我意识到我似乎我一直都在这站着 -: 我向四周望去,没有所谓陌生的天花板,视野格外广阔 +: 我睁开了眼—— +: 我意识到我似乎我一直都在这站着。 +: 我向四周望去,没有所谓陌生的天花板,视野格外广阔。 : 等下... show soi -: 不知什么时候,在我面前出现了一位和服少女 -: 浅蓝色的瞳孔,和一副看起来既可爱又显冷淡的样子 -: 少女目不转睛地盯着我 -: 某种本能让我产生开口说些什么的欲望,以试图解答各种眼前的疑惑 -: 正当我准备开口时,突然发现 -: 我对自己的名字有点模糊了...我是“我”吗?我在心里问着自己 +: 不知什么时候,在我面前出现了一位和服少女。 +: 浅蓝色的瞳孔,和一副看起来既可爱又显冷淡的样子。 +: 少女目不转睛地盯着我。 +: 某种本能让我产生开口说些什么的欲望,以试图解答各种眼前的疑惑。 +: 正当我准备开口时,突然发现。 +: 我对自己的名字有点模糊了...我是“我”吗?我在心里问着自己。 + +show soi -F $soiSq -soi: 是有什么疑惑吗? -think: 少女向满脸疑惑的我轻声开口道 +soi: 有什么疑惑吗? +think: 少女向满脸疑惑的我轻声开口道。 self: 请问...你是? -soi: 啊...抱歉,忘记做自我介绍了 +soi: 啊...抱歉,忘记做自我介绍了。 character soi --name '诗织' -show soi -F $soiS +show soi -F $soiSh +soi: 初次见面,我叫夏叶诗织。 self: 你好,我是... -think: 我不断努力地从脑海中寻找名字的信息 -title "Uncaught ReferenceError: name is not defined" -B red -F black -: ...名字未定义? -: 搜寻名字的过程中突然出现了一串费解的文字在我眼前 +think: 我不断努力地从脑海中寻找名字的信息。 +title "Uncaught ReferenceError: name is not defined" -B red -T black +: ...? +: 搜寻名字的过程中突然出现了一串费解的文字在我眼前。 show soi -F $soi -soi: 忘记自己名字了吗...那就让我来回答一下你的疑惑吧 -think: 夏叶看着不知所措的我再次说道 -soi: 这里是由我的师傅创造出的一个虚拟世界,而我是这个世界的管理者之一 +soi: 看来情况有点乱啊...那就让我一一回答下你的疑惑吧。 +think: 夏叶看着不知所措的我再次说道。 +soi: 这里是由我的师傅创造出的世界,而我是这个世界的管理者之一。 self: 之一? -soi: 嗯...师傅是这样跟我说的,可能是在挖坑吧 -: 至于你忘记自己名字的原因,可能算不上是忘记,因为当我对你使用 typeof 操作符后发现你并非 Character 及其子类的实例 -: 而是 Player 的实例,这说明你并非这个世界的角色或路人,在你这一实例的原型对象上还定义了一些 setTime 之类与时间相关的方法 +soi: 嗯...师傅是这样跟我说的,可能是在挖坑吧。 +: 至于你自己,当我尝试使用 typeof 操作符后发现你并非 Character 及其子类的实例—— +: 而是 Player 的实例,这说明你并非这个世界的角色或路人,在你这一实例的 prototype 上还定义了一些 setTime 之类与时间相关的方法。 self: 啊?这是什么意思? -soi: 怎么说呢,我也是第一次见到这种实例,之前只在师傅口中提到过。 -: 总之你有操作这个世界时间的能力,在我所知的构造器中甚至是我自己都没有被定义与时间相关的方法 -: 据我推测,你并不属于这个世界,而是来自第四维度的人,Player 实例是你寄宿在这个世界的一种方式 +soi: 怎么说呢,我也是第一次见到这种实例,之前只是听闻过。 +: 总之你有操作这个世界时间的能力,在我所知的 Constructor 中甚至是我自己都没有被定义与时间相关的方法—— +: 据我推测,你并不属于这个世界,而是来自第四维度的人,Player 实例是你寄宿在这个世界的一种方式。 self: 啊???那为什么我不知道自己的名字也没有这方面的记忆? -soi: 嗯...你不知道自己名字应该是师傅不知道怎么取名,所以没有为 Player 实例定义 name 属性吧,至于记忆这块,我就不清楚了,这可能得问师傅他呢 -: 总之,要不这样吧...请你现在给自己想一个称呼: -think: 取什么好呢? +soi: 嗯...你不知道自己名字应该是师傅不知道怎么取名,所以没有为 Player 实例定义 name 属性吧,至于剩下的,可能得问他本人呢,当然也说不定是程序 bug 哦。 +: 总之,要不这样吧...请你现在给自己想一个称呼—— +think: 叫什么好呢? prompt name character self --name $name -soi: 初次见面 $name,以后请多多关照哦 +show soi -F $soiCS + +soi: 你好$name,以后请多多关照哦 self: 初次见面。对了,你一直说的师傅是...? -soi: 师傅他 + +show soi -F $soiS + +soi: 如前面所说,师傅他创造了这个世界,同时也创造出了我的一切,给予了我生命和名字,是我非常非常尊敬的人,而他本身也不属于这个世界,跟你一样都来自第四维度。 +: 顺带一提,师傅给我的设定是带有反差萌并且充满智慧的三无少女,因为他似乎很喜欢这一类角色...不过我觉得也有他懒得给我画表情这一原因在里面。 + +options choice 我好像想起什么了 那你话是不是有点多了? +if "$choice == 1" "say 请不要在意这些细节! -S soi" +if "$choice == 1" "calc score $score-1" +if "$choice == 0" "say 是指? -S soi" +if "$choice == 0" "say 可能是几分钟前,又或者更早,我点开了一个叫做⌈Misakura」的程序,好像是什么视觉小说制作引擎? -S self" +if "$choice == 0" "say 原来如此...世界之外的存在是这样称呼这个世界的啊 -S soi" + +think: 紧接着,夏叶的旁边出现了一个人。 + +show soi -F $soi + +soi: 来得正好。$name,在我旁边的这位就是我的师傅。 +author: ... +soi: 喂喂,要不说点什么吧...? +author: ... +show soi -F $soiO +soi: 抱歉,师傅他有点不善言谈,接下来就由我替他给你进一步解释吧—— +think: 夏叶接过了师傅给他的稿子,距离有点远,没能看清上面的字。 +show soi -F $soi +soi: 我尽量按照师傅的原意转述,有些地方会有点理解困难我会尽量补充说明,还请见谅。 +: 咳咳。 +: 如你所见,在第四维度,这个世界的一切都被一个称之为⌈Misakura」的程序所运行着,世界的创造者...确切的说是这个程序的制作者是我的师傅。 + +calc device "navigator.userAgent.toLowerCase().includes(`windows`) && `电脑` || `手机`" +self: 说起来,我确实在我的$device上打开了这样一个程序,然后就...眼前一黑了? +show soi -F $soiSh +soi: 在你们的世界,这个世界被统一称之为视觉小说或者说美少女游戏...? +self: 确实是这么回事,我记得我玩过许多的美少女游戏—— +: 那是由文字、音乐、图像巧妙结合的一种独特载体,每一个美少女游戏对我来说都是一个故事—— +: 尽管有些故事看似平凡又枯燥,但却依旧动人心弦,足以铭记良久的眼泪收割情景。 +show soi -F $soi +soi: 嗯...身为这个世界之中的我并不是很能体会到这种心情...能说说为什么喜欢这样的世界呢? +self: 无论最终是喜是悲,这里都有太多美好和感动,或许是我过于厌倦真正枯燥无味的现实了吧... +soi: 对你们而言,这样的世界是虚拟的吗?如果是的话...那还有什么意义呢? + +options choice 世界的意义在于世界之外 不是虚拟的!一定在某个遥远的地方真实存在! +if "$choice == 0" "say 净说些难懂的话欺负我! -S soi" +if "$choice == 1" "say 这样啊...我明白呢。 -S soi" + +show soi -F $soiS +soi: 那么对你们而言,这样的世界或者说...故事。在结束之后是否会有失落感呢? +self: 肯定会的啊—— +: 就像我刚才说的那样,有些故事是 bad end,这会让人感到意难平,即便是一些留白的或者美好的 good end,也不免会让人产生一种空虚感,似乎叫什么⌈完结综合征」? +: 不同的人会用不同的方式去回味故事中的点点滴滴。有些人会写感言,有些人会循环播放游戏的音乐、会把自己的账号头像、壁纸、背景甚至是签名都换成游戏中的某一角色—— +: 当然,我想也会有选择沉默将这份感情藏于心底的人吧。 +soi: 看来你对这样的虚拟世界感到满足呢。 +self: 是啊,不过...当空虚感经历地太多,我就会想着自己也要去做些什么的念头—— +soi: 具体是指? +self: 比如说成为一名脚本家,或者一名作曲家制作音乐感动他人,又或者成为一名画师通过画笔绘制出令人喜爱的美少女。 +show soi -F $soiOL +soi: 脚..本..家? +self: 就是指故事的编写者,类似于⌈编剧」吧? +soi: 呃,是吗...还以为是写脚本文件的程序员呢...能否告诉我你最喜欢的脚本家呢? +self: 那当然是—— + +options choice 麻子 爱的战士 奈须蘑菇 片岗智 RKR 扶她自 雪人 濑户口 口三才 丸户史明 打越钢太郎 其它 +if "$choice == 11" "prompt temp" + +show soi -F $soiS +soi: 我知道了。 +self: 简而言之就是想要自己制作一款美少女游戏,让其它的观众也能因自己笔下的角色流泪或者产生共鸣! +: 没错,这也正是我打开⌈Misakura」的原因。 +soi: 那么说回正题—— + +show soi -F $soi + +: ⌈Misakura」基于 PIXIJS、Tauri 与 TypeScript 开发,致力于为用户提供一个简单、易用、功能丰富的编辑环境与游戏框架,让用户能够轻松制作出一个独属于自己的作品。 +: 前端底层使用基于真实 DOM 操作的 SolidJS 框架,桌面端使用基于 Rust 开发的 Tauri 框架,保证了高性能与流畅的渲染效果—— +: SolidJS 从根本实现上便碾压一众基于 Vue / React 框架的视觉小说引擎,而 Tauri 从性能与打包大小上双重碾压肮脏的 Electron 等框架。 +: 并且同时支持原生 Web 应用、桌面应用、移动应用等多个平台。 +: 既支持自定义脚本文件,也支持引用 JavaScript 文件实现各种复杂逻辑,以及高定制度的 JsonUI。 +: 好了,故事就暂时到这里了。 +: bye~ diff --git a/packages/demo/src-tauri/Cargo.lock b/packages/demo/src-tauri/Cargo.lock new file mode 100644 index 0000000..26e682a --- /dev/null +++ b/packages/demo/src-tauri/Cargo.lock @@ -0,0 +1,3801 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.7.4", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" + +[[package]] +name = "cairo-rs" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" +dependencies = [ + "bitflags 1.3.2", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "cargo_toml" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838" +dependencies = [ + "serde", + "toml 0.7.8", +] + +[[package]] +name = "cc" +version = "1.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +dependencies = [ + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" +dependencies = [ + "byteorder", + "fnv", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-targets 0.52.6", +] + +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation", + "core-graphics-types", + "libc", + "objc", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec", + "syn 1.0.109", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.77", +] + +[[package]] +name = "ctor" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" +dependencies = [ + "quote", + "syn 2.0.77", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.77", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "demo" +version = "0.1.0" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-build", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.77", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "embed-resource" +version = "2.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" +dependencies = [ + "cc", + "memchr", + "rustc_version", + "toml 0.8.19", + "vswhom", + "winreg", +] + +[[package]] +name = "embed_plist" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "flate2" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +dependencies = [ + "crc32fast", + "miniz_oxide 0.8.0", +] + +[[package]] +name = "fluent-uri" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17c704e9dbe1ddd863da1e6ff3567795087b1eb201ce80d8fa81162e1516500d" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" +dependencies = [ + "bitflags 1.3.2", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7" +dependencies = [ + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.2.2", +] + +[[package]] +name = "gdkwayland-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca49a59ad8cfdf36ef7330fe7bdfbe1d34323220cc16a0de2679ee773aee2c2" +dependencies = [ + "gdk-sys", + "glib-sys", + "gobject-sys", + "libc", + "pkg-config", + "system-deps 6.2.2", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys", + "libc", + "system-deps 6.2.2", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "windows 0.48.0", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "gio" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +dependencies = [ + "bitflags 1.3.2", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys", + "gobject-sys", + "libc", + "once_cell", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "glib-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +dependencies = [ + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "gobject-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +dependencies = [ + "glib-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gtk" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" +dependencies = [ + "atk", + "bitflags 1.3.2", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "pango-sys", + "system-deps 6.2.2", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "684c0456c086e8e7e9af73ec5b84e35938df394712054550e81558d21c44ab0d" +dependencies = [ + "anyhow", + "proc-macro-crate", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.11", +] + +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ico" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3804960be0bb5e4edb1e1ad67afd321a9ecfd875c3e65c099468fd2717d7cae" +dependencies = [ + "byteorder", + "png", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.7", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "infer" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" +dependencies = [ + "cfb", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "jsonptr" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6e529149475ca0b2820835d3dce8fcc41c6b943ca608d32f35b449255e4627" +dependencies = [ + "fluent-uri", + "serde", + "serde_json", +] + +[[package]] +name = "kuchikiki" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" +dependencies = [ + "cssparser", + "html5ever", + "indexmap 1.9.3", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "loom" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen 0.10.0", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "ndk" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.36.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "open" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2078c0039e6a54a0c42c28faa984e115fb4c2d5bf2208f77d1961002df8576f8" +dependencies = [ + "pathdiff", + "windows-sys 0.42.0", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pango" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" +dependencies = [ + "bitflags 1.3.2", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa" +dependencies = [ + "glib-sys", + "gobject-sys", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros 0.11.2", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.5", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "plist" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +dependencies = [ + "base64 0.22.1", + "indexmap 2.5.0", + "quick-xml", + "serde", + "time", +] + +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide 0.7.4", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags 1.3.2", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "serde_json" +version = "1.0.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +dependencies = [ + "indexmap 2.5.0", + "itoa 1.0.11", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.5.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "soup2" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" +dependencies = [ + "bitflags 1.3.2", + "gio", + "glib", + "libc", + "once_cell", + "soup2-sys", +] + +[[package]] +name = "soup2-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" +dependencies = [ + "bitflags 1.3.2", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b" +dependencies = [ + "loom", +] + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml 0.5.11", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr 0.15.8", + "heck 0.5.0", + "pkg-config", + "toml 0.8.19", + "version-compare 0.2.0", +] + +[[package]] +name = "tao" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575c856fc21e551074869dcfaad8f706412bd5b803dfa0fbf6881c4ff4bfafab" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkwayland-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys", + "gtk", + "image", + "instant", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "png", + "raw-window-handle", + "scopeguard", + "serde", + "tao-macros", + "unicode-segmentation", + "uuid", + "windows 0.39.0", + "windows-implement", + "x11-dl", +] + +[[package]] +name = "tao-macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "tar" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tauri" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e33e3ba00a3b05eb6c57ef135781717d33728b48acf914bb05629e74d897d29" +dependencies = [ + "anyhow", + "cocoa", + "dirs-next", + "dunce", + "embed_plist", + "encoding_rs", + "flate2", + "futures-util", + "getrandom 0.2.15", + "glib", + "glob", + "gtk", + "heck 0.5.0", + "http", + "ignore", + "objc", + "once_cell", + "open", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "regex", + "semver", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-build" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fb5a90a64241ddb7217d3210d844149070a911e87e8a107a707a1d4973f164" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs-next", + "heck 0.5.0", + "json-patch", + "semver", + "serde", + "serde_json", + "tauri-utils", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-codegen" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93a9e3f5cebf779a63bf24903e714ec91196c307d8249a0008b882424328bcda" +dependencies = [ + "base64 0.21.7", + "brotli", + "ico", + "json-patch", + "plist", + "png", + "proc-macro2", + "quote", + "regex", + "semver", + "serde", + "serde_json", + "sha2", + "tauri-utils", + "thiserror", + "time", + "uuid", + "walkdir", +] + +[[package]] +name = "tauri-macros" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1d0e989f54fe06c5ef0875c5e19cf96453d099a0a774d5192ab47e80471cdab" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 1.0.109", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f33fda7d213e239077fad52e96c6b734cecedb30c2382118b64f94cb5103ff3a" +dependencies = [ + "gtk", + "http", + "http-range", + "rand 0.8.5", + "raw-window-handle", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "url", + "uuid", + "webview2-com", + "windows 0.39.0", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.14.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c447dcd9b0f09c7dc4b752cc33e72788805bfd761fbda5692d30c48289efec" +dependencies = [ + "cocoa", + "gtk", + "percent-encoding", + "rand 0.8.5", + "raw-window-handle", + "tauri-runtime", + "tauri-utils", + "uuid", + "webkit2gtk", + "webview2-com", + "windows 0.39.0", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0c939e88d82903a0a7dfb28388b12a3c03504d6bd6086550edaa3b6d8beaa" +dependencies = [ + "brotli", + "ctor", + "dunce", + "glob", + "heck 0.5.0", + "html5ever", + "infer", + "json-patch", + "kuchikiki", + "log", + "memchr", + "phf 0.11.2", + "proc-macro2", + "quote", + "semver", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", + "walkdir", + "windows-version", +] + +[[package]] +name = "tauri-winres" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5993dc129e544393574288923d1ec447c857f3f644187f4fbf7d9a875fbfc4fb" +dependencies = [ + "embed-resource", + "toml 0.7.8", +] + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa 1.0.11", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +dependencies = [ + "backtrace", + "bytes", + "pin-project-lite", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.5.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.5.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.77", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "webkit2gtk" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" +dependencies = [ + "bitflags 1.3.2", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys", + "glib", + "glib-sys", + "gobject-sys", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "soup2", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" +dependencies = [ + "atk-sys", + "bitflags 1.3.2", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 6.2.2", +] + +[[package]] +name = "webview2-com" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a769c9f1a64a8734bde70caafac2b96cada12cd4aefa49196b3a386b8b4178" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "webview2-com-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "webview2-com-sys" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac48ef20ddf657755fdcda8dfed2a7b4fc7e4581acce6fe9b88c3d64f29dee7" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows 0.39.0", + "windows-bindgen", + "windows-metadata", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a" +dependencies = [ + "windows-implement", + "windows_aarch64_msvc 0.39.0", + "windows_i686_gnu 0.39.0", + "windows_i686_msvc 0.39.0", + "windows_x86_64_gnu 0.39.0", + "windows_x86_64_msvc 0.39.0", +] + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-bindgen" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68003dbd0e38abc0fb85b939240f4bce37c43a5981d3df37ccbaaa981b47cb41" +dependencies = [ + "windows-metadata", + "windows-tokens", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" +dependencies = [ + "syn 1.0.109", + "windows-tokens", +] + +[[package]] +name = "windows-metadata" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee5e275231f07c6e240d14f34e1b635bf1faa1c76c57cfd59a5cdb9848e4278" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-tokens" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" + +[[package]] +name = "windows-version" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wry" +version = "0.24.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55c80b12287eb1ff7c365fc2f7a5037cb6181bd44c9fce81c8d1cf7605ffad6" +dependencies = [ + "base64 0.13.1", + "block", + "cocoa", + "core-graphics", + "crossbeam-channel", + "dunce", + "gdk", + "gio", + "glib", + "gtk", + "html5ever", + "http", + "kuchikiki", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "sha2", + "soup2", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows 0.39.0", + "windows-implement", +] + +[[package]] +name = "x11" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] diff --git a/packages/demo/src-tauri/icons/128x128.png b/packages/demo/src-tauri/icons/128x128.png deleted file mode 100644 index 6be5e50..0000000 Binary files a/packages/demo/src-tauri/icons/128x128.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/128x128@2x.png b/packages/demo/src-tauri/icons/128x128@2x.png deleted file mode 100644 index e81bece..0000000 Binary files a/packages/demo/src-tauri/icons/128x128@2x.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/32x32.png b/packages/demo/src-tauri/icons/32x32.png deleted file mode 100644 index a437dd5..0000000 Binary files a/packages/demo/src-tauri/icons/32x32.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square107x107Logo.png b/packages/demo/src-tauri/icons/Square107x107Logo.png deleted file mode 100644 index 0ca4f27..0000000 Binary files a/packages/demo/src-tauri/icons/Square107x107Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square142x142Logo.png b/packages/demo/src-tauri/icons/Square142x142Logo.png deleted file mode 100644 index b81f820..0000000 Binary files a/packages/demo/src-tauri/icons/Square142x142Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square150x150Logo.png b/packages/demo/src-tauri/icons/Square150x150Logo.png deleted file mode 100644 index 624c7bf..0000000 Binary files a/packages/demo/src-tauri/icons/Square150x150Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square284x284Logo.png b/packages/demo/src-tauri/icons/Square284x284Logo.png deleted file mode 100644 index c021d2b..0000000 Binary files a/packages/demo/src-tauri/icons/Square284x284Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square30x30Logo.png b/packages/demo/src-tauri/icons/Square30x30Logo.png deleted file mode 100644 index 6219700..0000000 Binary files a/packages/demo/src-tauri/icons/Square30x30Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square310x310Logo.png b/packages/demo/src-tauri/icons/Square310x310Logo.png deleted file mode 100644 index f9bc048..0000000 Binary files a/packages/demo/src-tauri/icons/Square310x310Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square44x44Logo.png b/packages/demo/src-tauri/icons/Square44x44Logo.png deleted file mode 100644 index d5fbfb2..0000000 Binary files a/packages/demo/src-tauri/icons/Square44x44Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square71x71Logo.png b/packages/demo/src-tauri/icons/Square71x71Logo.png deleted file mode 100644 index 63440d7..0000000 Binary files a/packages/demo/src-tauri/icons/Square71x71Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/Square89x89Logo.png b/packages/demo/src-tauri/icons/Square89x89Logo.png deleted file mode 100644 index f3f705a..0000000 Binary files a/packages/demo/src-tauri/icons/Square89x89Logo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/StoreLogo.png b/packages/demo/src-tauri/icons/StoreLogo.png deleted file mode 100644 index 4556388..0000000 Binary files a/packages/demo/src-tauri/icons/StoreLogo.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/icon.icns b/packages/demo/src-tauri/icons/icon.icns deleted file mode 100644 index 12a5bce..0000000 Binary files a/packages/demo/src-tauri/icons/icon.icns and /dev/null differ diff --git a/packages/demo/src-tauri/icons/icon.ico b/packages/demo/src-tauri/icons/icon.ico deleted file mode 100644 index b3636e4..0000000 Binary files a/packages/demo/src-tauri/icons/icon.ico and /dev/null differ diff --git a/packages/demo/src-tauri/icons/icon.png b/packages/demo/src-tauri/icons/icon.png deleted file mode 100644 index e1cd261..0000000 Binary files a/packages/demo/src-tauri/icons/icon.png and /dev/null differ diff --git a/packages/demo/src-tauri/icons/misakura.ico b/packages/demo/src-tauri/icons/misakura.ico new file mode 100644 index 0000000..1fdcb5f Binary files /dev/null and b/packages/demo/src-tauri/icons/misakura.ico differ diff --git a/packages/demo/src-tauri/icons/misakura.png b/packages/demo/src-tauri/icons/misakura.png new file mode 100644 index 0000000..19456fc Binary files /dev/null and b/packages/demo/src-tauri/icons/misakura.png differ diff --git a/packages/demo/src-tauri/tauri.conf.json b/packages/demo/src-tauri/tauri.conf.json index daf5fa8..a55a357 100644 --- a/packages/demo/src-tauri/tauri.conf.json +++ b/packages/demo/src-tauri/tauri.conf.json @@ -7,7 +7,7 @@ "withGlobalTauri": true }, "package": { - "productName": "demo", + "productName": "misakura", "version": "0.1.0" }, "tauri": { @@ -20,9 +20,9 @@ }, "windows": [ { - "title": "demo", - "width": 800, - "height": 600 + "title": "Misakura ~ Demo", + "width": 1313, + "height": 739 } ], "security": { @@ -31,8 +31,13 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.demo.app", - "icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico"] + "identifier": "com.misakura.demo", + "icon": [ + "icons/misakura.png", + "icons/misakura.ico" + ], + "copyright": "© Copyright 2024 Arimura Sena", + "category": "WordGame" } } -} +} \ No newline at end of file