@wwawing/engine 4.1.0-unstable.based-on.3.12.18.p.6 → 4.1.0-unstable.based-on.3.12.19.p.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/wwa.js CHANGED
@@ -18,4 +18,4 @@ i.mode.CTRGladman=function(){var e=i.lib.BlockCipherMode.extend();function t(e){
18
18
 
19
19
  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 HOLDER 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.
20
20
  */
21
- function(){var e=i,t=e.lib,s=t.WordArray,a=t.Hasher,r=e.algo,n=s.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),o=s.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=s.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=s.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=s.create([0,1518500249,1859775393,2400959708,2840853838]),_=s.create([1352829926,1548603684,1836072691,2053994217,0]),u=r.RIPEMD160=a.extend({_doReset:function(){this._hash=s.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var s=0;s<16;s++){var i=t+s,a=e[i];e[i]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var r,u,f,y,v,A,S,T,I,C,P,O=this._hash.words,D=l.words,N=_.words,b=n.words,M=o.words,x=h.words,L=c.words;for(A=r=O[0],S=u=O[1],T=f=O[2],I=y=O[3],C=v=O[4],s=0;s<80;s+=1)P=r+e[t+b[s]]|0,P+=s<16?d(u,f,y)+D[0]:s<32?p(u,f,y)+D[1]:s<48?m(u,f,y)+D[2]:s<64?g(u,f,y)+D[3]:E(u,f,y)+D[4],P=(P=w(P|=0,x[s]))+v|0,r=v,v=y,y=w(f,10),f=u,u=P,P=A+e[t+M[s]]|0,P+=s<16?E(S,T,I)+N[0]:s<32?g(S,T,I)+N[1]:s<48?m(S,T,I)+N[2]:s<64?p(S,T,I)+N[3]:d(S,T,I)+N[4],P=(P=w(P|=0,L[s]))+C|0,A=C,C=I,I=w(T,10),T=S,S=P;P=O[1]+f+I|0,O[1]=O[2]+y+C|0,O[2]=O[3]+v+A|0,O[3]=O[4]+r+S|0,O[4]=O[0]+u+T|0,O[0]=P},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(t.length+1),this._process();for(var a=this._hash,r=a.words,n=0;n<5;n++){var o=r[n];r[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}return a},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function d(e,t,s){return e^t^s}function p(e,t,s){return e&t|~e&s}function m(e,t,s){return(e|~t)^s}function g(e,t,s){return e&s|t&~s}function E(e,t,s){return e^(t|~s)}function w(e,t){return e<<t|e>>>32-t}e.RIPEMD160=a._createHelper(u),e.HmacRIPEMD160=a._createHmacHelper(u)}(Math),i.RIPEMD160)},648:function(e,t,s){var i,a,r,n,o,h,c,l;e.exports=(l=s(518),a=(i=l).lib,r=a.WordArray,n=a.Hasher,o=i.algo,h=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],c=0;c<80;c++){if(c<16)h[c]=0|e[t+c];else{var l=h[c-3]^h[c-8]^h[c-14]^h[c-16];h[c]=l<<1|l>>>31}var _=(i<<5|i>>>27)+o+h[c];_+=c<20?1518500249+(a&r|~a&n):c<40?1859775393+(a^r^n):c<60?(a&r|a&n|r&n)-1894007588:(a^r^n)-899497514,o=n,n=r,r=a<<30|a>>>2,a=i,i=_}s[0]=s[0]+i|0,s[1]=s[1]+a|0,s[2]=s[2]+r|0,s[3]=s[3]+n|0,s[4]=s[4]+o|0},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=Math.floor(s/4294967296),t[15+(i+64>>>9<<4)]=s,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),i.SHA1=n._createHelper(c),i.HmacSHA1=n._createHmacHelper(c),l.SHA1)},623:function(e,t,s){var i,a,r,n,o,h;e.exports=(h=s(518),s(110),a=(i=h).lib.WordArray,r=i.algo,n=r.SHA256,o=r.SHA224=n.extend({_doReset:function(){this._hash=new a.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=n._doFinalize.call(this);return e.sigBytes-=4,e}}),i.SHA224=n._createHelper(o),i.HmacSHA224=n._createHmacHelper(o),h.SHA224)},110:function(e,t,s){var i;e.exports=(i=s(518),function(e){var t=i,s=t.lib,a=s.WordArray,r=s.Hasher,n=t.algo,o=[],h=[];!function(){function t(t){for(var s=e.sqrt(t),i=2;i<=s;i++)if(!(t%i))return!1;return!0}function s(e){return 4294967296*(e-(0|e))|0}for(var i=2,a=0;a<64;)t(i)&&(a<8&&(o[a]=s(e.pow(i,.5))),h[a]=s(e.pow(i,1/3)),a++),i++}();var c=[],l=n.SHA256=r.extend({_doReset:function(){this._hash=new a.init(o.slice(0))},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],l=s[5],_=s[6],u=s[7],d=0;d<64;d++){if(d<16)c[d]=0|e[t+d];else{var p=c[d-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=c[d-2],E=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;c[d]=m+c[d-7]+E+c[d-16]}var w=i&a^i&r^a&r,f=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),y=u+((o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25))+(o&l^~o&_)+h[d]+c[d];u=_,_=l,l=o,o=n+y|0,n=r,r=a,a=i,i=y+(f+w)|0}s[0]=s[0]+i|0,s[1]=s[1]+a|0,s[2]=s[2]+r|0,s[3]=s[3]+n|0,s[4]=s[4]+o|0,s[5]=s[5]+l|0,s[6]=s[6]+_|0,s[7]=s[7]+u|0},_doFinalize:function(){var t=this._data,s=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;return s[a>>>5]|=128<<24-a%32,s[14+(a+64>>>9<<4)]=e.floor(i/4294967296),s[15+(a+64>>>9<<4)]=i,t.sigBytes=4*s.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(l),t.HmacSHA256=r._createHmacHelper(l)}(Math),i.SHA256)},882:function(e,t,s){var i;e.exports=(i=s(518),s(703),function(e){var t=i,s=t.lib,a=s.WordArray,r=s.Hasher,n=t.x64.Word,o=t.algo,h=[],c=[],l=[];!function(){for(var e=1,t=0,s=0;s<24;s++){h[e+5*t]=(s+1)*(s+2)/2%64;var i=(2*e+3*t)%5;e=t%5,t=i}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var a=1,r=0;r<24;r++){for(var o=0,_=0,u=0;u<7;u++){if(1&a){var d=(1<<u)-1;d<32?_^=1<<d:o^=1<<d-32}128&a?a=a<<1^113:a<<=1}l[r]=n.create(o,_)}}();var _=[];!function(){for(var e=0;e<25;e++)_[e]=n.create()}();var u=o.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new n.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var s=this._state,i=this.blockSize/2,a=0;a<i;a++){var r=e[t+2*a],n=e[t+2*a+1];r=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),(O=s[a]).high^=n,O.low^=r}for(var o=0;o<24;o++){for(var u=0;u<5;u++){for(var d=0,p=0,m=0;m<5;m++)d^=(O=s[u+5*m]).high,p^=O.low;var g=_[u];g.high=d,g.low=p}for(u=0;u<5;u++){var E=_[(u+4)%5],w=_[(u+1)%5],f=w.high,y=w.low;for(d=E.high^(f<<1|y>>>31),p=E.low^(y<<1|f>>>31),m=0;m<5;m++)(O=s[u+5*m]).high^=d,O.low^=p}for(var v=1;v<25;v++){var A=(O=s[v]).high,S=O.low,T=h[v];T<32?(d=A<<T|S>>>32-T,p=S<<T|A>>>32-T):(d=S<<T-32|A>>>64-T,p=A<<T-32|S>>>64-T);var I=_[c[v]];I.high=d,I.low=p}var C=_[0],P=s[0];for(C.high=P.high,C.low=P.low,u=0;u<5;u++)for(m=0;m<5;m++){var O=s[v=u+5*m],D=_[v],N=_[(u+1)%5+5*m],b=_[(u+2)%5+5*m];O.high=D.high^~N.high&b.high,O.low=D.low^~N.low&b.low}O=s[0];var M=l[o];O.high^=M.high,O.low^=M.low}},_doFinalize:function(){var t=this._data,s=t.words,i=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;s[i>>>5]|=1<<24-i%32,s[(e.ceil((i+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*s.length,this._process();for(var n=this._state,o=this.cfg.outputLength/8,h=o/8,c=[],l=0;l<h;l++){var _=n[l],u=_.high,d=_.low;u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),c.push(d),c.push(u)}return new a.init(c,o)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),s=0;s<25;s++)t[s]=t[s].clone();return e}});t.SHA3=r._createHelper(u),t.HmacSHA3=r._createHmacHelper(u)}(Math),i.SHA3)},78:function(e,t,s){var i,a,r,n,o,h,c,l;e.exports=(l=s(518),s(703),s(759),a=(i=l).x64,r=a.Word,n=a.WordArray,o=i.algo,h=o.SHA512,c=o.SHA384=h.extend({_doReset:function(){this._hash=new n.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),i.SHA384=h._createHelper(c),i.HmacSHA384=h._createHmacHelper(c),l.SHA384)},759:function(e,t,s){var i;e.exports=(i=s(518),s(703),function(){var e=i,t=e.lib.Hasher,s=e.x64,a=s.Word,r=s.WordArray,n=e.algo;function o(){return a.create.apply(a,arguments)}var h=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=o()}();var l=n.SHA512=t.extend({_doReset:function(){this._hash=new r.init([new a.init(1779033703,4089235720),new a.init(3144134277,2227873595),new a.init(1013904242,4271175723),new a.init(2773480762,1595750129),new a.init(1359893119,2917565137),new a.init(2600822924,725511199),new a.init(528734635,4215389547),new a.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],l=s[5],_=s[6],u=s[7],d=i.high,p=i.low,m=a.high,g=a.low,E=r.high,w=r.low,f=n.high,y=n.low,v=o.high,A=o.low,S=l.high,T=l.low,I=_.high,C=_.low,P=u.high,O=u.low,D=d,N=p,b=m,M=g,x=E,L=w,R=f,B=y,U=v,k=A,W=S,V=T,F=I,Y=C,G=P,H=O,K=0;K<80;K++){var j,X,$=c[K];if(K<16)X=$.high=0|e[t+2*K],j=$.low=0|e[t+2*K+1];else{var J=c[K-15],Z=J.high,q=J.low,z=(Z>>>1|q<<31)^(Z>>>8|q<<24)^Z>>>7,Q=(q>>>1|Z<<31)^(q>>>8|Z<<24)^(q>>>7|Z<<25),ee=c[K-2],te=ee.high,se=ee.low,ie=(te>>>19|se<<13)^(te<<3|se>>>29)^te>>>6,ae=(se>>>19|te<<13)^(se<<3|te>>>29)^(se>>>6|te<<26),re=c[K-7],ne=re.high,oe=re.low,he=c[K-16],ce=he.high,le=he.low;X=(X=(X=z+ne+((j=Q+oe)>>>0<Q>>>0?1:0))+ie+((j+=ae)>>>0<ae>>>0?1:0))+ce+((j+=le)>>>0<le>>>0?1:0),$.high=X,$.low=j}var _e,ue=U&W^~U&F,de=k&V^~k&Y,pe=D&b^D&x^b&x,me=N&M^N&L^M&L,ge=(D>>>28|N<<4)^(D<<30|N>>>2)^(D<<25|N>>>7),Ee=(N>>>28|D<<4)^(N<<30|D>>>2)^(N<<25|D>>>7),we=(U>>>14|k<<18)^(U>>>18|k<<14)^(U<<23|k>>>9),fe=(k>>>14|U<<18)^(k>>>18|U<<14)^(k<<23|U>>>9),ye=h[K],ve=ye.high,Ae=ye.low,Se=G+we+((_e=H+fe)>>>0<H>>>0?1:0),Te=Ee+me;G=F,H=Y,F=W,Y=V,W=U,V=k,U=R+(Se=(Se=(Se=Se+ue+((_e+=de)>>>0<de>>>0?1:0))+ve+((_e+=Ae)>>>0<Ae>>>0?1:0))+X+((_e+=j)>>>0<j>>>0?1:0))+((k=B+_e|0)>>>0<B>>>0?1:0)|0,R=x,B=L,x=b,L=M,b=D,M=N,D=Se+(ge+pe+(Te>>>0<Ee>>>0?1:0))+((N=_e+Te|0)>>>0<_e>>>0?1:0)|0}p=i.low=p+N,i.high=d+D+(p>>>0<N>>>0?1:0),g=a.low=g+M,a.high=m+b+(g>>>0<M>>>0?1:0),w=r.low=w+L,r.high=E+x+(w>>>0<L>>>0?1:0),y=n.low=y+B,n.high=f+R+(y>>>0<B>>>0?1:0),A=o.low=A+k,o.high=v+U+(A>>>0<k>>>0?1:0),T=l.low=T+V,l.high=S+W+(T>>>0<V>>>0?1:0),C=_.low=C+Y,_.high=I+F+(C>>>0<Y>>>0?1:0),O=u.low=O+H,u.high=P+G+(O>>>0<H>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(i+128>>>10<<5)]=Math.floor(s/4294967296),t[31+(i+128>>>10<<5)]=s,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(l),e.HmacSHA512=t._createHmacHelper(l)}(),i.SHA512)},865:function(e,t,s){var i;e.exports=(i=s(518),s(201),s(989),s(953),s(768),function(){var e=i,t=e.lib,s=t.WordArray,a=t.BlockCipher,r=e.algo,n=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],o=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],_=r.DES=a.extend({_doReset:function(){for(var e=this._key.words,t=[],s=0;s<56;s++){var i=n[s]-1;t[s]=e[i>>>5]>>>31-i%32&1}for(var a=this._subKeys=[],r=0;r<16;r++){var c=a[r]=[],l=h[r];for(s=0;s<24;s++)c[s/6|0]|=t[(o[s]-1+l)%28]<<31-s%6,c[4+(s/6|0)]|=t[28+(o[s+24]-1+l)%28]<<31-s%6;for(c[0]=c[0]<<1|c[0]>>>31,s=1;s<7;s++)c[s]=c[s]>>>4*(s-1)+3;c[7]=c[7]<<5|c[7]>>>27}var _=this._invSubKeys=[];for(s=0;s<16;s++)_[s]=a[15-s]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,s){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var a=s[i],r=this._lBlock,n=this._rBlock,o=0,h=0;h<8;h++)o|=c[h][((n^a[h])&l[h])>>>0];this._lBlock=n,this._rBlock=r^o}var _=this._lBlock;this._lBlock=this._rBlock,this._rBlock=_,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){var s=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=s,this._lBlock^=s<<e}function d(e,t){var s=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=s,this._rBlock^=s<<e}e.DES=a._createHelper(_);var p=r.TripleDES=a.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),i=e.length<4?e.slice(0,2):e.slice(2,4),a=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=_.createEncryptor(s.create(t)),this._des2=_.createEncryptor(s.create(i)),this._des3=_.createEncryptor(s.create(a))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=a._createHelper(p)}(),i.TripleDES)},703:function(e,t,s){var i;e.exports=(i=s(518),function(e){var t=i,s=t.lib,a=s.Base,r=s.WordArray,n=t.x64={};n.Word=a.extend({init:function(e,t){this.high=e,this.low=t}}),n.WordArray=a.extend({init:function(t,s){t=this.words=t||[],this.sigBytes=s!=e?s:8*t.length},toX32:function(){for(var e=this.words,t=e.length,s=[],i=0;i<t;i++){var a=e[i];s.push(a.high),s.push(a.low)}return r.create(s,this.sigBytes)},clone:function(){for(var e=a.clone.call(this),t=e.words=this.words.slice(0),s=t.length,i=0;i<s;i++)t[i]=t[i].clone();return e}})}(),i)},156:function(){},699:function(){}},t={};function s(i){var a=t[i];if(void 0!==a)return a.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,s),r.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";function e(t,s=new WeakMap){if("symbol"==typeof t)throw new TypeError("symbol は変換対象外です");if(t instanceof Map){if(s.has(t))return s.get(t);const i=Object.create(null);s.set(t,i);for(const[a,r]of t.entries())i[a]=e(r,s);return i}if(Array.isArray(t)){if(s.has(t))return s.get(t);const i=[];s.set(t,i);for(const a of t)i.push(e(a,s));return i}if("object"==typeof t&&null!==t)throw new TypeError("Mapおよび配列でないオブジェクトは変換対象外です");return t}const t=Object.freeze({CONFIRM_LOAD_SOUND:{code:1,defaultText:"効果音・BGMデータをロードしますか?",mapdataParams:{messageArea:"systemMessage",index:2}},NO_MONEY:{code:101,defaultText:"所持金がたりない。",mapdataParams:{messageArea:"message",index:6}},NO_ITEM:{code:201,mapdataParams:{messageArea:"message",index:7},defaultText:"アイテムを持っていない。"},ITEM_BOX_FULL:{code:202,defaultText:"これ以上、アイテムを持てません。",mapdataParams:{messageArea:"systemMessage",index:1}},ITEM_SELECT_TUTORIAL:{code:203,defaultText:"このアイテムは%HOW_TO_USE_ITEM%ことで使用できます。\n使用できるアイテムは色枠で囲まれます。",mapdataParams:{messageArea:"systemMessage",index:0}},CONFIRM_USE_ITEM:{code:204,defaultText:"このアイテムを使用します。\nよろしいですか?",mapdataParams:{messageArea:"message",index:8}},CANNOT_DAMAGE_MONSTER:{code:301,defaultText:"相手の防御能力が高すぎる!"},BATTLE_NOT_SETTLED:{code:302,defaultText:"勝負がつかない!"},CONFIRM_ENTER_URL_GATE:{code:401,defaultText:"他のページにリンクします。\nよろしいですか?",mapdataParams:{messageArea:"message",index:5}},GAME_SPEED_CHANGED:{code:501,defaultText:"移動速度を【%GAME_SPEED_NAME%】に切り替えました。\n%HIGH_SPEED_MESSAGE%(%MAX_SPEED_INDEX%段階中%GAME_SPEED_INDEX%)\n速度を落とすには%SPEED_DOWN_BUTTON%, 速度を上げるには%SPEED_UP_BUTTON%を押してください。"},GAME_SPEED_CHANGE_DISABLED:{code:502,defaultText:"ここでは移動速度を\n変更できません。"}}),i=Object.keys(t),a=i.reduce(((e,t)=>({...e,[t]:t})),{}),r=t;function n(e){return i.some((t=>t===e))}function o(e){for(let t of i)if(r[t].code===e)return t}class h{add(e){return this.strength+=e.strength,this.defence+=e.defence,this}plus(e){return new h(this.strength+e.strength,this.defence+e.defence)}minus(e){return new h(this.strength-e.strength,this.defence-e.defence)}equals(e){return this.strength===e.strength&&this.defence===e.defence}constructor(e,t){this.strength=e,this.defence=t}}class c extends h{add(e){return e instanceof c&&(this.energy+=e.energy,this.gold+=e.gold),this.strength+=e.strength,this.defence+=e.defence,this}plus(e){return e instanceof c?new c(this.energy+e.energy,this.strength+e.strength,this.defence+e.defence,this.gold+e.gold):new c(this.energy,this.strength+e.strength,this.defence+e.defence,this.gold)}minus(e){return e instanceof c?new c(this.energy-e.energy,this.strength-e.strength,this.defence-e.defence,this.gold-e.gold):new c(this.energy,this.strength-e.strength,this.defence-e.defence,this.gold)}equals(e){return this.energy===e.energy&&this.strength===e.strength&&this.defence===e.defence&&this.gold===e.gold}calculateScore(e){return Object.keys(e.rates).reduce(((t,s)=>t+e.rates[s]*this[s]),0)}clone(){return new c(this.energy,this.strength,this.defence,this.gold)}constructor(e,t,s,i){super(t,s),this.energy=e,this.gold=i}}class l{equals(e){return this.x===e.x&&this.y===e.y}substract(e){return new l(this.x-e.x,this.y-e.y)}clone(){return new l(this.x,this.y)}convertIntoPosition(e){return new _(e,this.x,this.y,0,0)}getDirectionTo(e){return this.x<e.x?this.y>e.y?m.RIGHT_UP:this.y===e.y?m.RIGHT:m.RIGHT_DOWN:this.x===e.x?this.y>e.y?m.UP:this.y===e.y?m.NO_DIRECTION:m.DOWN:this.y>e.y?m.LEFT_UP:this.y===e.y?m.LEFT:m.LEFT_DOWN}toString(){return"("+this.x+", "+this.y+")"}constructor(e=0,t=0){this.x=e,this.y=t}}class _{getPartsCoord(){return this._partsCoord}getOffsetCoord(){return this._offsetCoord}getScreenTopPosition(){var e=Math.floor(this._partsCoord.x/(F.H_PARTS_NUM_IN_WINDOW-1))*(F.H_PARTS_NUM_IN_WINDOW-1),t=Math.floor(this._partsCoord.y/(F.V_PARTS_NUM_IN_WINDOW-1))*(F.V_PARTS_NUM_IN_WINDOW-1);return new _(this._wwa,e,t,0,0)}getDefaultCameraPosition(){var e=this.getScreenTopPosition(),t=e.getPartsCoord(),s=this._wwa.getMapWidth(),i=e.getPartsCoord().clone();return t.x===s-1&&i.x--,t.y===s-1&&i.y--,i.convertIntoPosition(this._wwa).getScreenTopPosition()}getNextJustPosition(e){if(void 0!==e){var t=this._partsCoord;return new _(this._wwa,t.x+g[e],t.y+E[e],0,0)}var s=this._partsCoord.x,i=this._partsCoord.y;return this._offsetCoord.x<0?s--:this._offsetCoord.x>0&&s++,this._offsetCoord.y<0?i--:this._offsetCoord.y>0&&i++,new _(this._wwa,s,i,0,0)}getNextFramePosition(e,t,s){var i=this._partsCoord.x,a=this._partsCoord.y,r=this._offsetCoord.x+g[e]*t,n=this._offsetCoord.y+E[e]*s;if(r<0){var o=Math.floor(Math.abs(r)/F.CHIP_SIZE);i-=o,r=(r+o*F.CHIP_SIZE)%F.CHIP_SIZE}if(n<0){var h=Math.floor(Math.abs(n)/F.CHIP_SIZE);a-=h,n=(n+h*F.CHIP_SIZE)%F.CHIP_SIZE}return r>=F.CHIP_SIZE&&(i+=Math.floor(r/F.CHIP_SIZE),r=(r+F.CHIP_SIZE)%F.CHIP_SIZE),n>=F.CHIP_SIZE&&(a+=Math.floor(n/F.CHIP_SIZE),n=(n+F.CHIP_SIZE)%F.CHIP_SIZE),new _(this._wwa,i,a,r,n)}isJustPosition(){return 0==this._offsetCoord.x&&0==this._offsetCoord.y}isScreenTopPosition(){var e=this.getScreenTopPosition();return this.equals(e)}equals(e){return this._partsCoord.equals(e.getPartsCoord())&&this._offsetCoord.equals(e.getOffsetCoord())}isInCameraRange(e,t=!1){var s=e.getPosition()._partsCoord,i=this._partsCoord.x,a=this._partsCoord.y,r=t?1:0;return s.x<=i&&i<s.x+F.H_PARTS_NUM_IN_WINDOW-r&&s.y<=a&&a<s.y+F.V_PARTS_NUM_IN_WINDOW-r}hasLocalGate(){return this._wwa.getMapTypeByPosition(this)===F.MAP_LOCALGATE||this._wwa.getObjectTypeByPosition(this)===F.OBJECT_LOCALGATE}clone(){return new _(this._wwa,this._partsCoord.x,this._partsCoord.y,this._offsetCoord.x,this._offsetCoord.y)}constructor(e,t,s,i=0,a=0){if(this._wwa=e,void 0===this._wwa)throw new Error("WWAのインスタンスが存在しません. ");var r=this._wwa.getMapWidth();if(t<0||t>=r||t>=r-1&&i>0||s<0||s>=r||s>=r-1&&a>0)throw new Error("範囲外の座標です!! parts:("+t+", "+s+"), offset:("+i+", "+a+"), mapWidth = "+r);this._partsCoord=new l(t,s),this._offsetCoord=new l(i,a)}}class u{constructor(e,t,s){this.destPos=e.clone(),this.srcPos=t.clone(),this.srcSize=s.clone()}}class d{constructor(e,t,s,i,a){this.partsIDObj=e,this.x=t,this.y=s,this.isStatic=i,this.isFighting=a}}var p,m;!function(e){e[e.GOTO_WWA=0]="GOTO_WWA",e[e.BATTLE_REPORT=1]="BATTLE_REPORT",e[e.GAME_END=2]="GAME_END"}(p||(p={})),function(e){e[e.UNUSED=0]="UNUSED",e[e.LEFT=4]="LEFT",e[e.RIGHT=6]="RIGHT",e[e.DOWN=2]="DOWN",e[e.UP=8]="UP",e[e.LEFT_DOWN=1]="LEFT_DOWN",e[e.LEFT_UP=7]="LEFT_UP",e[e.RIGHT_DOWN=3]="RIGHT_DOWN",e[e.RIGHT_UP=9]="RIGHT_UP",e[e.NO_DIRECTION=5]="NO_DIRECTION"}(m||(m={}));const g=[0,-1,0,1,-1,0,1,-1,0,1],E=[0,1,1,1,0,0,0,-1,-1,-1];var w,f,y,v,A,S,T,I,C,P,O,D,N;!function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.UNSELECTED=2]="UNSELECTED"}(w||(w={})),function(e){e[e.MAP=0]="MAP",e[e.OBJECT=1]="OBJECT",e[e.CHOICE_YES=2]="CHOICE_YES",e[e.CHOICE_NO=3]="CHOICE_NO"}(f||(f={})),function(e){e[e.NORMAL=0]="NORMAL",e[e.CAN_USE=1]="CAN_USE",e[e.NOT_DISAPPEAR=2]="NOT_DISAPPEAR"}(y||(y={})),function(e){e[e.MAP=1]="MAP",e[e.OBJECT=0]="OBJECT"}(v||(v={}));class b{constructor(){var e=window.navigator.userAgent;this.os=this._getOS(e),this.browser=this.getBrowser(e),this.device=this.getDevice()}_getOS(e){return e.match(/xbox/i)?A.XBOX:e.match(/windows/i)?A.WINDOWS:e.match(/macintosh/i)?"ontouchstart"in document?A.IOS:A.MACINTOSH:e.match(/iphone|ipad|ipod/i)?A.IOS:e.match(/oculus/i)?A.OCULUS:e.match(/android/i)?A.ANDROID:e.match(/nintendo/i)?A.NINTENDO:e.match(/playstation/i)?A.PLAY_STATION:e.match(/linux/i)?A.LINUX:A.OTHERS}getBrowser(e){return e.match(/chrome/i)?T.CHROME:e.match(/firefox/i)?T.FIREFOX:e.match(/safari/i)?T.SAFARI:T.OTHERS}getDevice(){switch(this.os){case A.WINDOWS:case A.MACINTOSH:case A.LINUX:return S.PC;case A.IOS:case A.ANDROID:return S.SP;case A.OCULUS:return S.VR;case A.NINTENDO:case A.PLAY_STATION:case A.XBOX:return S.GAME}return S.OTHERS}}!function(e){e[e.WINDOWS=1]="WINDOWS",e[e.MACINTOSH=2]="MACINTOSH",e[e.LINUX=3]="LINUX",e[e.ANDROID=4]="ANDROID",e[e.IOS=5]="IOS",e[e.NINTENDO=6]="NINTENDO",e[e.PLAY_STATION=7]="PLAY_STATION",e[e.OCULUS=8]="OCULUS",e[e.XBOX=9]="XBOX",e[e.OTHERS=9999]="OTHERS"}(A||(A={})),function(e){e[e.PC=1]="PC",e[e.SP=2]="SP",e[e.VR=3]="VR",e[e.GAME=4]="GAME",e[e.OTHERS=9999]="OTHERS"}(S||(S={})),function(e){e[e.CHROME=1]="CHROME",e[e.FIREFOX=2]="FIREFOX",e[e.SAFARI=3]="SAFARI",e[e.OTHERS=9999]="OTHERS"}(T||(T={})),function(e){e[e.NONE=0]="NONE",e[e.CALL_BY_MAP_PARTS=1]="CALL_BY_MAP_PARTS",e[e.CALL_BY_OBJECT_PARTS=2]="CALL_BY_OBJECT_PARTS",e[e.CALL_BY_ITEM_USE=3]="CALL_BY_ITEM_USE",e[e.CALL_BY_QUICK_SAVE=4]="CALL_BY_QUICK_SAVE",e[e.CALL_BY_QUICK_LOAD=5]="CALL_BY_QUICK_LOAD",e[e.CALL_BY_RESTART_GAME=6]="CALL_BY_RESTART_GAME",e[e.CALL_BY_GOTO_WWA=7]="CALL_BY_GOTO_WWA",e[e.CALL_BY_PASSWORD_SAVE=8]="CALL_BY_PASSWORD_SAVE",e[e.CALL_BY_PASSWORD_LOAD=9]="CALL_BY_PASSWORD_LOAD",e[e.CALL_BY_END_GAME=10]="CALL_BY_END_GAME",e[e.CALL_BY_SUSPEND=11]="CALL_BY_SUSPEND",e[e.CALL_BY_LOG_QUICK_SAVE=12]="CALL_BY_LOG_QUICK_SAVE",e[e.CALL_BY_LOG_QUICK_LOAD=13]="CALL_BY_LOG_QUICK_LOAD"}(I||(I={})),function(e){e[e.QUICK_LOAD=0]="QUICK_LOAD",e[e.QUICK_SAVE=1]="QUICK_SAVE",e[e.RESTART_GAME=2]="RESTART_GAME",e[e.GOTO_WWA=3]="GOTO_WWA"}(C||(C={})),function(e){e[e.UP=0]="UP",e[e.DOWN=1]="DOWN"}(P||(P={})),function(e){e[e.QUICK_LOAD=0]="QUICK_LOAD",e[e.RESTART_GAME=1]="RESTART_GAME",e[e.PASSWORD=2]="PASSWORD"}(O||(O={})),function(e){e[e.STATIC=0]="STATIC",e[e.CHASE_PLAYER=1]="CHASE_PLAYER",e[e.RUN_OUT=2]="RUN_OUT",e[e.HANG_AROUND=3]="HANG_AROUND"}(D||(D={})),function(e){e[e.MODE_X=0]="MODE_X",e[e.MODE_Y=1]="MODE_Y",e[e.UNDECIDED=2]="UNDECIDED"}(N||(N={}));var M,x=["cell-load","cell-save","cell-restart","cell-gotowwa"];!function(e){e[e.UNDEFINED=0]="UNDEFINED",e[e.IMGPLAYER=1]="IMGPLAYER",e[e.IMGYESNO=2]="IMGYESNO",e[e.HPMAX=3]="HPMAX",e[e.SAVE=4]="SAVE",e[e.ITEM=5]="ITEM",e[e.DEFAULT=6]="DEFAULT",e[e.OLDMAP=7]="OLDMAP",e[e.PARTS=8]="PARTS",e[e.MOVE=9]="MOVE",e[e.MAP=10]="MAP",e[e.DIRMAP=11]="DIRMAP",e[e.IMGFRAME=12]="IMGFRAME",e[e.IMGBOM=13]="IMGBOM",e[e.DELPLAYER=14]="DELPLAYER",e[e.FACE=15]="FACE",e[e.EFFECT=16]="EFFECT",e[e.GAMEOVER=17]="GAMEOVER",e[e.IMGCLICK=18]="IMGCLICK",e[e.STATUS=19]="STATUS",e[e.EFFITEM=20]="EFFITEM",e[e.COLOR=21]="COLOR",e[e.WAIT=22]="WAIT",e[e.SOUND=23]="SOUND",e[e.JUMPGATE=24]="JUMPGATE",e[e.RECPOSITION=25]="RECPOSITION",e[e.JUMPRECPOSITION=26]="JUMPRECPOSITION",e[e.CONSOLE_LOG=27]="CONSOLE_LOG",e[e.COPY_HP_TO=28]="COPY_HP_TO",e[e.SET_HP=29]="SET_HP",e[e.COPY_HPMAX_TO=30]="COPY_HPMAX_TO",e[e.SET_HPMAX=31]="SET_HPMAX",e[e.COPY_AT_TO=32]="COPY_AT_TO",e[e.SET_AT=33]="SET_AT",e[e.COPY_DF_TO=34]="COPY_DF_TO",e[e.SET_DF=35]="SET_DF",e[e.COPY_MONEY_TO=36]="COPY_MONEY_TO",e[e.SET_MONEY=37]="SET_MONEY",e[e.COPY_STEP_COUNT_TO=38]="COPY_STEP_COUNT_TO",e[e.VAR_SET_VAL=39]="VAR_SET_VAL",e[e.VAR_SET=40]="VAR_SET",e[e.VAR_ADD=41]="VAR_ADD",e[e.VAR_SUB=42]="VAR_SUB",e[e.VAR_MUL=43]="VAR_MUL",e[e.VAR_DIV=44]="VAR_DIV",e[e.VAR_SET_RAND=45]="VAR_SET_RAND",e[e.SHOW_STR=46]="SHOW_STR",e[e.GAME_SPEED=47]="GAME_SPEED",e[e.IF=50]="IF",e[e.SET_SPEED=51]="SET_SPEED",e[e.COPY_TIME_TO=52]="COPY_TIME_TO",e[e.HIDE_STATUS=53]="HIDE_STATUS",e[e.VAR_MAP=54]="VAR_MAP",e[e.VAR_MOD=55]="VAR_MOD",e[e.NO_GAMEOVER=56]="NO_GAMEOVER",e[e.ELSE_IF=57]="ELSE_IF",e[e.ELSE=58]="ELSE",e[e.END_IF=59]="END_IF",e[e.SET=60]="SET",e[e.MAP2=61]="MAP2",e[e.SHOW_STR2=62]="SHOW_STR2",e[e.CONSOLE_LOG2=63]="CONSOLE_LOG2",e[e.DELAYBGM=64]="DELAYBGM",e[e.SYSMSG=65]="SYSMSG",e[e.PICTURE=66]="PICTURE",e[e.GAMEPAD_BUTTON=100]="GAMEPAD_BUTTON",e[e.OLDMOVE=101]="OLDMOVE",e[e.LEGACY_IF=10050]="LEGACY_IF"}(M||(M={}));var L,R,B,U={"":0,$imgplayer:1,$imgyesno:2,$hpmax:3,$save:4,$item:5,$default:6,$oldmap:7,$parts:8,$move:9,$map:10,$dirmap:11,$imgframe:12,$imgbom:13,$delplayer:14,$face:15,$effect:16,$gameover:17,$imgclick:18,$status:19,$effitem:20,$color:21,$wait:22,$sound:23,$jumpgate:24,$rec_pos:25,$jump_rec_pos:26,$console_log:27,$copy_hp_to:28,$set_hp:29,$copy_hpmax_to:30,$set_hpmax:31,$copy_at_to:32,$set_at:33,$copy_df_to:34,$set_df:35,$copy_money_to:36,$set_money:37,$copy_step_count_to:38,$var_set_val:39,$var_set:40,$var_add:41,$var_sub:42,$var_mul:43,$var_div:44,$var_set_rand:45,$show_str:46,$game_speed:47,$if:50,$set_speed:51,$copy_time_to:52,$hide_status:53,$var_map:54,$var_mod:55,$no_gameover:56,$else_if:57,$else:58,$endif:59,$set:60,$map2:61,$show_str2:62,$console_log2:63,$delaybgm:64,$sysmsg:65,$picture:66,$gamepad_button:100,$oldmove:101};!function(e){e[e.ENERGY=0]="ENERGY",e[e.STRENGTH=1]="STRENGTH",e[e.DEFENCE=2]="DEFENCE",e[e.GOLD=3]="GOLD",e[e.MOVES=4]="MOVES"}(L||(L={})),function(e){e[e.ENERGY=0]="ENERGY",e[e.STRENGTH=1]="STRENGTH",e[e.DEFENCE=2]="DEFENCE",e[e.GOLD=3]="GOLD",e[e.WIDE_CELL_ROW=4]="WIDE_CELL_ROW",e[e.ITEM_BG=5]="ITEM_BG",e[e.MAIN_FRAME=6]="MAIN_FRAME"}(R||(R={})),function(e){e[e.DECISION=1]="DECISION",e[e.ATTACK=3]="ATTACK",e[e.BGM_LB=70]="BGM_LB",e[e.NO_SOUND=99]="NO_SOUND"}(B||(B={}));const k=[1,2,5,8,10,20],W=["超低速","低速","準低速","中速","高速","超高速"],V=["energy","strength","defence","gold"];class F{}F.WWA_HOME="http://wwajp.com",F.ITEMBOX_SIZE=12,F.MAP_ATR_MAX=60,F.OBJ_ATR_MAX=60,F.OLD_MAP_ATR_MAX=40,F.OLD_OBJ_ATR_MAX=40,F.ATR_TYPE=3,F.ATR_MODE=4,F.ATR_STRING=5,F.ATR_X=6,F.ATR_Y=7,F.ATR_X2=8,F.ATR_Y2=9,F.ATR_ENERGY=10,F.ATR_STRENGTH=11,F.ATR_DEFENCE=12,F.ATR_GOLD=13,F.ATR_ITEM=14,F.ATR_NUMBER=15,F.ATR_JUMP_X=16,F.ATR_MOVE=16,F.ATR_JUMP_Y=17,F.ATR_SOUND=19,F.ATR_APPERANCE_BASE=20,F.REL_ATR_APPERANCE_ID=0,F.REL_ATR_APPERANCE_X=1,F.REL_ATR_APPERANCE_Y=2,F.REL_ATR_APPERANCE_TYPE=3,F.REL_ATR_APPERANCE_UNIT_LENGTH=4,F.ATR_RANDOM_BASE=10,F.RANDOM_ATR_NUM=10,F.RANDOM_ITERATION_MAX=10,F.MAP_STREET=0,F.MAP_WALL=1,F.MAP_LOCALGATE=2,F.MAP_URLGATE=4,F.OBJECT_NORMAL=0,F.OBJECT_MESSAGE=1,F.OBJECT_URLGATE=2,F.OBJECT_STATUS=3,F.OBJECT_ITEM=4,F.OBJECT_DOOR=5,F.OBJECT_MONSTER=6,F.OBJECT_SCORE=11,F.OBJECT_SELL=14,F.OBJECT_BUY=15,F.OBJECT_RANDOM=16,F.OBJECT_SELECT=17,F.OBJECT_LOCALGATE=18,F.SYSTEM_MESSAGE_NUM=20,F.IMGPOS_DEFAULT_YESNO_X=3,F.IMGPOS_DEFAULT_YESNO_Y=1,F.IMGRELPOS_YESNO_YES_X=0,F.IMGRELPOS_YESNO_NO_X=1,F.IMGRELPOS_YESNO_YESP_X=2,F.IMGRELPOS_YESNO_NOP_X=3,F.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X=0,F.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y=0,F.IMGPOS_DEFAULT_FRAME_X=0,F.IMGPOS_DEFAULT_FRAME_Y=1,F.IMGPOS_DEFAULT_BATTLE_EFFECT_X=3,F.IMGPOS_DEFAULT_BATTLE_EFFECT_Y=3,F.DEFAULT_DISABLE_SAVE=!1,F.DEFAULT_OLDMAP=!1,F.DEFAULT_OBJECT_NO_COLLAPSE=!1,F.SPLASH_SCREEN_DISP_MILLS=100,F.DEFAULT_FRAME_INTERVAL=20,F.GAMEOVER_FRAME_INTERVAL=50,F.YESNO_PRESS_DISP_FRAME_NUM=20,F.WAIT_TIME_FRAME_NUM=6,F.CHIP_SIZE=40,F.MAP_WINDOW_WIDTH=440,F.MAP_WINDOW_HEIGHT=440,F.H_PARTS_NUM_IN_WINDOW=F.MAP_WINDOW_WIDTH/F.CHIP_SIZE,F.V_PARTS_NUM_IN_WINDOW=F.MAP_WINDOW_HEIGHT/F.CHIP_SIZE,F.MIN_SPEED_INDEX=0,F.MAX_SPEED_INDEX=k.length-1,F.QUICK_BATTLE_SPEED_INDECIES=[k.length-2,k.length-1],F.ANIMATION_REP_HALF_FRAME=22,F.PLAYER_LOOKING_AROUND_START_FRAME=4*F.ANIMATION_REP_HALF_FRAME,F.RELATIVE_COORD_BIAS=1e4,F.RELATIVE_COORD_LOWER=F.RELATIVE_COORD_BIAS-1e3,F.PLAYER_COORD=F.RELATIVE_COORD_BIAS-1e3,F.LOCALGATE_PLAYER_WAIT_FRAME=5,F.STATUS_CHANGED_EFFECT_FRAME_NUM=20,F.PASSABLE_OBJECT=1,F.APPERANCE_PARTS_MIN_INDEX=0,F.APPERANCE_PARTS_MAX_INDEX=9,F.APPERANCE_PARTS_MIN_INDEX_NO=5,F.APPERANCE_PARTS_MAX_INDEX_YES=4,F.FADEOUT_SPEED=8,F.STATUS_MINUS_BORDER=3e4,F.ITEMBOX_IS_FULL=-1,F.BATTLE_INTERVAL_FRAME_NUM=10,F.BATTLE_SPEED_CHANGE_TURN_NUM=40,F.RANDOM_MOVE_ITERATION_NUM=50,F.RANDOM_MOVE_ITERATION_NUM_BEFORE_V31=8,F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX=8,F.SOUND_MAX=100,F.ITEM_BORDER_IMG_DATA_URL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAArklEQVRYR+2Y0QqAIAxFt///aENJHwxxuJUSxzeh3S7HXaNpEkly4FIRzba0GEyHeVTN7jqDWvb7V4Y1NLibZIY0NbiL5G3MZLCe / 1fn3XJgJYjB7mgg6O1VCEKwXo79JeklY62nB62kRs9BEIKkeNIDhISQEBJC4k0BBCF4D7D4cV9shf99ixdB + MrM0y3fa3zV05D45GOqhwPMGPkYlccIOEY2VKUN0UNVXxC7ADj7mDi9aFZZAAAAAElFTkSuQmCC",F.LOAD_STAGE_MAX_EXCEPT_AUDIO=7,F.WWA_STYLE_TAG_ID="wwa-additional-style",F.DEFAULT_FRAME_COLOR_R=255,F.DEFAULT_FRAME_COLOR_G=255,F.DEFAULT_FRAME_COLOR_B=255,F.DEFAULT_FRAMEOUT_COLOR_R=96,F.DEFAULT_FRAMEOUT_COLOR_G=96,F.DEFAULT_FRAMEOUT_COLOR_B=96,F.DEFAULT_STRBACK_COLOR_R=0,F.DEFAULT_STRBACK_COLOR_G=0,F.DEFAULT_STRBACK_COLOR_B=0,F.DEFAULT_STATUS_COLOR_R=0,F.DEFAULT_STATUS_COLOR_G=0,F.DEFAULT_STATUS_COLOR_B=0,F.KEYPRESS_MESSAGE_CHANGE_FRAME_NUM=20,F.WWAP_SERVER_OLD="http://wwawing.com/wwap",F.WWAP_SERVER="https://wwaphoenix.github.io",F.WWAP_SERVER_AUDIO_DIR="audio",F.WWAP_SERVER_TITLE_IMG="cover_p.gif",F.WWAP_SERVER_LOADER_NO_WORKER="wwaload.noworker.js",F.SCREEN_WIDTH=560,F.SCREEN_HEIGHT=440,F.LOADING_FONT="Times New Roman",F.MSG_STR_WIDTH=16,F.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME=20,F.ITEMBOX_TOP_Y=140,F.USER_VAR_NUM=256,F.USER_VAR_NUM_MAX_VALUE=9007199254740991,F.USET_VAR_NUM_MIN_VALUE=-9007199254740991,F.CONTROLL_WAIT_FRAME=6,F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM=10,F.FIGHT_DRAW_TURN=40;class Y{}Y.QUICK_SAVE_MAX=4,Y.QUICK_SAVE_THUMNAIL_WIDTH=99,Y.QUICK_SAVE_THUMNAIL_HEIGHT=99,Y.SAVE_INTERVAL_MOVE=200,Y.INDEXEDDB_DB_NAME="WWA_WING_DB",Y.INDEXEDDB_TABLE_NAME="SAVE_TABLE",Y.DATE_LAST_SAVE_TEXT_COLOR="rgba(255,255,0,1)";class G{}G.EMPTY_LOAD="",G.EMPTY_SAVE="",G.PASSWORD="Password",G.QUICK_SAVE="Quick Save",G.QUICK_LOAD="Quick Load",G.BATTLE_REPORT="Battle Report",G.GAME_END="Game End",G.GOTO_WWA="Goto WWA",G.RESTART_GAME="Restart Game";class H{}var K;!function(e){e[e.INIT=0]="INIT",e[e.MAP_LOAD=1]="MAP_LOAD",e[e.OBJ_LOAD=2]="OBJ_LOAD",e[e.MAP_ATTR=3]="MAP_ATTR",e[e.OBJ_ATTR=4]="OBJ_ATTR",e[e.RAND_PARTS=5]="RAND_PARTS",e[e.MESSAGE=6]="MESSAGE",e[e.GAME_INIT=7]="GAME_INIT",e[e.AUDIO=8]="AUDIO",e[e.FINISH=9]="FINISH"}(K||(K={}));var j,X,$,J,Z,q,z,Q,ee,te,se,ie=["ロードの準備をしています。","背景パーツを読み込んでいます。","物体パーツを読み込んでます。","背景パーツの属性を読み込んでます。","物体パーツの属性を読み込んでます。","ランダムパーツを置換しています。","メッセージを読み込んでます。","Welcome to WWA Wing!"],ae=["Welcome to WWA Wing!","Now Map Data Loading .....","Now CG Data Loading .....","Now Making chara CG ....."];!function(e){e[e.LINE=30]="LINE",e[e.TITLE_X=100]="TITLE_X",e[e.TITLE_Y=70]="TITLE_Y",e[e.LOADING_X=50]="LOADING_X",e[e.LOADING_Y=140]="LOADING_Y",e[e.ERROR_X=10]="ERROR_X",e[e.ERROR_Y=180]="ERROR_Y",e[e.FOOTER_X=160]="FOOTER_X",e[e.FOOTER_Y=360]="FOOTER_Y",e[e.WORLD_Y=330]="WORLD_Y",e[e.COPYRIGHT_Y=390]="COPYRIGHT_Y"}(j||(j={})),function(e){e[e.TITLE=32]="TITLE",e[e.LOADING=22]="LOADING",e[e.FOOTER=18]="FOOTER",e[e.ERRROR=16]="ERRROR"}(X||(X={})),function(e){e[e.COLOR_FRAME=0]="COLOR_FRAME",e[e.COLOR_FRAMEOUT=1]="COLOR_FRAMEOUT",e[e.COLOR_STR=2]="COLOR_STR",e[e.COLOR_STATUS_STR=4]="COLOR_STATUS_STR"}($||($={})),function(e){e[e.MESSAGE_WINDOW=0]="MESSAGE_WINDOW",e[e.SIDEBAR=1]="SIDEBAR"}(J||(J={})),function(e){e[e.BITSHIFT=16]="BITSHIFT",e[e.BITMASK=65535]="BITMASK"}(Z||(Z={})),function(e){e[e.NONE=0]="NONE",e[e.KEYDOWN=1]="KEYDOWN",e[e.KEYPRESS=2]="KEYPRESS",e[e.KEYUP=3]="KEYUP",e[e.KEYPRESS_MESSAGECHANGE=4]="KEYPRESS_MESSAGECHANGE"}(q||(q={})),function(e){e[e.KEY_ENTER=13]="KEY_ENTER",e[e.KEY_SHIFT=16]="KEY_SHIFT",e[e.KEY_ESC=27]="KEY_ESC",e[e.KEY_SPACE=32]="KEY_SPACE",e[e.KEY_LEFT=37]="KEY_LEFT",e[e.KEY_UP=38]="KEY_UP",e[e.KEY_RIGHT=39]="KEY_RIGHT",e[e.KEY_DOWN=40]="KEY_DOWN",e[e.KEY_1=49]="KEY_1",e[e.KEY_2=50]="KEY_2",e[e.KEY_3=51]="KEY_3",e[e.KEY_A=65]="KEY_A",e[e.KEY_B=66]="KEY_B",e[e.KEY_C=67]="KEY_C",e[e.KEY_D=68]="KEY_D",e[e.KEY_E=69]="KEY_E",e[e.KEY_F=70]="KEY_F",e[e.KEY_G=71]="KEY_G",e[e.KEY_H=72]="KEY_H",e[e.KEY_I=73]="KEY_I",e[e.KEY_J=74]="KEY_J",e[e.KEY_K=75]="KEY_K",e[e.KEY_L=76]="KEY_L",e[e.KEY_M=77]="KEY_M",e[e.KEY_N=78]="KEY_N",e[e.KEY_O=79]="KEY_O",e[e.KEY_P=80]="KEY_P",e[e.KEY_Q=81]="KEY_Q",e[e.KEY_R=82]="KEY_R",e[e.KEY_S=83]="KEY_S",e[e.KEY_T=84]="KEY_T",e[e.KEY_U=85]="KEY_U",e[e.KEY_V=86]="KEY_V",e[e.KEY_W=87]="KEY_W",e[e.KEY_X=88]="KEY_X",e[e.KEY_Y=89]="KEY_Y",e[e.KEY_Z=90]="KEY_Z",e[e.KEY_F1=112]="KEY_F1",e[e.KEY_F2=113]="KEY_F2",e[e.KEY_F3=114]="KEY_F3",e[e.KEY_F4=115]="KEY_F4",e[e.KEY_F5=116]="KEY_F5",e[e.KEY_F6=117]="KEY_F6",e[e.KEY_F7=118]="KEY_F7",e[e.KEY_F8=119]="KEY_F8",e[e.KEY_F9=120]="KEY_F9",e[e.KEY_F10=121]="KEY_F10",e[e.KEY_F12=123]="KEY_F12"}(z||(z={}));class re{checkHitKey(e){var t=this.getKeyState(e);return t===q.KEYDOWN||t===q.KEYPRESS}getKeyState(e){return this._prevKeyState[e]?this._keyState[e]?q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}getKeyStateForControllPlayer(e){return this._prevKeyStateOnControllable[e]?this._keyState[e]?q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}getKeyStateForMessageCheck(e){return this._prevKeyState[e]?this._keyState[e]?this._keyInputContinueFrameNum[e]>=F.KEYPRESS_MESSAGE_CHANGE_FRAME_NUM?q.KEYPRESS_MESSAGECHANGE:q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}setPressInfo(e){this._nextKeyState[e]=!0,this._keyInputContinueFrameNum[e]=-1}setReleaseInfo(e){this._nextKeyState[e]=!1,this._keyInputContinueFrameNum[e]=-1}update(){var e;for(this._prevKeyState=this._keyState.slice(),this._keyState=this._nextKeyState.slice(),e=0;e<re.KEY_BUFFER_MAX;e++)this._keyState[e]&&this._keyInputContinueFrameNum[e]++}memorizeKeyStateOnControllableFrame(){this._prevKeyStateOnControllable=this._keyState.slice()}allClear(){var e;for(this._nextKeyState=new Array(re.KEY_BUFFER_MAX),e=0;e<re.KEY_BUFFER_MAX;e++)this._nextKeyState[e]=!1}constructor(){var e;for(this._nextKeyState=new Array(re.KEY_BUFFER_MAX),this._keyState=new Array(re.KEY_BUFFER_MAX),this._prevKeyState=new Array(re.KEY_BUFFER_MAX),this._prevKeyStateOnControllable=new Array(re.KEY_BUFFER_MAX),this._keyInputContinueFrameNum=new Array(re.KEY_BUFFER_MAX),e=0;e<re.KEY_BUFFER_MAX;e++)this._nextKeyState[e]=!1,this._keyState[e]=!1,this._prevKeyState[e]=!1,this._prevKeyStateOnControllable[e]=!1,this._keyInputContinueFrameNum[e]=0}}re.KEY_BUFFER_MAX=256,function(e){e[e.NONE=0]="NONE",e[e.MOUSEDOWN=1]="MOUSEDOWN",e[e.MOUSEPRESS=2]="MOUSEPRESS",e[e.MOUSEUP=3]="MOUSEUP"}(Q||(Q={})),function(e){e[e.DIR_KEY=1]="DIR_KEY"}(ee||(ee={}));class ne{checkClickMouse(e){var t;return(t=void 0!==e?this.getMouseState(e):this.getMouseState())===Q.MOUSEDOWN||t===Q.MOUSEPRESS}getMouseState(e){return void 0!==e&&this._inputDir!==e?Q.NONE:this._prevMouseState?this._mouseState?Q.MOUSEPRESS:Q.MOUSEUP:this._mouseState?Q.MOUSEDOWN:Q.NONE}getMouseStateForControllPlayer(e){return void 0!==e&&this._inputDir!==e?Q.NONE:this._prevMouseStateOnControllable?this._mouseState?Q.MOUSEPRESS:Q.MOUSEUP:this._mouseState?Q.MOUSEDOWN:Q.NONE}setPressInfo(e,t){this._nextMouseState=!0,this._inputDir=e,this._touchID=t}setReleaseInfo(){this._touchID=0,this._nextMouseState=!1}touchIDIsSetDir(){return this._touchID===ee.DIR_KEY}memorizeMouseStateOnControllableFrame(){this._prevMouseStateOnControllable=this._mouseState}update(){this._prevMouseState=this._mouseState,this._mouseState=this._nextMouseState}clear(){this._nextMouseState=!1}getTouchID(){return this._touchID}constructor(){this._prevMouseState=!1,this._mouseState=!1,this._nextMouseState=!1}}!function(e){e[e.BUTTON_INDEX_B=0]="BUTTON_INDEX_B",e[e.BUTTON_INDEX_A=1]="BUTTON_INDEX_A",e[e.BUTTON_INDEX_Y=2]="BUTTON_INDEX_Y",e[e.BUTTON_INDEX_X=3]="BUTTON_INDEX_X",e[e.BUTTON_INDEX_L=4]="BUTTON_INDEX_L",e[e.BUTTON_INDEX_R=5]="BUTTON_INDEX_R",e[e.BUTTON_INDEX_ZL=6]="BUTTON_INDEX_ZL",e[e.BUTTON_INDEX_ZR=7]="BUTTON_INDEX_ZR",e[e.BUTTON_INDEX_MINUS=8]="BUTTON_INDEX_MINUS",e[e.BUTTON_INDEX_PLUS=9]="BUTTON_INDEX_PLUS",e[e.BUTTON_INDEX_LEFT_STICK=10]="BUTTON_INDEX_LEFT_STICK",e[e.BUTTON_INDEX_RIGHT_STICK=11]="BUTTON_INDEX_RIGHT_STICK",e[e.BUTTON_CROSS_KEY_UP=12]="BUTTON_CROSS_KEY_UP",e[e.BUTTON_CROSS_KEY_DOWN=13]="BUTTON_CROSS_KEY_DOWN",e[e.BUTTON_CROSS_KEY_LEFT=14]="BUTTON_CROSS_KEY_LEFT",e[e.BUTTON_CROSS_KEY_RIGHT=15]="BUTTON_CROSS_KEY_RIGHT"}(te||(te={})),function(e){e[e.AXES_L_HORIZONTAL_INDEX=0]="AXES_L_HORIZONTAL_INDEX",e[e.AXES_L_VERTICAL_INDEX=1]="AXES_L_VERTICAL_INDEX",e[e.AXES_R_HORIZONTAL_INDEX=2]="AXES_R_HORIZONTAL_INDEX",e[e.AXES_R_VERTICAL_INDEX=3]="AXES_R_VERTICAL_INDEX",e[e.AXES_CROSS_KEY=9]="AXES_CROSS_KEY"}(se||(se={}));class oe{constructor(){var e;for(this.gamepad=null,this.triggers=[],e=0;e<16;e++)this.triggers[e]=!1}update(){this.gamepad=null;var e=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:[];if(e&&e.length>0&&e[0]){var t=e[0];this.gamepad=t}}buttonTrigger(...e){if(!this.gamepad)return!1;var t,s,i,a,r;for(s=e.length,t=0;t<s;t++){i=e[t];var n=this.gamepad.buttons[i];if(!n)return!1;if(a="object"==typeof n?!0===n.pressed:1===n,r=this.triggers[i],this.triggers[i]=a,a&&!r)return!0}return!1}buttonPressed(...e){if(!this.gamepad)return!1;var t,s,i;for(s=e.length,t=0;t<s;t++){i=e[t];var a=this.gamepad.buttons[i];if(!a)return!1;if("object"==typeof a?!0===a.pressed:1===a)return!0}return!1}crossPressed(...e){if(!this.gamepad)return!1;var t,s;for(s=e.length,t=0;t<s;t++)switch(e[t]){case te.BUTTON_CROSS_KEY_UP:if(this.gamepad.axes[se.AXES_L_VERTICAL_INDEX]<=-.6||this.gamepad.axes[se.AXES_R_VERTICAL_INDEX]<=-.6||-1===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_UP))return!0;break;case te.BUTTON_CROSS_KEY_DOWN:if(this.gamepad.axes[se.AXES_L_VERTICAL_INDEX]>=.7||this.gamepad.axes[se.AXES_R_VERTICAL_INDEX]>=.7||.1===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_DOWN))return!0;break;case te.BUTTON_CROSS_KEY_LEFT:if(this.gamepad.axes[se.AXES_L_HORIZONTAL_INDEX]<=-.7||this.gamepad.axes[se.AXES_R_HORIZONTAL_INDEX]<=-.7||.7===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_LEFT))return!0;break;case te.BUTTON_CROSS_KEY_RIGHT:if(this.gamepad.axes[se.AXES_L_HORIZONTAL_INDEX]>.6||this.gamepad.axes[se.AXES_R_HORIZONTAL_INDEX]>.6||-.5===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_RIGHT))return!0}return!1}vibration(e){return!!this.gamepad&&(!!this.gamepad.vibrationActuator&&void(e?this.gamepad.vibrationActuator.playEffect("dual-rumble",{startDelay:0,duration:100,weakMagnitude:1,strongMagnitude:.5}):this.gamepad.vibrationActuator.playEffect("dual-rumble",{startDelay:0,duration:100,weakMagnitude:.5,strongMagnitude:1})))}stickFloor(...e){if(!this.gamepad)return 0;var t,s,i;for(s=e.length,t=0;t<s;t++){i=e[t];var a=this.gamepad.axes[i];return"number"!=typeof a?0:Math.floor(10*a)/10}return 0}}class he{constructor(e=0){this.lastCalculatedTimeUnixMs=Date.now(),this.lastCalculatedPlayTimeMs=e}calculateTimeMs(){const e=Date.now(),t=e-this.lastCalculatedTimeUnixMs+this.lastCalculatedPlayTimeMs;return this.lastCalculatedTimeUnixMs=e,this.lastCalculatedPlayTimeMs=t,t}calculatePlayTimeFormat(){return he.formatPlayTimeText(this.calculateTimeMs()/1e3)}static formatPlayTimeText(e){const t=Math.floor(e);return t>=36e6?"9999:99:99":("000"+(t/60/60|0)).slice(-4)+":"+("0"+(t/60|0)%60).slice(-2)+":"+("0"+t%60).slice(-2)}}const ce=["BUTTON_ENTER","BUTTON_ESC","BUTTON_SIDEBAR","BUTTON_FAST","BUTTON_SLOW","BUTTON_LEFT","BUTTON_UP","BUTTON_RIGHT","BUTTON_DOWN"],le=["BUTTON_LEFT","BUTTON_UP","BUTTON_RIGHT","BUTTON_DOWN"],_e=new Set(le);class ue{constructor(e,t=!1,s=null,i=null,a=null,r=null){if(this._enabled=null!==e,this._visible=t,this._onTouchStart=a||null,this._onTouchEnd=r||null,this._availableButtons=[],this._isTouchingButtons={},this._moveButtonsElement=i,this._buttonWrapperElement=s,this._setVisible(t),this._moveButtonsElement&&(this._moveButtonsElement.style.visibility="visible"),this._buttonWrapperElement&&(this._buttonWrapperElement.style.visibility="visible"),null!==e){for(const t in e){const s=e[t];if(!s)continue;const i=t;this._availableButtons.push(i),s.setAttribute("type",t),this._isTouchingButtons[i]={prev:!1,current:!1,next:!1};const a=e=>{e.cancelable&&e.preventDefault()},r=e=>{a(e),this.allClear()};s.addEventListener("touchstart",(e=>{a(e),this.setTouchInfo(i)})),s.addEventListener("touchcancel",r),ue.isMoveButton(i)?(s.addEventListener("touchmove",this._detectMovingMoveButton.bind(this)),s.addEventListener("touchend",this.allMoveClear.bind(this))):s.addEventListener("touchend",(e=>{a(e),this.clearTouchInfo(i)}))}null!==i&&i.addEventListener("touchmove",this._detectMovingMoveButton.bind(this))}}_detectMovingMoveButton(e){e.preventDefault(),this.allMoveClear();const t=e.targetTouches.item(0);if(!this._moveButtonsElement||null===t)return;const s=this._moveButtonsElement.getBoundingClientRect(),i=document.body.getBoundingClientRect(),a=s.left-i.left+s.width/2,r=s.top-i.top+s.height/2,n=t.pageX-a,o=t.pageY-r;n>=o?n<=-o?this.setTouchInfo("BUTTON_UP"):this.setTouchInfo("BUTTON_RIGHT"):n>=-o?this.setTouchInfo("BUTTON_DOWN"):this.setTouchInfo("BUTTON_LEFT")}_setVisible(e){null!==this._moveButtonsElement&&(this._moveButtonsElement.style.display=e?"grid":"none"),null!==this._buttonWrapperElement&&(this._buttonWrapperElement.style.display=e?"grid":"none"),this._visible=e}checkTouchButton(e){if(!this._enabled)return!1;return"TOUCH"===this.getButtonState(e)}checkTouchingButton(e){if(!this._enabled)return!1;const t=this.getButtonState(e);return"TOUCH"===t||"TOUCHING"===t}getButtonState(e){const t=this._isTouchingButtons[e];if(!this._enabled||void 0===t)return"NONE";const s=t.prev,i=t.current;return s&&i?"TOUCHING":i?"TOUCH":s?"LEAVE":"NONE"}setTouchInfo(e){const t=this._isTouchingButtons[e];this._enabled&&void 0!==t&&(t.next=!0)}clearTouchInfo(e){const t=this._isTouchingButtons[e];this._enabled&&void 0!==t&&(t.next=!1)}allMoveClear(){le.forEach((e=>{this._availableButtons.includes(e)&&this.clearTouchInfo(e)}))}allClear(){this._availableButtons.forEach((e=>{if(void 0!==e){const t=this._isTouchingButtons[e];void 0!==t&&(t.next=!1)}}))}static isMoveButton(e){return _e.has(e)}update(){this._availableButtons.forEach((e=>{var t,s;if(void 0===e)return;const i=this._isTouchingButtons[e];if(void 0!==i)switch(this._isTouchingButtons[e].prev=i.current,this._isTouchingButtons[e].current=i.next,this.getButtonState(e)){case"TOUCH":null===(t=this._onTouchStart)||void 0===t||t.call(this,e);break;case"LEAVE":null===(s=this._onTouchEnd)||void 0===s||s.call(this,e)}}))}toggleVisible(){this._setVisible(!this._visible)}}function de(){const e=document.querySelector("meta[name='viewport']"),t=window.innerWidth,s=window.innerHeight;let i="user-scalable=no";if(t>s){i=`width=${Math.floor(t/s*456)},${i}`}else t<=s&&(i=`width=576,${i}`);null==e||e.setAttribute("content",`${i}`)}function pe(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e||"symbol"==typeof e||null==e}var me=e=>document.getElementById(e),ge=e=>document.querySelector(e),Ee=e=>document.querySelector(e),we=e=>document.querySelectorAll(e),fe=(e,t)=>{var s,i,a=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft,r=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;return s=e-me("wwa-wrapper").offsetLeft+a,i=t-me("wwa-wrapper").offsetTop+r,new l(s,i)},ye=e=>e.match(/^https?:\/\//)||e.match(/^\.\.\//)?e:location.href="./"+e,ve=e=>{var t="";if(e instanceof Array){for(var s=0;s<e.length;s++)t+=ve(e[s])+"/";return t}return e+""};const Ae=e=>e.split("").reverse().join("");function Se(e,t){if("number"!=typeof e)throw new TypeError(`${t} が数値ではありません。`);return!0}function Te(e,t,s=0){if(s>=3)return"...";if("number"==typeof e||"boolean"==typeof e||null==e)return String(e);if("string"==typeof e){const s=[...e];return t&&s.length>10?`"${s.slice(0,10).join("")}…`:`"${e}"`}if(Array.isArray(e))return`[${e.map((e=>Te(e,!0,s+1))).join(",")}]`;if(e instanceof Map){return`{${[...e].map((([e,t])=>`${e}:${Te(t,!0,s+1)}`)).join(",")}}`}throw new TypeError("この値はフォーマットできません",e)}function Ie(e,t){if(Array.isArray(e)){if("number"!=typeof t)throw new TypeError("配列に対して、数字以外をindexにできません");return t<0||t>=e.length?void console.warn(`配列のインデックス ${t} は範囲外です`):e[t]}if(e instanceof Map){if(!pe(t))throw new TypeError("オブジェクトのキーはプリミティブ値でなければなりません。: "+t);return e.get(String(t))}if("string"==typeof e){if("number"!=typeof t)throw new TypeError(`文字列 "${e}" に対して、数字以外をindexにできません`);return t<0||t>=e.length?void console.warn(`文字列 "${e}" のインデックス ${t} は範囲外です`):e[t]}throw pe(e)?new TypeError(`プリミティブ値 ${String(e)} は添字参照できません`):new TypeError(String(e)+"は添字参照できません")}function Ce(e,t,s){if(Array.isArray(e)){if("number"!=typeof t)throw new TypeError("数字以外をindexにできません");e[t]=s}else{if(!(e instanceof Map))throw"string"==typeof e?new TypeError(`文字列 "${e}" の特定の文字を直接書き換えることはできません`):pe(e)?new TypeError(`プリミティブ値 ${String(e)} は添字参照できません`):new TypeError(String(e)+"は添字参照できません");if(!pe(t))throw new TypeError("オブジェクトのキーはプリミティブ値でなければなりません。: "+t);e.set(String(t),s)}}const Pe=[{name:"pos",type:"numberArray"},{name:"time",type:"numberOrArray"},{name:"timeFrame",type:"numberOrArray"},{name:"size",type:"numberArray"},{name:"animTime",type:"numberArray"},{name:"animTimeFrame",type:"numberArray"},{name:"move",type:"numberArray"},{name:"accel",type:"numberArray"},{name:"zoom",type:"numberArray"},{name:"zoomAccel",type:"numberArray"},{name:"anchor",type:"number"},{name:"circle",type:"numberArray"},{name:"repeat",type:"numberArray"},{name:"img",type:"numberArray"},{name:"imgFile",type:"string"},{name:"imgMap",type:"numberArray"},{name:"sound",type:"number"},{name:"crop",type:"numberArray"},{name:"text",type:"string"},{name:"font",type:"string"},{name:"fontSize",type:"number"},{name:"fontFamily",type:"string"},{name:"italic",type:"number"},{name:"bold",type:"number"},{name:"color",type:"numberArray"},{name:"textAlign",type:"string"},{name:"lineHeight",type:"number"},{name:"opacity",type:"number"},{name:"fade",type:"number"},{name:"angle",type:"number"},{name:"rotate",type:"number"},{name:"wait",type:"number"},{name:"waitFrame",type:"number"},{name:"next",type:"numberArray"},{name:"create",type:"numberArray2D"},{name:"map",type:"numberArray"},{name:"script",type:"string"}],Oe={time_frame:"timeFrame",anim_time:"animTime",anim_time_frame:"animTimeFrame",zoom_accel:"zoomAccel",img_file:"imgFile",img_map:"imgMap",font_size:"fontSize",font_family:"fontFamily",text_align:"textAlign",line_height:"lineHeight",wait_frame:"waitFrame"},De="-?\\d+",Ne=`v\\[(${De})\\]`,be=`m\\[${De}\\]\\[${De}\\]`,Me=`m\\[(${De})\\]\\[(${De})\\]`,xe=`o\\[${De}\\]\\[${De}\\]`,Le=`o\\[(${De})\\]\\[(${De})\\]`,Re=`ITEM\\[${De}\\]`,Be=`ITEM\\[(${De})\\]`,Ue=`${`v\\[${De}\\]`}|${be}|${xe}|${Re}`,ke="HP|HPMAX|AT|DF|GD|STEP|PDIR",We=`${Ue}|${be}|${xe}|${Re}|${ke}`,Ve=`${De}|${Ue}|AT_TOTAL|AT_ITEMS|DF_TOTAL|DF_ITEMS|TIME|X|Y|PX|PY|ID|TYPE|ITEM_COUNT_ALL|${ke}`,Fe=`RAND\\((${Ve})\\)`,Ye=`ITEM_COUNT\\((${Ve})\\)`,Ge=`${Ve}|${`${`RAND\\((?:${Ve})\\)`}|${`ITEM_COUNT\\((?:${Ve})\\)`}`}`,He="\\+|\\-|\\*|\\/|%",Ke="^\\(",je="\\)$",Xe=new RegExp(`^${De}$`),$e=new RegExp(`^${Ne}$`),Je=new RegExp(`^${Me}$`),Ze=new RegExp(`^${Le}$`),qe=new RegExp(`^${Be}$`),ze=new RegExp(`^${Fe}$`),Qe=new RegExp(`${Ye}$`),et=new RegExp(`${Ke}(${We})=(${Ge})(${He})(${Ge})${je}`),tt=new RegExp(`${Ke}(${We})(=|\\+=|\\-=|\\*=|\\/=|%=)(${Ge})${je}`),st=new RegExp(`^(${Ge})(?:(${He})(${Ge}))?$`),it=new RegExp(`${Ke}(${Ge})(>|<|<=|>=|==|!=)(${Ge})${je}`),at=new RegExp(`{{(${Ge})}}`,"g");function rt(e){return"RAND"!==e.type&&"ITEM_COUNT"!==e.type}function nt(e){switch(e){case"HP":case"HPMAX":case"AT":case"AT_TOTAL":case"AT_ITEMS":case"DF":case"DF_TOTAL":case"DF_ITEMS":case"GD":case"STEP":case"TIME":case"X":case"Y":case"PX":case"PY":case"PDIR":case"ID":case"TYPE":case"ITEM_COUNT_ALL":return{type:e};default:const t=e.match($e);if(t){const e=ot(t);return null===e?null:{type:"VARIABLE",index:e}}const s=e.match(Je);if(s){const e=ht(s);return null===e?null:{type:"MAP",x:e[0],y:e[1]}}const i=e.match(Ze);if(i){const e=ht(i);return null===e?null:{type:"OBJECT",x:e[0],y:e[1]}}const a=e.match(qe);if(a){const e=ot(a);return null===e?null:{type:"ITEM",boxIndex1To12:e}}if(e.match(Xe)){const t=parseInt(e,10);return null===t||isNaN(t)?null:{type:"NUMBER",rawValue:t}}const r=e.match(ze);if(r){const e=r.length>=2?nt(r[1]):null;return null!==e&&rt(e)?{type:"RAND",argument:e}:null}const n=e.match(Qe);if(n){const e=n.length>=2?nt(n[1]):null;return null!==e&&rt(e)?{type:"ITEM_COUNT",argument:e}:null}return null}}function ot(e){const t=e.length>=2?Number(e[1]):null;return null===t||isNaN(t)?null:t}function ht(e){if(e.length<3)return null;const t=Number(e[1]),s=Number(e[2]);return isNaN(t)||isNaN(s)?null:[t,s]}function ct(e,t,s=0){if("boolean"==typeof e)return e;const i=lt(e.left,t,s),a=lt(e.right,t,s);return function(e,t,s){switch(e){case">":return t>s;case"<":return t<s;case">=":return t>=s;case"<=":return t<=s;case"==":return t===s;case"!=":return t!==s;default:return!1}}(e.operator,i,a)}function lt(e,t,s=0){var i,a,r,n,o,h;switch(e.type){case"HP":return t.totalStatus.energy;case"HPMAX":return t.energyMax;case"AT":return t.bareStatus.strength;case"AT_TOTAL":return t.totalStatus.strength;case"AT_ITEMS":return t.itemStatus.strength;case"DF":return t.bareStatus.defence;case"DF_TOTAL":return t.totalStatus.defence;case"DF_ITEMS":return t.itemStatus.defence;case"GD":return t.totalStatus.gold;case"STEP":return t.moveCount;case"VARIABLE":{const s=t.userVars[e.index];return Se(s,`v${e.index}`)?s:0}case"MAP":return e.y<0||e.y>=t.map.length||e.x<0||e.x>=t.map[e.y].length?0:t.map[e.y][e.x];case"OBJECT":return e.y<0||e.y>=t.mapObject.length||e.x<0||e.x>=t.mapObject[e.y].length?0:t.mapObject[e.y][e.x];case"ITEM":return e.boxIndex1To12<1||e.boxIndex1To12>12?0:t.itemBox[e.boxIndex1To12-1];case"ITEM_COUNT_ALL":return t.itemBox.filter((e=>0!==e)).length;case"NUMBER":return e.rawValue;case"TIME":return t.playTime;case"X":return null!==(a=null===(i=t.partsPosition)||void 0===i?void 0:i.x)&&void 0!==a?a:t.playerCoord.x;case"Y":return null!==(n=null===(r=t.partsPosition)||void 0===r?void 0:r.y)&&void 0!==n?n:t.playerCoord.y;case"PX":return t.playerCoord.x;case"PY":return t.playerCoord.y;case"PDIR":return t.playerDirection;case"ID":return null!==(o=t.partsId)&&void 0!==o?o:-1;case"TYPE":return null!==(h=t.partsType)&&void 0!==h?h:-1;case"RAND":return Math.floor(Math.random()*lt(e.argument,t));case"ITEM_COUNT":return t.itemBox.filter((s=>s===lt(e.argument,t))).length;default:return s}}function _t(e,t,s){switch(e){case"=":return s;case"+":case"+=":return t+s;case"-":case"-=":return t-s;case"*":case"*=":return t*s;case"/":case"/=":return 0===s?0:t/s;case"%":case"%=":return 0===s?0:t%s;default:throw new Error("未定義の演算子です")}}function ut(e,t){var s;switch(null===(s=nt(t))||void 0===s?void 0:s.type){case"VARIABLE":{const s=t.match(/^v\[(\d+)\]$/),i=Number(s[1]);if(null===i||isNaN(i))throw new Error("ユーザ変数の添字のパースに失敗しました");return{assignee:"variable",index:i,rawValue:e}}case"MAP":{const s=t.match(/^m\[(\d+)\]\[(\d+)\]$/),i=Number(s[1]),a=Number(s[2]);if(null===i||null===a||isNaN(i)||isNaN(a))throw new Error("背景パーツの添字のパースに失敗しました");return{assignee:"map",x:i,y:a,rawValue:e}}case"OBJECT":{const s=t.match(/^o\[(\d+)\]\[(\d+)\]$/),i=Number(s[1]),a=Number(s[2]);if(null===i||null===a||isNaN(i)||isNaN(a))throw new Error("物体パーツの添字のパースに失敗しました");return{assignee:"mapObject",x:i,y:a,rawValue:e}}case"ITEM":{const s=t.match(/^ITEM\[(\d+)\]$/),i=Number(s[1]);if(null===i||isNaN(i))throw new Error("アイテムの添字のパースに失敗しました");return{assignee:"item",boxIndex1to12:i,rawValue:e}}case"ITEM_COUNT_ALL":case"ITEM_COUNT":throw new Error("左辺値に所持アイテム数は入れられません");case"NUMBER":throw new Error("左辺値に定数は入れられません");case"HP":return{assignee:"energy",rawValue:e};case"HPMAX":return{assignee:"energyMax",rawValue:e};case"AT":return{assignee:"strength",rawValue:e};case"AT_TOTAL":throw new Error("左辺値に合計攻撃力は入れられません");case"AT_ITEMS":throw new Error("左辺値にアイテム攻撃力は入れられません");case"DF":return{assignee:"defence",rawValue:e};case"DF_TOTAL":throw new Error("左辺値に合計防御力は入れられません");case"DF_ITEMS":throw new Error("左辺値にアイテム防御力は入れられません");case"GD":return{assignee:"gold",rawValue:e};case"STEP":return{assignee:"moveCount",rawValue:e};case"TIME":throw new Error("左辺値にプレイ時間は入れられません");case"PX":throw new Error("左辺値にプレイヤーX座標は入れられません");case"PY":throw new Error("左辺値にプレイヤーY座標は入れられません");case"X":throw new Error("左辺値にパーツX座標は入れられません");case"Y":throw new Error("左辺値にパーツY座標は入れられません");case"ID":throw new Error("左辺値にパーツ番号座標は入れられません");case"TYPE":throw new Error("左辺値にパーツ種別は入れられません");case"PDIR":return{assignee:"playerDirection",rawValue:e};case"RAND":throw new Error("左辺値に乱数は入れられません");default:throw new Error("この文字列から代入操作オブジェクトは生成できません")}}function dt(e){return e.replace(/\s/g,"")}function pt(e,t,s=0){return lt(nt(e),t,s)}function mt(e,t,s=0){const i=dt(e).match(st);if(null!==i){const e=pt(i[1],t,s),a=i[3]?pt(i[3],t,s):void 0,r=i[2];return r&&a?_t(r,e,a):e}throw new Error("マクロ引数のフォーマットを満たしていません: "+e)}function gt(e){const t=dt(e).match(it);if(null===t||t.length<=3)return void console.error(`判定式が異常です: ${e}`);const s=nt(t[1]),i=nt(t[3]);if(s&&i)return{left:s,right:i,operator:t[2]};console.error(`判定式が異常です: ${e}`)}const Et=(e,t)=>{const s=Pe.find((({name:t})=>t===e));if(!s)return console.warn(`定義外のプロパティ ${e} を見つけました。`),!1;switch(s.type){case"numberArray2D":{if(!Array.isArray(t))return console.warn(`プロパティ ${e} は配列形式である必要がありますが、配列形式になっていません。`),!1;const s=t.map(((e,t)=>Array.isArray(e)?null:t+1)).filter((e=>null!==e));if(s.length>0)return console.warn(`プロパティ ${e} は配列の配列である必要がありますが、 ${s.join(", ")} の要素が配列形式になっていません。`),!1;break}case"string":if("string"!=typeof t){if("number"!=typeof t)return console.warn(`プロパティ ${e} では文字列形式である必要があります。実際に入った値は ${t} です。`),!1;console.warn(`プロパティ ${e} は文字列形式を推奨しています。実際に入った値は ${t} です。`)}}return!0},wt=e=>{var t;return null!==(t=Oe[e])&&void 0!==t?t:e},ft=e=>-1===e,yt=e=>{const t=Object.entries(e.properties).map((([e,t])=>{const s=wt(e);if(!Et(s,t))return[s,t];if("string"===Pe.find((({name:e})=>e===s)).type)if("string"!=typeof t)return[s,t.toString()];return[s,t]}));return{...e,properties:Object.fromEntries(t)}},vt=(e,t,s)=>Array.isArray(e)?e[t]:s?e:void 0,At=(e,t,s,i)=>e>0||t>0||s>0||i>0,St=e=>e<0?0:e,Tt=e=>Math.max(e,1),It=e=>Math.max(e,1);class Ct{}Ct.ITEMBOX_SIZE=12,Ct.MAP_ATR_MAX=60,Ct.OBJ_ATR_MAX=60,Ct.OLD_MAP_ATR_MAX=40,Ct.OLD_OBJ_ATR_MAX=40,Ct.ATR_CROP1=1,Ct.ATR_CROP2=2,Ct.ATR_TYPE=3,Ct.ATR_JUMP_X=16,Ct.ATR_JUMP_Y=17,Ct.MAP_LOCALGATE=2,Ct.OBJECT_LOCALGATE=18,Ct.SYSTEM_MESSAGE_NUM=20,Ct.IMGPOS_DEFAULT_YESNO_X=3,Ct.IMGPOS_DEFAULT_YESNO_Y=1,Ct.IMGPOS_DEFAULT_PLAYER_X=2,Ct.IMGPOS_DEFAULT_PLAYER_Y=0,Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X=0,Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y=0,Ct.IMGPOS_DEFAULT_STATUS_X=3,Ct.IMGPOS_DEFAULT_STATUS_Y=2,Ct.IMGRELPOS_ENERGY_ICON_X=0,Ct.IMGRELPOS_STRENGTH_ICON_X=1,Ct.IMGRELPOS_DEFENCE_ICON_X=2,Ct.IMGRELPOS_GOLD_ICON_X=3,Ct.IMGPOS_DEFAULT_WIDE_CELL_X=4,Ct.IMGPOS_DEFAULT_WIDE_CELL_Y=3,Ct.IMGPOS_DEFAULT_ITEMBOX_X=1,Ct.IMGPOS_DEFAULT_ITEMBOX_Y=2,Ct.IMGPOS_DEFAULT_FRAME_X=0,Ct.IMGPOS_DEFAULT_FRAME_Y=1,Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_X=3,Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_Y=3,Ct.DEFAULT_DISABLE_SAVE=!1,Ct.DEFAULT_OLDMAP=!1,Ct.DEFAULT_OBJECT_NO_COLLAPSE=!1,Ct.DEFAULT_FRAME_COLOR_R=255,Ct.DEFAULT_FRAME_COLOR_G=255,Ct.DEFAULT_FRAME_COLOR_B=255,Ct.DEFAULT_FRAMEOUT_COLOR_R=96,Ct.DEFAULT_FRAMEOUT_COLOR_G=96,Ct.DEFAULT_FRAMEOUT_COLOR_B=96,Ct.DEFAULT_STR_COLOR_R=0,Ct.DEFAULT_STR_COLOR_G=0,Ct.DEFAULT_STR_COLOR_B=0,Ct.DEFAULT_STATUS_COLOR_R=0,Ct.DEFAULT_STATUS_COLOR_G=0,Ct.DEFAULT_STATUS_COLOR_B=0,Ct.DEFAULT_MOVES=0,Ct.DEFAULT_SPEED_INDEX=3,Ct.USER_VAR_NUM=256;var Pt,Ot;!function(e){e[e.MAP=1]="MAP",e[e.OBJECT=0]="OBJECT"}(Pt||(Pt={})),function(e){e[e.INIT=0]="INIT",e[e.MAP_LOAD=1]="MAP_LOAD",e[e.OBJ_LOAD=2]="OBJ_LOAD",e[e.MAP_ATTR=3]="MAP_ATTR",e[e.OBJ_ATTR=4]="OBJ_ATTR",e[e.RAND_PARTS=5]="RAND_PARTS",e[e.MESSAGE=6]="MESSAGE"}(Ot||(Ot={}));class Dt{constructor(){this._milisecondTimer=0,this._frameTimer=0,this._points=new Map}addPoint(e,t,s){if(!t&&!s)return;const i=Nt(t,s);switch(this._points.set(e,i),i.type){case"milisecond":{const e=[...this._points.values()].filter((({type:e})=>"milisecond"===e)).map((({value:e})=>e));this._milisecondLimit=Math.max(...e);break}case"frame":{const e=[...this._points.values()].filter((({type:e})=>"frame"===e)).map((({value:e})=>e));this._frameLimit=Math.max(...e)}}}enabled(){return this._points.size>0&&(this._milisecondTimer<this._milisecondLimit||this._frameTimer<this._frameLimit)}tick(e){this.enabled()&&!this.isTimeOver()&&(this._milisecondTimer+=e,this._frameTimer++)}isOver(e,t){if(this._points.has(e)){const t=this._points.get(e);switch(t.type){case"milisecond":return this._milisecondTimer>=t.value;case"frame":return this._frameTimer>=t.value;default:return!1}}return t}isNotOver(e,t){if(this._points.has(e)){const t=this._points.get(e);switch(t.type){case"milisecond":return this._milisecondTimer<t.value;case"frame":return this._frameTimer<t.value;default:return!1}}return t}isTimeOver(){return!1}get timeLimit(){return{milisecond:this._milisecondLimit,frame:this._frameLimit}}}const Nt=(e,t)=>e?{value:e,type:"milisecond"}:t?{value:t,type:"frame"}:void 0;class bt{constructor(e,t){this.canvas=new OffscreenCanvas(Tt(e),It(t)),this.ctx=this.canvas.getContext("2d",{alpha:!0}),this.ctx.imageSmoothingEnabled=!1}getCanvasImage(){return this.canvas}drawCanvas(e,t,s,i,a,r=F.CHIP_SIZE,n=F.CHIP_SIZE){this.ctx.drawImage(e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE,F.CHIP_SIZE,i,a,r,n)}drawCanvasFree(e,t,s,i,a){this.ctx.drawImage(e,t,s,i,a)}drawFont(e,t,s,i){if(void 0!==i){e.split("\n").forEach(((e,a)=>{this.ctx.fillText(e,t,s+a*i)}))}else this.ctx.fillText(e,t,s)}updateSize(e,t){this.canvas.width=Tt(e),this.canvas.height=It(t),this.ctx.imageSmoothingEnabled=!1}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)}}const Mt=(e,t,s)=>"maximum"===e?{width:F.MAP_WINDOW_WIDTH,height:F.MAP_WINDOW_HEIGHT}:"minimumWithMargin"===e?{width:t+2*F.CHIP_SIZE,height:s+2*F.CHIP_SIZE}:{width:t,height:s},xt=(e,t,s,i,a)=>"maximum"===e?{x:i,y:a}:"minimumWithMargin"===e?{x:F.CHIP_SIZE+t/2,y:F.CHIP_SIZE+s/2}:{x:t/2,y:s/2};class Lt{constructor(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f,y,v,A,S,T,I,C,P,O,D,N,b,M,x,L,R,B,U,k,W,V,Y,G,H,K,j,X,$,J,Z,q,z,Q,ee,te,se;this._registry=t;const{properties:ie}=t;this._posBaseX=null!==(a=null===(i=ie.pos)||void 0===i?void 0:i[0])&&void 0!==a?a:0,this._posBaseY=null!==(n=null===(r=ie.pos)||void 0===r?void 0:r[1])&&void 0!==n?n:0,[this._imgMainX,this._imgMainY]=Lt._getImgPosByPicture(this._registry,!0),[this._imgSubX,this._imgSubY]=Lt._getImgPosByPicture(this._registry,!1),this._mapCropCache=Lt._getMapImgPosArray(this._registry,e),this._drawChip=At(this._imgMainX,this._imgMainY,this._imgSubX,this._imgSubY)||null!==this._mapCropCache,this._repeatX=null!==(h=null===(o=ie.repeat)||void 0===o?void 0:o[0])&&void 0!==h?h:1,this._repeatY=null!==(l=null===(c=ie.repeat)||void 0===c?void 0:c[1])&&void 0!==l?l:1,this._imgFile=s,this._cropX=this._imgFile?1:null!==(u=null===(_=ie.crop)||void 0===_?void 0:_[0])&&void 0!==u?u:1,this._cropY=this._imgFile?1:null!==(p=null===(d=ie.crop)||void 0===d?void 0:d[1])&&void 0!==p?p:1,this._sizeX=null!==(g=null===(m=ie.size)||void 0===m?void 0:m[0])&&void 0!==g?g:this._imgFile?this._imgFile.width:F.CHIP_SIZE,this._sizeY=null!==(w=null===(E=ie.size)||void 0===E?void 0:E[1])&&void 0!==w?w:this._imgFile?this._imgFile.height:F.CHIP_SIZE,this._circleRadiusX=null!==(y=null===(f=ie.circle)||void 0===f?void 0:f[0])&&void 0!==y?y:0,this._circleRadiusY=null!==(A=null===(v=ie.circle)||void 0===v?void 0:v[1])&&void 0!==A?A:this._circleRadiusX,this._circleAngle=null!==(T=null===(S=ie.circle)||void 0===S?void 0:S[2])&&void 0!==T?T:0,this._fontStyle=Lt._getFontValue(ie),this._textAlign=Lt._convertTextAlign(ie.textAlign);const ae=null!==(C=null===(I=ie.color)||void 0===I?void 0:I[0])&&void 0!==C?C:0,re=null!==(O=null===(P=ie.color)||void 0===P?void 0:P[1])&&void 0!==O?O:0,ne=null!==(N=null===(D=ie.color)||void 0===D?void 0:D[2])&&void 0!==N?N:0;this._fillStyle=`rgb(${ae}, ${re}, ${ne})`,this._moveX=null!==(M=null===(b=ie.move)||void 0===b?void 0:b[0])&&void 0!==M?M:0,this._moveY=null!==(L=null===(x=ie.move)||void 0===x?void 0:x[1])&&void 0!==L?L:0,this._accelX=null!==(B=null===(R=ie.accel)||void 0===R?void 0:R[0])&&void 0!==B?B:0,this._accelY=null!==(k=null===(U=ie.accel)||void 0===U?void 0:U[1])&&void 0!==k?k:0,this._zoomX=null!==(V=null===(W=ie.zoom)||void 0===W?void 0:W[0])&&void 0!==V?V:0,this._zoomY=null!==(G=null===(Y=ie.zoom)||void 0===Y?void 0:Y[1])&&void 0!==G?G:0,this._zoomAccelX=null!==(K=null===(H=ie.zoomAccel)||void 0===H?void 0:H[0])&&void 0!==K?K:0,this._zoomAccelY=null!==(X=null===(j=ie.zoomAccel)||void 0===j?void 0:j[1])&&void 0!==X?X:0,this._anchor=null!==($=ie.anchor)&&void 0!==$?$:7,this._circleSpeed=null!==(Z=null===(J=ie.circle)||void 0===J?void 0:J[3])&&void 0!==Z?Z:0,this._opacity=null!==(q=ie.opacity)&&void 0!==q?q:100,this._fade=null!==(z=ie.fade)&&void 0!==z?z:0,this._angleRadian=ie.angle?ie.angle*Math.PI/180:0,this._rotateRadian=ie.rotate?ie.rotate*Math.PI/180:0,ie.text?((ie.angle||ie.rotate)&&console.warn(`レイヤー${this.layerNumber}番: テキストの描画と回転の併用は、現時点では非推奨です。今後動作が変わる可能性があるので、自己責任でお願いします。`),this._drawCoordType="maximum"):ie.angle||ie.rotate?this._drawCoordType="minimumWithMargin":this._drawCoordType="minimum",this._updatePictureCache();const{width:oe,height:he}=Mt(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas=new bt(oe,he),this._timer=new Dt,this._timer.addPoint("start",vt(ie.time,1,!1),vt(ie.timeFrame,1,!1)),this._timer.addPoint("end",vt(ie.time,0,!0),vt(ie.timeFrame,0,!0)),this._timer.addPoint("startAnim",null===(Q=ie.animTime)||void 0===Q?void 0:Q[0],null===(ee=ie.animTimeFrame)||void 0===ee?void 0:ee[0]),this._timer.addPoint("endAnim",null===(te=ie.animTime)||void 0===te?void 0:te[1],null===(se=ie.animTimeFrame)||void 0===se?void 0:se[1]),this._timer.addPoint("wait",ie.wait,ie.waitFrame),0!==this._angleRadian){const{x:e,y:t}=xt(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext(),this._hasAnimation=this.getHasAnimation()}get layerNumber(){return this._registry.layerNumber}get hasAnimation(){return this._hasAnimation}get canvasImage(){return this._canvas.getCanvasImage()}get appearParts(){var e;if(this._registry.properties.map&&!(this._registry.properties.map.length<3))return{partsNumber:this._registry.properties.map[0],x:this._registry.properties.map[1],y:this._registry.properties.map[2],partsType:null!==(e=this._registry.properties.map[3])&&void 0!==e?e:Pt.OBJECT}}get executeScriptFunctionName(){return this._registry.properties.script}updateCanvasContext(){this._canvas.ctx.globalAlpha=Lt._roundPercentage(this._opacity)/100,this._canvas.ctx.font=this._fontStyle,this._canvas.ctx.textBaseline="top",this._textAlign&&(this._canvas.ctx.textAlign=this._textAlign),this._canvas.ctx.fillStyle=this._fillStyle}draw(e,t){this.clearCanvas();const s=t?this._imgMainX:this._imgSubX,i=t?this._imgMainY:this._imgSubY,{x:a,y:r}=(n=this._drawCoordType,o=this._posDestX,h=this._posDestY,"maximum"===n?{x:o,y:h}:"minimumWithMargin"===n?{x:F.CHIP_SIZE,y:F.CHIP_SIZE}:{x:0,y:0});var n,o,h;for(let n=0;n<this._repeatY;n++)for(let o=0;o<this._repeatX;o++){const h=a+this._charaWidth*o,c=r+this._charaHeight*n;if(this._imgFile)this._canvas.drawCanvasFree(this._imgFile,h,c,this._charaWidth,this._charaHeight);else if(this._drawChip)if(null!==this._mapCropCache)this._mapCropCache.forEach(((s,i)=>{s.forEach((([s,a,r,n],o)=>{At(s,a,r,n)&&this._canvas.drawCanvas(e,t?s:r,t?a:n,h+this._chipWidth*o,c+this._chipHeight*i,this._chipWidth,this._chipHeight)}))}));else for(let t=0;t<this._cropY;t++)for(let a=0;a<this._cropX;a++)this._canvas.drawCanvas(e,s+a,i+t,h+this._chipWidth*a,c+this._chipHeight*t,this._chipWidth,this._chipHeight);this.getHasText()&&this._canvas.drawFont(this._registry.properties.text,h,c,this._registry.properties.lineHeight)}}getDrawPictureCoords(){return e=this._drawCoordType,t=this._posDestX,s=this._posDestY,i=this._totalWidth,a=this._totalHeight,"maximum"===e?{x:0,y:0,width:F.MAP_WINDOW_WIDTH,height:F.MAP_WINDOW_HEIGHT}:"minimumWithMargin"===e?{x:t-F.CHIP_SIZE,y:s-F.CHIP_SIZE,width:i*(2*F.CHIP_SIZE),height:a*(2*F.CHIP_SIZE)}:{x:t,y:s,width:i,height:a};var e,t,s,i,a}updateAnimation(){if(this._timer.isNotOver("startAnim",!1)||this._timer.isOver("endAnim",!1))return;this._posBaseX=this._posBaseX+this._moveX,this._posBaseY=this._posBaseY+this._moveY,this._moveX=this._moveX+this._accelX,this._moveY=this._moveY+this._accelY,this._sizeX=this._sizeX+this._zoomX,this._sizeY=this._sizeY+this._zoomY,this._zoomX=this._zoomX+this._zoomAccelX,this._zoomY=this._zoomY+this._zoomAccelY,this._updatePictureCache();const{width:e,height:t}=Mt(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas.updateSize(e,t),this._circleAngle=this._circleAngle+this._circleSpeed,0!==this._fade&&(this._opacity=this._opacity+this._fade),0!==this._angleRadian||0!==this._rotateRadian){this._angleRadian+=this._rotateRadian;const{x:e,y:t}=xt(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext()}_updatePictureCache(){this._chipWidth=St(this._sizeX),this._chipHeight=St(this._sizeY),this._charaWidth=this._chipWidth*this._cropX,this._charaHeight=this._chipHeight*this._cropY,this._totalWidth=this._charaWidth*this._repeatX,this._totalHeight=this._charaHeight*this._repeatY,this._posDestX=Math.floor(((e,t,s)=>{switch(s){case 1:case 4:case 7:default:return e;case 2:case 5:case 8:return e-t/2;case 3:case 6:case 9:return e-t}})(((e,t,s)=>{if(0===t)return e;const i=s*Math.PI/180;return e+t*Math.cos(i)})(this._posBaseX,this._circleRadiusX,this._circleAngle),this._charaWidth,this._anchor)),this._posDestY=Math.floor(((e,t,s)=>{switch(s){case 1:case 2:case 3:return e-t;case 4:case 5:case 6:return e-t/2;default:return e}})(((e,t,s)=>{if(0===t)return e;const i=s*Math.PI/180;return e+t*Math.sin(i)})(this._posBaseY,this._circleRadiusY,this._circleAngle),this._charaHeight,this._anchor))}isNotStarted(){return this._timer.isNotOver("start",!1)}tickTime(e){this._timer.tick(e)}isDeadlineOver(){return this._timer.isOver("end",!1)}isStartTimeOver(){return this._timer.isOver("start",!0)}isWaiting(){return this._timer.isNotOver("wait",!1)}clearCanvas(){this._canvas.clear()}getRegistryData(){return this._registry}getNextPicturePartsInfo(){var e;const t=Array.isArray(this._registry.properties.next)&&this._registry.properties.next[0]?{layerNumber:this._registry.layerNumber,partsNumber:this._registry.properties.next[0],partsType:null!==(e=this._registry.properties.next[1])&&void 0!==e?e:Pt.OBJECT,connectProperties:!!this._registry.properties.next[2]}:void 0,s=Array.isArray(this._registry.properties.create)?this._registry.properties.create.filter(Array.isArray).map((e=>{var t;return{layerNumber:e[0],partsNumber:e[1],partsType:null!==(t=e[2])&&void 0!==t?t:Pt.OBJECT,connectProperties:!!e[3]}})):[];return t?s.concat(t):s}getNextPictureProperties(){const e={...this._registry.properties};return delete e.next,delete e.create,{...e,pos:[this._posBaseX,this._posBaseY],move:[this._moveX,this._moveY],size:[this._sizeX,this._sizeY],zoom:[this._zoomX,this._zoomY],circle:[this._circleRadiusX,this._circleRadiusY,this._circleAngle,this._circleSpeed],opacity:this._opacity}}getTriggerPartsCoord(){return new l(this._registry.triggerPartsX,this._registry.triggerPartsY)}getHasAnimation(){return 0!==this._moveX||0!==this._moveY||0!==this._accelX||0!==this._accelY||0!==this._zoomX||0!==this._zoomY||0!==this._zoomAccelX||0!==this._zoomAccelY||0!==this._circleSpeed||0!==this._fade||0!==this._rotateRadian}getHasText(){return this._registry.properties.text}static _getImgPosByPicture(e,t){var s,i,a,r;const{properties:n}=e;return void 0!==(null===(s=n.imgMap)||void 0===s?void 0:s[0])&&void 0!==(null===(i=n.imgMap)||void 0===i?void 0:i[1])?[0,0]:void 0!==(null===(a=n.img)||void 0===a?void 0:a[0])&&void 0!==(null===(r=n.img)||void 0===r?void 0:r[1])?t?[n.img[0],n.img[1]]:void 0!==n.img[2]&&void 0!==n.img[3]?[n.img[2],n.img[3]]:[n.img[0],n.img[1]]:t||0===e.imgPosX2&&0===e.imgPosY2?[e.imgPosX,e.imgPosY]:[e.imgPosX2,e.imgPosY2]}static _getMapImgPosArray(e,t){var s,i,a,r,n,o,h,c,_;const{properties:u}=e,d=null!==(i=null===(s=u.imgMap)||void 0===s?void 0:s[0])&&void 0!==i?i:-1,p=null!==(r=null===(a=u.imgMap)||void 0===a?void 0:a[1])&&void 0!==r?r:-1;if(d<0||p<0)return null;const m=null!==(o=null===(n=u.crop)||void 0===n?void 0:n[0])&&void 0!==o?o:1,g=null!==(c=null===(h=u.crop)||void 0===h?void 0:h[1])&&void 0!==c?c:1,E=void 0!==(null===(_=u.imgMap)||void 0===_?void 0:_[2])&&u.imgMap[2]>=1?Pt.MAP:Pt.OBJECT,w=[];for(let e=0;e<g;e++){const s=[];for(let i=0;i<m;i++){const a=t.getPartsID(new l(d+i,p+e),E);if(0===a)s.push([0,0,0,0]);else{const e=E===Pt.MAP?t.getMapInfo(a):t.getObjectInfo(a);E===Pt.MAP||0===e[F.ATR_X2]&&0===e[F.ATR_Y2]?s.push([e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE,e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE]):s.push([e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE,e[F.ATR_X2]/F.CHIP_SIZE,e[F.ATR_Y2]/F.CHIP_SIZE])}}w.push(s)}return w}static _getFontValue(e){if(e.font)return e.font;const t=getComputedStyle(me("wwa-wrapper"));if(void 0===e.fontSize&&void 0===e.fontFamily&&void 0===e.italic&&void 0===e.bold)return t.font;return`${e.italic?"italic":""} ${e.bold?"bold":""} ${e.fontSize?`${e.fontSize}px`:t.fontSize} ${e.fontFamily&&e.fontFamily.length>0?e.fontFamily:t.fontFamily}`}static _convertTextAlign(e){return e?["center","end","left","right","start"].includes(e)?e:(console.warn(`textAlign プロパティで不正な値が検出されました。: ${e}`),null):null}static _roundPercentage(e){return e<0?0:e>100?100:e}}const Rt=async e=>fetch(e).then((t=>200===t.status||304===t.status?{kind:"data",data:t}:{kind:"httpError",errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`})).catch((t=>({kind:"connectionError",errorMessage:`ファイル ${e} が読み込めませんでした。通信状態がいい場所で再度お試しください。`}))).then((async e=>"data"===e.kind?{kind:"data",data:await e.data.json()}:e)).catch((t=>({kind:"brokenJson",errorMessage:`ファイル ${e} が壊れています。`})));class Bt{constructor(e,t){this._wwa=e,this._pictures=new Map,this._anonymousPictures=[],this._externalImageFiles=new Map,this._frameTimerValue=Bt._getNowFrameValue(),this._setupExternalImageFiles(t)}async _setupExternalImageFiles(e){if(!e)return;const t=await Rt(e);if(t)if("data"===t.kind)if(t.data&&"object"==typeof t.data){if("files"in t.data){const{files:s}=t.data;"object"==typeof s?Object.entries(t.data.files).forEach((([e,t])=>{this._externalImageFiles.set(e,{status:"loading"});const s=new Image;s.src=t,s.onerror=s=>{"string"==typeof s?console.warn(`ピクチャ画像ファイル ${t} が見つかりませんでした。エラーメッセージ: ${s}`):console.warn(`ピクチャ画像ファイル ${t} が見つかりませんでした。`),this._externalImageFiles.set(e,{status:"failed"})},s.onload=()=>{this._externalImageFiles.set(e,{status:"success",element:s})}})):console.warn(`ピクチャ画像の定義ファイル ${e} の files が正しい形式で書かれていません。`)}}else console.warn(`ピクチャ画像の定義ファイル ${e} が正しい形式で書かれていません。`);else console.warn(`ピクチャ画像の定義ファイル ${e} が見つかりませんでした。エラーメッセージ: ${t.errorMessage}`)}static _getNowFrameValue(){return performance.now()}registerPicture(e){var t;const s=Object.keys(e.properties).filter((e=>!Pe.some((({name:t})=>t===e))));if(s.length>0)throw new Error(`不明なプロパティ名 ${s.map((e=>`"${e}"`)).join(", ")} が検出されました。`);let i;if(e.properties.imgFile){const t=this._externalImageFiles.get(e.properties.imgFile);t?"loading"===t.status?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} はまだ読み込みを完了していません。`):"failed"===t.status?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} を表示することができません。画像ファイルの Path が間違っていないかご確認ください。`):i=t.element:console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} が定義に含まれていません。定義ファイルがあるかご確認ください。`)}const a=null!==(t=e.properties.sound)&&void 0!==t?t:e.soundNumber;if(a&&this._wwa.playSound(a),r=e.layerNumber,!Number.isInteger(r)||!(r>0||ft(r)))throw new Error(`指定したレイヤー番号 ${e.layerNumber}番はこのバージョンでは無効です!`);var r;ft(e.layerNumber)?this._anonymousPictures.push(new Lt(this._wwa,e,i)):(this._pictures.set(e.layerNumber,new Lt(this._wwa,e,i)),this._pictures=new Map([...this._pictures.entries()].sort((([,e],[,t])=>e.layerNumber-t.layerNumber))))}registerPictureFromRawRegistry(e,t,s,i){return this.registerPicture(((e,t)=>{const s=e=>"number"==typeof e?e:mt(e,t),i=Object.entries(e.properties).map((([e,t])=>{const i=wt(e);if(!Et(i,t))return[i,t];switch(Pe.find((({name:e})=>e===i)).type){case"number":return[i,s(t)];case"numberArray":return[i,t.map(s)];case"numberOrArray":return Array.isArray(t)?[i,t.map(s)]:[i,[s(t)]];case"numberArray2D":return!Array.isArray(t)||t.some(Array.isArray)?[i,t]:[i,t.map((e=>e.map(s)))];case"string":if("string"!=typeof t)return[i,t.toString()];let e=String(t);return Array.from(t.matchAll(at)).forEach((i=>{i.length<2&&console.warn(`テンプレート文字列で合致した文字列の中の値を取り出すことができませんでした。文字列そのものの値は ${t} です。`);const a=i[0],r=i[1],n=s(r);e=e.replace(a,"number"==typeof n?n.toString():n)})),[i,e];default:return[i,t]}}));return{...e,properties:Object.fromEntries(i)}})(i?{...e,properties:{...i,...e.properties}}:e,this._wwa.generateTokenValues({id:t,type:s,position:new l(e.triggerPartsX,e.triggerPartsY)}))),this.getPictureRegistryData()}registerPictureFromRawText(e,t){const s=(e=>{try{const t=JSON.parse(e.propertiesText);if(Array.isArray(t))throw new Error("配列形式ではなくオブジェクト形式で記述してください。");if("object"!=typeof t)throw new Error("オブジェクト形式で記述してください。");return{...e,properties:t}}catch(e){console.error(`JSON パースエラーが発生しました!: ${e.message}`)}})({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,propertiesText:t});return this.registerPicture(yt(s)),this.getPictureRegistryData()}registerPictureFromObject(e,t){return this.registerPicture(yt({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,properties:t})),this.getPictureRegistryData()}deletePicture(e){return ft(e)?(this._anonymousPictures.forEach((e=>{e.clearCanvas()})),this._anonymousPictures.splice(0),this.getPictureRegistryData()):(this._pictures.has(e)&&(this._pictures.get(e).clearCanvas(),this._pictures.delete(e)),this.getPictureRegistryData())}clearAllPictures(){this._pictures.forEach((e=>{e.clearCanvas()})),this._anonymousPictures.forEach((e=>{e.clearCanvas()})),this._pictures.clear(),this._anonymousPictures.splice(0)}forEachPictures(e){this._anonymousPictures.forEach(e),this._pictures.forEach(e)}updateAllPicturesCache(e,t){this.forEachPictures((s=>{s.isNotStarted()||s.draw(e,t)}))}updateFrameTimerValue(){this._frameTimerValue=Bt._getNowFrameValue()}updatePicturesAnimation(e,t){const s=Bt._getNowFrameValue()-this._frameTimerValue;this.forEachPictures((i=>{if(i.tickTime(s),!i.isNotStarted()){if(i.isDeadlineOver()){const e=i.layerNumber,t=i.getNextPicturePartsInfo(),s=i.appearParts,a=i.executeScriptFunctionName,r=i.getNextPictureProperties(),n=i.getTriggerPartsCoord();this._wwa.deletePictureRegistry(e);for(const e of t)this._wwa.setPictureRegistry(e.layerNumber,e.partsNumber,e.partsType,n,e.connectProperties?r:void 0);return void 0!==s&&this._wwa.setPartsOnPosition(s.partsType,s.partsNumber,new l(s.x,s.y)),void(a&&this._wwa.callUserScript(a))}i.hasAnimation&&(i.updateAnimation(),i.draw(e,t))}}))}isWaiting(){for(const e of this._pictures.values())if(e.isWaiting())return!0;for(const e of this._anonymousPictures)if(e.isWaiting())return!0;return!1}getPictureRegistryData(){return Array.from(this._pictures.values()).map((e=>e.getRegistryData()))}}class Ut{constructor(e,t,s){this.cvs=document.createElement("canvas"),this.cvs.width=e,this.cvs.height=t,this.ctx=this.cvs.getContext("2d",{alpha:s}),this._isTransparent=s}drawCanvas(e,t,s,i,a,r=F.CHIP_SIZE,n=F.CHIP_SIZE){this.ctx.drawImage(e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE,F.CHIP_SIZE,i,a,r,n)}clear(){this.clearRect(0,0,this.cvs.width,this.cvs.height)}clearRectWithLowerYLimit(e){this.clearRect(0,0,this.cvs.width,e)}clearRect(e,t,s,i){this._isTransparent?this.ctx.clearRect(e,t,s,i):(this.ctx.fillStyle="#9E9E9E",this.ctx.fillRect(e,t,s,i))}}class kt{_load(){this._frameCoord,this._isLoaded||(this.mapCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this.mapObjectCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this._image=new Image,this._image.addEventListener("load",(()=>{this.createFrame(),this._loadCompleteCallBack()})),this._image.addEventListener("error",(()=>{throw new Error("Image Load Failed!!\nfile name:"+this._fileName)})),this._image.src=this._fileName,this._isLoaded=!0)}createFrame(){this._frameCanvas.clear(),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y,0,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+2,0,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+2,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE);for(var e=1;e<F.H_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y,F.CHIP_SIZE*e,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y+2,F.CHIP_SIZE*e,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE);for(e=1;e<F.V_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+1,0,F.CHIP_SIZE*e),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+1,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,F.CHIP_SIZE*e)}updateEffects(e){var t;if(e){var s,i=e.length;for(t=0;t<i;t++){var a=e[t];(s=this._effectCanvases[t])?s.clear():s=this._effectCanvases[t]=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0);for(var r=0;r<F.V_PARTS_NUM_IN_WINDOW;r++)for(var n=0;n<F.H_PARTS_NUM_IN_WINDOW;n++)s.drawCanvas(this._image,a.x,a.y,n*F.CHIP_SIZE,r*F.CHIP_SIZE)}}}restorePictures(e){this.picture.clearAllPictures(),e.forEach((e=>{this.picture.registerPicture(e)}))}updateAllPicturesCache(e=!0){this.picture.updateAllPicturesCache(this._image,e)}updatePicturesAnimation(e=!0){this.picture.updatePicturesAnimation(this._image,e)}drawFrame(){this._ctx.drawImage(this._frameCanvas.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE,0,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2),0,F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2)),this._ctx.drawImage(this._frameCanvas.cvs,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2),F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2))}drawEffect(e){var t=this._effectCanvases[e];t&&this._ctx.drawImage(t.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}drawPictures(){this.picture.forEachPictures((e=>{const{x:t,y:s,width:i,height:a}=e.getDrawPictureCoords();this._ctx.drawImage(e.canvasImage,0,0,i,a,t,s,i,a)}))}drawCanvas(e,t,s,i){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE,F.CHIP_SIZE,s,i,F.CHIP_SIZE,F.CHIP_SIZE)}drawCanvasWithSize(e,t,s,i,a,r){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE*i,a,r,F.CHIP_SIZE*s,F.CHIP_SIZE*i)}drawCanvasWithUpperYLimit(e,t,s,i,a){if(!this._isLoaded)throw new Error("No image was loaded.");var r=Math.max(0,i+F.CHIP_SIZE-a);r>=F.CHIP_SIZE||this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE,F.CHIP_SIZE-r,s,i,F.CHIP_SIZE,F.CHIP_SIZE)}copyCanvas(e,t){return(s,i,a,r,n)=>{if(!this._isLoaded)throw new Error("No image was loaded.");const o=Math.max(0,t(r,n));o>=F.CHIP_SIZE||e.ctx.drawImage(this._image,F.CHIP_SIZE*s,F.CHIP_SIZE*i+o,F.CHIP_SIZE,F.CHIP_SIZE-o,a,r+o,F.CHIP_SIZE,F.CHIP_SIZE)}}copyBackCanvasWithUpperYLimit(e,t,s,i,a){this.copyCanvas(this._backCanvas,((e,t)=>e+F.CHIP_SIZE-t))(e,t,s,i,a)}copyBackCanvasWithLowerYLimit(e,t,s,i,a){this.copyCanvas(this._backCanvas,((e,t)=>t-e))(e,t,s,i,a)}copyObjectCanvasWithUpperYLimit(e,t,s,i,a,r){this.copyCanvas(this._objectCanvases[e],((e,t)=>e+F.CHIP_SIZE-t))(t,s,i,a,r)}copyObjectCanvasWithLowerYLimit(e,t,s,i,a,r){this.copyCanvas(this._objectCanvases[e],((e,t)=>t-e))(t,s,i,a,r)}drawBackCanvas(){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._backCanvas.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}drawObjectCanvas(e){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._objectCanvases[e].cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}clearBackCanvas(){this._backCanvas.clear()}clearBackCanvasWithLowerYLimit(e){this._backCanvas.clearRectWithLowerYLimit(e)}clearObjectCanvases(){var e;for(e=0;e<2;e++)this._objectCanvases[e].clear()}clearObjectCanvasesWithLowerYLimit(e){var t;for(t=0;t<2;t++)this._objectCanvases[t].clearRectWithLowerYLimit(e)}drawCanvasWithLowerYLimit(e,t,s,i,a){if(!this._isLoaded)throw new Error("No image was loaded.");var r=Math.max(0,a-i);r>=F.CHIP_SIZE||this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t+r,F.CHIP_SIZE,F.CHIP_SIZE-r,s,i+r,F.CHIP_SIZE,F.CHIP_SIZE)}clearCanvas(e,t,s,i){this._ctx.clearRect(e,t,s,i)}drawBase(e,t,s,i){this._ctx.fillStyle="#9E9E9E",this._ctx.fillRect(e,t,s,i)}setFrameImage(e){this._frameCoord=e,this.createFrame()}constructor(e,t,s,i,a,r){var n;for(this._isLoaded=!1,this.mapCache=void 0,this.mapObjectCache=void 0,this.mapCacheYLimit=0,this._frameCanvas=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0),this._backCanvas=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!1),this._objectCanvases=[],this._effectCanvases=[],this.picture=new Bt(i,a),n=0;n<2;n++)this._objectCanvases[n]=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0);this._ctx=e,this._fileName=t,this._loadCompleteCallBack=r,this._load(),this._frameCoord=s.clone(),this.cpPartsLog=new l(0,0)}}class Wt{constructor(e){this._position=null,this.reset(e)}setPlayer(e){this._player=e}isResetting(){return this._isResetting}getPosition(){return this._position}getPreviousPosition(){return this._positionPrev}resetPreviousPosition(){this._positionPrev=null}move(e){var t=k[this._player.getSpeedIndex()];this._position=this._position.getNextFramePosition(e,t*(F.H_PARTS_NUM_IN_WINDOW-1),t*(F.V_PARTS_NUM_IN_WINDOW-1))}getTransitionStepNum(){return this._transitionStep}advanceTransitionStepNum(){return++this._transitionStep,this._transitionStep===F.V_PARTS_NUM_IN_WINDOW&&(this._isResetting=!1,this._transitionStep=0),this._transitionStep}isFinalStep(){if(!1===this._isResetting)throw new Error("リセット中ではありません。");return this._transitionStep===F.V_PARTS_NUM_IN_WINDOW-1}reset(e){this._positionPrev=this._position,this._position=e.getDefaultCameraPosition(),this._transitionStep=0,this._isResetting=!0}}class Vt{getPosition(){return this._position}constructor(e){this._position=e}}class Ft extends Vt{constructor(e){super(e)}}var Yt;!function(e){e[e.CONTROLLABLE=0]="CONTROLLABLE",e[e.MOVING=1]="MOVING",e[e.CAMERA_MOVING=2]="CAMERA_MOVING",e[e.MESSAGE_WAITING=3]="MESSAGE_WAITING",e[e.LOCALGATE_JUMPED=4]="LOCALGATE_JUMPED",e[e.BATTLE=5]="BATTLE",e[e.ESTIMATE_WINDOW_WAITING=6]="ESTIMATE_WINDOW_WAITING",e[e.PASSWORD_WINDOW_WAITING=7]="PASSWORD_WINDOW_WAITING",e[e.LOCALGATE_JUMPED_WITH_MESSAGE=8]="LOCALGATE_JUMPED_WITH_MESSAGE"}(Yt||(Yt={}));class Gt extends Ft{move(){if(this.isControllable())this.controll(this._dir);else if(this._state===Yt.CAMERA_MOVING){try{this._camera.move(this._dir)}catch(e){}this._isOnCameraStopPosition()&&(this._state=Yt.CONTROLLABLE,this._wwa.callCameraMoveUserDefineFunction())}else if(this._state===Yt.MOVING){try{var e=this._position.getNextFramePosition(this._dir,k[this._speedIndex],k[this._speedIndex])}catch(e){}e.isJustPosition()&&(this._state=Yt.CONTROLLABLE,this.toggleMovingImage(),this._moves++,this._isPartsEventExecuted=!1,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._wwa.callMoveUserDefineFunction()),this._position=e}}controll(e){var t,s;if(this.isControllable()){this._isPreparedForLookingAround=!1,this._dir=e;try{t=this._position.getNextFramePosition(this._dir,k[this._speedIndex],k[this._speedIndex]),s=this._position.getNextJustPosition(e)}catch(e){return}if(this._isOnCameraMovingPosition()){if(0!==this._wwa.getMapIdByPosition(s)||this._wwa.isOldMap()||this._wwa.debug)try{this._camera.move(this._dir),this._state=Yt.CAMERA_MOVING}catch(e){this._state=Yt.CONTROLLABLE}return}if(!this.canMoveTo(s))return this._wwa.getMapTypeByPosition(s)===F.MAP_WALL&&this._wwa.checkMap(s.getPartsCoord()),void this._wwa.checkObject(s.getPartsCoord());this._position=t,this._state=Yt.MOVING,this._wwa.getMapAttributeByPosition(this._position.getNextJustPosition(e),F.ATR_TYPE)!==F.MAP_LOCALGATE&&this._wwa.moveObjects(!0)}}setDir(e){this._isPreparedForLookingAround=!1,this._dir=e}canMoveTo(e){if(null===e)return!1;if(this._wwa.debug)return!0;this._wwa.getMapWidth(),e.getPartsCoord(),e.getOffsetCoord();return!(0===this._wwa.getMapIdByPosition(e)&&!this._wwa.isOldMap())&&(this._wwa.getMapTypeByPosition(e)!==F.MAP_WALL&&(0===this._wwa.getObjectIdByPosition(e)||(this._wwa.getObjectTypeByPosition(e)===F.OBJECT_NORMAL&&this._wwa.getObjectAttributeByPosition(e,F.ATR_MODE)===F.PASSABLE_OBJECT||this._wwa.getObjectTypeByPosition(e)===F.OBJECT_DOOR&&this._wwa.getObjectAttributeByPosition(e,F.ATR_NUMBER)===F.PASSABLE_OBJECT&&!this.hasItem(this._wwa.getObjectAttributeByPosition(e,F.ATR_ITEM)))))}isMoving(){return this._state==Yt.MOVING||this._state==Yt.CAMERA_MOVING}_isOnCameraMovingPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x==F.H_PARTS_NUM_IN_WINDOW-1&&this._dir===m.RIGHT||t.x===e.x&&this._dir===m.LEFT||t.y-e.y==F.V_PARTS_NUM_IN_WINDOW-1&&this._dir===m.DOWN||t.y===e.y&&this._dir===m.UP}_isOnCameraStopPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x==F.H_PARTS_NUM_IN_WINDOW-1&&this._dir===m.LEFT||t.x===e.x&&this._dir===m.RIGHT||t.y-e.y==F.V_PARTS_NUM_IN_WINDOW-1&&this._dir===m.UP||t.y===e.y&&this._dir===m.DOWN}isControllable(){var e=this._afterMoveMacroFlag;return this._afterMoveMacroFlag=!1,this._state===Yt.CONTROLLABLE&&!this._partsAppeared&&(this._wwa.getMapTypeByPosition(this._position)!==F.MAP_LOCALGATE&&this._wwa.getMapTypeByPosition(this._position)!==F.MAP_URLGATE||!this._wwa.isPrevFrameEventExecuted())&&0===this._moveMacroWaitingRemainMoves&&0===this._moveObjectAutoExecTimer&&!e&&this._wwa.canInput()}getCopyOfItemBox(){return this._itemBox.slice()}getDir(){return this._dir}isMovingImage(){return this._isMovingImage}toggleMovingImage(){this._isMovingImage?this._isMovingImage=!1:this._isMovingImage=!0}getEnergyMax(){return this._energyMax}isJumped(){return this._state===Yt.LOCALGATE_JUMPED||this._state===Yt.LOCALGATE_JUMPED_WITH_MESSAGE}setMessageWaiting(){this._state=Yt.MESSAGE_WAITING}isWaitingMessage(){return this._state===Yt.MESSAGE_WAITING}isDelayFrame(){return this._messageDelayFrameCount>0}updateDelayFrame(){this._messageDelayFrameCount--}setDelayFrame(){this._messageDelayFrameCount=1}clearMessageWaiting(){this._state!==Yt.MESSAGE_WAITING&&this._state!==Yt.LOCALGATE_JUMPED_WITH_MESSAGE||(this._state===Yt.MESSAGE_WAITING?this._state=Yt.CONTROLLABLE:this._state===Yt.LOCALGATE_JUMPED_WITH_MESSAGE&&(this._state=Yt.LOCALGATE_JUMPED),this._isPartsEventExecuted=!0,this._isPreparedForLookingAround&&(this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME))}setEstimateWindowWating(){this._state=Yt.ESTIMATE_WINDOW_WAITING}isWaitingEstimateWindow(){return this._state===Yt.ESTIMATE_WINDOW_WAITING}clearEstimateWindowWaiting(){this._state===Yt.ESTIMATE_WINDOW_WAITING&&(this._state=Yt.CONTROLLABLE)}setPasswordWindowWating(){this._state=Yt.PASSWORD_WINDOW_WAITING}isWaitingPasswordWindow(){return this._state===Yt.PASSWORD_WINDOW_WAITING}clearPasswordWindowWaiting(){this._state===Yt.PASSWORD_WINDOW_WAITING&&(this._state=Yt.CONTROLLABLE)}isPartsEventExecuted(){return this._isPartsEventExecuted}resetEventExecutionInfo(){this._isPartsEventExecuted=!1}getLastExecPartsIDOnSamePosition(e){return e===v.MAP?this._samePosLastExecutedMapID:this._samePosLastExecutedObjID}setLastExecInfoOnSamePosition(e,t){e===v.MAP?this._samePosLastExecutedMapID=t:this._samePosLastExecutedObjID=t}processAfterJump(){this._state!==Yt.LOCALGATE_JUMPED&&this._state!==Yt.LOCALGATE_JUMPED_WITH_MESSAGE||0==--this._jumpWaitFramesRemain&&(this._state=this._state===Yt.LOCALGATE_JUMPED?Yt.CONTROLLABLE:Yt.MESSAGE_WAITING)}jumpTo(e){var t=this._camera.getPosition();this.getPosition();return!this._position.equals(e)&&(this._position=e,e.isInCameraRange(this._camera,!0)||this._camera.reset(e),this._state=this._state===Yt.MESSAGE_WAITING?Yt.LOCALGATE_JUMPED_WITH_MESSAGE:Yt.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=F.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,e.hasLocalGate()?this._dir=m.DOWN:e.getPartsCoord().y<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(m.DOWN).hasLocalGate()?this._dir=m.UP:e.getPartsCoord().y>=1&&e.getNextJustPosition(m.UP).hasLocalGate()?this._dir=m.DOWN:e.getPartsCoord().x<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(m.RIGHT).hasLocalGate()?this._dir=m.LEFT:e.getPartsCoord().x>=1&&e.getNextJustPosition(m.LEFT).hasLocalGate()?this._dir=m.RIGHT:this._dir=m.DOWN,this._camera.getPosition().equals(t)||(this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME),this._wwa.callJumpGateUserDefineFunction(),!0)}systemJumpTo(e){this._position=e,this._camera.reset(e),this._camera.resetPreviousPosition(),this._state=Yt.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=F.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._dir=m.DOWN,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME}addStatusAll(e){return this._status.add(e),this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),this._status}setEnergyMax(e){return this._energyMax=e,0!==e&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}setEnergy(e){return this._status.energy=e,this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}damage(e){this._status.energy=Math.max(0,this._status.energy-e),this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox()}setStrength(e){return this._status.strength=e,this.updateStatusValueBox(),e}setDefence(e){return this._status.defence=e,this.updateStatusValueBox(),e}setGold(e){return this._status.gold=e,this.updateStatusValueBox(),e}getStatus(){return this._status.plus(this._equipStatus)}getStatusWithoutEquipments(){return this._status.plus(new h(0,0))}getStatusOfEquipments(){return this._equipStatus.plus(new h(0,0))}updateStatusValueBox(){var e;const t=this._status.plus(this._equipStatus);this._energyValueElement.textContent=this._wwa.isVisibleStatus("energy")?String(t.energy):"",this._strengthValueElement.textContent=this._wwa.isVisibleStatus("strength")?String(t.strength):"",this._defenceValueElement.textContent=this._wwa.isVisibleStatus("defence")?String(t.defence):"",this._goldValueElement.textContent=this._wwa.isVisibleStatus("gold")?String(t.gold):"",null===(e=this._wwa._messageWindow)||void 0===e||e.update(),this._wwa.updateScore()}updateItemBox(e){for(let t=0;t<this._itemBoxElement.length;t++){const s=this._itemBoxElement[t],i=ge("#item"+t);if(0===this._itemBox[t]){s.style.backgroundPosition="-40px 0px",this.disposeItemEffect(t,this._itemBoxElement[t],i);continue}const a=this._wwa.getObjectCropXById(this._itemBox[t]),r=this._wwa.getObjectCropYById(this._itemBox[t]);if(!e||t!==e.insertPos-1){s.style.backgroundPosition="-"+a+"px -"+r+"px",this.disposeItemEffect(t,this._itemBoxElement[t],i);continue}const n=e.itemScreenPixelCoord.x-e.itemBoxScreenPixelCoord.x,o=e.itemScreenPixelCoord.y-e.itemBoxScreenPixelCoord.y,h=-n*F.DEFAULT_FRAME_INTERVAL/F.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME,c=0===e.overwrittenObjectId||void 0===e.overwrittenObjectId,l=c?e.itemBoxBackgroundImageCoord.x:this._wwa.getObjectCropXById(e.overwrittenObjectId),_=c?e.itemBoxBackgroundImageCoord.y:this._wwa.getObjectCropYById(e.overwrittenObjectId);s.style.left=n+"px",s.style.top=o+"px","number"==typeof this.itemEffectStartTimers[t]&&clearInterval(this.itemEffectStartTimers[t]),this.itemEffectStartTimers[t]=window.setTimeout((()=>{this.itemEffectStartTimers[t]=void 0,this.startItemEffect(t,s,i,{target:{x:a,y:r},overwritten:{x:l,y:_}},h)}),F.DEFAULT_FRAME_INTERVAL)}}startItemEffect(e,t,s,i,a){const r=s.querySelector(this.overwittenItemSelector);r&&s.removeChild(r);const n=document.createElement("div");n.classList.add(this.overwittenItemClassName),n.style.backgroundPosition="-"+i.overwritten.x+"px -"+i.overwritten.y+"px",n.style.backgroundImage=s.style.backgroundImage,s.appendChild(n),t.style.backgroundPosition="-"+i.target.x+"px -"+i.target.y+"px",t.style.transitionDuration=a+"ms",t.style.transitionProperty="left,top",t.style.transitionTimingFunction="linear",t.style.left="0",t.style.top="0",s.classList.add(this.itemTransitioningClassName),t.addEventListener("transitionend",(()=>{this.disposeItemEffect(e,t,s)}),{once:!0})}disposeItemEffect(e,t,s){"number"==typeof this.itemEffectStartTimers[e]&&(clearInterval(this.itemEffectStartTimers[e]),this.itemEffectStartTimers[e]=void 0),t.style.transitionDuration="0s",t.style.transitionProperty="",t.style.left="0",t.style.top="0",s.classList.contains(this.itemTransitioningClassName)&&s.classList.remove(this.itemTransitioningClassName);const i=s.querySelector(this.overwittenItemSelector);i&&s.removeChild(i)}isDead(){return this._status.energy<=0}addItem(e,t=0,s=!1,i){var a,r,n,o=this._wwa.getObjectAttributeById(e,F.ATR_NUMBER),h=0;if(0===t&&0!==o&&(t=o),0===t){if(0===e)return;if((a=this._getBlankItemPos())===F.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),new Error("これ以上、アイテムを持てません。");h=this._itemBox[a-1],this._forceSetItemBox(a,e)}else if(!1===s)if(a=t,n=this._itemBox[a-1],this._wwa.getObjectAttributeById(n,F.ATR_NUMBER)!==this._wwa.getObjectAttributeById(e,F.ATR_NUMBER)){if((r=this._getBlankItemPos())===F.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),new Error("これ以上、アイテムを持てません。");this._forceSetItemBox(r,n),this._forceSetItemBox(a,e)}else h=this._itemBox[a-1],this._forceSetItemBox(a,e);else a=t,h=this._itemBox[a-1],this._forceSetItemBox(a,e);this._updateEquipmentStatus(),this.updateItemBox(i?{insertPos:a,itemScreenPixelCoord:i.screenPixelCoord,itemBoxBackgroundImageCoord:i.itemBoxBackgroundImageCoord,itemBoxScreenPixelCoord:new l(F.MAP_WINDOW_WIDTH+(a-1)%3*F.CHIP_SIZE,F.ITEMBOX_TOP_Y+Math.floor((a-1)/3)*F.CHIP_SIZE),overwrittenObjectId:h}:void 0)}_forceSetItemBox(e,t){var s,i=this,r=Ee("#item"+(e-1)+">.item-click-border"),n=this._wwa.getObjectAttributeById(t,F.ATR_MODE);if(this.removeItemByItemPosition(e),this._itemBox[e-1]=t,this._wwa.setEvalCalcWwaNodeEarnedItem(t,e),this._wwa.callGetItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),0!==t&&n!==y.NORMAL){const t=this._wwa.resolveSystemMessage(a.ITEM_SELECT_TUTORIAL);this._isClickableItemGot||("BLANK"!==t&&this._wwa.registerSystemMessagePage(t),this._isClickableItemGot=!0),r.style.display="block",s=e,i._itemUsingEvent[s-1]=()=>{(i.isControllable()||i._wwa._messageWindow.isItemMenuChoice())&&(i._wwa._itemMenu.close(),i._wwa._setNextPage(),i._wwa.onselectitem(s))},r.addEventListener("click",this._itemUsingEvent[e-1])}}_getBlankItemPos(){var e;for(e=1;e<this._itemBox.length+1;e++)if(0===this._itemBox[e-1])return e;return F.ITEMBOX_IS_FULL}_updateEquipmentStatus(){var e,t=new h(0,0);for(e=0;e<F.ITEMBOX_SIZE;e++)0!==this._itemBox[e]&&(t.strength+=this._wwa.getObjectAttributeById(this._itemBox[e],F.ATR_STRENGTH),t.defence+=this._wwa.getObjectAttributeById(this._itemBox[e],F.ATR_DEFENCE));var s=t.minus(this._equipStatus);this._wwa.setStatusChangedEffect(s),this._equipStatus=t,this.updateStatusValueBox()}hasItem(e){for(var t=0;t<F.ITEMBOX_SIZE;t++)if(this._itemBox[t]===e)return!0;return!1}canUseItem(e){var t=this._itemBox[e-1];return 0!==t&&this._wwa.getObjectAttributeById(t,F.ATR_MODE)!==y.NORMAL}useItem(){var e;e=this._itemBox[this._readyToUseItemPos1To12-1],this._wwa.getObjectAttributeById(e,F.ATR_MODE)!==y.NOT_DISAPPEAR&&this.removeItemByItemPosition(this._readyToUseItemPos1To12);var t=me("item"+(this._readyToUseItemPos1To12-1));return setTimeout((()=>{t.classList.contains("onpress")&&t.classList.remove("onpress")}),F.DEFAULT_FRAME_INTERVAL),this._wwa.setEvalCalcWwaNodeEarnedItem(e,this._readyToUseItemPos1To12),this._wwa.callUseItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),this._isReadyToUseItem=!1,this._readyToUseItemPos1To12=void 0,e}canHaveMoreItems(){return this._getBlankItemPos()!==F.ITEMBOX_IS_FULL}removeItemByItemPosition(e){var t;0!==this._itemBox[e-1]&&(this._wwa.getObjectAttributeById(this._itemBox[e-1],F.ATR_MODE)!==y.NORMAL&&((t=Ee("#item"+(e-1)+">.item-click-border")).removeEventListener("click",this._itemUsingEvent[e-1]),t.style.display="none"),this._itemBox[e-1]=0,this._updateEquipmentStatus(),this.updateItemBox())}removeItemByPartsID(e){var t;if(!this.hasItem(e))throw new Error("アイテムを持っていない");for(var s=0;s<F.ITEMBOX_SIZE;s++)if(this._itemBox[s]===e)return this._wwa.getObjectAttributeById(this._itemBox[s],F.ATR_MODE)!==y.NORMAL&&((t=Ee("#item"+s+">.item-click-border")).removeEventListener("click",this._itemUsingEvent[s]),t.style.display="none"),this._itemBox[s]=0,this._updateEquipmentStatus(),void this.updateItemBox()}clearItemBox(){for(var e=1;e<=F.ITEMBOX_SIZE;e++)this.removeItemByItemPosition(e);this._updateEquipmentStatus(),this.updateItemBox()}hasGold(e){return this._status.gold>=e}payGold(e){if(!this.hasGold(e))throw new Error("お金が足りない");this.setGold(this._status.gold-e)}earnGold(e){this.setGold(this._status.gold+e)}setPartsAppearedFlag(){this._partsAppeared=!0}clearPartsAppearedFlag(){this._partsAppeared=!1}isPartsAppearedTime(){return!0===this._partsAppeared}startBattleWith(e){this._isPlayerTurn=!0,this._battleFrameCounter=F.BATTLE_INTERVAL_FRAME_NUM,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=e,this._state=Yt.BATTLE}isFighting(){return this._state===Yt.BATTLE}isTurn(){return this._isPlayerTurn}getTurnNum(){return this._battleTurnLength}isBattleStartFrame(){return this._battleFrameCounter===F.BATTLE_INTERVAL_FRAME_NUM&&0===this._battleTurnLength}calcBattleResultForPlayerTurn(e,t,s=!1){const i=this._wwa.callUserDefinedBattleDamageFunction("playerToEnemy",s?{playerStatus:e,enemyStatus:t}:void 0);return i||{damage:this._calcDamageDefault(e,t)}}calcBattleResultForEnemyTurn(e,t,s=!1){const i=this._wwa.callUserDefinedBattleDamageFunction("enemyToPlayer",s?{playerStatus:t,enemyStatus:e}:void 0);return i||{damage:this._calcDamageDefault(e,t)}}_calcDamageDefault(e,t){const s=e.strength-t.defence;return s>0?s:0}fight(){if(!this.isFighting())throw new Error("バトルが開始されていません。");if(0===this._battleTurnLength&&this._battleFrameCounter===F.BATTLE_INTERVAL_FRAME_NUM&&this._wwa.showMonsterWindow(),--this._battleFrameCounter>0)return;this._battleTurnLength++,this._wwa.isBattleSpeedIndexForQuickBattle(this._speedIndex)||this._battleTurnLength>F.BATTLE_SPEED_CHANGE_TURN_NUM?(1===this._battleTurnLength&&(this._wwa.playSound(B.ATTACK),this._wwa.vibration(!1)),this._battleFrameCounter=1):(this._battleFrameCounter=F.BATTLE_INTERVAL_FRAME_NUM,this._wwa.playSound(B.ATTACK),this._wwa.vibration(!0));var e=this.getStatus(),t=this._enemy.status;let s=!1;if(this._isPlayerTurn){if(1===this._battleTurnLength&&this._wwa.isUsingDefaultDamageCalcFunction()&&e.strength<=t.defence&&e.defence>=t.strength)return this._enemy.battleEndProcess(),this._wwa.registerSystemMessagePageByKey(a.CANNOT_DAMAGE_MONSTER),this._battleTurnLength=0,this._enemy=null,void(this._state=Yt.CONTROLLABLE);const{damage:i,aborted:r}=this.calcBattleResultForPlayerTurn(e,t);this._enemy.damage(i),s=Boolean(r),this._enemy.status.energy<=0&&(this._wwa.playSound(this._wwa.getObjectAttributeById(this._enemy.partsID,F.ATR_SOUND)),this.earnGold(t.gold),this._wwa.setStatusChangedEffect(new c(0,0,0,t.gold)),0!==this._enemy.item?this._wwa.setPartsOnPosition(v.OBJECT,this._enemy.item,this._enemy.position):this._wwa.setPartsOnPosition(v.OBJECT,0,this._enemy.position),this._wwa.reserveAppearPartsInNextFrame(this._enemy.position,f.OBJECT,this._enemy.partsID),this._state=Yt.CONTROLLABLE,this._wwa.registerPageByMessage(this._enemy.message,{triggerParts:{id:this._enemy.partsID,type:v.OBJECT,position:this._enemy.position}}),this._enemy.battleEndProcess(),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null),null!==this._enemy&&(0===i?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0),this._isPlayerTurn=!1}else{const{damage:i,aborted:a}=this.calcBattleResultForEnemyTurn(t,e);this.damage(i),s=Boolean(a),this._status.energy<=0&&(this.setEnergy(0),this._enemy.battleEndProcess(),this._state=Yt.CONTROLLABLE,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null,this._wwa.shouldApplyGameOver({isCalledByMacro:!1})&&this._wwa.gameover()),0===i?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0,this._isPlayerTurn=!0}(this._battleNoDamageTurnLength>F.FIGHT_DRAW_TURN||s)&&(this._enemy.battleEndProcess(),this._state=Yt.CONTROLLABLE,this._wwa.registerSystemMessagePageByKey(a.BATTLE_NOT_SETTLED),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null)}readyToUseItem(e){var t;if(!this.canUseItem(e))throw new Error("アイテムがないか、アイテムが使えません。");t=this._itemBox[e-1],this._wwa.getObjectAttributeById(t,F.ATR_STRING),this._wwa.reserveAppearPartsInNextFrame(this._position.getPartsCoord(),f.OBJECT,t),this._readyToUseItemPos1To12=e,this._isReadyToUseItem=!0}isReadyToUseItem(){return this._isReadyToUseItem}getDrawingCenterPosition(){var e=this._position.getPartsCoord(),t=this._position.getOffsetCoord(),s=this._camera.getPosition(),i=s.getPartsCoord(),a=s.getOffsetCoord(),r=(e.x-i.x)*F.CHIP_SIZE+t.x-a.x+F.CHIP_SIZE/2,n=(e.y-i.y)*F.CHIP_SIZE+t.y-a.y+F.CHIP_SIZE/2;return new l(r,n)}mainFrameCount(){this._frameCount++}getFrameCount(){return this._frameCount}setFrameCount(e){return"number"!=typeof e&&(e=0),this._frameCount=e}getMoveCount(){return this._moves}setMoveCount(e){return this._moves=e}isMoveObjectAutoExecTime(){return 0===this._moveObjectAutoExecTimer}setMoveMacroWaiting(e){e<0||(this._moveMacroWaitingRemainMoves=e,this._moveObjectAutoExecTimer=0)}resetMoveObjectAutoExecTimer(){this._moveObjectAutoExecTimer=F.CHIP_SIZE/k[this._speedIndex],this._moveMacroWaitingRemainMoves--}decrementMoveObjectAutoExecTimer(){return this._moveMacroWaitingRemainMoves>=0&&this._moveObjectAutoExecTimer>0&&(this._moveObjectAutoExecTimer--,0===this._moveMacroWaitingRemainMoves&&0===this._moveObjectAutoExecTimer&&(this._afterMoveMacroFlag=!0)),0}isWaitingMoveMacro(){return 0!==this._moveMacroWaitingRemainMoves||0!==this._moveObjectAutoExecTimer}decrementLookingAroundTimer(){return this._isPreparedForLookingAround&&this._lookingAroundTimer>0?--this._lookingAroundTimer:0}isLookingAround(){return this._isPreparedForLookingAround&&0===this._lookingAroundTimer}getSpeedIndex(){return this._speedIndex}speedUp(){return this._speedIndex=Math.min(F.MAX_SPEED_INDEX,this._speedIndex+1)}speedDown(){return this._speedIndex=Math.max(F.MIN_SPEED_INDEX,this._speedIndex-1)}setSpeedIndex(e){if(e<F.MIN_SPEED_INDEX||F.MAX_SPEED_INDEX<e)throw new Error("#set_speed の引数が異常です:"+e);return this._speedIndex=e,this._speedIndex}isPausing(){return this.isJumped()||this.isWaitingMessage()||this.isWaitingPasswordWindow()||this.isWaitingEstimateWindow()||this.isWaitingMoveMacro()||this.isFighting()}constructor(e,t,s,i,a,r,n){super(t),this.itemTransitioningClassName="item-transitioning",this.overwittenItemClassName="item-overwritten",this.overwittenItemSelector=`.${this.overwittenItemClassName}`,this.itemEffectStartTimers=new Array(F.ITEMBOX_SIZE),this._status=i,this._equipStatus=new h(0,0),this._itemBox=new Array(F.ITEMBOX_SIZE),this._itemBoxElement=new Array(F.ITEMBOX_SIZE),this._itemUsingEvent=new Array(F.ITEMBOX_SIZE);for(var o=0;o<this._itemBox.length;o++)this._itemBox[o]=0,this._itemBoxElement[o]=Ee("#item"+o+">.item-disp");this.updateItemBox(),this._energyMax=a,this._dir=m.DOWN,this._isMovingImage=!1,this._wwa=e,this._state=Yt.CONTROLLABLE,this._camera=s,this._isPartsEventExecuted=!1,this._energyValueElement=Ee("#disp-energy>.status-value-box"),this._strengthValueElement=Ee("#disp-strength>.status-value-box"),this._defenceValueElement=Ee("#disp-defence>.status-value-box"),this._goldValueElement=Ee("#disp-gold>.status-value-box"),this._isReadyToUseItem=!1,this._isClickableItemGot=!1,this._moves=r,this._moveMacroWaitingRemainMoves=0,this._moveObjectAutoExecTimer=0,this.updateStatusValueBox(),this._partsAppeared=!1,this._afterMoveMacroFlag=!1,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME,this._speedIndex=n,this._messageDelayFrameCount=0,this._battleNoDamageTurnLength=0}}class Ht{constructor(e,t,s,i,a,r,n){this._partsID=e,this._position=t,this._imgCoord=s,this._status=i,this._message=a,this._item=r,this._battleEndCallback=n}get partsID(){return this._partsID}get position(){return this._position}get imgCoord(){return this._imgCoord}get status(){return this._status}get message(){return this._message}get item(){return this._item}damage(e){this._status.energy=Math.max(0,this._status.energy-e)}battleEndProcess(){var e;null===(e=this._battleEndCallback)||void 0===e||e.call(this)}setStatus(e){null!==e.energy&&(this._status.energy=e.energy),null!==e.strength&&(this._status.strength=e.strength),null!==e.defence&&(this._status.defence=e.defence)}clone(){return new Ht(this._partsID,this._position.clone(),this._imgCoord.clone(),this._status.clone(),this._message,this._item,this._battleEndCallback)}}class Kt{constructor(e,t,s,i,a){this._player=e,this._objectID=t,this._srcPos=s,this._destPos=i,this._dir=a,this._currentPos=this._srcPos.clone()}update(){var e=this._player.getSpeedIndex();return this._currentPos=this._currentPos.getNextFramePosition(this._dir,k[e],k[e]),this._currentPos}get isAchievedDestination(){return this._currentPos.equals(this._destPos)}get currentPosition(){return this._currentPos}get beforePosition(){return this._srcPos}get destination(){return this._destPos}get objID(){return this._objectID}}class jt{constructor(e,t){this._wwa=e,this._player=t,this.clear()}add(e,t,s,i){this._queue.push(new Kt(this._player,e,t,s,i))}update(){for(var e=[],t=[],s=0;s<this._queue.length;s++)this._queue[s].update(),this._queue[s].isAchievedDestination?(e.push(this._queue[s]),this._wwa.setPartsOnPosition(v.OBJECT,0,this._queue[s].beforePosition.getPartsCoord()),this._wwa.setPartsOnPosition(v.OBJECT,this._queue[s].objID,this._queue[s].destination.getPartsCoord())):t.push(this._queue[s]);return this._queue=t,e}clear(){this._queue=[]}get objectMovingData(){return this.objectMovingData}getOffsetByBeforePartsCoord(e){var t=this._queue.filter((t=>t.beforePosition.getPartsCoord().equals(e)));return 0===t.length?null:t[0].currentPosition.getOffsetCoord()}}class Xt{constructor(e,t,s,i){this._wwa=e,this._triggerParts=t,this.macroType=s,this.macroArgs=i}isJunction(){return[M.IF,M.ELSE_IF,M.ELSE,M.END_IF].includes(this.macroType)}execute(){try{switch(this.macroType){case M.IMGPLAYER:return this._executeImgPlayerMacro(),{};case M.IMGYESNO:return this._executeImgYesNoMacro(),{};case M.HPMAX:return this._executeHPMaxMacro(),{};case M.SAVE:return this._executeSaveMacro(),{};case M.ITEM:return this._executeItemMacro(),{};case M.DEFAULT:return this._executeDefaultMacro(),{};case M.OLDMAP:return this._executeOldMapMacro(),{};case M.PARTS:return this._executePartsMacro(),{};case M.MOVE:return this._executeMoveMacro(),{};case M.MAP:return this._executeMapMacro(1),{};case M.DIRMAP:return this._executeDirMapMacro(),{};case M.IMGFRAME:return this._executeImgFrameMacro(),{};case M.IMGBOM:return this._executeImgBomMacro(),{};case M.DELPLAYER:return this._executeDelPlayerMacro(),{};case M.FACE:return this._executeFaceMacro(),{};case M.EFFECT:return this._executeEffectMacro(),{};case M.GAMEOVER:return this._executeGameOverMacro(),{};case M.IMGCLICK:return this._executeImgClickMacro(),{};case M.STATUS:{const{isGameOver:e}=this._executeStatusMacro();return{isGameOver:e}}case M.EFFITEM:return this._executeEffItemMacro(),{};case M.COLOR:return this._executeColorMacro(),{};case M.WAIT:return this._executeWaitMacro(),{};case M.SOUND:return this._executeSoundMacro(),{};case M.GAMEPAD_BUTTON:return this._executeGamePadButtonMacro(),{};case M.OLDMOVE:return this._executeOldMoveMacro(),{};case M.JUMPGATE:return this._executeJumpGateMacro(),{};case M.RECPOSITION:return this._executeRecPositionMacro(),{};case M.JUMPRECPOSITION:return this._executeJumpRecPositionMacro(),{};case M.CONSOLE_LOG:return this._executeConsoleLogMacro(1),{};case M.COPY_HP_TO:return this._executeCopyHpToMacro(),{};case M.SET_HP:{const{isGameOver:e}=this._executeSetHPMacro();return{isGameOver:e}}case M.COPY_HPMAX_TO:return this._executeCopyHpMaxToMacro(),{};case M.SET_HPMAX:return this._executeSetHpMaxMacro(),{};case M.COPY_AT_TO:return this._executeCopyAtToMacro(),{};case M.SET_AT:return this._executeSetAtMacro(),{};case M.COPY_DF_TO:return this._executeCopyDfToMacro(),{};case M.SET_DF:return this._executeSetDfMacro(),{};case M.COPY_MONEY_TO:return this._executeCopyMoneyToMacro(),{};case M.SET_MONEY:return this._executeSetMoneyMacro(),{};case M.COPY_STEP_COUNT_TO:return this._executeSetStepCountMacro(),{};case M.VAR_SET_VAL:return this._executeVarSetValMacro(),{};case M.VAR_SET:return this._executeVarSetMacro(),{};case M.VAR_ADD:return this._executeVarAddMacro(),{};case M.VAR_SUB:return this._executeVarSubMacro(),{};case M.VAR_MUL:return this._executeVarMulMacro(),{};case M.VAR_DIV:return this._executeVarDivMacro(),{};case M.VAR_MOD:return this._executeVarModMacro(),{};case M.VAR_SET_RAND:return this._executeVarSetRandMacro(),{};case M.GAME_SPEED:return this._executeGameSpeedMacro(),{};case M.SHOW_STR:case M.SHOW_STR2:case M.IF:return{};case M.LEGACY_IF:return this._executeLegacyIfMacro(),{};case M.ELSE_IF:case M.ELSE:case M.END_IF:return{};case M.SET_SPEED:return this._executeSetSpeedMacro(),{};case M.COPY_TIME_TO:return this._executeCopyTimeToMacro(),{};case M.HIDE_STATUS:return this._executeHideStatusMacro(),{};case M.VAR_MAP:return this._executeVarMapMacro(),{};case M.NO_GAMEOVER:return this._executeNoGameOverMacro(),{};case M.SET:{const{isGameOver:e}=this._executeSetMacro();return{isGameOver:e}}case M.MAP2:return this._executeMapMacro(2),{};case M.CONSOLE_LOG2:return this._executeConsoleLogMacro(2),{};case M.DELAYBGM:return this._executeDelayBgmMacro(),{};case M.SYSMSG:return this._executeSysMsgMacro(),{};case M.PICTURE:return this._executePictureMacro(),{};default:return console.log("不明なマクロIDが実行されました:"+this.macroType),{}}}catch(e){}}_concatEmptyArgs(e){if(this.macroArgs.length<e){for(var t=new Array(e-this.macroArgs.length),s=0;s<t.length;s++)t[s]="";this.macroArgs=this.macroArgs.concat(t)}}_evaluateIntValue(e,t=0){const s=this.macroArgs[e];if(""===s)return t;const i=Number(s),a=i>=0?Math.floor(i):Math.ceil(i);return isNaN(a)?mt(s,this._wwa.generateTokenValues(this._triggerParts),t):a}_executeJumpGateMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.forcedJumpGate(e,t)}_executeRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.recUserPosition(e,t)}_executeJumpRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.jumpRecUserPosition(e,t)}_executeConsoleLogMacro(e){this._concatEmptyArgs(1);const t=this._evaluateIntValue(0);switch(e){case 1:return void this._wwa.outputUserVar(t);case 2:return void console.log(`${this.macroArgs[0]} = ${t}`)}}_executeCopyHpToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHP(e)}_executeCopyHpMaxToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHPMAX(e)}_executeCopyAtToMacro(){this._concatEmptyArgs(2);const e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarAT(e,t)}_executeCopyDfToMacro(){this._concatEmptyArgs(2);const e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarDF(e,t)}_parseStatusKind(e){switch(e){case 0:default:return"all";case 1:return"bare";case 2:return"equipment"}}_executeCopyMoneyToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarMONEY(e)}_executeSetHPMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);return this._wwa.setHPUserVar(e,!0)}_executeSetHpMaxMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setHPMAXUserVar(e)}_executeSetAtMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setATUserVar(e)}_executeSetDfMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setDFUserVar(e)}_executeSetMoneyMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMONEYUserVar(e)}_executeSetStepCountMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarStep(e)}_executeVarSetValMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserVarVal(e,t)}_executeVarSetMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValOtherUserVal(e,t)}_executeVarAddMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValAdd(e,t)}_executeVarSubMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValSub(e,t)}_executeVarMulMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMul(e,t)}_executeVarDivMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValDiv(e,t)}_executeVarModMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMod(e,t)}_executeVarSetRandMacro(){this._concatEmptyArgs(3);const e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,0);this._wwa.setUserValRandNum(e,t,s)}_executeGameSpeedMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.speedChangeJudge(e)}_executeLegacyIfMacro(){for(var e=new Array(11),t=0;t<10;t++)e[t]=this.macroArgs[t];this._wwa.userVarUserIf(this._triggerParts.position,e)}_executeSetSpeedMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setPlayerSpeedIndex(e-1)}_executeCopyTimeToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarPlayTime(e)}_executeHideStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=0!==this._evaluateIntValue(1);this._wwa.hideStatus(e,t)}_executeVarMapMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this.macroArgs[1],s=this.macroArgs[2],i=this._evaluateIntValue(3,v.OBJECT);if(e<0)throw new Error("入力変数が不正です");this._wwa.varMap(this._triggerParts.position,t,s,e,i)}_executeImgPlayerMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerImgCoord(new l(e,t))}_executeImgYesNoMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setYesNoImgCoord(new l(e,t))}_executeHPMaxMacro(){this._concatEmptyArgs(1);var e=Math.max(0,this._evaluateIntValue(0));this._wwa.setPlayerEnergyMax(e)}_executeSaveMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.disableSave(e)}_executeItemMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerGetItem(e,t)}_executeDefaultMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setObjectNotCollapseOnPartsOnPlayer(e)}_executeOldMapMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setOldMap(e)}_executePartsMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,v.OBJECT),i=this._evaluateIntValue(3);if(s!==v.OBJECT&&s!==v.MAP)throw new Error("パーツ種別が不明です");if(0!==i&&1!==i&&(i=1),e<0||t<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(e>=this._wwa.getObjectPartsNum()||t>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(e>=this._wwa.getMapPartsNum()||t>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");this._wwa.replaceParts(e,t,s,!!i)}_executeMoveMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMoveMacroWaitingToPlayer(e)}_executeMapMacro(e){this._concatEmptyArgs(4);const t=this._evaluateIntValue(0);var s=this._evaluateIntValue(3,v.OBJECT);if(t<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(t>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(t>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");if(1===e){const e=this.macroArgs[1],i=this.macroArgs[2];this._wwa.appearPartsEval(this._triggerParts.position,e,i,t,s)}else if(2===e){const e=this._evaluateIntValue(1),i=this._evaluateIntValue(2);if(isNaN(e)||isNaN(i))throw new Error("出現先座標が不正です");this._wwa.appearPartsEval(this._triggerParts.position,`${e}`,`${i}`,t,s)}}_executeDirMapMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,v.OBJECT);if(isNaN(e)||isNaN(t)||isNaN(s))throw new Error("引数が整数ではありません");if(e<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(e>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(e>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");this._wwa.appearPartsByDirection(t,e,s)}_executeImgFrameMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2);if(t<0||s<0)throw new Error("座標は正でなければなりません。");if(e===R.ENERGY||e===R.STRENGTH||e===R.DEFENCE||e===R.GOLD)this._wwa.setStatusIconCoord(e,new l(t,s));else if(e===R.WIDE_CELL_ROW)this._wwa.setWideCellCoord(new l(t,s));else if(e===R.ITEM_BG)this._wwa.setItemboxBackgroundPosition({x:t,y:s});else{if(e!==R.MAIN_FRAME)throw new Error("種別が不正です。");this._wwa.setFrameCoord(new l(t,s))}}_executeImgBomMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("座標は正でなければなりません。");this._wwa.setBattleEffectCoord(new l(e,t))}_executeDelPlayerMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setDelPlayer(!!e)}_executeFaceMacro(){this._concatEmptyArgs(6);var e,t=this._evaluateIntValue(0),s=this._evaluateIntValue(1),i=this._evaluateIntValue(2),a=this._evaluateIntValue(3),r=this._evaluateIntValue(4),n=this._evaluateIntValue(5);if(t<0||s<0||i<0||a<0||r<0||n<0)throw new Error("各引数は0以上の整数でなければなりません。");e=new u(new l(t,s),new l(i,a),new l(r,n)),this._wwa.addFace(e)}_executeEffectMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);if(e<0)throw new Error("待ち時間は0以上の整数でなければなりません。");if(0!==e){for(var t=[],s=1;s<this.macroArgs.length;s+=2){var i,a=this._evaluateIntValue(s);if(a<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");if(s+1===this.macroArgs.length)throw new Error("画像のパーツ座標指定で、Y座標が指定されていません。");if((i=this._evaluateIntValue(s+1))<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");t.push(new l(a,i))}this._wwa.setEffect(e,t)}else this._wwa.stopEffect()}_executeGameOverMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||e>=this._wwa.getMapWidth()||t<0||t>=this._wwa.getMapWidth())throw new Error("マップの範囲外が指定されています!");this._wwa.setGameOverPosition(new l(e,t))}_executeImgClickMacro(){if(this._concatEmptyArgs(2),this.macroArgs.length<1)throw new Error("引数が少なすぎます");var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("引数が0以上の整数ではありません");this._wwa.setImgClick(new l(e,t))}_executeEffItemMacro(){if(this.macroArgs.length<1)throw new Error("引数が少なすぎます");var e=this._evaluateIntValue(0);this._wwa.updateItemEffectEnabled(!!e)}_executeStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||4<e)throw new Error("ステータス種別が範囲外です。");return this._wwa.setPlayerStatus(e,t,!0)}_executeColorMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2),i=this._evaluateIntValue(3);if(e<0||e>5)throw new Error("種別は0から5までです");if(t<0||t>255||s<0||s>255||i<0||i>255)throw new Error("色が範囲外です");this._wwa.changeStyleRule(e,t,s,i)}_executeWaitMacro(){throw new Error("Not implemented!")}_executeSoundMacro(){this._concatEmptyArgs(2);const e=parseInt(this.macroArgs[0]),t=parseInt(this.macroArgs[1]);this._wwa.playSound(e,t)}_executeGamePadButtonMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("各引数は0以上の整数でなければなりません。");if(t>F.ITEMBOX_SIZE)throw new Error("アイテムボックス上限を超えた数値が指定されました。");this._wwa.setGamePadButtonItemTable(e,t)}_executeOldMoveMacro(){this._concatEmptyArgs(1);const e=!!this._evaluateIntValue(0);this._wwa.setOldMove(e)}_executeNoGameOverMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setGameOverPolicy(e)}_executeSetMacro(){return this._wwa.execSetMacro(this.macroArgs[0],{triggerParts:this._triggerParts})}_executePictureMacro(){if(this._concatEmptyArgs(3),this.macroArgs.length<1)throw new Error("引数が少なすぎます");const e=this._evaluateIntValue(0),t=this.macroArgs[1].length>0?this.macroArgs[1]:"+0";if("0"===t)return void this._wwa.deletePictureRegistry(e);const s=((e,t)=>{if("+"===e[0]){const s=parseInt(e.substring(1,10));if(Number.isNaN(s))throw new Error("+ 以降の文字列は数値形式で記載してください。");return t+s}if("-"===e[0]){const s=parseInt(e.substring(1,10));if(Number.isNaN(s))throw new Error("- 以降の文字列は数値形式で記載してください。");return t-s}const s=parseInt(e,10);if(Number.isNaN(s))throw new Error("数値形式ではないため、解析できません。");return s})(t,this._triggerParts.id);if(0===s)throw new Error("パーツ番号の相対値算出で0が検出されました。ピクチャを消去する場合は0のまま指定してください。");if(s<0)throw new Error("パーツ番号は0以上の整数でなければなりません。");const i=this._evaluateIntValue(2,v.OBJECT);this._wwa.setPictureRegistry(e,s,i,this._triggerParts.position)}_executeDelayBgmMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setBgmDelay(e)}_executeSysMsgMacro(){this._concatEmptyArgs(2);const e=this.resolveSystemMessageKeyFromMacroArg(this.macroArgs[0]);if(!e)throw new Error("該当するシステムメッセージの定義がありません");const t=""===this.macroArgs[1]?void 0:this.macroArgs[1].replaceAll("\\n","\n");this._wwa.overwriteSystemMessage(e,t)}resolveSystemMessageKeyFromMacroArg(e){if(n(e))return e;return o(this._evaluateIntValue(0))}}class $t{constructor(e){this.generateTokenValues=e}static executeNodes(e,t){var s;try{return{isError:!1,messages:null!==(s=null==e?void 0:e.execute(t))&&void 0!==s?s:[]}}catch(e){return console.error(e),{isError:!0}}}}class Jt extends $t{constructor(e=[],t){super(t),this.branches=e}appendBranch(e){this.branches.push(e)}getLastUnconnectedBranch(){for(let e of this.branches)if(!e.next)return e}evaluateAndGetNextNode(e){for(let t of this.branches)if(!t.descriminant||ct(t.descriminant,this.generateTokenValues(e)))return t.next}hasElseBranch(){return this.branches.filter((e=>Boolean(e.elseBranch))).length>=1}execute(e){if(!e)throw new Error("パーツ起因ページによる実行ではないため、Junctionノードの利用を想定していません。");const t=this.evaluateAndGetNextNode(e);return t?t.execute(e):[]}}class Zt extends $t{constructor(e,t,s,i,a,r){super(t),this.evalScript=s,this.macro=i,this.next=a,this.script=r,this.messageSegments=this.parseMessage(e),void 0===this.macro&&(this.macro=[])}isEmpty(){return this.messageSegments.reduce(((e,t)=>e&&""===t),!0)}generatePrintableMessage(){return this.messageSegments.reduce(((e,t)=>`${e}${"string"==typeof t?t:t()}`),"")}appendMessage(e,t=!1){this.messageSegments=this.messageSegments.concat(t?["\n"]:[],this.parseMessage(e))}static createEmptyMessage(e,t,s){return new Zt([],e,t,void 0,void 0,s)}parseMessage(e){return"string"==typeof e?[e]:e}execute(e){var t;return this.script&&this.evalScript(this.script,e),null===(t=this.macro)||void 0===t||t.forEach((e=>{if(e.execute().isGameOver)throw new Error("ゲームオーバーのため、メッセージ・マクロの実行を打ち切ります。")})),this.next?[this,...this.next.execute(e)]:[this]}}function qt({content:e,script:t,generatingOption:s,pageType:i,parseMacro:a,evalScript:r,generateTokenValuesCallback:n}){let o,h,c;const l=function(e,t){return e.split("\n").map((e=>{const s=e.match(/(\$(?:[a-zA-Z_][a-zA-Z0-9_]*)(?:.*))/);if(!s||s.length<2)return e.startsWith("$")?void 0:{type:"text",text:e};const i=t(s[1]);switch(i.macroType){case M.IF:case M.ELSE_IF:case M.ELSE:case M.END_IF:case M.SHOW_STR:case M.SHOW_STR2:return{type:i.macroType,text:e,macro:i};default:return{type:"normalMacro",text:e,macro:i}}})).filter(Boolean)}(e,a),_=[];if(l.forEach(((e,t)=>{try{const i=0===t?void 0:l[t-1].type,a=_[_.length-1],u=function(e,t,s,i,a){switch(e.type){case M.IF:return new Jt([{descriminant:gt(e.macro.macroArgs[0])}],s);case M.SHOW_STR:case M.SHOW_STR2:return t?new Zt(es(e.macro.macroArgs,s,{triggerParts:a.triggerParts,version:e.type===M.SHOW_STR2?2:1}),s,i):void 0;case"text":return t?new Zt(e.text,s,i):void 0;case"normalMacro":return t?new Zt("",s,i,[e.macro]):void 0;default:return}}(e,!o||!zt(i),n,r,{triggerParts:s.triggerParts}),d=function(e,t,s,i){const a=0===i.length;switch(t.type){case M.IF:return void i.push(e);case M.ELSE_IF:if(a)throw new Error("構文エラー: $if を呼ぶ前に $else_if は呼べません");return void s.appendBranch({descriminant:gt(t.macro.macroArgs[0])});case M.ELSE:if(a)throw new Error("構文エラー: $if を呼ぶ前に $else は呼べません");return void s.appendBranch({descriminant:!0,elseBranch:{type:"real"}});case M.END_IF:if(a)throw new Error("構文エラー: $if を呼ぶ前に $endif は呼べません");return i.pop()}}(u,e,a,_);d&&(c=d),i?function(e,t,s,i,a,r,n,o){const h=zt(t);switch(t){case M.IF:case M.ELSE_IF:case M.ELSE:{if(!i||!a)return;const e=a.getLastUnconnectedBranch();if(!e)throw new Error("lastUnconnectedBranchが見つかりませんでした。");return void(e.next=i)}case M.END_IF:if(!(i&&r instanceof Jt))return;for(let e=0;e<r.branches.length;e++){let t=r.branches[e].next;t?Qt(t,i):r.branches[e].next=i}return void(r.hasElseBranch()||r.branches.push({next:i,descriminant:!0,elseBranch:{type:"pesudo-else"}}));default:{if(!(h&&s instanceof Zt))return;const t=!s.isEmpty();e.type===M.SHOW_STR||e.type===M.SHOW_STR2?s.appendMessage(es(e.macro.macroArgs,n,{triggerParts:o.triggerParts,version:e.type===M.SHOW_STR2?2:1}),t):"text"===e.type?s.appendMessage(e.text,t):"normalMacro"===e.type?s.macro.push(e.macro):s.next=i}}}(e,i,h,u,a,c,n,{triggerParts:s.triggerParts}):o=u,u&&(h=u)}catch(e){console.error(`$if-$else_if-$else-$endif マクロの解析中にエラーが発生しました。ページ ${t}`),console.error(e)}})),t&&"first"===i){const e=Zt.createEmptyMessage(n,r,t);e.next=o,o=e}return{firstNode:o,isLastPage:"last"===i,triggerParts:s.triggerParts,isSystemMessage:s.isSystemMessage,showChoice:"first"===i?s.showChoice:void 0,scoreOption:"first"===i?s.scoreOption:void 0,additionalItems:s.additionalItems}}const zt=e=>e===M.SHOW_STR||e===M.SHOW_STR2||"text"===e||"normalMacro"===e;function Qt(e,t){let s=e;for(;;)if(s instanceof Jt&&(s=s.branches[0].next),s instanceof Zt){if(!s.next)return void(s.next=t);s=s.next}}function es(e,t,s){return e.map((e=>{const i=Number(e);if(!isNaN(i))return()=>{const e=t(s.triggerParts).userVars;return 1===s.version?e[i]:i};return null!==dt(e).match(st)?()=>mt(e,t(s.triggerParts)):e.replace(/\\n/g,"\n")}))}function ts(e,t,s,i,a){const r=function(e){return e.split(/\n\<c\>/i)[0].split(/\<c\>/i)[0].replace(/\n\<p\>\n/gi,"<P>").replace(/\n\<p\>/gi,"<P>").replace(/\<p\>\n/gi,"<P>").replace(/\<p\>/gi,"<P>").split("\n").map((e=>{if(!e.startsWith("//"))return e.match(/\/\//)?Ae(Ae(e).replace(/^.*\/\/(?!:s?ptth)/gi,"")):e})).filter((e=>void 0!==e)).join("\n").replace(/\\\/\\\//gi,"//")}(e),{pageContents:n,script:o}=function(e){if(""===e)return{pageContents:[]};const t=e.split(/\<script\>/i),[s,i]=t.length>1?[t[0],t[1]]:[t[0]];return{pageContents:s.split(/\<p\>/gi),script:i}}(r);return 0===n.length?[{firstNode:Zt.createEmptyMessage(a,i,o),isLastPage:!0,...t}]:n.map(((e,r)=>qt({script:o,content:e,generatingOption:t,pageType:ss(r,n.length),parseMacro:s,evalScript:i,generateTokenValuesCallback:a})))}function ss(e,t){return 0===e?"first":e===t-1?"last":"other"}function is(e){return void 0===e||(e instanceof Jt?e.branches.reduce(((e,t)=>e&&is(t.next)),!0):e instanceof Zt?e.isEmpty()&&is(e.next):void 0)}class as{constructor(e,t,s,i,a,r,n){this._wwa=e,this._coord=t,this._width=s,this._height=i,this._isVisible=a,this._parentElement=r,this._element=document.createElement("div"),this._element.style.position="absolute",this._element.style.borderWidth="2px",this._element.style.borderStyle="solid",e.isClassicMode()?this._element.style.borderRadius="15px":this._element.style.borderRadius="10px",this._element.classList.add("wwa-message-window"),this._element.style.zIndex=n+"",this._element.style.left=this._coord.x+"px",this._element.style.top=this._coord.y+"px",this._element.style.width=this._width+"px",this._element.style.height=this._height+"px",this._parentElement.appendChild(this._element)}update(e){}show(){this._isVisible=!0,this._element.style.display="block",this.update(),this._wwa.wwaCustomEvent("wwa_window_show",{name:this.windowName,element:this._element,text:this._element.textContent})}hide(){this._isVisible=!1,this._element.style.display="none",this.update(),this._wwa.wwaCustomEvent("wwa_window_hide",{name:this.windowName})}isVisible(){return this._isVisible}get windowName(){return"TextWindow"}}class rs extends as{constructor(e,t,s,i,a,r,n){super(e,new l(t.x,t.y),s,i,a,r,201),this._cgFileName=n,this._monsterBox=document.createElement("div"),this._monsterBox.style.width=F.CHIP_SIZE+"px",this._monsterBox.style.height=F.CHIP_SIZE+"px",this._monsterBox.style.position="absolute",this._monsterBox.style.left="10px",this._monsterBox.style.top="10px",this._monsterBox.style.backgroundImage="url("+this._cgFileName.replace("(","\\(").replace(")","\\)")+")",this._monsterBox.style.backgroundPosition="0 0",this._element.appendChild(this._monsterBox),this._energyBox=document.createElement("div"),this._energyBox.style.position="absolute",this._energyBox.style.left="80px",this._energyBox.style.top="10px",this._energyBox.textContent="生命力 0",this._element.appendChild(this._energyBox),this._strengthBox=document.createElement("div"),this._strengthBox.style.position="absolute",this._strengthBox.style.left="80px",this._strengthBox.style.top="30px",this._strengthBox.textContent="攻撃力 0",this._element.appendChild(this._strengthBox),this._defenceBox=document.createElement("div"),this._defenceBox.style.position="absolute",this._defenceBox.style.left="180px",this._defenceBox.style.top="30px",this._defenceBox.textContent="防御力 0",this._element.appendChild(this._defenceBox),this._isVisible?this._element.style.display="block":this._element.style.display="none"}update(e){void 0!==e&&(this._monsterBox.style.backgroundPosition="-"+e.imgCoord.x+"px -"+e.imgCoord.y+"px",this._energyBox.textContent="生命力 "+e.status.energy,this._strengthBox.textContent="攻撃力 "+e.status.strength,this._defenceBox.textContent="防御力 "+e.status.defence)}get windowName(){return"MonsterWindow"}}class ns extends as{constructor(e,t,s,i){e.isClassicMode()?(super(e,new l(2*F.CHIP_SIZE,30),7*F.CHIP_SIZE,40,s,i,202),this._element.style.borderWidth="0",this._element.style.borderRadius="4px",this._element.style.fontSize="20px",this._element.style.lineHeight="40px"):super(e,new l(t.x,t.y),340,30,s,i,202),this._element.style.textAlign="center",this._isVisible?this._element.style.display="block":this._element.style.display="none",this.update(0)}update(e){void 0!==e&&(this._element.textContent="Score: "+e)}get windowName(){return"ScoreWindow"}}var os,hs;ns.WINDOW_NAME="ScoreWindow",function(e){e[e.TOP=0]="TOP",e[e.CENTER=1]="CENTER",e[e.BOTTOM=2]="BOTTOM",e[e.SCORE=3]="SCORE"}(os||(os={}));class cs{constructor(e,t,s,i,a,r,n,o,h,c){this._wwaSave=void 0,this._save_select_id=0,this._save_counter=0,this._save_close=!1;var l=this,_=r.replace("(","\\(").replace(")","\\)");switch(this._wwa=e,this._cgFileName=r,this._x=t,this._y=s,this._width=i,this._height=a,this._message="",this._isVisible=n,this._isYesno=o,this._isItemMenu=h,this._element=document.createElement("div"),this._element.id="wwa-text-message-window",this._element.classList.add("wwa-message-window"),this._msgWrapperElement=document.createElement("div"),this._msgWrapperElement.style.textAlign="left",this._msgWrapperElement.style.wordWrap="break-word",this._msgWrapperElement.style.margin=e.isClassicMode()?"8px 0 8px 16px":"0",this._msgWrapperElement.style.padding=e.isClassicMode()?"0":"7px",this._element.appendChild(this._msgWrapperElement),this._saveElement=document.createElement("div"),this._saveElement.style.padding="0",this._saveElement.style.margin="0",this._element.appendChild(this._saveElement),this._dummyElement=document.createElement("div"),this._dummyElement.style.display="none",this._dummyElement.style.padding="0",this._dummyElement.style.margin="0",this._dummyElement.style.height="55px",this._element.appendChild(this._dummyElement),this._ynWrapperElement=document.createElement("div"),this._ynWrapperElement.classList.add("wwa-yesno-wrapper"),this._element.appendChild(this._ynWrapperElement),this._parentElement=c,this._parentElement.appendChild(this._element),this._divYesElement=document.createElement("div"),this._divYesElement.classList.add("wwa-yes-button"),this._divYesElement.style.background="url("+_+")",this._divYesElement.onclick=function(){l._isInputDisable||(e.setYesNoInput(w.YES),l.update())},this._divYesElement.style.cursor="pointer",this._divNoElement=document.createElement("div"),this._divNoElement.classList.add("wwa-no-button"),this._divNoElement.style.background="url("+_+")",this._divNoElement.onclick=function(){l._isInputDisable||(e.setYesNoInput(w.NO),l.update())},this._ynWrapperElement.appendChild(this._divYesElement),this._ynWrapperElement.appendChild(this._divNoElement),l._isInputDisable=!1,e.userDevice.device){case S.SP:case S.VR:this._parentElement.classList.add("useScaleUp")}this.update()}setPosition(e,t,s,i){this._x=e,this._y=t,this._width=s,this._height=i,this.update()}setPositionByPlayerPosition(e,t,s,i,a){var r,n=i.getPartsCoord().substract(a.getPartsCoord()).y;r=e?os.BOTTOM:t?os.SCORE:s?os.CENTER:n>=Math.ceil(F.V_PARTS_NUM_IN_WINDOW/2)?os.TOP:os.BOTTOM,this.setPositionEasy(r)}setPositionEasy(e){var t=Math.floor(this._element.clientHeight/2);return e===os.CENTER?(this._y=F.MAP_WINDOW_HEIGHT/2-t,void this.update()):e===os.TOP?(this._y=Math.max(20,F.MAP_WINDOW_HEIGHT/4-t)+10,void this.update()):e===os.BOTTOM?(this._y=Math.min(F.MAP_WINDOW_HEIGHT-20-this._element.clientHeight,3*F.MAP_WINDOW_HEIGHT/4-t),void this.update()):e===os.SCORE?(this._y=80,void this.update()):void 0}setMessage(e){this._message=e,this.update()}clear(){this._message="",this.update()}setYesNoChoice(e){return this._isInputDisable=!1,this._isYesno=e,this.update(),this._isYesno}isYesNoChoice(){return this._isYesno}isSaveChoice(){return this._isSave}setItemMenuChoice(e){return this._isInputDisable=!1,this._isItemMenu=e,this.update(),this._isItemMenu}isItemMenuChoice(){return this._isItemMenu}setInputDisable(){this._isInputDisable=!0}isInputDisable(){return this._isInputDisable}show(){this._isVisible=!0,this.update()}hide(){this._isVisible=!1,this.update()}isVisible(){return this._isVisible}isWideChar(e){return null!==e.match(/^[^\x01-\x7E\xA1-\xDF]+$/)}createClassicTextElement(e){var t=document.createElement("span");let s=0,i="";for(let r=0;r<e.length||0!=s;r++)if(this.isWideChar(e.charAt(r))?s+=2:s+=1,i+=e.charAt(r),s+1>2*F.MSG_STR_WIDTH){"。"!==e.charAt(r+1)&&"、"!==e.charAt(r+1)||(i+=e.charAt(r+1),r++);var a=document.createElement("span");a.style.display="inline-block",a.style.width="100%",a.textContent=i,t.appendChild(a),s=0,i=""}return t}update(){var e=this._wwa.getYesNoImgCoord();this._isYesno?(this._wwa.getYesNoState()===w.YES?(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YESP_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NO_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"):this._wwa.getYesNoState()===w.NO?(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YES_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NOP_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"):(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YES_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NO_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"),this._ynWrapperElement.style.display="block"):this._ynWrapperElement.style.display="none",this._msgWrapperElement.textContent="";var t=this._message.split("\n");t.forEach(((e,s)=>{let i;this._wwa.isClassicMode()?i=this.createClassicTextElement(e):(i=document.createElement("span"),i.textContent=t[s]),this._msgWrapperElement.appendChild(i),this._msgWrapperElement.appendChild(document.createElement("br"))})),this._isVisible?(this._element.style.left=this._x+"px",this._element.style.top=this._y+"px"):(this._element.style.left="-999999px",this._element.style.top="-999999px"),this._isSave?this._saveElement.style.display="block":this._saveElement.style.display="none",this._element.style.width=this._width+"px",this._element.style.minHeight=this._height+"px"}setWWASave(e){this._wwaSave=e}createSaveDom(){var e,t,s,i,a,r,n,o,h,c,l;t=document.createElement("div"),c=(o=document.getElementById("disp-energy")).style.backgroundPosition,l=o.style.backgroundImage;for(var _=this._wwaSave.list.length,u=0;u<_;u++)e=this._wwaSave.list[u],(s=document.createElement("div")).classList.add("savedata"),s.setAttribute("save_id",u),s.addEventListener("click",(e=>{this.setSaveID(0|e.currentTarget.getAttribute("save_id")),this._save_close=!0,e.preventDefault()})),(i=document.createElement("div")).classList.add("ss"),s.appendChild(i),(a=document.createElement("div")).classList.add("wide-cell-row"),a.style.backgroundPosition=c,a.style.backgroundImage=l,s.appendChild(a),t.appendChild(s),e.flag&&(i.appendChild(e.cvs),(r=document.createElement("span")).textContent=e.getDateText(),e.isLastSaveData()&&(r.style.color=Y.DATE_LAST_SAVE_TEXT_COLOR),i.appendChild(r),(n=document.createElement("div")).classList.add("status-icon"),n.style.backgroundImage=l,n.style.backgroundPosition="-120px -80px",a.appendChild(n),(h=document.createElement("div")).classList.add("status-value-box"),h.textContent=e.getStatusEnergy(),a.appendChild(h));this._saveElement.textContent="",this._saveElement.appendChild(t),this.setSaveID(this._save_select_id),this._isSave=!0,this._save_counter=0,this._save_close=!1}deleteSaveDom(){this._saveElement.textContent="",this._isSave=!1}setSaveID(e){this._save_select_id=e;for(var t,s=document.querySelectorAll(".savedata"),i=s.length,a=0;a<i;a++)t=s[a],e===a?t.classList.add("select"):t.classList.remove("select")}save(e,t){return this._wwaSave.save(e,t,this._save_select_id)}load(){return this._wwaSave.load(this._save_select_id)}saveUpdate(){this._save_counter>0&&this._save_counter--}isSaveClose(){return this._save_close}cursor_wait(){this._save_counter=F.CONTROLL_WAIT_FRAME}saveControll(e){if(!(this._save_counter>0||this._isInputDisable)){switch(e){case m.DOWN:this._save_select_id-=2,this.cursor_wait();break;case m.UP:this._save_select_id+=2,this.cursor_wait();break;case m.LEFT:this._save_select_id--,this.cursor_wait();break;case m.RIGHT:this._save_select_id++,this.cursor_wait()}this.setSaveID((this._save_select_id+Y.QUICK_SAVE_MAX)%Y.QUICK_SAVE_MAX)}}get windowName(){return"MessageWindow"}}class ls{constructor(e,t,s){this.id=e,this.imgFileName=t,this.parent=s,this.elem=document.createElement("div"),this.elem.classList.add("est"),this.elem.setAttribute("id","wwa-est-"+e),this.imgElem=document.createElement("div"),this.imgElem.classList.add("est-img-wrapper"),this.imgElem.style.backgroundImage="url("+this.imgFileName.replace("(","\\(").replace(")","\\)")+")",this.statusElem=document.createElement("div"),this.statusElem.classList.add("est-status-wrapper"),this.energyElem=document.createElement("div"),this.energyElem.classList.add("est-energy"),this.energyDispElem=document.createElement("span"),this.energyDispElem.classList.add("est-energy-disp"),this.energyElem.appendChild(this.energyDispElem),this.statusElem.appendChild(this.energyElem),this.strengthElem=document.createElement("div"),this.strengthElem.classList.add("est-strength"),this.strengthDispElem=document.createElement("span"),this.strengthDispElem.classList.add("est-strength-disp"),this.strengthElem.appendChild(this.strengthDispElem),this.statusElem.appendChild(this.strengthElem),this.defenceElem=document.createElement("div"),this.defenceElem.classList.add("est-defence"),this.defenceDispElem=document.createElement("span"),this.defenceDispElem.classList.add("est-defence-disp"),this.defenceElem.appendChild(this.defenceDispElem),this.statusElem.appendChild(this.defenceElem),this.damageElem=document.createElement("div"),this.damageElem.classList.add("est-damage"),this.damageDispElem=document.createElement("span"),this.damageDispElem.classList.add("est-damage-disp"),this.damageElem.appendChild(this.damageDispElem),this.statusElem.appendChild(this.damageElem),this.elem.appendChild(this.imgElem),this.elem.appendChild(this.statusElem)}hide(){this.elem.style.display="none"}show(){this.elem.style.display="block"}setResult(e,t,s){this.imgElem.style.backgroundPosition="-"+e.x+"px -"+e.y+"px",this.energyDispElem.textContent="生命力 "+t.energy,this.strengthDispElem.textContent="攻撃力 "+t.strength,this.defenceDispElem.textContent="防御力 "+t.defence,s.cannotDamageMonster?this.damageDispElem.textContent="攻撃無効":s.noSettled?this.damageDispElem.textContent="勝負がつきません":s.isOverMaxTurn?this.damageDispElem.textContent="長期戦が予想されます":this.damageDispElem.textContent="予測ダメージ "+s.estimatedDamage}}class _s{constructor(e,t,s){var i;this._wwa=e,this._imgFileName=t,this._parent=s,this._element=document.createElement("div"),this._element.setAttribute("id","wwa-battle-estimate"),this._element.style.display="none",this._edes=[];for(var a=0;a<F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;a++)i=new ls(a,this._imgFileName,this._element),this._edes.push(i),this._element.appendChild(i.elem);this._element.addEventListener("click",(()=>{this._wwa.hideBattleEstimateWindow()})),this._parent.appendChild(this._element)}update(e,t,s,i,a){for(let r=0;r<F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;r++){if(r>=t.length){this._edes[r].hide();continue}const n=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_X),o=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_Y),h=new l(n,o),_=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_ENERGY),u=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_STRENGTH),d=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_DEFENCE),p=new c(_,u,d,0),m=us(e,t[r],s,i,a);this._edes[r].setResult(h,p,m),this._edes[r].show()}}show(){this._element.style.display="block"}hide(){this._element.style.display="none"}}function us(e,t,s,i,a){const r=t.clone(),n=e.clone();let o=0,h=0,c=0;const l=e.energy;if(a&&n.strength<=r.status.defence&&n.defence>=r.status.strength)return{cannotDamageMonster:!0,estimatedDamage:0};for(;;){h++;const e=s(n,r);if(r.status.energy-=e.damage,0===e.damage?c++:c=0,r.status.energy<=0)return{estimatedDamage:o};if(c>F.FIGHT_DRAW_TURN||e.aborted)return{noSettled:(l<=0||n.energy>0)&&r.status.energy>0,estimatedDamage:o};if(h>2e4)return{isOverMaxTurn:!0,estimatedDamage:0};h++;const t=i(r,n),a=Math.max(t.damage,0);if(0===a?c++:c=0,o+=a,n.energy=Math.max(n.energy-a,0),c>F.FIGHT_DRAW_TURN||t.aborted)return{noSettled:(l<=0||n.energy>0)&&r.status.energy>0,estimatedDamage:o};if(h>2e4)return{isOverMaxTurn:!0,estimatedDamage:0}}}!function(e){e[e.SAVE=0]="SAVE",e[e.LOAD=1]="LOAD"}(hs||(hs={}));class ds{constructor(e,t,s){this._wwa=e,this._parent=t,this._isDisallowLoadOldSave=s,this.COPIED_MESSAGE_DISPLAY_MS=1e3,this._element=document.createElement("div"),this._element.setAttribute("id","wwa-password-window"),this._element.style.display="none",this._descriptionElement=document.createElement("div"),this._descriptionElement.classList.add("wwa-password-description"),this._passwordBoxElement=document.createElement("textarea"),this._passwordBoxElement.setAttribute("cols","50"),this._passwordBoxElement.setAttribute("rows","16"),this._passwordBoxElement.addEventListener("focus",(e=>{this._passwordBoxElement.select()})),this._buttonWrapperElement=document.createElement("div"),this._buttonWrapperElement.classList.add("wwa-password-submit"),this._okButtonElement=document.createElement("button"),this._okButtonElement.textContent="OK",this._okButtonElement.addEventListener("click",(()=>{this._wwa.hidePasswordWindow()})),this._cancelButtonElement=document.createElement("button"),this._cancelButtonElement.textContent="キャンセル",this._cancelButtonElement.addEventListener("click",(()=>{this._wwa.hidePasswordWindow(!0)})),this._copyButtonElement=document.createElement("button"),this._copyButtonElement.textContent="コピー",this._copyButtonElement.addEventListener("click",(async()=>{await navigator.clipboard.writeText(this.password),this._copyButtonElement.textContent="コピーしました",this._copyButtonElement.disabled=!0,setTimeout((()=>{this._copyButtonElement&&(this._copyButtonElement.textContent="コピー",this._copyButtonElement.disabled=!1)}),this.COPIED_MESSAGE_DISPLAY_MS)})),this._buttonWrapperElement.appendChild(this._okButtonElement),this._buttonWrapperElement.appendChild(this._cancelButtonElement),this._buttonWrapperElement.appendChild(this._copyButtonElement),this._mode=hs.LOAD,this._element.appendChild(this._descriptionElement),this._element.appendChild(this._passwordBoxElement),this._element.appendChild(this._buttonWrapperElement),this._parent.appendChild(this._element),this.update()}get mode(){return this._mode}set mode(e){this._mode=e,e===hs.LOAD&&(this.password="")}get password(){return this._passwordBoxElement.value}set password(e){this._passwordBoxElement.value=e}show(e){void 0!==e&&(this.mode=e),this._isVisible=!0,this.update()}hide(){this._isVisible=!1,this.update()}update(){var e="";if(this._mode===hs.LOAD){e=`下のボックスに前回のプレイで取得した\n復帰用パスワードを貼り付けてください。\nJava 版 WWA で取得したパスワードはご利用になれません。\n作成者が ${this._isDisallowLoadOldSave?"マップの内容":"ワールド名 か マップの暗証番号"} を変更した場合は\nそれ以前に取得したパスワードは使えなくなります。`;try{this._passwordBoxElement.removeAttribute("readonly")}catch(e){}this._cancelButtonElement.style.display="inline",this._copyButtonElement.style.display="none"}else e="下記テキストがデータ復帰用のパスワードになっています。\nコピーしてメモ帳などのテキストエディタに貼り付けて\n保存してください。",this._passwordBoxElement.setAttribute("readonly","readonly"),this._cancelButtonElement.style.display="none",this._copyButtonElement.style.display="inline";var t=e.split("\n");this._descriptionElement.textContent="";for(var s=0;s<t.length;s++){var i=document.createElement("span");i.textContent=t[s],this._descriptionElement.appendChild(i),this._descriptionElement.appendChild(document.createElement("br"))}this._isVisible?this._element.style.display="block":this._element.style.display="none"}}function ps(){return"ontouchstart"in window&&"ontouchend"in window&&"ontouchmove"in window}function ms(e,t,s){var i,a=document.createElement("style");a.type="text/css",a.setAttribute("id",F.WWA_STYLE_TAG_ID),(i="head",document.getElementsByTagName(i))[0].appendChild(a),e.innerHTML=function(e,t){return`\n <canvas id="wwa-map" class="wwa-canvas" width="440" height="440">\n このブラウザは、Canvas要素をサポートしていません。\n </canvas>\n <canvas id="wwa-map-sub" class="wwa-canvas" width="440" height="440"></canvas>\n <div id="wwa-sidebar">\n <div class="wide-cell-row" id="disp-energy"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="wide-cell-row" id="disp-strength"><div class="status-icon"></div><div class="status-value-box"> 0 </div></div>\n <div class="wide-cell-row" id="disp-defence"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="wide-cell-row" id="disp-gold"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="item-cell" id="item0"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item1"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item2"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item3"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item4"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item5"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item6"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item7"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item8"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item9"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item10"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item11"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="wide-cell-row" id="cell-load">Password</div><div class="wide-button" id="button-load"></div>\n <div class="wide-cell-row" id="cell-save">Quick Save</div><div class="wide-button" id="button-save"></div>\n <div class="wide-cell-row" id="cell-restart">Restart Game</div><div class="wide-button" id="button-restart"></div>\n <div class="wide-cell-row" id="cell-gotowwa">Goto WWA</div><div class="wide-button" id="button-gotowwa"></div>\n </div>\n <div id="wwa-controller"></div>\n <div id="wwa-fader"></div>\n${e?'\n <div id="wwa-cover">\n <div id="unstable-version-warning"></div>\n <div id="version"></div>\n <div id="progress-message-container">開始しています...</div>\n <div id="progress-bar-bg"></div>\n <div id="progress-bar" class="progress-bar"></div>\n <div id="progress-bar-audio" class="progress-bar"></div>\n <div id="progress-disp">---</div>\n </div>\n ':`\n <div id="wwa-cover">\n <canvas id="progress-panel" width="${F.SCREEN_WIDTH}" height="${F.SCREEN_HEIGHT}"></canvas>\n </div>`}\n${t?'\n <div id="wwa-virtualpad-left">\n <button class="wwa-virtualpad__button" id="wwa-up-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-left-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-right-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-down-button"></button>\n <div class="wwa-virtualpad__hole"></div>\n </div>\n <div id="wwa-virtualpad-right">\n <button class="wwa-virtualpad__button" id="wwa-slow-button">I</button>\n <button class="wwa-virtualpad__button" id="wwa-fast-button">P</button>\n <button class="wwa-virtualpad__button" id="wwa-enter-button">Y</button>\n <button class="wwa-virtualpad__button" id="wwa-esc-button">N</button>\n </div>':""}\n`}(null!==t,s),null!==t&&(me("wwa-cover").style.backgroundImage=`url(${t})`,me("wwa-cover").style.backgroundRepeat="no-repeat",me("wwa-cover").style.backgroundPosition="0 0")}class gs{update(){this.counter>0&&this.counter--}cursor_wait(){this.counter=F.CONTROLL_WAIT_FRAME}allClear(){this.col=0,this.row=0,this.counter=0}controll(e){if(!(this.counter>0))switch(e){case m.DOWN:this.row<gs.ROW_MAX-1&&(this.row++,this.openView(),this.cursor_wait());break;case m.UP:this.row>0&&(this.row--,this.openView(),this.cursor_wait());break;case m.LEFT:this.col>0&&(this.col--,this.openView(),this.cursor_wait());break;case m.RIGHT:this.col<gs.COL_MAX-1&&(this.col++,this.openView(),this.cursor_wait())}}ok(){this.close();var e=null;(e=Ee(gs.CLICK_DOM_QUERY_TABLE[this.row][this.col])).classList.contains("item-click-border")||this.allClear();var t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});return e.dispatchEvent(t)}ng(){this.close()}close(){var e,t,s=null;for(e=0;e<gs.COL_MAX;e++)for(t=0;t<gs.ROW_MAX;t++)(s=me(gs.DOM_ID_TABLE[t][e])).classList.contains("onpress")&&s.classList.remove("onpress")}openView(){this.close();me(gs.DOM_ID_TABLE[this.row][this.col]).classList.add("onpress")}init(){this.allClear(),this.openView()}constructor(){this.allClear()}}gs.ROW_MAX=8,gs.COL_MAX=3,gs.DOM_ID_TABLE=[["item0","item1","item2"],["item3","item4","item5"],["item6","item7","item8"],["item9","item10","item11"],["cell-load","cell-load","cell-load"],["cell-save","cell-save","cell-save"],["cell-restart","cell-restart","cell-restart"],["cell-gotowwa","cell-gotowwa","cell-gotowwa"]],gs.CLICK_DOM_QUERY_TABLE=[["#item0 .item-click-border","#item1 .item-click-border","#item2 .item-click-border"],["#item3 .item-click-border","#item4 .item-click-border","#item5 .item-click-border"],["#item6 .item-click-border","#item7 .item-click-border","#item8 .item-click-border"],["#item9 .item-click-border","#item10 .item-click-border","#item11 .item-click-border"],["#button-load","#button-load","#button-load"],["#button-save","#button-save","#button-save"],["#button-restart","#button-restart","#button-restart"],["#button-gotowwa"," #button-gotowwa","#button-gotowwa"]];var Es=s(705);function ws(e){return`^ /${231*e+8310}P+>A[]`}function fs(e){return(0,Es.MD5)(e).toString()}const{parse:ys,stringify:vs}=JSON,{keys:As}=Object,Ss=String,Ts="string",Is={},Cs="object",Ps=(e,t)=>t,Os=e=>e instanceof Ss?Ss(e):e,Ds=(e,t)=>typeof t===Ts?new Ss(t):t,Ns=(e,t,s,i)=>{const a=[];for(let r=As(s),{length:n}=r,o=0;o<n;o++){const n=r[o],h=s[n];if(h instanceof Ss){const r=e[h];typeof r!==Cs||t.has(r)?s[n]=i.call(s,n,r):(t.add(r),s[n]=Is,a.push({k:n,a:[e,t,r,i]}))}else s[n]!==Is&&(s[n]=i.call(s,n,h))}for(let{length:e}=a,t=0;t<e;t++){const{k:e,a:r}=a[t];s[e]=i.call(s,e,Ns.apply(null,r))}return s},bs=(e,t,s)=>{const i=Ss(t.push(s)-1);return e.set(s,i),i},Ms=(e,t,s)=>{const i=t&&typeof t===Cs?(e,s)=>""===e||-1<t.indexOf(e)?s:void 0:t||Ps,a=new Map,r=[],n=[];let o=+bs(a,r,i.call({"":e},"",e)),h=!o;for(;o<r.length;)h=!0,n[o]=vs(r[o++],c,s);return"["+n.join(",")+"]";function c(e,t){if(h)return h=!h,t;const s=i.call(this,e,t);switch(typeof s){case Cs:if(null===s)return s;case Ts:return a.get(s)||bs(a,r,s)}return s}},xs=e=>ys(Ms(e)),Ls=e=>((e,t)=>{const s=ys(e,Ds).map(Os),i=s[0],a=t||Ps,r=typeof i===Cs&&i?Ns(s,new Set,i,a):i;return a.call({"":r},"",r)})(vs(e));function Rs(e,t=new WeakMap){if("symbol"==typeof e)throw new TypeError("symbol は変換対象外です");if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){const s=[];t.set(e,s);for(const i of e)s.push(Rs(i,t));return s}const s=new Map;t.set(e,s);for(const[i,a]of Object.entries(e)){if("string"!=typeof i)throw new TypeError("文字列以外のキーは変換できません");s.set(i,Rs(a,t))}return s}const Bs=Object.freeze({MAP:"map",MAP_OBJECT:"mapObject",SYSTEM_MESSAGE:"systemMessage",USER_VAR:"userVar",USER_NAMED_VAR:"userNamedVar"}),Us=Object.freeze({mapAttribute:!0,objectAttribute:!0,message:!0});class ks{static compress(e,t={}){var s,i,a=Object.create(null);for(s in e)if(!Us[s]){switch(typeof(i=e[s])){case"number":case"string":case"boolean":if(this._restartData[s]===i&&"worldName"!==s)continue;break;case"object":if(null===i){if(this._restartData[s]===i)continue}else if(void 0===(i=this.compressObject(s,i,this._restartData[s],t)))continue;break;case"undefined":break;case"function":continue}a[s]=i}return a}static compressObject(t,s,i,a={}){var r,n,o,h;switch(t){case Bs.MAP:case Bs.MAP_OBJECT:var c,l,_,u,d,p,m,g,E,w,f,y,v,A;for(d in r=Object.create(null),E=Object.create(null),g=Object.create(null),s)for(u in n=s[d],o=i[d],h=Object.create(null),l=-1,n)(m=n[u])!==o[u]&&(h[u]=m,void 0===E[m]&&(E[m]=Object.create(null)),void 0===(f=E[m])[d]&&(f[d]=[]),(v=f[d]).push(Number(u)));for(y in E)for(d in f=E[y],void 0===g[y]&&(g[y]=Object.create(null)),w=g[y],void 0===r[y]&&(r[y]=[]),l=-1,f)1===(v=f[d]).length?(void 0===w[p=v[0]]&&(w[p]=[]),(A=w[p]).push(Number(d))):(_=(c=Number(d))-l-1,l=c,r[y].push(this.getCompressArray(v),_));for(y in g)for(u in m=Number(y),l=-1,w=g[y])A=w[u],_=(c=Number(u))-l-1,l=c,1===A.length?r[y].push(_,A[0]):r[y].push(_,this.getCompressArray(A));var S=[];for(y in l=-1,r)_=(c=Number(y))-l-1,l=c,S.push(_,r[y]);return this._usingByteFlag&&JSON.stringify(S).length>=this._mapByteLength?this.compressMapAllObject(s,i,this._firstRandomMapObjectUtf8Table[t]):S;case Bs.SYSTEM_MESSAGE:var T;for(t in r=Object.create(null),s)T=s[t],i[t]!==T&&(r[t]=T);break;case Bs.USER_VAR:return this.compressUserVars(s);case Bs.USER_NAMED_VAR:if(!(s instanceof Map))throw new TypeError("USER_NAMED_VAR が正しい形式でないためセーブできません");return{version:2,data:xs(e(s))};default:return s}if(0!==Object.keys(r).length)return r}static compressUserVars(e){return e.map(((e,t)=>[t,e])).filter((([e,t])=>0!==t))}static compressMapAllObject(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f=this._restartData.mapWidth,y=new Uint8Array(this._mapByteLength),v=-1;for(r=0,n=0,h=0,c=0,E=0,d=[],g=Object.create(null),_=[],u=[],a=0;a<f;a++)for(i=0;i<f;i++)(l=e[a][i])!==t[a][i]&&(-1===v&&(v=n),y[n]=y[n]|1<<r,h=n,void 0===g[l]&&(g[l]=new Vs(l,E++)),g[l].count++),8===++r&&(r=0,n++);for(o in g)d[g[o].index]=g[o];for(p in d.sort(this.idSort),m=Object.create(null),d)m[l=d[p].id]=Number(p),_[p]=l;for(a=0;a<f;a++)for(i=0;i<f;i++)(l=e[a][i])!==t[a][i]&&(u[c++]=m[l]);if(s){for(w=y.length,v=-1,h=0,n=0;n<w;n++)y[n]=y[n]&~s[n],0!==y[n]&&(-1===v&&(v=n),h=n);-1===v&&(v=0,h=0)}return[v,y.subarray(v,h+1),_,this.indexListCompress(u,_.length)]}static indexListCompress(e,t){var s,i,a,r,n,o,h=[];for(r=e.length,i=0,s=0;s<r;s++){for(n=e[s],o=0,a=s+1;a<r&&n===e[a];a++)o++,s=a;switch(o){case 0:h[i++]=n;break;case 1:h[i++]=n,h[i++]=n;break;default:h[i++]=n,h[i++]=t+o}}return h}static idSort(e,t){return t.count-e.count}static getCompressArray(e){var t,s,i,a,r,n,o,h,c=[];for(t=-1,r=e.length,n=0,a=0;a<r;a++){for(s=(i=e[a])-t,o=0,h=a;h<r-1&&e[h]+1===e[h+1];)h++,o++;o<this.MIN_LOOP_COUNT?c[n++]=s:(a=h,i+=o,c[n++]=0,c[n++]=s,c[n++]=o-this.MIN_LOOP_COUNT),t=i}return c}static getDecompressArray(e){var t,s,i,a,r,n,o,h=[];for(t=-1,r=e.length,a=0,o=0;a<r;a++)if(0===(s=e[a])){for(n=(i=t+(s=e[++a]))+e[++a]+this.MIN_LOOP_COUNT;i<=n;i++)h[o++]=i;t=n}else i=t+s,h[o++]=i,t=i;return h}static decompress(e){var t,s,i;for(s in t=structuredClone(this._restartData),e){switch(typeof(i=e[s])){case"number":case"string":case"boolean":case"undefined":break;case"object":null!==i&&(i=this.decompressObject(s,i,t[s]));break;case"function":continue}t[s]=i}return[t,{isWorldNameEmpty:void 0===e.worldName}]}static decompressObject(e,t,s,i={}){var a;switch(e){case Bs.MAP:case Bs.MAP_OBJECT:var r,n,o,h,c,l,_,u;a=Object.create(null),n=-1;var d,p,m=t;if(4===(u=m.length)&&"number"==typeof m[0]&&(m[1]instanceof Uint8Array||m[1]instanceof Array)&&m[2]instanceof Array&&m[3]instanceof Array)return this.decompressAllMapObject(m,s,this._firstRandomMapObjectUtf8Table[e]),s;for(_=0;_<u;_+=2)n=r=n+Number(m[_])+1,c=r,a[r]=m[_+1];for(l in a){for(c=Number(l),u=(m=a[l]).length,d=[],p=[],_=0;_<u;_+=2){var g=m[_],E=m[_+1];g instanceof Array&&(g=this.getDecompressArray(g)),E instanceof Array&&(E=this.getDecompressArray(E)),"object"==typeof g?d.push({x:g,y:E}):p.push({x:g,y:E})}var w;for(w in n=-1,d)if(n=r=n+Number(d[w].y)+1,g=d[w].x,h=String(r),g instanceof Array)for(u=(m=g).length,_=0;_<u;_++)o=String(m[_]),s[h][o]=c;else o=String(g),s[h][o]=c;for(w in n=-1,p)if(n=r=n+Number(p[w].x)+1,E=p[w].y,o=String(r),E instanceof Array)for(u=(m=E).length,_=0;_<u;_++)s[h=String(m[_])][o]=c;else s[h=String(E)][o]=c}return s;case Bs.USER_VAR:return this.decompressUserVars(t);case Bs.USER_NAMED_VAR:if(!t)return t;if(Array.isArray(t))return new Map(structuredClone(t).map((([e,t])=>[e,Rs(t)])));if(2!==t.version||"object"!=typeof t.data)throw new TypeError("セーブデータが壊れています");return Rs(Ls(t.data));case Bs.SYSTEM_MESSAGE:default:if(s);else{if(!t)return;s=s instanceof Array?[]:Object.create(null)}for(e in t)s[e]=t[e];return s}}static decompressUserVars(e){return e.reduce(((e,[t,s])=>(e[t]=s,e)),this.generateEmptyUserVars())}static generateEmptyUserVars(){const e=new Array(F.USER_VAR_NUM);for(let t=0;t<F.USER_VAR_NUM;t++)e[t]=0;return e}static decompressAllMapObject(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p=this._restartData.mapWidth,m=new Uint8Array(this._mapByteLength);d=e[0],n=e[2],a=e[3];var g=e[1];if(m.set(g,d),s)for(E=m.length,_=0;_<E;_++)m[_]=m[_]|s[_];r=[];var E,w,f,y,v,A,S=n.length;for(E=a.length,w=0,f=0;w<E;w++){if((o=a[w])>=S)for(y=o-S,v=0;v<y;v++)r[f++]=A;else r[f++]=o;A=o}for(l=0,_=0,u=0,h=0,E=m.length,_=0;_<E;_++)for(l=0;l<8;l++){if(m[_]&1<<l){if(void 0===(o=r[h++]))return!1;i=n[o],c=u%p,t[u/p|0][c]=i}u++}return!0}static setRestartData(e,t){this._restartData=e,this._mapByteLength=Math.ceil(e.mapWidth*e.mapWidth/8),this._firstRandomMapObjectUtf8Table[Bs.MAP_OBJECT]=this.getChangedUint8Array(t[Bs.MAP_OBJECT],e[Bs.MAP_OBJECT])}static getChangedUint8Array(e,t){var s,i,a,r,n=this._restartData.mapWidth,o=new Uint8Array(this._mapByteLength),h=-1;for(a=0,r=0,i=0;i<n;i++)for(s=0;s<n;s++)e[i][s]!==t[i][s]&&(-1===h&&(h=r),o[r]=o[r]|1<<a),8===++a&&(a=0,r++);return o}static getStartWWAData(e){if(!e)return this._restartData;try{var t=JSON.parse(e)}catch(e){return this._restartData}var s;if(t)try{if([s]=this.decompress(t),s)return s}catch(e){}return this._restartData}static usingByte(e){this._usingByteFlag=e}}ks._usingByteFlag=!1,ks.MIN_LOOP_COUNT=3,ks._restartData=void 0,ks._mapByteLength=0,ks._firstRandomMapObjectUtf8Table=new class{};var Ws=ks;class Vs{constructor(e,t){this.id=0,this.index=0,this.count=0,this.id=e,this.index=t}}class Fs{constructor(e,t){this._id=0,this.flag=!1,this.date=void 0,this.cvs=void 0,this.ctx=void 0,this.quickSaveData=void 0,this._id=e,this._parent=t,this.cvs=document.createElement("canvas"),this.cvs.width=Y.QUICK_SAVE_THUMNAIL_WIDTH,this.cvs.height=Y.QUICK_SAVE_THUMNAIL_HEIGHT,this.ctx=this.cvs.getContext("2d",{alpha:!1})}showQickLoad(){me("cell-load").textContent=G.QUICK_LOAD}save(e,t){return this._statusEnergy=t.statusEnergy,this.ctx.clearRect(0,0,this.cvs.width,this.cvs.height),this.ctx.drawImage(e,0,0,e.width,e.height,0,0,this.cvs.width,this.cvs.height),this.quickSaveData=t,this.flag=!0,this.date=new Date,this.showQickLoad(),!0}getStatusEnergy(){return this.flag?this._statusEnergy:-1}load(){return this.quickSaveData}saveDataSet(e,t,s){try{this.quickSaveData=t,this._statusEnergy=t.statusEnergy,this.date=s,this.flag=!0;var i=document.createElement("img");i.src=e,i.addEventListener("load",(()=>{this.flag=!0,this.ctx.drawImage(i,0,0,i.width,i.height,0,0,this.cvs.width,this.cvs.height)})),this.showQickLoad()}catch(e){}}getDateText(){let e,t,s,i,a,r;return this.date?(e=this.date.getFullYear(),t=this.date.getMonth()+1,s=this.date.getDate(),i=this.date.getHours(),a=this.date.getMinutes(),r=this.date.getSeconds(),e=("000"+e).slice(-4),t=("0"+t).slice(-2),s=("0"+s).slice(-2),i=("0"+i).slice(-2),a=("0"+a).slice(-2),r=("0"+r).slice(-2),e+"/"+t+"/"+s+" "+i+":"+a+":"+r):""}isLastSaveData(){return this===this._parent.getLastSaveData()}}class Ys extends Fs{save(e,t){var s=super.save.apply(this,arguments);return this._parent.dbUpdateSaveData(this._id,e,t,this.date),s}}class Gs extends Array{constructor(){super(),Object.setPrototypeOf(this,Object.create(Gs.prototype))}hasSaveData(){for(var e=0;e<Y.QUICK_SAVE_MAX;e++)if(this[e].flag)return!0;return!1}getLastSaveData(){for(var e,t,s=0;s<Y.QUICK_SAVE_MAX;s++)(t=this[s]).flag&&(e?t.date&&e.date&&t.date.getTime()>e.date.getTime()&&(e=t):e=t);return e}}const Hs=e=>{return"boolean"!=typeof(t=e).isGameOverDisabled?t:!0===t.isGameOverDisabled?{...t,isGameOverDisabled:void 0,gameOverPolicy:"never"}:!1===t.isGameOverDisabled?{...t,isGameOverDisabled:void 0,gameOverPolicy:"default"}:t;var t};class Ks extends Gs{constructor(e,t,s=Ks.prototype){super(),this.IDBTransaction={READ_ONLY:"readonly",READ_WRITE:"readwrite",VERSION_CHANGE:"versionchangetransaction"},this.keyPath=["id","url"],Object.setPrototypeOf(this,Object.create(s));for(var i=0;i<Y.QUICK_SAVE_MAX;i++)this[i]=new Ys(i,this);this.onCheckLoadingSaveData=e,this.onCompleteLoadingSaveData=t,this.createDataBase(),this.selectSaveData()}indexDBOpen(){return indexedDB.open(Y.INDEXEDDB_DB_NAME,201205201)}createDataBase(){try{var e=this.indexDBOpen();e.onupgradeneeded=t=>{var s=e.result,i={keyPath:this.keyPath};s.objectStoreNames.contains(Y.INDEXEDDB_TABLE_NAME)||s.createObjectStore(Y.INDEXEDDB_TABLE_NAME,i).createIndex("url","url",{unique:!1})},e.onsuccess=Ks.doNotAnything,e.onerror=Ks.doNotAnything,e.onblocked=Ks.doNotAnything}catch(e){}}getObjectStore(e){const t=e;try{var s=t.transaction(Y.INDEXEDDB_TABLE_NAME,this.IDBTransaction.READ_WRITE).objectStore(Y.INDEXEDDB_TABLE_NAME)}catch(e){return}return s}makeSaveDataItem(e,t,s,i){return{url:location.href,id:e,hash:qs.checkOriginalMapString,image:t.toDataURL(),data:s,date:i,worldName:qs.worldName,mapDataRevisionKey:qs.mapDataRevisionKey}}getSaveDataResult(e,t){const s=e.index("url"),i=IDBKeyRange.only(location.href),a=s.getAll(i);a.onsuccess=()=>{t(a.result)}}dbUpdateSaveData(e,t,s,i){const a=this.indexDBOpen();a.onupgradeneeded=Ks.doNotAnything,a.onsuccess=()=>{const r=this.getObjectStore(a.result),n=Ws.compress(s),o=this.makeSaveDataItem(e,t,n,i);this.selectDatas[e]=o;const h=r.put(o);h.onsuccess=Ks.doNotAnything,h.onerror=Ks.doNotAnything},a.onerror=Ks.doNotAnything,a.onblocked=Ks.doNotAnything}dbDeleteSaveData(e){const t=this.indexDBOpen();t.onupgradeneeded=Ks.doNotAnything,t.onsuccess=()=>{const s=this.getObjectStore(t.result);e.forEach((e=>{s.delete([e,location.href])}))},t.onerror=Ks.doNotAnything,t.onblocked=Ks.doNotAnything}selectSaveData(){const e=this.indexDBOpen();e.onupgradeneeded=Ks.doNotAnything,e.onsuccess=()=>{const t=this.getObjectStore(e.result);this.selectDatas=[];this.getSaveDataResult(t,(e=>{var t,s,i;let a=[];for(s=e.length,t=0;t<s;t++){var r=e[t];try{i={id:r.id,hash:r.hash,data:r.data,date:r.date,image:r.image,worldName:r.worldName,mapDataRevisionKey:r.mapDataRevisionKey}}catch(e){continue}const s=this.onCheckLoadingSaveData(i.worldName,i.hash,i.mapDataRevisionKey);if(null!==s){a.push({id:i.id,cause:s});continue}if(!this[i.id])continue;const n=Hs(Ws.decompress(i.data)[0]);this[i.id].saveDataSet(i.image,n,i.date)}a.length>0&&this.dbDeleteSaveData(a.map((e=>e.id)));const n=a.map((e=>e.cause)).filter(((e,t,s)=>s.indexOf(e)===t));this.onCompleteLoadingSaveData(n)}))},e.onerror=Ks.doNotAnything,e.onblocked=Ks.doNotAnything}}Ks.doNotAnything=()=>{};var js,Xs=Ks;class $s extends Fs{}class Js extends Gs{constructor(){super(),this._saveNo=0,this._lastAutoSaveMove=0,this._autoInterval=Y.SAVE_INTERVAL_MOVE,Object.setPrototypeOf(this,Object.create(Js.prototype));for(var e=0;e<Y.QUICK_SAVE_MAX;e++)this[e]=new $s(e,this);this._saveNo=0,this._lastAutoSaveMove=0}resumeStart(){this._lastAutoSaveMove=-1}setPlayer(e){this._lastAutoSaveMove=e.getMoveCount()}isAutoSaveFrame(e){if(0===this._autoInterval)return!1;var t=e.getMoveCount();return!(this._lastAutoSaveMove>=t)&&(t%this._autoInterval==0&&(this._lastAutoSaveMove=t,!0))}autoSave(e,t){this[this._saveNo].save(e,t),this._saveNo++,this._saveNo=this._saveNo%Y.QUICK_SAVE_MAX}setAutoSaveInterval(e){e<0?console.warn(`オートセーブの歩数 (${e}) に負の値が設定されています。`):this._autoInterval=0|e}}function Zs(e,t){return(0,Es.MD5)(e+t).toString()}class qs{constructor(e,t,s,i,a){qs.checkOriginalMapString=e.checkOriginalMapString,qs.worldName=t,qs.mapDataRevisionKey=Zs(t,s),this._wwaDBSaveList=new Xs(i,a),this._wwaLogSaveList=new Js,this.selectDBSaveDataList()}resumeStart(){this._wwaLogSaveList.resumeStart()}isAutoSaveFrame(e){return this._wwaLogSaveList.isAutoSaveFrame(e)}autoSave(e,t){this._wwaLogSaveList.autoSave(e,t)}selectDBSaveDataList(){this.list=this._wwaDBSaveList}selectLogSaveDataList(){this.list=this._wwaLogSaveList}save(e,t,s){var i=this.list[s];return!!i&&i.save(e,t)}load(e){var t=this.list[e];return t?t.load():null}hasSaveData(){return this.list.hasSaveData()}setAutoSaveInterval(e){return this._wwaLogSaveList.setAutoSaveInterval(e)}getFirstSaveChoiceCallInfo(e){return e?I.CALL_BY_PASSWORD_LOAD:this._wwaDBSaveList.hasSaveData()?I.CALL_BY_QUICK_LOAD:this._wwaLogSaveList.hasSaveData()?I.CALL_BY_LOG_QUICK_LOAD:I.CALL_BY_PASSWORD_LOAD}getSecondSaveChoiceCallInfo(e){return this.list===this._wwaDBSaveList&&this._wwaLogSaveList.hasSaveData()?I.CALL_BY_LOG_QUICK_LOAD:e?I.CALL_BY_PASSWORD_LOAD:I.NONE}gameStart(e,t){this._wwaLogSaveList.setPlayer(t),this.quickSaveButtonUpdate(e)}quickSaveButtonUpdate(e){e.disableSaveFlag?me("cell-save").textContent=G.EMPTY_SAVE:me("cell-save").textContent=G.QUICK_SAVE}}!function(e){e.UNMATCHED_WORLD_NAME="UNMATCHED_WORLD_NAME",e.UNMATCHED_WORLD_PASS_NUMBER="UNMATCHED_WORLD_PASS_NUMBER",e.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA="DISALLOW_OLD_REVISION_WORLD_SAVE_DATA"}(js||(js={}));class zs{constructor(e,t,s,i){this.id=e,this.fileName=t,this.audioContext=s,this.audioGain=i,this.disposeBufferSource=e=>{try{e.stop(),e.disconnect(this.audioGain),e.buffer=null}catch(e){}e.onended=null},this.audioContext=s,this.audioGain=i,this.audioBuffer=null,this.bufferSources=[],this.isLoaded=!1,this.delayBgmTimeoutId=null,this.load()}async fetchSoundFile(){try{return await fetch(this.fileName)}catch(e){return void console.warn(`サウンド ${this.id} 番の音声ファイルの取得失敗 (fetch)`)}}async getArrayBuffer(e){try{return await e.arrayBuffer()}catch(e){return void console.warn(`サウンド ${this.id} 番の音声ファイルの取得失敗 (arrayBuffer)`)}}async load(e=0){if(e>=10)return console.log(`サウンド ${this.id} 番の音声ファイルの取得失敗 (最大リトライ回数超過)`),void(this.isExceededMaxRetryCount=!0);const t=await this.fetchSoundFile();if(!t)return void this.retry(e);if(0!==t.status&&200!==t.status)return console.warn(`サウンド ${this.id} 番の音声ファイルが見つかりません! HTTPエラー番号: ${t.status}`),void this.cancelLoad();const s=await this.getArrayBuffer(t);s?this.audioContext.decodeAudioData(s,(t=>{if(0===t.length)return console.log(`サウンド ${this.id} 番の音声ファイルのバッファサイズが 0 です `),void this.retry(e);this.setData(t)})):this.retry(e)}retry(e){window.setTimeout((async()=>{await this.load(e+1)}),100)}setData(e){this.audioBuffer=e,this.isLoaded=!0}cancelLoad(){this.audioBuffer=null,this.isLoaded=!0}play(e=0){const t=this.audioContext.createBufferSource();this.bufferSources.push(t),t.buffer=this.audioBuffer,this.isBgm()&&(t.loop=!0),t.connect(this.audioGain);let s=t.duration;(!isFinite(s)||s<0||"number"!=typeof s)&&(s=0),t.onended=()=>{const e=this.bufferSources.indexOf(t);-1!==e&&this.bufferSources.splice(e,1),this.disposeBufferSource(t)},this.delayBgmTimeoutId=window.setTimeout((()=>{this.delayBgmTimeoutId=null,t.start()}),e),this.audioGain.connect(this.audioContext.destination)}pause(){null!==this.delayBgmTimeoutId&&(window.clearTimeout(this.delayBgmTimeoutId),this.delayBgmTimeoutId=null),this.bufferSources.forEach(this.disposeBufferSource),this.bufferSources.length=0}isBgm(){return this.id>=B.BGM_LB}hasData(){return null!==this.audioBuffer}isPlaying(){return this.hasData()||null!==this.delayBgmTimeoutId}isLoading(){return!this.isLoaded}isError(){return this.isExceededMaxRetryCount||this.isLoaded&&null===this.audioBuffer}}const Qs=(e,t)=>{const s=new Array(e);for(let e=0;e<s.length;e++)s[e]=new Array(t);return s};var ei;function ti(e,t){const s=function(e){return e[ei.CHECK]+256*e[ei.CHECK+1]}(e),i=function(e,t){let s=0;if(e[ei.VERSION]>=29){for(let a=2;a<t;a++)s+=(i=e[a],((i%=256)>=128?i-256:i)*(a%8+1));s=s%65536&65535}var i;return s}(e,t);if(s!==i)throw new Error("マップデータが壊れているようです。\n チェックサムの値は"+s+"ですが、実際の和は"+i+"でした。")}!function(e){e[e.CHECK=0]="CHECK",e[e.VERSION=2]="VERSION",e[e.OLD_MAP_COUNT=3]="OLD_MAP_COUNT",e[e.OLD_OBJ_COUNT=4]="OLD_OBJ_COUNT",e[e.OLD_PLAYER_X=5]="OLD_PLAYER_X",e[e.OLD_PLAYER_Y=6]="OLD_PLAYER_Y",e[e.STATUS_ENERGY=10]="STATUS_ENERGY",e[e.STATUS_STRENGTH=12]="STATUS_STRENGTH",e[e.STATUS_DEFENCE=14]="STATUS_DEFENCE",e[e.STATUS_GOLD=16]="STATUS_GOLD",e[e.OLD_GAMEOVER_X=18]="OLD_GAMEOVER_X",e[e.OLD_GAMEOVER_Y=19]="OLD_GAMEOVER_Y",e[e.OLD_ITEMBOX_TOP=20]="OLD_ITEMBOX_TOP",e[e.STATUS_ENERGY_MAX=32]="STATUS_ENERGY_MAX",e[e.MAP_COUNT=34]="MAP_COUNT",e[e.OBJ_COUNT=36]="OBJ_COUNT",e[e.PLAYER_X=38]="PLAYER_X",e[e.PLAYER_Y=40]="PLAYER_Y",e[e.GAMEOVER_X=42]="GAMEOVER_X",e[e.GAMEOVER_Y=44]="GAMEOVER_Y",e[e.MAP_SIZE=46]="MAP_SIZE",e[e.MESSAGE_NUM=48]="MESSAGE_NUM",e[e.ITEMBOX_TOP=60]="ITEMBOX_TOP",e[e.MAPDATA_TOP=90]="MAPDATA_TOP",e[e.OLD_MAPDATA_TOP=100]="OLD_MAPDATA_TOP"}(ei||(ei={}));class si{constructor(e,t,s){this.byteMapData=e,this.eventEmitter=s,ti(e,t),this.wwaData={version:void 0,gameoverX:void 0,gameoverY:void 0,playerX:void 0,playerY:void 0,mapPartsMax:void 0,objPartsMax:void 0,isOldMap:void 0,isOldMove:void 0,statusEnergyMax:void 0,statusEnergy:void 0,statusStrength:void 0,statusDefence:void 0,statusGold:void 0,itemBox:void 0,mapWidth:void 0,messageNum:void 0,map:void 0,mapObject:void 0,mapCompressed:void 0,mapObjectCompressed:void 0,mapAttribute:void 0,objectAttribute:void 0,worldPassword:void 0,message:void 0,worldName:void 0,worldPassNumber:void 0,charCGName:void 0,mapCGName:void 0,systemMessage:void 0,moves:void 0,yesnoImgPosX:void 0,yesnoImgPosY:void 0,playerImgPosX:void 0,playerImgPosY:void 0,clickableItemSignImgPosX:void 0,clickableItemSignImgPosY:void 0,disableSaveFlag:void 0,compatibleForOldMapFlag:void 0,objectNoCollapseDefaultFlag:void 0,delPlayerFlag:void 0,bgm:void 0,effectCoords:void 0,effectWaits:void 0,imgStatusEnergyX:void 0,imgStatusEnergyY:void 0,imgStatusStrengthX:void 0,imgStatusStrengthY:void 0,imgStatusDefenceX:void 0,imgStatusDefenceY:void 0,imgStatusGoldX:void 0,imgStatusGoldY:void 0,imgWideCellX:void 0,imgWideCellY:void 0,imgItemboxX:void 0,imgItemboxY:void 0,imgFrameX:void 0,imgFrameY:void 0,imgBattleEffectX:void 0,imgBattleEffectY:void 0,imgClickX:void 0,imgClickY:void 0,frameColorR:void 0,frameColorG:void 0,frameColorB:void 0,frameOutColorR:void 0,frameOutColorG:void 0,frameOutColorB:void 0,fontColorR:void 0,fontColorG:void 0,fontColorB:void 0,statusColorR:void 0,statusColorG:void 0,statusColorB:void 0,checkOriginalMapString:void 0,checkString:void 0,isItemEffectEnabled:void 0,frameCount:void 0,gamePadButtonItemTable:void 0,userVar:void 0,userNamedVar:void 0,permitChangeGameSpeed:void 0,gameSpeedIndex:void 0,playTime:void 0,isVisibleStatusEnergy:void 0,isVisibleStatusStrength:void 0,isVisibleStatusDefence:void 0,isVisibleStatusGold:void 0,isGameOverDisabled:void 0,gameOverPolicy:"default",bgmDelayDurationMs:void 0,customSystemMessages:{},pictureRegistry:[]}}extractAllData(){var e,t;return this.wwaData.version=this.byteMapData[ei.VERSION],this._extractInitialParameters(),this.wwaData.version>=29?this.currentPosition=ei.MAPDATA_TOP:this.currentPosition=ei.OLD_MAPDATA_TOP,this.wwaData.map=this._getFieldDataFromBits(Pt.MAP,this.wwaData.mapPartsMax).concat(),this.wwaData.mapObject=this._getFieldDataFromBits(Pt.OBJECT,this.wwaData.objPartsMax).concat(),e=this.wwaData.version>29?Ct.MAP_ATR_MAX:Ct.OLD_MAP_ATR_MAX,t=this.wwaData.version>29?Ct.OBJ_ATR_MAX:Ct.OLD_OBJ_ATR_MAX,this.wwaData.mapAttribute=this._getPartsDataFromBits(Pt.MAP,this.wwaData.mapPartsMax,e).concat(),this.wwaData.objectAttribute=this._getPartsDataFromBits(Pt.OBJECT,this.wwaData.objPartsMax,t).concat(),this.wwaData.version<=29&&(this._convertAttributeV2toV3(Pt.MAP),this._convertAttributeV2toV3(Pt.OBJECT)),this._replaceAllRandomObjects(),this.wwaData}_convertAttributeV2toV3(e){var t,s,i;if(e==Pt.MAP)t=this.wwaData.mapPartsMax,s=this.wwaData.mapAttribute,i=Ct.MAP_LOCALGATE;else{if(e!=Pt.OBJECT)throw new Error("謎のパーツ種別が指定されました");t=this.wwaData.objPartsMax,s=this.wwaData.objectAttribute,i=Ct.OBJECT_LOCALGATE}for(var a=0;a<t;a++){for(var r=9;r>=0;r--){var n=255&s[a][20+2*r],o=s[a][20+2*r]>>8,h=255&s[a][20+2*r+1],c=s[a][20+2*r+1]>>8;250===h?h=9e3:h>100&&(h+=9840),250===c?c=9e3:c>100&&(c+=9840),s[a][20+4*r]=n,s[a][20+4*r+3]=o,s[a][20+4*r+1]=h,s[a][20+4*r+2]=c}s[a][Ct.ATR_TYPE]===i&&(s[a][Ct.ATR_JUMP_X]>100&&(s[a][Ct.ATR_JUMP_X]+=9840),s[a][Ct.ATR_JUMP_Y]>100&&(s[a][Ct.ATR_JUMP_Y]+=9840))}}_get1ByteNumber(e){return this.byteMapData[e]}_get2BytesNumber(e){return this.byteMapData[e]+256*this.byteMapData[e+1]}_extractInitialParameters(){this.wwaData.version>29?(this.wwaData.gameoverX=this._get2BytesNumber(ei.GAMEOVER_X),this.wwaData.gameoverY=this._get2BytesNumber(ei.GAMEOVER_Y),this.wwaData.playerX=this._get2BytesNumber(ei.PLAYER_X),this.wwaData.playerY=this._get2BytesNumber(ei.PLAYER_Y),this.wwaData.mapPartsMax=this._get2BytesNumber(ei.MAP_COUNT),this.wwaData.objPartsMax=this._get2BytesNumber(ei.OBJ_COUNT),this.wwaData.isOldMap=!1):(this.wwaData.gameoverX=this._get1ByteNumber(ei.OLD_GAMEOVER_X),this.wwaData.gameoverY=this._get1ByteNumber(ei.OLD_GAMEOVER_Y),this.wwaData.playerX=this._get1ByteNumber(ei.OLD_PLAYER_X),this.wwaData.playerY=this._get1ByteNumber(ei.OLD_PLAYER_Y),this.wwaData.mapPartsMax=this._get1ByteNumber(ei.OLD_MAP_COUNT),this.wwaData.objPartsMax=this._get1ByteNumber(ei.OLD_OBJ_COUNT),this.wwaData.isOldMap=!0),this.wwaData.statusEnergyMax=this._get2BytesNumber(ei.STATUS_ENERGY_MAX),this.wwaData.statusEnergy=this._get2BytesNumber(ei.STATUS_ENERGY),this.wwaData.statusStrength=this._get2BytesNumber(ei.STATUS_STRENGTH),this.wwaData.statusDefence=this._get2BytesNumber(ei.STATUS_DEFENCE),this.wwaData.statusGold=this._get2BytesNumber(ei.STATUS_GOLD),this._extractInitialItemData(),this.wwaData.mapWidth=this._get2BytesNumber(ei.MAP_SIZE),this.wwaData.messageNum=this._get2BytesNumber(ei.MESSAGE_NUM),this.wwaData.version<28?this.wwaData.mapWidth=71:this.wwaData.version<=29&&(this.wwaData.mapWidth=101)}_extractInitialItemData(){const e=this.wwaData.version>29?ei.ITEMBOX_TOP:ei.OLD_ITEMBOX_TOP;this.wwaData.itemBox=new Array(Ct.ITEMBOX_SIZE);for(let t=0;t<Ct.ITEMBOX_SIZE;t++)this.wwaData.itemBox[t]=this._get1ByteNumber(e+t)}_getFieldDataFromBits(e,t){var s,i,a;for(a=Qs(this.wwaData.mapWidth,this.wwaData.mapWidth),s=0;s<this.wwaData.mapWidth;s++)for(i=0;i<this.wwaData.mapWidth;i++)this.wwaData.version>29?(a[s][i]=this._get2BytesNumber(this.currentPosition),this.currentPosition+=2):(a[s][i]=this._get1ByteNumber(this.currentPosition),this.currentPosition+=1),(s*this.wwaData.mapWidth+i)%200==0&&this.emitProgress(s*this.wwaData.mapWidth+i,this.wwaData.mapWidth*this.wwaData.mapWidth,e===Pt.MAP?Ot.MAP_LOAD:Ot.OBJ_LOAD),a[s][i]>=t&&(a[s][i]=0);return this.emitProgress(this.wwaData.mapWidth*this.wwaData.mapWidth,this.wwaData.mapWidth*this.wwaData.mapWidth,e===Pt.MAP?Ot.MAP_LOAD:Ot.OBJ_LOAD),a}_getPartsDataFromBits(e,t,s){var i,a,r;for(r=Qs(t,s),i=0;i<t;i++)for(a=0;a<s;a++)(i*this.wwaData.mapWidth+a)%200==0&&this.emitProgress(i*s+a,t*s,e===Pt.MAP?Ot.MAP_ATTR:Ot.OBJ_ATTR),a!==Ct.ATR_CROP1&&a!==Ct.ATR_CROP2?(r[i][a]=this._get2BytesNumber(this.currentPosition),this.currentPosition+=2):(r[i][a]=0,this.currentPosition+=2);return this.emitProgress(t*s,t*s,e===Pt.MAP?Ot.MAP_ATTR:Ot.OBJ_ATTR),r}_replaceAllRandomObjects(){this.emitProgress(this.wwaData.mapWidth*this.wwaData.mapWidth,this.wwaData.mapWidth*this.wwaData.mapWidth,Ot.RAND_PARTS)}emitProgress(e,t,s){this.eventEmitter.dispatch("progress",{current:e,total:t,stage:s})}}class ii{constructor(e,t,s,i){this.wwaData=e,this.compressedMapData=t,this.startPosition=s,this.eventEmitter=i,this.OLDVER_MESSAGE_MAX=400}load(){const e=this.wwaData;this.currentPos=this.startPosition,e.version>=30&&(e.worldPassword=this.getMessageFromData()),e.version<=29&&(e.messageNum=this.OLDVER_MESSAGE_MAX),e.message=new Array(e.messageNum);for(let t=0;t<e.message.length;t++)e.message[t]=this.getMessageFromData(),t%200==0&&this.eventEmitter.dispatch("progress",{current:t,total:e.message.length,stage:Ot.MESSAGE});for(;e.messageNum<10;)e.message.push(""),e.messageNum++;this.eventEmitter.dispatch("progress",{current:e.message.length,total:e.message.length,stage:Ot.MESSAGE}),e.worldName=this.getMessageFromData(),e.version<=29?e.worldPassword=this.getMessageFromData():this.getMessageFromData(),""===e.worldPassword?e.worldPassNumber=0:e.version>=29?e.worldPassNumber=(parseInt(e.worldPassword)/10-1197)/17-2357:e.worldPassNumber=parseInt(e.worldPassword),e.charCGName=this.getMessageFromData(),e.mapCGName=this.getMessageFromData(),e.systemMessage=new Array(Ct.SYSTEM_MESSAGE_NUM);for(let t=0;t<Ct.SYSTEM_MESSAGE_NUM;t++)e.version>=30?e.systemMessage[t]=this.getMessageFromData():e.systemMessage[t]="";return e.yesnoImgPosX=Ct.IMGPOS_DEFAULT_YESNO_X,e.yesnoImgPosY=Ct.IMGPOS_DEFAULT_YESNO_Y,e.playerImgPosX=Ct.IMGPOS_DEFAULT_PLAYER_X,e.playerImgPosY=Ct.IMGPOS_DEFAULT_PLAYER_Y,e.clickableItemSignImgPosX=Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X,e.clickableItemSignImgPosY=Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y,e.disableSaveFlag=Ct.DEFAULT_DISABLE_SAVE,e.isOldMap=Ct.DEFAULT_OLDMAP,e.isOldMove=e.version<31,e.objectNoCollapseDefaultFlag=Ct.DEFAULT_OBJECT_NO_COLLAPSE,e.delPlayerFlag=!1,e.bgm=0,e.effectCoords=[],e.effectWaits=0,e.imgStatusEnergyX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_ENERGY_ICON_X,e.imgStatusEnergyY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusStrengthX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_STRENGTH_ICON_X,e.imgStatusStrengthY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusDefenceX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_DEFENCE_ICON_X,e.imgStatusDefenceY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusGoldX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_GOLD_ICON_X,e.imgStatusGoldY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgWideCellX=Ct.IMGPOS_DEFAULT_WIDE_CELL_X,e.imgWideCellY=Ct.IMGPOS_DEFAULT_WIDE_CELL_Y,e.imgItemboxX=Ct.IMGPOS_DEFAULT_ITEMBOX_X,e.imgItemboxY=Ct.IMGPOS_DEFAULT_ITEMBOX_Y,e.imgFrameX=Ct.IMGPOS_DEFAULT_FRAME_X,e.imgFrameY=Ct.IMGPOS_DEFAULT_FRAME_Y,e.imgBattleEffectX=Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_X,e.imgBattleEffectY=Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_Y,e.imgClickX=0,e.imgClickY=0,e.frameColorR=Ct.DEFAULT_FRAME_COLOR_R,e.frameColorG=Ct.DEFAULT_FRAME_COLOR_G,e.frameColorB=Ct.DEFAULT_FRAME_COLOR_B,e.frameOutColorR=Ct.DEFAULT_FRAMEOUT_COLOR_R,e.frameOutColorG=Ct.DEFAULT_FRAMEOUT_COLOR_G,e.frameOutColorB=Ct.DEFAULT_FRAMEOUT_COLOR_B,e.fontColorR=Ct.DEFAULT_STR_COLOR_R,e.fontColorG=Ct.DEFAULT_STR_COLOR_G,e.fontColorB=Ct.DEFAULT_STR_COLOR_B,e.statusColorR=Ct.DEFAULT_STATUS_COLOR_R,e.statusColorG=Ct.DEFAULT_STATUS_COLOR_G,e.statusColorB=Ct.DEFAULT_STATUS_COLOR_B,e.moves=Ct.DEFAULT_MOVES,e.gameSpeedIndex=Ct.DEFAULT_SPEED_INDEX,e.permitChangeGameSpeed=!0,e.userVar=Array.from({length:Ct.USER_VAR_NUM}).map((()=>0)),e.userNamedVar=new Map,e.playTime=0,e.isVisibleStatusEnergy=!0,e.isVisibleStatusStrength=!0,e.isVisibleStatusDefence=!0,e.isVisibleStatusGold=!0,e.gameOverPolicy="default",e.bgmDelayDurationMs=0,e.pictureRegistry=[],e}getMessageFromData(){let e="",t=0;for(t=0;t<1500&&(0!=this.compressedMapData[this.currentPos+2*t]||0!=this.compressedMapData[this.currentPos+2*t+1]);t++)e+=String.fromCharCode((this.compressedMapData[this.currentPos+2*t+1]<<8)+this.compressedMapData[this.currentPos+2*t]);return this.currentPos+=2*t+2,e}}class ai{constructor(){}}class ri extends ai{constructor(e){super(),this.uri=e}static async fetch(e){try{return await fetch(e)}catch(t){throw new Error(`マップデータ 「${e}」の読み込みに失敗しました。\n 通信環境の良いところで再度お試しください。\n ローカルテストの場合は、ブラウザが対応していない可能性があります。`)}}static handleError(e,t){const s=`HTTPステータスコードは ${t.status} です。`;switch(t.status){case 200:case 304:return;case 403:throw new Error(`マップデータ「${e}」を読み取る権限がないようです。\n 管理者の方へ: マップデータのパーミッションを確認してください。\n ${s}`);case 404:throw new Error(`マップデータ「${e}」が見つかりませんでした。\n ${s}`);default:throw new Error(`マップデータ「${e}」の読み込みに失敗しました。\n ${s}`)}}async request(){const e=await ri.fetch(this.uri);ri.handleError(this.uri,e);return await e.arrayBuffer()}}var ni=s(699),oi=s.n(ni);class hi extends ai{constructor(e){super(),this.fileName=e}async request(){return new Promise(((e,t)=>{oi().readFile(this.fileName,((s,i)=>{s&&t(s),e(i.buffer)}))}))}}class ci{constructor(e,t){this.fileName=e,this.eventEmitter=t}async requestAndLoadMapData(){const e=(t=this.fileName,"undefined"!=typeof window?new ri(t):new hi(t));var t;try{const t=await e.request();if(!t)return void this.eventEmitter.dispatch("error",{name:"マップデータ取得に失敗しました",message:"mapdata is empty"});const s=this.loadMapData(t);this.eventEmitter.dispatch("mapData",s)}catch(e){const t=e.name||"",s=e.message||"";this.eventEmitter.dispatch("error",{name:t,message:s})}}loadMapData(e){try{const t=new Uint8Array(e),{byteMapData:s,byteMapLength:i,compressedEndPosition:a}=function(e){let t,s,i=new Uint8Array(e.length);for(t=0,s=0;t<e.length&&(0!==e[t]||0!==e[t+1]||0!==e[t+2]);t++){if(i[s++]=e[t],e[t]===e[t+1]){const a=e[t+2];for(let r=0;r<a;r++)i[s++]=e[t];t+=2}if(s+255>=i.length){var a=new Uint8Array(i.length+65e3);a.set(i),i=a}}return console.log("EXTRACT DATA = "+s+" "+t),{byteMapData:i,byteMapLength:s,compressedEndPosition:t+3}}(t),r=new si(s,i,this.eventEmitter).extractAllData();return new ii(r,t,a,this.eventEmitter).load()}catch(e){throw e}}}class li{constructor(e){this.target=null!=e?e:document.createElement("div")}dispatch(e,t){const s=new CustomEvent(e,{detail:t});this.target.dispatchEvent(s)}addListener(e,t){const s=e=>t(e.detail);return this.target.addEventListener(e,s),s}removeListener(e,t){this.target.removeEventListener(e,t)}}var _i={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},ui="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",di={5:ui,"5module":ui+" export import",6:ui+" const class extends export import super"},pi=/^in(stanceof)?$/,mi="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",gi="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",Ei=new RegExp("["+mi+"]"),wi=new RegExp("["+mi+gi+"]");mi=gi=null;var fi=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],yi=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function vi(e,t){for(var s=65536,i=0;i<t.length;i+=2){if((s+=t[i])>e)return!1;if((s+=t[i+1])>=e)return!0}}function Ai(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&Ei.test(String.fromCharCode(e)):!1!==t&&vi(e,fi)))}function Si(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&wi.test(String.fromCharCode(e)):!1!==t&&(vi(e,fi)||vi(e,yi)))))}var Ti=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function Ii(e,t){return new Ti(e,{beforeExpr:!0,binop:t})}var Ci={beforeExpr:!0},Pi={startsExpr:!0},Oi={};function Di(e,t){return void 0===t&&(t={}),t.keyword=e,Oi[e]=new Ti(e,t)}var Ni={num:new Ti("num",Pi),regexp:new Ti("regexp",Pi),string:new Ti("string",Pi),name:new Ti("name",Pi),eof:new Ti("eof"),bracketL:new Ti("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new Ti("]"),braceL:new Ti("{",{beforeExpr:!0,startsExpr:!0}),braceR:new Ti("}"),parenL:new Ti("(",{beforeExpr:!0,startsExpr:!0}),parenR:new Ti(")"),comma:new Ti(",",Ci),semi:new Ti(";",Ci),colon:new Ti(":",Ci),dot:new Ti("."),question:new Ti("?",Ci),questionDot:new Ti("?."),arrow:new Ti("=>",Ci),template:new Ti("template"),invalidTemplate:new Ti("invalidTemplate"),ellipsis:new Ti("...",Ci),backQuote:new Ti("`",Pi),dollarBraceL:new Ti("${",{beforeExpr:!0,startsExpr:!0}),eq:new Ti("=",{beforeExpr:!0,isAssign:!0}),assign:new Ti("_=",{beforeExpr:!0,isAssign:!0}),incDec:new Ti("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new Ti("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ii("||",1),logicalAND:Ii("&&",2),bitwiseOR:Ii("|",3),bitwiseXOR:Ii("^",4),bitwiseAND:Ii("&",5),equality:Ii("==/!=/===/!==",6),relational:Ii("</>/<=/>=",7),bitShift:Ii("<</>>/>>>",8),plusMin:new Ti("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ii("%",10),star:Ii("*",10),slash:Ii("/",10),starstar:new Ti("**",{beforeExpr:!0}),coalesce:Ii("??",1),_break:Di("break"),_case:Di("case",Ci),_catch:Di("catch"),_continue:Di("continue"),_debugger:Di("debugger"),_default:Di("default",Ci),_do:Di("do",{isLoop:!0,beforeExpr:!0}),_else:Di("else",Ci),_finally:Di("finally"),_for:Di("for",{isLoop:!0}),_function:Di("function",Pi),_if:Di("if"),_return:Di("return",Ci),_switch:Di("switch"),_throw:Di("throw",Ci),_try:Di("try"),_var:Di("var"),_const:Di("const"),_while:Di("while",{isLoop:!0}),_with:Di("with"),_new:Di("new",{beforeExpr:!0,startsExpr:!0}),_this:Di("this",Pi),_super:Di("super",Pi),_class:Di("class",Pi),_extends:Di("extends",Ci),_export:Di("export"),_import:Di("import",Pi),_null:Di("null",Pi),_true:Di("true",Pi),_false:Di("false",Pi),_in:Di("in",{beforeExpr:!0,binop:7}),_instanceof:Di("instanceof",{beforeExpr:!0,binop:7}),_typeof:Di("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Di("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Di("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},bi=/\r\n?|\n|\u2028|\u2029/,Mi=new RegExp(bi.source,"g");function xi(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var Li=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Ri=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Bi=Object.prototype,Ui=Bi.hasOwnProperty,ki=Bi.toString;function Wi(e,t){return Ui.call(e,t)}var Vi=Array.isArray||function(e){return"[object Array]"===ki.call(e)};function Fi(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var Yi=function(e,t){this.line=e,this.column=t};Yi.prototype.offset=function(e){return new Yi(this.line,this.column+e)};var Gi=function(e,t,s){this.start=t,this.end=s,null!==e.sourceFile&&(this.source=e.sourceFile)};function Hi(e,t){for(var s=1,i=0;;){Mi.lastIndex=i;var a=Mi.exec(e);if(!(a&&a.index<t))return new Yi(s,t-i);++s,i=a.index+a[0].length}}var Ki={ecmaVersion:10,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function ji(e){var t={};for(var s in Ki)t[s]=e&&Wi(e,s)?e[s]:Ki[s];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),Vi(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return Vi(t.onComment)&&(t.onComment=function(e,t){return function(s,i,a,r,n,o){var h={type:s?"Block":"Line",value:i,start:a,end:r};e.locations&&(h.loc=new Gi(this,n,o)),e.ranges&&(h.range=[a,r]),t.push(h)}}(t,t.onComment)),t}function Xi(e,t){return 2|(e?4:0)|(t?8:0)}var $i=function(e,t,s){this.options=e=ji(e),this.sourceFile=e.sourceFile,this.keywords=Fi(di[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var i="";if(!0!==e.allowReserved){for(var a=e.ecmaVersion;!(i=_i[a]);a--);"module"===e.sourceType&&(i+=" await")}this.reservedWords=Fi(i);var r=(i?i+" ":"")+_i.strict;this.reservedWordsStrict=Fi(r),this.reservedWordsStrictBind=Fi(r+" "+_i.strictBind),this.input=String(t),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf("\n",s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(bi).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=Ni.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},Ji={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};$i.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},Ji.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},Ji.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},Ji.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},Ji.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},Ji.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},Ji.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},$i.prototype.inNonArrowFunction=function(){return(2&this.currentThisScope().flags)>0},$i.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var s=this,i=0;i<e.length;i++)s=e[i](s);return s},$i.parse=function(e,t){return new this(t,e).parse()},$i.parseExpressionAt=function(e,t,s){var i=new this(s,e,t);return i.nextToken(),i.parseExpression()},$i.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties($i.prototype,Ji);var Zi=$i.prototype,qi=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;function zi(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}Zi.strictDirective=function(e){for(;;){Ri.lastIndex=e,e+=Ri.exec(this.input)[0].length;var t=qi.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2])){Ri.lastIndex=e+t[0].length;var s=Ri.exec(this.input),i=s.index+s[0].length,a=this.input.charAt(i);return";"===a||"}"===a||bi.test(s[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}e+=t[0].length,Ri.lastIndex=e,e+=Ri.exec(this.input)[0].length,";"===this.input[e]&&e++}},Zi.eat=function(e){return this.type===e&&(this.next(),!0)},Zi.isContextual=function(e){return this.type===Ni.name&&this.value===e&&!this.containsEsc},Zi.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},Zi.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},Zi.canInsertSemicolon=function(){return this.type===Ni.eof||this.type===Ni.braceR||bi.test(this.input.slice(this.lastTokEnd,this.start))},Zi.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},Zi.semicolon=function(){this.eat(Ni.semi)||this.insertSemicolon()||this.unexpected()},Zi.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},Zi.expect=function(e){this.eat(e)||this.unexpected()},Zi.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},Zi.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var s=t?e.parenthesizedAssign:e.parenthesizedBind;s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},Zi.checkExpressionErrors=function(e,t){if(!e)return!1;var s=e.shorthandAssign,i=e.doubleProto;if(!t)return s>=0||i>=0;s>=0&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},Zi.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},Zi.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var Qi=$i.prototype;Qi.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==Ni.eof;){var s=this.parseStatement(null,!0,t);e.body.push(s)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,"Program")};var ea={kind:"loop"},ta={kind:"switch"};Qi.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;Ri.lastIndex=this.pos;var t=Ri.exec(this.input),s=this.pos+t[0].length,i=this.input.charCodeAt(s);if(91===i)return!0;if(e)return!1;if(123===i)return!0;if(Ai(i,!0)){for(var a=s+1;Si(this.input.charCodeAt(a),!0);)++a;var r=this.input.slice(s,a);if(!pi.test(r))return!0}return!1},Qi.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;Ri.lastIndex=this.pos;var e=Ri.exec(this.input),t=this.pos+e[0].length;return!(bi.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&Si(this.input.charAt(t+8)))},Qi.parseStatement=function(e,t,s){var i,a=this.type,r=this.startNode();switch(this.isLet(e)&&(a=Ni._var,i="let"),a){case Ni._break:case Ni._continue:return this.parseBreakContinueStatement(r,a.keyword);case Ni._debugger:return this.parseDebuggerStatement(r);case Ni._do:return this.parseDoStatement(r);case Ni._for:return this.parseForStatement(r);case Ni._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!e);case Ni._class:return e&&this.unexpected(),this.parseClass(r,!0);case Ni._if:return this.parseIfStatement(r);case Ni._return:return this.parseReturnStatement(r);case Ni._switch:return this.parseSwitchStatement(r);case Ni._throw:return this.parseThrowStatement(r);case Ni._try:return this.parseTryStatement(r);case Ni._const:case Ni._var:return i=i||this.value,e&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case Ni._while:return this.parseWhileStatement(r);case Ni._with:return this.parseWithStatement(r);case Ni.braceL:return this.parseBlock(!0,r);case Ni.semi:return this.parseEmptyStatement(r);case Ni._export:case Ni._import:if(this.options.ecmaVersion>10&&a===Ni._import){Ri.lastIndex=this.pos;var n=Ri.exec(this.input),o=this.pos+n[0].length,h=this.input.charCodeAt(o);if(40===h||46===h)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===Ni._import?this.parseImport(r):this.parseExport(r,s);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!e);var c=this.value,l=this.parseExpression();return a===Ni.name&&"Identifier"===l.type&&this.eat(Ni.colon)?this.parseLabeledStatement(r,c,l,e):this.parseExpressionStatement(r,l)}},Qi.parseBreakContinueStatement=function(e,t){var s="break"===t;this.next(),this.eat(Ni.semi)||this.insertSemicolon()?e.label=null:this.type!==Ni.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==e.label||a.name===e.label.name){if(null!=a.kind&&(s||"loop"===a.kind))break;if(e.label&&s)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,s?"BreakStatement":"ContinueStatement")},Qi.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},Qi.parseDoStatement=function(e){return this.next(),this.labels.push(ea),e.body=this.parseStatement("do"),this.labels.pop(),this.expect(Ni._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(Ni.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},Qi.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(ea),this.enterScope(0),this.expect(Ni.parenL),this.type===Ni.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var s=this.isLet();if(this.type===Ni._var||this.type===Ni._const||s){var i=this.startNode(),a=s?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===Ni._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,i)):(t>-1&&this.unexpected(t),this.parseFor(e,i))}var r=new zi,n=this.parseExpression(!0,r);return this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===Ni._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(n,!1,r),this.checkLVal(n),this.parseForIn(e,n)):(this.checkExpressionErrors(r,!0),t>-1&&this.unexpected(t),this.parseFor(e,n))},Qi.parseFunctionStatement=function(e,t,s){return this.next(),this.parseFunction(e,ia|(s?0:aa),!1,t)},Qi.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(Ni._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},Qi.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(Ni.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},Qi.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(Ni.braceL),this.labels.push(ta),this.enterScope(0);for(var s=!1;this.type!==Ni.braceR;)if(this.type===Ni._case||this.type===Ni._default){var i=this.type===Ni._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(s&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),s=!0,t.test=null),this.expect(Ni.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},Qi.parseThrowStatement=function(e){return this.next(),bi.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var sa=[];Qi.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===Ni._catch){var t=this.startNode();if(this.next(),this.eat(Ni.parenL)){t.param=this.parseBindingAtom();var s="Identifier"===t.param.type;this.enterScope(s?32:0),this.checkLVal(t.param,s?4:2),this.expect(Ni.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(Ni._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},Qi.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},Qi.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(ea),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},Qi.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},Qi.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},Qi.parseLabeledStatement=function(e,t,s,i){for(var a=0,r=this.labels;a<r.length;a+=1){r[a].name===t&&this.raise(s.start,"Label '"+t+"' is already declared")}for(var n=this.type.isLoop?"loop":this.type===Ni._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var h=this.labels[o];if(h.statementStart!==e.start)break;h.statementStart=this.start,h.kind=n}return this.labels.push({name:t,kind:n,statementStart:this.start}),e.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),e.label=s,this.finishNode(e,"LabeledStatement")},Qi.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},Qi.parseBlock=function(e,t,s){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(Ni.braceL),e&&this.enterScope(0);this.type!==Ni.braceR;){var i=this.parseStatement(null);t.body.push(i)}return s&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},Qi.parseFor=function(e,t){return e.init=t,this.expect(Ni.semi),e.test=this.type===Ni.semi?null:this.parseExpression(),this.expect(Ni.semi),e.update=this.type===Ni.parenR?null:this.parseExpression(),this.expect(Ni.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},Qi.parseForIn=function(e,t){var s=this.type===Ni._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!s||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)?this.raise(t.start,(s?"for-in":"for-of")+" loop variable declaration may not have an initializer"):"AssignmentPattern"===t.type&&this.raise(t.start,"Invalid left-hand side in for-loop"),e.left=t,e.right=s?this.parseExpression():this.parseMaybeAssign(),this.expect(Ni.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,s?"ForInStatement":"ForOfStatement")},Qi.parseVar=function(e,t,s){for(e.declarations=[],e.kind=s;;){var i=this.startNode();if(this.parseVarId(i,s),this.eat(Ni.eq)?i.init=this.parseMaybeAssign(t):"const"!==s||this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===i.id.type||t&&(this.type===Ni._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(Ni.comma))break}return e},Qi.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"var"===t?1:2,!1)};var ia=1,aa=2;Qi.parseFunction=function(e,t,s,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===Ni.star&&t&aa&&this.unexpected(),e.generator=this.eat(Ni.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&ia&&(e.id=4&t&&this.type!==Ni.name?null:this.parseIdent(),!e.id||t&aa||this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var a=this.yieldPos,r=this.awaitPos,n=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Xi(e.async,e.generator)),t&ia||(e.id=this.type===Ni.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,s,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=n,this.finishNode(e,t&ia?"FunctionDeclaration":"FunctionExpression")},Qi.parseFunctionParams=function(e){this.expect(Ni.parenL),e.params=this.parseBindingList(Ni.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Qi.parseClass=function(e,t){this.next();var s=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.startNode(),a=!1;for(i.body=[],this.expect(Ni.braceL);this.type!==Ni.braceR;){var r=this.parseClassElement(null!==e.superClass);r&&(i.body.push(r),"MethodDefinition"===r.type&&"constructor"===r.kind&&(a&&this.raise(r.start,"Duplicate constructor in the same class"),a=!0))}return this.strict=s,this.next(),e.body=this.finishNode(i,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},Qi.parseClassElement=function(e){var t=this;if(this.eat(Ni.semi))return null;var s=this.startNode(),i=function(e,i){void 0===i&&(i=!1);var a=t.start,r=t.startLoc;return!!t.eatContextual(e)&&(!(t.type===Ni.parenL||i&&t.canInsertSemicolon())||(s.key&&t.unexpected(),s.computed=!1,s.key=t.startNodeAt(a,r),s.key.name=e,t.finishNode(s.key,"Identifier"),!1))};s.kind="method",s.static=i("static");var a=this.eat(Ni.star),r=!1;a||(this.options.ecmaVersion>=8&&i("async",!0)?(r=!0,a=this.options.ecmaVersion>=9&&this.eat(Ni.star)):i("get")?s.kind="get":i("set")&&(s.kind="set")),s.key||this.parsePropertyName(s);var n=s.key,o=!1;return s.computed||s.static||!("Identifier"===n.type&&"constructor"===n.name||"Literal"===n.type&&"constructor"===n.value)?s.static&&"Identifier"===n.type&&"prototype"===n.name&&this.raise(n.start,"Classes may not have a static property named prototype"):("method"!==s.kind&&this.raise(n.start,"Constructor can't have get/set modifier"),a&&this.raise(n.start,"Constructor can't be a generator"),r&&this.raise(n.start,"Constructor can't be an async method"),s.kind="constructor",o=e),this.parseClassMethod(s,a,r,o),"get"===s.kind&&0!==s.value.params.length&&this.raiseRecoverable(s.value.start,"getter should have no params"),"set"===s.kind&&1!==s.value.params.length&&this.raiseRecoverable(s.value.start,"setter should have exactly one param"),"set"===s.kind&&"RestElement"===s.value.params[0].type&&this.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params"),s},Qi.parseClassMethod=function(e,t,s,i){return e.value=this.parseMethod(t,s,i),this.finishNode(e,"MethodDefinition")},Qi.parseClassId=function(e,t){this.type===Ni.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},Qi.parseClassSuper=function(e){e.superClass=this.eat(Ni._extends)?this.parseExprSubscripts():null},Qi.parseExport=function(e,t){if(this.next(),this.eat(Ni.star))return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==Ni.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(Ni._default)){var s;if(this.checkExport(t,"default",this.lastTokStart),this.type===Ni._function||(s=this.isAsyncFunction())){var i=this.startNode();this.next(),s&&this.next(),e.declaration=this.parseFunction(i,4|ia,!1,s)}else if(this.type===Ni._class){var a=this.startNode();e.declaration=this.parseClass(a,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==Ni.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var r=0,n=e.specifiers;r<n.length;r+=1){var o=n[r];this.checkUnreserved(o.local),this.checkLocalExport(o.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},Qi.checkExport=function(e,t,s){e&&(Wi(e,t)&&this.raiseRecoverable(s,"Duplicate export '"+t+"'"),e[t]=!0)},Qi.checkPatternExport=function(e,t){var s=t.type;if("Identifier"===s)this.checkExport(e,t.name,t.start);else if("ObjectPattern"===s)for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(e,r)}else if("ArrayPattern"===s)for(var n=0,o=t.elements;n<o.length;n+=1){var h=o[n];h&&this.checkPatternExport(e,h)}else"Property"===s?this.checkPatternExport(e,t.value):"AssignmentPattern"===s?this.checkPatternExport(e,t.left):"RestElement"===s?this.checkPatternExport(e,t.argument):"ParenthesizedExpression"===s&&this.checkPatternExport(e,t.expression)},Qi.checkVariableExport=function(e,t){if(e)for(var s=0,i=t;s<i.length;s+=1){var a=i[s];this.checkPatternExport(e,a.id)}},Qi.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},Qi.parseExportSpecifiers=function(e){var t=[],s=!0;for(this.expect(Ni.braceL);!this.eat(Ni.braceR);){if(s)s=!1;else if(this.expect(Ni.comma),this.afterTrailingComma(Ni.braceR))break;var i=this.startNode();i.local=this.parseIdent(!0),i.exported=this.eatContextual("as")?this.parseIdent(!0):i.local,this.checkExport(e,i.exported.name,i.exported.start),t.push(this.finishNode(i,"ExportSpecifier"))}return t},Qi.parseImport=function(e){return this.next(),this.type===Ni.string?(e.specifiers=sa,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===Ni.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},Qi.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===Ni.name){var s=this.startNode();if(s.local=this.parseIdent(),this.checkLVal(s.local,2),e.push(this.finishNode(s,"ImportDefaultSpecifier")),!this.eat(Ni.comma))return e}if(this.type===Ni.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportNamespaceSpecifier")),e}for(this.expect(Ni.braceL);!this.eat(Ni.braceR);){if(t)t=!1;else if(this.expect(Ni.comma),this.afterTrailingComma(Ni.braceR))break;var a=this.startNode();a.imported=this.parseIdent(!0),this.eatContextual("as")?a.local=this.parseIdent():(this.checkUnreserved(a.imported),a.local=a.imported),this.checkLVal(a.local,2),e.push(this.finishNode(a,"ImportSpecifier"))}return e},Qi.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},Qi.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var ra=$i.prototype;ra.toAssignable=function(e,t,s){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",s&&this.checkPatternErrors(s,!0);for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,t),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==e.kind&&this.raise(e.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(e.value,t);break;case"ArrayExpression":e.type="ArrayPattern",s&&this.checkPatternErrors(s,!0),this.toAssignableList(e.elements,t);break;case"SpreadElement":e.type="RestElement",this.toAssignable(e.argument,t),"AssignmentPattern"===e.argument.type&&this.raise(e.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==e.operator&&this.raise(e.left.end,"Only '=' operator can be used for specifying default value."),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(e.expression,t,s);break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}else s&&this.checkPatternErrors(s,!0);return e},ra.toAssignableList=function(e,t){for(var s=e.length,i=0;i<s;i++){var a=e[i];a&&this.toAssignable(a,t)}if(s){var r=e[s-1];6===this.options.ecmaVersion&&t&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return e},ra.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ra.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==Ni.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},ra.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case Ni.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(Ni.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case Ni.braceL:return this.parseObj(!0)}return this.parseIdent()},ra.parseBindingList=function(e,t,s){for(var i=[],a=!0;!this.eat(e);)if(a?a=!1:this.expect(Ni.comma),t&&this.type===Ni.comma)i.push(null);else{if(s&&this.afterTrailingComma(e))break;if(this.type===Ni.ellipsis){var r=this.parseRestBinding();this.parseBindingListItem(r),i.push(r),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var n=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(n),i.push(n)}return i},ra.parseBindingListItem=function(e){return e},ra.parseMaybeDefault=function(e,t,s){if(s=s||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(Ni.eq))return s;var i=this.startNodeAt(e,t);return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},ra.checkLVal=function(e,t,s){switch(void 0===t&&(t=0),e.type){case"Identifier":2===t&&"let"===e.name&&this.raiseRecoverable(e.start,"let is disallowed as a lexically bound name"),this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),s&&(Wi(s,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),s[e.name]=!0),0!==t&&5!==t&&this.declareName(e.name,t,e.start);break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":t&&this.raiseRecoverable(e.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkLVal(r,t,s)}break;case"Property":this.checkLVal(e.value,t,s);break;case"ArrayPattern":for(var n=0,o=e.elements;n<o.length;n+=1){var h=o[n];h&&this.checkLVal(h,t,s)}break;case"AssignmentPattern":this.checkLVal(e.left,t,s);break;case"RestElement":this.checkLVal(e.argument,t,s);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,s);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var na=$i.prototype;na.checkPropClash=function(e,t,s){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var i,a=e.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(t.proto&&(s?s.doubleProto<0&&(s.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),t.proto=!0);else{var n=t[i="$"+i];if(n)("init"===r?this.strict&&n.init||n.get||n.set:n.init||n[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else n=t[i]={init:!1,get:!1,set:!1};n[r]=!0}}},na.parseExpression=function(e,t){var s=this.start,i=this.startLoc,a=this.parseMaybeAssign(e,t);if(this.type===Ni.comma){var r=this.startNodeAt(s,i);for(r.expressions=[a];this.eat(Ni.comma);)r.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(r,"SequenceExpression")}return a},na.parseMaybeAssign=function(e,t,s){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var i=!1,a=-1,r=-1;t?(a=t.parenthesizedAssign,r=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new zi,i=!0);var n=this.start,o=this.startLoc;this.type!==Ni.parenL&&this.type!==Ni.name||(this.potentialArrowAt=this.start);var h=this.parseMaybeConditional(e,t);if(s&&(h=s.call(this,h,n,o)),this.type.isAssign){var c=this.startNodeAt(n,o);return c.operator=this.value,c.left=this.type===Ni.eq?this.toAssignable(h,!1,t):h,i||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=c.left.start&&(t.shorthandAssign=-1),this.checkLVal(h),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return i&&this.checkExpressionErrors(t,!0),a>-1&&(t.parenthesizedAssign=a),r>-1&&(t.trailingComma=r),h},na.parseMaybeConditional=function(e,t){var s=this.start,i=this.startLoc,a=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return a;if(this.eat(Ni.question)){var r=this.startNodeAt(s,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(Ni.colon),r.alternate=this.parseMaybeAssign(e),this.finishNode(r,"ConditionalExpression")}return a},na.parseExprOps=function(e,t){var s=this.start,i=this.startLoc,a=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||a.start===s&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,s,i,-1,e)},na.parseExprOp=function(e,t,s,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==Ni._in)&&r>i){var n=this.type===Ni.logicalOR||this.type===Ni.logicalAND,o=this.type===Ni.coalesce;o&&(r=Ni.logicalAND.binop);var h=this.value;this.next();var c=this.start,l=this.startLoc,_=this.parseExprOp(this.parseMaybeUnary(null,!1),c,l,r,a),u=this.buildBinary(t,s,e,_,h,n||o);return(n&&this.type===Ni.coalesce||o&&(this.type===Ni.logicalOR||this.type===Ni.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(u,t,s,i,a)}return e},na.buildBinary=function(e,t,s,i,a,r){var n=this.startNodeAt(e,t);return n.left=s,n.operator=a,n.right=i,this.finishNode(n,r?"LogicalExpression":"BinaryExpression")},na.parseMaybeUnary=function(e,t){var s,i=this.start,a=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))s=this.parseAwait(),t=!0;else if(this.type.prefix){var r=this.startNode(),n=this.type===Ni.incDec;r.operator=this.value,r.prefix=!0,this.next(),r.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),n?this.checkLVal(r.argument):this.strict&&"delete"===r.operator&&"Identifier"===r.argument.type?this.raiseRecoverable(r.start,"Deleting local variable in strict mode"):t=!0,s=this.finishNode(r,n?"UpdateExpression":"UnaryExpression")}else{if(s=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return s;for(;this.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,a);o.operator=this.value,o.prefix=!1,o.argument=s,this.checkLVal(s),this.next(),s=this.finishNode(o,"UpdateExpression")}}return!t&&this.eat(Ni.starstar)?this.buildBinary(i,a,s,this.parseMaybeUnary(null,!1),"**",!1):s},na.parseExprSubscripts=function(e){var t=this.start,s=this.startLoc,i=this.parseExprAtom(e);if("ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return i;var a=this.parseSubscripts(i,t,s);return e&&"MemberExpression"===a.type&&(e.parenthesizedAssign>=a.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=a.start&&(e.parenthesizedBind=-1)),a},na.parseSubscripts=function(e,t,s,i){for(var a=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start==5&&this.potentialArrowAt===e.start,r=!1;;){var n=this.parseSubscript(e,t,s,i,a,r);if(n.optional&&(r=!0),n===e||"ArrowFunctionExpression"===n.type){if(r){var o=this.startNodeAt(t,s);o.expression=n,n=this.finishNode(o,"ChainExpression")}return n}e=n}},na.parseSubscript=function(e,t,s,i,a,r){var n=this.options.ecmaVersion>=11,o=n&&this.eat(Ni.questionDot);i&&o&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var h=this.eat(Ni.bracketL);if(h||o&&this.type!==Ni.parenL&&this.type!==Ni.backQuote||this.eat(Ni.dot)){var c=this.startNodeAt(t,s);c.object=e,c.property=h?this.parseExpression():this.parseIdent("never"!==this.options.allowReserved),c.computed=!!h,h&&this.expect(Ni.bracketR),n&&(c.optional=o),e=this.finishNode(c,"MemberExpression")}else if(!i&&this.eat(Ni.parenL)){var l=new zi,_=this.yieldPos,u=this.awaitPos,d=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(Ni.parenR,this.options.ecmaVersion>=8,!1,l);if(a&&!o&&!this.canInsertSemicolon()&&this.eat(Ni.arrow))return this.checkPatternErrors(l,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=_,this.awaitPos=u,this.awaitIdentPos=d,this.parseArrowExpression(this.startNodeAt(t,s),p,!0);this.checkExpressionErrors(l,!0),this.yieldPos=_||this.yieldPos,this.awaitPos=u||this.awaitPos,this.awaitIdentPos=d||this.awaitIdentPos;var m=this.startNodeAt(t,s);m.callee=e,m.arguments=p,n&&(m.optional=o),e=this.finishNode(m,"CallExpression")}else if(this.type===Ni.backQuote){(o||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var g=this.startNodeAt(t,s);g.tag=e,g.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(g,"TaggedTemplateExpression")}return e},na.parseExprAtom=function(e){this.type===Ni.slash&&this.readRegexp();var t,s=this.potentialArrowAt===this.start;switch(this.type){case Ni._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),t=this.startNode(),this.next(),this.type!==Ni.parenL||this.allowDirectSuper||this.raise(t.start,"super() call outside constructor of a subclass"),this.type!==Ni.dot&&this.type!==Ni.bracketL&&this.type!==Ni.parenL&&this.unexpected(),this.finishNode(t,"Super");case Ni._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case Ni.name:var i=this.start,a=this.startLoc,r=this.containsEsc,n=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!r&&"async"===n.name&&!this.canInsertSemicolon()&&this.eat(Ni._function))return this.parseFunction(this.startNodeAt(i,a),0,!1,!0);if(s&&!this.canInsertSemicolon()){if(this.eat(Ni.arrow))return this.parseArrowExpression(this.startNodeAt(i,a),[n],!1);if(this.options.ecmaVersion>=8&&"async"===n.name&&this.type===Ni.name&&!r)return n=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(Ni.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,a),[n],!0)}return n;case Ni.regexp:var o=this.value;return(t=this.parseLiteral(o.value)).regex={pattern:o.pattern,flags:o.flags},t;case Ni.num:case Ni.string:return this.parseLiteral(this.value);case Ni._null:case Ni._true:case Ni._false:return(t=this.startNode()).value=this.type===Ni._null?null:this.type===Ni._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case Ni.parenL:var h=this.start,c=this.parseParenAndDistinguishExpression(s);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(e.parenthesizedAssign=h),e.parenthesizedBind<0&&(e.parenthesizedBind=h)),c;case Ni.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(Ni.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case Ni.braceL:return this.parseObj(!1,e);case Ni._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case Ni._class:return this.parseClass(this.startNode(),!1);case Ni._new:return this.parseNew();case Ni.backQuote:return this.parseTemplate();case Ni._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},na.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case Ni.parenL:return this.parseDynamicImport(e);case Ni.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},na.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(Ni.parenR)){var t=this.start;this.eat(Ni.comma)&&this.eat(Ni.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},na.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},na.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},na.parseParenExpression=function(){this.expect(Ni.parenL);var e=this.parseExpression();return this.expect(Ni.parenR),e},na.parseParenAndDistinguishExpression=function(e){var t,s=this.start,i=this.startLoc,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var r,n=this.start,o=this.startLoc,h=[],c=!0,l=!1,_=new zi,u=this.yieldPos,d=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==Ni.parenR;){if(c?c=!1:this.expect(Ni.comma),a&&this.afterTrailingComma(Ni.parenR,!0)){l=!0;break}if(this.type===Ni.ellipsis){r=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}h.push(this.parseMaybeAssign(!1,_,this.parseParenItem))}var p=this.start,m=this.startLoc;if(this.expect(Ni.parenR),e&&!this.canInsertSemicolon()&&this.eat(Ni.arrow))return this.checkPatternErrors(_,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=d,this.parseParenArrowList(s,i,h);h.length&&!l||this.unexpected(this.lastTokStart),r&&this.unexpected(r),this.checkExpressionErrors(_,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=d||this.awaitPos,h.length>1?((t=this.startNodeAt(n,o)).expressions=h,this.finishNodeAt(t,"SequenceExpression",p,m)):t=h[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(s,i);return g.expression=t,this.finishNode(g,"ParenthesizedExpression")}return t},na.parseParenItem=function(e){return e},na.parseParenArrowList=function(e,t,s){return this.parseArrowExpression(this.startNodeAt(e,t),s)};var oa=[];na.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(Ni.dot)){e.meta=t;var s=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),s&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.inNonArrowFunction()||this.raiseRecoverable(e.start,"'new.target' can only be used in functions"),this.finishNode(e,"MetaProperty")}var i=this.start,a=this.startLoc,r=this.type===Ni._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),i,a,!0),r&&"ImportExpression"===e.callee.type&&this.raise(i,"Cannot use new with import()"),this.eat(Ni.parenL)?e.arguments=this.parseExprList(Ni.parenR,this.options.ecmaVersion>=8,!1):e.arguments=oa,this.finishNode(e,"NewExpression")},na.parseTemplateElement=function(e){var t=e.isTagged,s=this.startNode();return this.type===Ni.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),s.tail=this.type===Ni.backQuote,this.finishNode(s,"TemplateElement")},na.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var s=this.startNode();this.next(),s.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(s.quasis=[i];!i.tail;)this.type===Ni.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(Ni.dollarBraceL),s.expressions.push(this.parseExpression()),this.expect(Ni.braceR),s.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(s,"TemplateLiteral")},na.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===Ni.name||this.type===Ni.num||this.type===Ni.string||this.type===Ni.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===Ni.star)&&!bi.test(this.input.slice(this.lastTokEnd,this.start))},na.parseObj=function(e,t){var s=this.startNode(),i=!0,a={};for(s.properties=[],this.next();!this.eat(Ni.braceR);){if(i)i=!1;else if(this.expect(Ni.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(Ni.braceR))break;var r=this.parseProperty(e,t);e||this.checkPropClash(r,a,t),s.properties.push(r)}return this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},na.parseProperty=function(e,t){var s,i,a,r,n=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(Ni.ellipsis))return e?(n.argument=this.parseIdent(!1),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(n,"RestElement")):(this.type===Ni.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),n.argument=this.parseMaybeAssign(!1,t),this.type===Ni.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(n,"SpreadElement"));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(e||t)&&(a=this.start,r=this.startLoc),e||(s=this.eat(Ni.star)));var o=this.containsEsc;return this.parsePropertyName(n),!e&&!o&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(n)?(i=!0,s=this.options.ecmaVersion>=9&&this.eat(Ni.star),this.parsePropertyName(n,t)):i=!1,this.parsePropertyValue(n,e,s,i,a,r,t,o),this.finishNode(n,"Property")},na.parsePropertyValue=function(e,t,s,i,a,r,n,o){if((s||i)&&this.type===Ni.colon&&this.unexpected(),this.eat(Ni.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,n),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===Ni.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(s,i);else if(t||o||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===Ni.comma||this.type===Ni.braceR||this.type===Ni.eq)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((s||i)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),e.kind="init",t?e.value=this.parseMaybeDefault(a,r,e.key):this.type===Ni.eq&&n?(n.shorthandAssign<0&&(n.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,r,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(s||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var h="get"===e.kind?0:1;if(e.value.params.length!==h){var c=e.value.start;"get"===e.kind?this.raiseRecoverable(c,"getter should have no params"):this.raiseRecoverable(c,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},na.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(Ni.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(Ni.bracketR),e.key;e.computed=!1}return e.key=this.type===Ni.num||this.type===Ni.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},na.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},na.parseMethod=function(e,t,s){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,n=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|Xi(t,i.generator)|(s?128:0)),this.expect(Ni.parenL),i.params=this.parseBindingList(Ni.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=n,this.finishNode(i,"FunctionExpression")},na.parseArrowExpression=function(e,t,s){var i=this.yieldPos,a=this.awaitPos,r=this.awaitIdentPos;return this.enterScope(16|Xi(s,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=r,this.finishNode(e,"ArrowFunctionExpression")},na.parseFunctionBody=function(e,t,s){var i=t&&this.type!==Ni.braceL,a=this.strict,r=!1;if(i)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var n=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);a&&!n||(r=this.strictDirective(this.end))&&n&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],r&&(this.strict=!0),this.checkParams(e,!a&&!r&&!t&&!s&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLVal(e.id,5),e.body=this.parseBlock(!1,void 0,r&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitScope()},na.isSimpleParamList=function(e){for(var t=0,s=e;t<s.length;t+=1){if("Identifier"!==s[t].type)return!1}return!0},na.checkParams=function(e,t){for(var s={},i=0,a=e.params;i<a.length;i+=1){var r=a[i];this.checkLVal(r,1,t?null:s)}},na.parseExprList=function(e,t,s,i){for(var a=[],r=!0;!this.eat(e);){if(r)r=!1;else if(this.expect(Ni.comma),t&&this.afterTrailingComma(e))break;var n=void 0;s&&this.type===Ni.comma?n=null:this.type===Ni.ellipsis?(n=this.parseSpread(i),i&&this.type===Ni.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):n=this.parseMaybeAssign(!1,i),a.push(n)}return a},na.checkUnreserved=function(e){var t=e.start,s=e.end,i=e.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(t,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(t,"Cannot use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(t,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,s).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(t,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(t,"The keyword '"+i+"' is reserved"))},na.parseIdent=function(e,t){var s=this.startNode();return this.type===Ni.name?s.name=this.value:this.type.keyword?(s.name=this.type.keyword,"class"!==s.name&&"function"!==s.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(s,"Identifier"),e||(this.checkUnreserved(s),"await"!==s.name||this.awaitIdentPos||(this.awaitIdentPos=s.start)),s},na.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===Ni.semi||this.canInsertSemicolon()||this.type!==Ni.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(Ni.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,"YieldExpression")},na.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!1),this.finishNode(e,"AwaitExpression")};var ha=$i.prototype;ha.raise=function(e,t){var s=Hi(this.input,e);t+=" ("+s.line+":"+s.column+")";var i=new SyntaxError(t);throw i.pos=e,i.loc=s,i.raisedAt=this.pos,i},ha.raiseRecoverable=ha.raise,ha.curPosition=function(){if(this.options.locations)return new Yi(this.curLine,this.pos-this.lineStart)};var ca=$i.prototype,la=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};ca.enterScope=function(e){this.scopeStack.push(new la(e))},ca.exitScope=function(){this.scopeStack.pop()},ca.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},ca.declareName=function(e,t,s){var i=!1;if(2===t){var a=this.currentScope();i=a.lexical.indexOf(e)>-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&1&a.flags&&delete this.undefinedExports[e]}else if(4===t){this.currentScope().lexical.push(e)}else if(3===t){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(e)>-1:r.lexical.indexOf(e)>-1||r.var.indexOf(e)>-1,r.functions.push(e)}else for(var n=this.scopeStack.length-1;n>=0;--n){var o=this.scopeStack[n];if(o.lexical.indexOf(e)>-1&&!(32&o.flags&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){i=!0;break}if(o.var.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e],3&o.flags)break}i&&this.raiseRecoverable(s,"Identifier '"+e+"' has already been declared")},ca.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},ca.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},ca.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},ca.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var _a=function(e,t,s){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new Gi(e,s)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},ua=$i.prototype;function da(e,t,s,i){return e.type=t,e.end=s,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=s),e}ua.startNode=function(){return new _a(this,this.start,this.startLoc)},ua.startNodeAt=function(e,t){return new _a(this,e,t)},ua.finishNode=function(e,t){return da.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},ua.finishNodeAt=function(e,t,s,i){return da.call(this,e,t,s,i)};var pa=function(e,t,s,i,a){this.token=e,this.isExpr=!!t,this.preserveSpace=!!s,this.override=i,this.generator=!!a},ma={b_stat:new pa("{",!1),b_expr:new pa("{",!0),b_tmpl:new pa("${",!1),p_stat:new pa("(",!1),p_expr:new pa("(",!0),q_tmpl:new pa("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new pa("function",!1),f_expr:new pa("function",!0),f_expr_gen:new pa("function",!0,!1,null,!0),f_gen:new pa("function",!1,!1,null,!0)},ga=$i.prototype;ga.initialContext=function(){return[ma.b_stat]},ga.braceIsBlock=function(e){var t=this.curContext();return t===ma.f_expr||t===ma.f_stat||(e!==Ni.colon||t!==ma.b_stat&&t!==ma.b_expr?e===Ni._return||e===Ni.name&&this.exprAllowed?bi.test(this.input.slice(this.lastTokEnd,this.start)):e===Ni._else||e===Ni.semi||e===Ni.eof||e===Ni.parenR||e===Ni.arrow||(e===Ni.braceL?t===ma.b_stat:e!==Ni._var&&e!==Ni._const&&e!==Ni.name&&!this.exprAllowed):!t.isExpr)},ga.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ga.updateContext=function(e){var t,s=this.type;s.keyword&&e===Ni.dot?this.exprAllowed=!1:(t=s.updateContext)?t.call(this,e):this.exprAllowed=s.beforeExpr},Ni.parenR.updateContext=Ni.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===ma.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},Ni.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ma.b_stat:ma.b_expr),this.exprAllowed=!0},Ni.dollarBraceL.updateContext=function(){this.context.push(ma.b_tmpl),this.exprAllowed=!0},Ni.parenL.updateContext=function(e){var t=e===Ni._if||e===Ni._for||e===Ni._with||e===Ni._while;this.context.push(t?ma.p_stat:ma.p_expr),this.exprAllowed=!0},Ni.incDec.updateContext=function(){},Ni._function.updateContext=Ni._class.updateContext=function(e){!e.beforeExpr||e===Ni.semi||e===Ni._else||e===Ni._return&&bi.test(this.input.slice(this.lastTokEnd,this.start))||(e===Ni.colon||e===Ni.braceL)&&this.curContext()===ma.b_stat?this.context.push(ma.f_stat):this.context.push(ma.f_expr),this.exprAllowed=!1},Ni.backQuote.updateContext=function(){this.curContext()===ma.q_tmpl?this.context.pop():this.context.push(ma.q_tmpl),this.exprAllowed=!1},Ni.star.updateContext=function(e){if(e===Ni._function){var t=this.context.length-1;this.context[t]===ma.f_expr?this.context[t]=ma.f_expr_gen:this.context[t]=ma.f_gen}this.exprAllowed=!0},Ni.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==Ni.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var Ea="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",wa=Ea+" Extended_Pictographic",fa={9:Ea,10:wa,11:wa},ya="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",va="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",Aa=va+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",Sa={9:va,10:Aa,11:Aa+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"},Ta={};function Ia(e){var t=Ta[e]={binary:Fi(fa[e]+" "+ya),nonBinary:{General_Category:Fi(ya),Script:Fi(Sa[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}Ia(9),Ia(10),Ia(11);var Ca=$i.prototype,Pa=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=Ta[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Oa(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Da(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function Na(e){return e>=65&&e<=90||e>=97&&e<=122}function ba(e){return Na(e)||95===e}function Ma(e){return ba(e)||xa(e)}function xa(e){return e>=48&&e<=57}function La(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ra(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function Ba(e){return e>=48&&e<=55}Pa.prototype.reset=function(e,t,s){var i=-1!==s.indexOf("u");this.start=0|e,this.source=t+"",this.flags=s,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},Pa.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},Pa.prototype.at=function(e,t){void 0===t&&(t=!1);var s=this.source,i=s.length;if(e>=i)return-1;var a=s.charCodeAt(e);if(!t&&!this.switchU||a<=55295||a>=57344||e+1>=i)return a;var r=s.charCodeAt(e+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},Pa.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var s=this.source,i=s.length;if(e>=i)return i;var a,r=s.charCodeAt(e);return!t&&!this.switchU||r<=55295||r>=57344||e+1>=i||(a=s.charCodeAt(e+1))<56320||a>57343?e+1:e+2},Pa.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},Pa.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Pa.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Pa.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},Ca.validateRegExpFlags=function(e){for(var t=e.validFlags,s=e.flags,i=0;i<s.length;i++){var a=s.charAt(i);-1===t.indexOf(a)&&this.raise(e.start,"Invalid regular expression flag"),s.indexOf(a,i+1)>-1&&this.raise(e.start,"Duplicate regular expression flag")}},Ca.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},Ca.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,s=e.backReferenceNames;t<s.length;t+=1){var i=s[t];-1===e.groupNames.indexOf(i)&&e.raise("Invalid named capture referenced")}},Ca.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},Ca.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},Ca.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise("Invalid quantifier"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},Ca.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var s=!1;if(this.options.ecmaVersion>=9&&(s=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!s,!0}return e.pos=t,!1},Ca.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},Ca.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},Ca.regexp_eatBracedQuantifier=function(e,t){var s=e.pos;if(e.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return-1!==a&&a<i&&!t&&e.raise("numbers out of order in {} quantifier"),!0;e.switchU&&!t&&e.raise("Incomplete quantifier"),e.pos=s}return!1},Ca.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},Ca.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},Ca.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}e.pos=t}return!1},Ca.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},Ca.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},Ca.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},Ca.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Da(t)&&(e.lastIntValue=t,e.advance(),!0)},Ca.regexp_eatPatternCharacters=function(e){for(var t=e.pos,s=0;-1!==(s=e.current())&&!Da(s);)e.advance();return e.pos!==t},Ca.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},Ca.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},Ca.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},Ca.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Oa(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Oa(e.lastIntValue);return!0}return!1},Ca.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,s=this.options.ecmaVersion>=11,i=e.current(s);return e.advance(s),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,s)&&(i=e.lastIntValue),function(e){return Ai(e,!0)||36===e||95===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ca.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,s=this.options.ecmaVersion>=11,i=e.current(s);return e.advance(s),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,s)&&(i=e.lastIntValue),function(e){return Si(e,!0)||36===e||95===e||8204===e||8205===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ca.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},Ca.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var s=e.lastIntValue;if(e.switchU)return s>e.maxBackReference&&(e.maxBackReference=s),!0;if(s<=e.numCapturingParens)return!0;e.pos=t}return!1},Ca.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},Ca.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},Ca.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},Ca.regexp_eatZero=function(e){return 48===e.current()&&!xa(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},Ca.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},Ca.regexp_eatControlLetter=function(e){var t=e.current();return!!Na(t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ca.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var s,i=e.pos,a=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(a&&r>=55296&&r<=56319){var n=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=1024*(r-55296)+(o-56320)+65536,!0}e.pos=n,e.lastIntValue=r}return!0}if(a&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((s=e.lastIntValue)>=0&&s<=1114111))return!0;a&&e.raise("Invalid unicode escape"),e.pos=i}return!1},Ca.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},Ca.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},Ca.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},Ca.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var s=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,s,i),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},Ca.regexp_validateUnicodePropertyNameAndValue=function(e,t,s){Wi(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(s)||e.raise("Invalid property value")},Ca.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},Ca.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";ba(t=e.current());)e.lastStringValue+=Oa(t),e.advance();return""!==e.lastStringValue},Ca.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ma(t=e.current());)e.lastStringValue+=Oa(t),e.advance();return""!==e.lastStringValue},Ca.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},Ca.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},Ca.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var s=e.lastIntValue;!e.switchU||-1!==t&&-1!==s||e.raise("Invalid character class"),-1!==t&&-1!==s&&t>s&&e.raise("Range out of order in character class")}}},Ca.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var s=e.current();(99===s||Ba(s))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return 93!==i&&(e.lastIntValue=i,e.advance(),!0)},Ca.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},Ca.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!xa(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ca.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},Ca.regexp_eatDecimalDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;xa(s=e.current());)e.lastIntValue=10*e.lastIntValue+(s-48),e.advance();return e.pos!==t},Ca.regexp_eatHexDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;La(s=e.current());)e.lastIntValue=16*e.lastIntValue+Ra(s),e.advance();return e.pos!==t},Ca.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var s=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*s+e.lastIntValue:e.lastIntValue=8*t+s}else e.lastIntValue=t;return!0}return!1},Ca.regexp_eatOctalDigit=function(e){var t=e.current();return Ba(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},Ca.regexp_eatFixedHexDigits=function(e,t){var s=e.pos;e.lastIntValue=0;for(var i=0;i<t;++i){var a=e.current();if(!La(a))return e.pos=s,!1;e.lastIntValue=16*e.lastIntValue+Ra(a),e.advance()}return!0};var Ua=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new Gi(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},ka=$i.prototype;function Wa(e){return"function"!=typeof BigInt?null:BigInt(e.replace(/_/g,""))}function Va(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}ka.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Ua(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},ka.getToken=function(){return this.next(),new Ua(this)},"undefined"!=typeof Symbol&&(ka[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===Ni.eof,value:t}}}}),ka.curContext=function(){return this.context[this.context.length-1]},ka.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(Ni.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},ka.readToken=function(e){return Ai(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},ka.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},ka.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(Mi.lastIndex=s;(e=Mi.exec(this.input))&&e.index<this.pos;)++this.curLine,this.lineStart=e.index+e[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(s+2,i),s,this.pos,t,this.curPosition())},ka.skipLineComment=function(e){for(var t=this.pos,s=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!xi(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,s,this.curPosition())},ka.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&Li.test(String.fromCharCode(e))))break e;++this.pos}}},ka.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=e,this.value=t,this.updateContext(s)},ka.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(Ni.ellipsis)):(++this.pos,this.finishToken(Ni.dot))},ka.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(Ni.assign,2):this.finishOp(Ni.slash,1)},ka.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),s=1,i=42===e?Ni.star:Ni.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++s,i=Ni.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(Ni.assign,s+1):this.finishOp(i,s)},ka.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(Ni.assign,3);return this.finishOp(124===e?Ni.logicalOR:Ni.logicalAND,2)}return 61===t?this.finishOp(Ni.assign,2):this.finishOp(124===e?Ni.bitwiseOR:Ni.bitwiseAND,1)},ka.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(Ni.assign,2):this.finishOp(Ni.bitwiseXOR,1)},ka.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!bi.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(Ni.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(Ni.assign,2):this.finishOp(Ni.plusMin,1)},ka.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),s=1;return t===e?(s=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(Ni.assign,s+1):this.finishOp(Ni.bitShift,s)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(s=2),this.finishOp(Ni.relational,s)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},ka.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(Ni.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(Ni.arrow)):this.finishOp(61===e?Ni.eq:Ni.prefix,1)},ka.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var s=this.input.charCodeAt(this.pos+2);if(s<48||s>57)return this.finishOp(Ni.questionDot,2)}if(63===t){if(e>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(Ni.assign,3);return this.finishOp(Ni.coalesce,2)}}return this.finishOp(Ni.question,1)},ka.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(Ni.parenL);case 41:return++this.pos,this.finishToken(Ni.parenR);case 59:return++this.pos,this.finishToken(Ni.semi);case 44:return++this.pos,this.finishToken(Ni.comma);case 91:return++this.pos,this.finishToken(Ni.bracketL);case 93:return++this.pos,this.finishToken(Ni.bracketR);case 123:return++this.pos,this.finishToken(Ni.braceL);case 125:return++this.pos,this.finishToken(Ni.braceR);case 58:return++this.pos,this.finishToken(Ni.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(Ni.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(Ni.prefix,1)}this.raise(this.pos,"Unexpected character '"+Va(e)+"'")},ka.finishOp=function(e,t){var s=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,s)},ka.readRegexp=function(){for(var e,t,s=this.pos;;){this.pos>=this.input.length&&this.raise(s,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(bi.test(i)&&this.raise(s,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++this.pos}var a=this.input.slice(s,this.pos);++this.pos;var r=this.pos,n=this.readWord1();this.containsEsc&&this.unexpected(r);var o=this.regexpState||(this.regexpState=new Pa(this));o.reset(s,a,n),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(a,n)}catch(e){}return this.finishToken(Ni.regexp,{pattern:a,flags:n,value:h})},ka.readInt=function(e,t,s){for(var i=this.options.ecmaVersion>=12&&void 0===t,a=s&&48===this.input.charCodeAt(this.pos),r=this.pos,n=0,o=0,h=0,c=null==t?1/0:t;h<c;++h,++this.pos){var l=this.input.charCodeAt(this.pos),_=void 0;if(i&&95===l)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===o&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===h&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),o=l;else{if((_=l>=97?l-97+10:l>=65?l-65+10:l>=48&&l<=57?l-48:1/0)>=e)break;o=l,n=n*e+_}}return i&&95===o&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=t&&this.pos-r!==t?null:n},ka.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var s=this.readInt(e);return null==s&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(s=Wa(this.input.slice(t,this.pos)),++this.pos):Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(Ni.num,s)},ka.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var s=this.pos-t>=2&&48===this.input.charCodeAt(t);s&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!s&&!e&&this.options.ecmaVersion>=11&&110===i){var a=Wa(this.input.slice(t,this.pos));return++this.pos,Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(Ni.num,a)}s&&/[89]/.test(this.input.slice(t,this.pos))&&(s=!1),46!==i||s||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||s||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r,n=(r=this.input.slice(t,this.pos),s?parseInt(r,8):parseFloat(r.replace(/_/g,"")));return this.finishToken(Ni.num,n)},ka.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},ka.readString=function(e){for(var t="",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;92===i?(t+=this.input.slice(s,this.pos),t+=this.readEscapedChar(!1),s=this.pos):(xi(i,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(s,this.pos++),this.finishToken(Ni.string,t)};var Fa={};ka.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Fa)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},ka.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Fa;this.raise(e,t)},ka.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var s=this.input.charCodeAt(this.pos);if(96===s||36===s&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==Ni.template&&this.type!==Ni.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(Ni.template,e)):36===s?(this.pos+=2,this.finishToken(Ni.dollarBraceL)):(++this.pos,this.finishToken(Ni.backQuote));if(92===s)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(xi(s)){switch(e+=this.input.slice(t,this.pos),++this.pos,s){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(s)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},ka.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(Ni.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},ka.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Va(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(e){var s=this.pos-1;return this.invalidStringToken(s,"Invalid escape sequence in template string"),null}default:if(t>=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),"0"===i&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return xi(t)?"":String.fromCharCode(t)}},ka.readHexChar=function(e){var t=this.pos,s=this.readInt(16,e);return null===s&&this.invalidStringToken(t,"Bad character escape sequence"),s},ka.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,s=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(Si(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,e+=this.input.slice(s,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var n=this.readCodePoint();(t?Ai:Si)(n,i)||this.invalidStringToken(r,"Invalid Unicode escape"),e+=Va(n),s=this.pos}t=!1}return e+this.input.slice(s,this.pos)},ka.readWord=function(){var e=this.readWord1(),t=Ni.name;return this.keywords.test(e)&&(t=Oi[e]),this.finishToken(t,e)};function Ya(e){return $i.parse(e,{ecmaVersion:2020})}function Ga(e){return["ArrayOrObject1D","ArrayOrObject2D","ArrayOrObject3DPlus","Literal","Symbol","UnaryOperation","BinaryOperation","Random","CallDefinedFunction","AnyFunction","ConditionalExpression","ArrayExpression","ObjectExpression"].includes(e.type)}function Ha(e){switch(e.type){case"Program":return function(e){if(1!==e.body.length)throw new Error("bodyが1以外の場合評価できません。");return Ha(e.body[0])}(e);case"ExpressionStatement":return function(e){return Ha(e.expression)}(e);case"AssignmentExpression":return function(e){const t=Ha(e.left),s=Ha(e.right);if(!Ga(s))throw new Error("値以外を代入式の右辺に設定できません");switch(e.operator){case"=":case"+=":case"-=":case"*=":case"/=":if("ArrayOrObject2D"===t.type){if("m"===t.name||"o"===t.name)return{type:"PartsAssignment",partsKind:"m"===t.name?"map":"object",destinationX:t.indecies[0],destinationY:t.indecies[1],value:s,operator:e.operator};if("v"===t.name)return{type:"UserVariableAssignment",index:[t.indecies[0],t.indecies[1]],value:s,operator:e.operator};throw new Error("想定していない記号が2次元配列ででてきました")}if("ArrayOrObject1D"===t.type){if("ITEM"===t.name)return{type:"ItemAssignment",itemBoxPosition1to12:t.indecies[0],value:s,operator:e.operator};if("v"===t.name)return{type:"UserVariableAssignment",index:[t.indecies[0]],value:s,operator:e.operator};if("LP"===t.name)return{type:"LoopPointerAssignment",index:t.indecies[0],value:s,operator:e.operator};throw new Error(`1次元配列にて想定していないシンボルが指定されました ${t.name}`)}if("Symbol"===t.type){if("m"===t.name||"o"===t.name||"v"===t.name||"ITEM"===t.name||"X"===t.name||"Y"===t.name||"ID"===t.name||"TYPE"===t.name||"CX"===t.name||"CY"===t.name||"PICTURE"===t.name||"PLAYER_PX"===t.name||"PLAYER_PY"===t.name||"MOVE_SPEED"===t.name||"MOVE_FRAME_TIME"===t.name||"LP"===t.name||"undefined"===t.name)throw new Error("このシンボルには代入できません");if("AT_TOTAL"===t.name)throw new Error('"装備品込みの攻撃力(AT_TOTAL)への代入はできません。"');if("DF_TOTAL"===t.name)throw new Error('"装備品込みの防御力(DF_TOTAL)への代入はできません。"');if("ENEMY_HP"===t.name||"ENEMY_AT"===t.name||"ENEMY_DF"===t.name||"ENEMY_GD"===t.name)throw new Error("敵ステータス (ENEMY_HP, ENEMY_AT, ENEMY_DF, ENEMY_GD) への代入はできません。");return{type:"SpecialParameterAssignment",kind:t.name,value:s,operator:e.operator}}if("Literal"===t.type)throw new Error("数値には代入できません");if("ArrayOrObject3DPlus"===t.type&&"v"===t.name)return{type:"UserVariableAssignment",index:t.indecies,value:s,operator:e.operator};throw new Error("代入できません");default:throw new Error("想定していないオペレーターです")}}(e);case"MemberExpression":return function(e){const t=Ha(e.object),s=Ha(e.property);if("Symbol"===t.type){if(!["v","m","o","ITEM","LP","PICTURE"].includes(t.name))throw new Error("このシンボルは配列にできません");if(Ga(s))return{type:"ArrayOrObject1D",name:t.name,indecies:[s]};throw new Error("WWAでは存在しない構文です")}if("ArrayOrObject1D"===t.type){if("ITEM"===t.name||"PICTURE"===t.name)throw new Error("この配列は2次元以上にはできません。");if(Ga(s))return{type:"ArrayOrObject2D",name:t.name,indecies:[...t.indecies,s]};throw new Error("WWAでは存在しない構文です")}if("ArrayOrObject2D"!==t.type&&"ArrayOrObject3DPlus"!==t.type)throw new Error("WWAでは存在しない構文です");if("m"===t.name||"o"===t.name)throw new Error("この配列は3次元以上にはできません。");if("v"===t.name&&Ga(s))return{type:"ArrayOrObject3DPlus",name:t.name,indecies:[...t.indecies,s]}}(e);case"UnaryExpression":return function(e){const t=Ha(e.argument);if(!["+","-","!"].includes(e.operator))throw new Error("未定義の演算子です :"+e.operator);if(!Ga(t))throw new Error("単項演算子が適用できません");return{type:"UnaryOperation",operator:e.operator,argument:t}}(e);case"BinaryExpression":return function(e){const t=Ha(e.left),s=Ha(e.right);if(!Ga(t)||!Ga(s))throw new Error("左辺または右辺が評価不能です");switch(e.operator){case"+":case"-":case"*":case"/":case"%":case">":case"<":case">=":case"<=":case"==":case"!=":return{type:"BinaryOperation",operator:e.operator,left:t,right:s};default:throw new Error("未定義の演算子です :"+e.operator)}}(e);case"Identifier":return function(e){switch(e.name){case"m":case"o":case"ITEM":case"X":case"Y":case"ID":case"TYPE":case"PX":case"PY":case"CX":case"CY":case"v":case"HP":case"HPMAX":case"AT":case"AT_TOTAL":case"DF":case"DF_TOTAL":case"GD":case"STEP":case"TIME":case"PDIR":case"i":case"j":case"k":case"LOOPLIMIT":case"ITEM_ID":case"ITEM_POS":case"ENEMY_HP":case"ENEMY_AT":case"ENEMY_DF":case"PICTURE":case"PLAYER_PX":case"PLAYER_PY":case"MOVE_SPEED":case"MOVE_FRAME_TIME":case"LP":case"undefined":return{type:"Symbol",name:e.name};default:return{type:"Literal",value:e.name}}}(e);case"Literal":return function(e){return{type:"Literal",value:e.value}}(e);case"CallExpression":return function(e){const t=e.callee.name;switch(t){case"RAND":return function(e){if(e.length<1)throw new Error("RAND関数には引数が必要です。");return{type:"Random",value:Ha(e[0])}}(e.arguments);case"JUMPGATE":return function(e){if(e.length<2)throw new Error("RAND関数には引数が2つ必要です。");const t={x:e[0],y:e[1]};return{type:"Jumpgate",x:Ha(t.x),y:Ha(t.y)}}(e.arguments);case"MSG":case"MESSAGE":return{type:"Msg",value:Ha(e.arguments[0])};case"SOUND":case"SAVE":case"LOG":case"ABLE_CHANGE_SPEED":case"SET_SPEED":case"CHANGE_GAMEOVER_POS":case"DEL_PLAYER":case"RESTART_GAME":case"URL_JUMPGATE":case"HIDE_STATUS":case"PARTS":case"FACE":case"EFFECT":case"CHANGE_PLAYER_IMAGE":case"HAS_ITEM":case"REMOVE_ITEM":case"MOVE":case"PARTS_MOVE":case"IS_PLAYER_WAITING_MESSAGE":case"GET_UNIXTIME":case"GET_DATE_YEAR":case"GET_DATE_MONTH":case"GET_DATE_DAY":case"GET_DATE_HOUR":case"GET_DATE_MINUTES":case"GET_DATE_SECONDS":case"GET_DATE_MILLISECONDS":case"GET_DATE_WEEKDAY":case"CHANGE_SYSMSG":case"PICTURE":case"PICTURE_FROM_PARTS":case"CLEAR_ALL_PICTURES":case"HAS_PICTURE":case"SHOW_USER_DEF_VAR":case"ABS":case"GET_GAMEOVER_POS_X":case"GET_GAMEOVER_POS_Y":case"ABORT_BATTLE":case"EXIT":case"GET_IMG_POS_X":case"GET_IMG_POS_Y":case"LENGTH":case"IS_NUMBER":return function(e,t){return{type:"AnyFunction",functionName:t,value:e.map((e=>Ha(e)))}}(e.arguments,t);default:return{type:"CallDefinedFunction",functionName:t}}}(e);case"IfStatement":return function(e){const t=Ha(e.consequent),s=Ha(e.test);return{type:"IfStatement",consequent:t,test:s,alternate:e.alternate?Ha(e.alternate):void 0}}(e);case"BlockStatement":return function(e){return{type:"BlockStatement",value:e.body.map((e=>Ha(e)))}}(e);case"FunctionDeclaration":return function(e){return{type:"DefinedFunction",functionName:e.id.name,body:Ha(e.body)}}(e);case"ForStatement":return function(e){const t=e.body.body.map((e=>Ha(e)));return{type:"ForStatement",body:t,init:Ha(e.init),test:Ha(e.test),update:Ha(e.update)}}(e);case"BreakStatement":return function(e){return{type:"Break",label:e.label}}(e);case"ReturnStatement":return function(e){return{type:"Return",argument:Ha(e.argument)}}(e);case"ContinueStatement":return function(e){return{type:"Continue",label:e.label}}(e);case"UpdateExpression":return function(e){return{type:"UpdateExpression",operator:e.operator,argument:Ha(e.argument)}}(e);case"LogicalExpression":return function(e){return{type:"LogicalExpression",operator:e.operator,left:Ha(e.left),right:Ha(e.right)}}(e);case"TemplateLiteral":return function(e){return{type:"TemplateLiteral",expressions:e.expressions.map((e=>Ha(e))),quasis:e.quasis.map((e=>Ha(e)))}}(e);case"TemplateElement":return function(e){return{type:"TemplateElement",value:e.value}}(e);case"ConditionalExpression":return function(e){const t=Ha(e.consequent),s=Ha(e.alternate),i=Ha(e.test);return{type:"ConditionalExpression",consequent:t,test:i,alternate:s}}(e);case"Property":return Ka(e);case"ObjectExpression":return function(e){return{type:"ObjectExpression",properties:e.properties.map(Ka)}}(e);case"ArrayExpression":return function(e){return{type:"ArrayExpression",elements:e.elements.map(Ha)}}(e);default:throw console.log(e),new Error("未定義の AST ノードです :"+e.type)}}function Ka(e){const t=Ha(e.key);if("Symbol"===t.type)throw new Error(`Object のキー ${t.name} は予約されているため、使用できません。`);if("Literal"!==t.type)throw new Error(`Object のキーが不正です。 Literal を期待していましたが、実際は ${t.type} でした。`);return{type:"Property",key:t,value:Ha(e.value)}}$i.acorn={Parser:$i,version:"7.4.1",defaultOptions:Ki,Position:Yi,SourceLocation:Gi,getLineInfo:Hi,Node:_a,TokenType:Ti,tokTypes:Ni,keywordTypes:Oi,TokContext:pa,tokContexts:ma,isIdentifierChar:Si,isIdentifierStart:Ai,Token:Ua,isNewLine:xi,lineBreak:bi,lineBreakG:Mi,nonASCIIwhitespace:Li};const ja=[v.OBJECT,v.MAP];const Xa=Object.freeze({"=":(e,t)=>t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"*=":(e,t)=>e*t,"/=":(e,t)=>e/t});class $a{constructor(e){this.wwa=e,this.loop_limit=1e5,this.state={messagePageAdditionalQueue:[]}}setTriggerParts(e,t,s){this.state={...this.state,triggerParts:{id:e,type:t,position:s}}}clearTemporaryState(){this.state={...this.state,triggerParts:void 0,messagePageAdditionalQueue:[]}}setEarnedItem(e,t){this.state={...this.state,earnedItem:{partsId:e,itemPos1To12:t}}}clearEarnedItem(){this.state={...this.state,earnedItem:void 0}}setBattleDamageCalculationMode(e){this.state={...this.state,battleDamageCalculation:{estimatingParams:e}}}clearBattleDamageCalculationMode(){this.state={...this.state,battleDamageCalculation:void 0}}evalWwaNodes(e){return this.evalWwaNode({type:"BlockStatement",value:e})}evalWwaNode(e){if("BlockStatement"!==e.type||!Array.isArray(e.value)||0!==e.value.length)try{return new Ja(this).evalWwaNode(e)}catch(e){if(e instanceof Za||e instanceof qa)return e.value;throw e}}addPageAdditionalItem(e){this.state.messagePageAdditionalQueue.push(e)}pickPageAdditionalQueue(){const e=[...this.state.messagePageAdditionalQueue];return this.state.messagePageAdditionalQueue=[],e}updateLoopLimit(e){this.loop_limit=e}}class Ja{constructor(e){this.generator=e,this.for_id={i:null,j:null,k:null,LP:[],loopCount:0,break_flag:!1,continue_flag:!1}}evalWwaNodes(e){let t;return e.forEach((e=>{t=this.evalWwaNode(e)})),t}evalWwaNode(e){if(!this.for_id.break_flag&&!this.for_id.continue_flag)switch(e.type){case"UnaryOperation":return this.evalUnaryOperation(e);case"BinaryOperation":return this.evalBinaryOperation(e);case"Symbol":return this.evalSymbol(e);case"ArrayOrObject1D":return this.evalArrayOrObject1D(e);case"ArrayOrObject2D":return this.evalArrayOrObject2D(e);case"ArrayOrObject3DPlus":return this.evalArrayOrObject3DPlus(e);case"Literal":return this.evalLiteral(e);case"UserVariableAssignment":return this.evalSetUserVariable(e);case"SpecialParameterAssignment":return this.evalSetSpecialParameter(e);case"Random":return this.evalRandom(e);case"Jumpgate":return this.evalJumpgate(e);case"Msg":return this.evalMessage(e);case"ItemAssignment":return this.itemAssignment(e);case"IfStatement":return this.ifStatement(e);case"BlockStatement":return this.blockStatement(e);case"PartsAssignment":return this.partsAssignment(e);case"ForStatement":return this.forStateMent(e);case"AnyFunction":return this.wrapCallFunction(e,(e=>this.evalAnyFunction(e)));case"CallDefinedFunction":return this.wrapCallFunction(e,(e=>this.callDefinedFunction(e)));case"Break":return this.breakStatement(e);case"Return":throw new Za(this.returnStatement(e));case"Continue":return this.contunueStatment(e);case"UpdateExpression":return this.updateExpression(e);case"LogicalExpression":return this.logicalExpression(e);case"TemplateLiteral":return this.convertTemplateLiteral(e);case"ConditionalExpression":return this.convertConditionalExpression(e);case"Property":return this.property(e);case"ObjectExpression":return this.objectExpression(e);case"ArrayExpression":return this.arrayExpression(e);case"LoopPointerAssignment":return this.convertLoopPointerExpression(e);default:throw console.log(e),new Error("未定義または未実装のノードです")}}wrapCallFunction(e,t){try{return t(e)}catch(e){if(e instanceof Za)return e.value;throw e}}callDefinedFunction(e){const t=this.generator.wwa.getUserScript(e.functionName);if(null===t)throw new Error(`未定義の関数が呼び出されました: ${e.functionName}`);return this.evalWwaNode(t)}updateExpression(e){if("ArrayOrObject1D"!==e.argument.type&&"ArrayOrObject2D"!==e.argument.type&&"Symbol"!==e.argument.type)throw new Error(`node.argument.typeが インクリメント/デクリメントできる対象ではありません。: ${e.argument.type}`);const t=this.evalWwaNode(e.argument),s=(t=>{switch(e.operator){case"++":return t+1;case"--":return t-1;default:throw new Error("想定外のOperatorが渡されました :"+e.operator)}})(t),i={type:"Literal",value:s};switch(e.argument.type){case"ArrayOrObject1D":if("v"===e.argument.name)this.evalSetUserVariable({type:"UserVariableAssignment",index:[e.argument.indecies[0]],value:i});else if("ITEM"===e.argument.name)this.itemAssignment({type:"ItemAssignment",itemBoxPosition1to12:e.argument.indecies[0],value:i});else{if("LP"!==e.argument.name)throw new Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);this.convertLoopPointerExpression({type:"LoopPointerAssignment",index:e.argument.indecies[0],value:i,operator:"="})}break;case"ArrayOrObject2D":{const t={type:"PartsAssignment",destinationX:e.argument.indecies[0],destinationY:e.argument.indecies[1],value:i,operator:"="};if("m"===e.argument.name)this.partsAssignment({...t,partsKind:"map"});else{if("o"!==e.argument.name)throw new Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);this.partsAssignment({...t,partsKind:"object"})}break}case"Symbol":{const t={type:"SpecialParameterAssignment",kind:e.argument.name,value:i};this.evalSetSpecialParameter(t);break}}return t}logicalExpression(e){const t=this.evalWwaNode(e.left),s=this.evalWwaNode(e.right);switch(e.operator){case"||":return t||s;case"&&":return t&&s;default:throw new Error("存在しない論理式です!: "+e.operator)}}convertTemplateLiteral(e){const t=e.expressions.map((e=>this.evalWwaNode(e))),s=e.quasis.map((e=>e.value.cooked));let i="";return s.forEach(((e,s)=>{i+=e,void 0!==t[s]&&(i+=t[s])})),i}contunueStatment(e){this.for_id.continue_flag=!0}breakStatement(e){this.for_id.break_flag=!0}returnStatement(e){return this.evalWwaNode(e.argument)}forStateMent(e){const t=e.init;for(((()=>{if("kind"in t)switch(t.kind){case"i":if(null!==this.for_id.i)throw new Error("iの値が既に外側のforループで使われています。");break;case"j":if(null!==this.for_id.j)throw new Error("jの値が既に外側のforループで使われています。");break;case"k":if(null!==this.for_id.k)throw new Error("kの値が既に外側のforループで使われています。");break;default:throw console.log(e),new Error("予想外の変数がfor文内で使用されました :"+t.kind)}else{if("LoopPointerAssignment"!==t.type)throw console.log(e),new Error("予想外の1次元配列がfor文内で使用されました :"+t);{const e=Number(this.evalWwaNode(t.index));if(Number.isNaN(e))throw new Error(`LPのIndex値はNumberでないといけません。: ${e}`);if(null!==this.for_id.LP[e]&&void 0!==this.for_id.LP[e])throw new Error(`LP[${e}]の値が既に外側のforループで使われています。`)}}this.evalWwaNode(e.init)})());this.evalWwaNode(e.test);this.evalWwaNode(e.update)){if(this.for_id.loopCount++,this.for_id.loopCount>this.generator.loop_limit)throw new Error("処理回数が多すぎます!\n上限値は LOOPLIMIT で変えられます。");if(this.for_id.break_flag)break;if(!this.evalWwaNode(e.test))break;this.evalWwaNodes(e.body),this.for_id.continue_flag=!1}if(this.for_id.break_flag=!1,"kind"in t)switch(t.kind){case"i":this.for_id.i=null;break;case"j":this.for_id.j=null;break;case"k":this.for_id.k=null}else if("LoopPointerAssignment"===t.type){const e=Number(this.evalWwaNode(t.index));this.for_id.LP[e]=null}}_checkArgsLength(e,t){if(t.value.length<e)throw new Error(`関数 ${t.functionName} の引数が不足しています!`)}evalAnyFunction(t){const s=this.generator.wwa.getGameStatus();switch(t.functionName){case"SOUND":{this._checkArgsLength(1,t);const e=this.evalWwaNode(t.value[0]);return this.generator.wwa.playSound(e),e}case"SAVE":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return this.generator.wwa.disableSave(e),e}case"LOG":{this._checkArgsLength(1,t);const s=this.evalWwaNode(t.value[0]);return void console.log(s instanceof Map?e(s):s)}case"ABLE_CHANGE_SPEED":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return this.generator.wwa.speedChangeJudge(e),e}case"SET_SPEED":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return void this.generator.wwa.setPlayerSpeedIndex(e)}case"CHANGE_GAMEOVER_POS":{this._checkArgsLength(2,t);const e={x:Number(this.evalWwaNode(t.value[0])),y:Number(this.evalWwaNode(t.value[1]))};if(e.x<0||e.x>=this.generator.wwa.getMapWidth()||e.y<0||e.y>this.generator.wwa.getMapWidth())throw new Error("マップの範囲外が指定されています!");return void this.generator.wwa.setGameOverPosition(new l(e.x,e.y))}case"DEL_PLAYER":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return void this.generator.wwa.setDelPlayer(e)}case"RESTART_GAME":return void this.generator.wwa.restartGame();case"URL_JUMPGATE":throw new Error("URL_JUMPGATE 関数は調整中のためご利用になれません");case"HIDE_STATUS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Boolean(this.evalWwaNode(t.value[1]));return void this.generator.wwa.hideStatus(e,s)}case"PARTS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1]));let i=t.value[2]?Number(this.evalWwaNode(t.value[2])):0,a=!!t.value[3]&&Boolean(this.evalWwaNode(t.value[3]));if(e<0||s<0)throw new Error("パーツ番号が不正です");if(!ja.includes(i))throw new Error("パーツ種別が不明です");return void this.generator.wwa.replaceParts(e,s,i,a)}case"FACE":{this._checkArgsLength(6,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1])),i=Number(this.evalWwaNode(t.value[2])),a=Number(this.evalWwaNode(t.value[3])),r=Number(this.evalWwaNode(t.value[4])),n=Number(this.evalWwaNode(t.value[5]));if(e<0||s<0||i<0||a<0||r<0||n<0)throw new Error("各引数は0以上の整数でなければなりません。");return void this.generator.addPageAdditionalItem({type:"face",data:{face:new u(new l(e,s),new l(i,a),new l(r,n))}})}case"EFFECT":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));if(e<0)throw new Error("待ち時間は0以上の整数でなければなりません。");if(0===e)return void this.generator.wwa.stopEffect();const s=[];for(let e=1;e<t.value.length;e+=2){const i=Number(this.evalWwaNode(t.value[e]));if(i<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");if(e+1===t.value.length)throw new Error("画像のパーツ座標指定で、Y座標が指定されていません。");const a=Number(this.evalWwaNode(t.value[e+1]));if(a<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");s.push(new l(i,a))}return void this.generator.wwa.setEffect(e,s)}case"CHANGE_PLAYER_IMAGE":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1])),i=new l(e,s);return void this.generator.wwa.setPlayerImgCoord(i)}case"HAS_ITEM":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return s.itemBox.includes(e)}case"REMOVE_ITEM":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),i=!!t.value[1]&&1===this.evalWwaNode(t.value[1]);let a=0;for(let t=0;t<s.itemBox.length;t++)if(e===s.itemBox[t]&&(this.generator.wwa.setPlayerGetItem(t+1,0),a++,!i))return a;return a}case"MOVE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));if(e<=0||e>9)throw Error("MOVEの移動先は2/4/6/8で指定してください!");return this.generator.wwa.movePlayer(e),this.generator.wwa.movePlayer(e),0}case"PARTS_MOVE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return this.generator.wwa.setMoveMacroWaitingToPlayer(e),0}case"IS_PLAYER_WAITING_MESSAGE":return this.generator.wwa.isPlayerWaitingMessage();case"GET_UNIXTIME":return Math.floor((new Date).getTime()/1e3);case"GET_DATE_YEAR":return(new Date).getFullYear();case"GET_DATE_MONTH":return(new Date).getMonth()+1;case"GET_DATE_DAY":return(new Date).getDate();case"GET_DATE_HOUR":return(new Date).getHours();case"GET_DATE_MINUTES":return(new Date).getMinutes();case"GET_DATE_SECONDS":return(new Date).getSeconds();case"GET_DATE_MILLISECONDS":return(new Date).getMilliseconds();case"GET_DATE_WEEKDAY":return(new Date).getDay();case"SHOW_USER_DEF_VAR":return void console.log(this.generator.wwa.getAllUserNameVar());case"CHANGE_SYSMSG":{this._checkArgsLength(1,t);const e=this.evalWwaNode(t.value[0]),s=t.value.length>=2?this.evalWwaNode(t.value[1]):void 0,i=this.resolveSystemMessageKeyFromMacroArg(e);if(!i)throw new Error("このIDのシステムメッセージは未定義です。");if("number"==typeof s||"string"==typeof s||"boolean"==typeof s)this.generator.wwa.overwriteSystemMessage(i,String(s));else{if(null!=s)throw new Error("この値は文字列に変換できないため、システムメッセージを表示できません。");this.generator.wwa.overwriteSystemMessage(i,void 0)}break}case"PICTURE":{this._checkArgsLength(1,t);const s=Number(this.evalWwaNode(t.value[0])),i=t.value.length>=2?this.evalWwaNode(t.value[1]):void 0;if(void 0===i)return void this.generator.wwa.deletePictureRegistry(s);if(i instanceof Map)this.generator.wwa.setPictureRegistryFromObject(s,e(i));else{if("string"!=typeof i)throw new Error("ピクチャのプロパティ定義は文字列あるいはオブジェクトである必要があります。");this.generator.wwa.setPictureRegistryFromRawText(s,i)}break}case"PICTURE_FROM_PARTS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1]));if(0===s)return void this.generator.wwa.deletePictureRegistry(e);const i=t.value.length>=3?Number(this.evalWwaNode(t.value[2])):v.OBJECT;if(!ja.includes(i))throw new Error("パーツ種別が不明です");const a=this.generator.wwa.getGameStatus();this.generator.wwa.setPictureRegistry(e,s,i,a.playerCoord);break}case"CLEAR_ALL_PICTURES":this.generator.wwa.clearAllPictures();break;case"HAS_PICTURE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return s.wwaData.pictureRegistry.some((t=>t.layerNumber===e))}case"ABS":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return Math.abs(e)}case"GET_GAMEOVER_POS_X":return this.generator.wwa.getGemeOverPosition().x;case"GET_GAMEOVER_POS_Y":return this.generator.wwa.getGemeOverPosition().y;case"ABORT_BATTLE":throw this.generator.state.battleDamageCalculation&&(this.generator.state.battleDamageCalculation.aborted=!0),new qa("ABORT_BATTLE");case"EXIT":throw new qa("EXIT",this.evalWwaNode(t.value[0]));case"GET_IMG_POS_X":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),s=0===(void 0!==t.value[1]?Number(this.evalWwaNode(t.value[1])):0)?v.OBJECT:v.MAP;if(s===v.OBJECT){const s=void 0===t.value[2]||0===Number(this.evalWwaNode(t.value[2])),i=this.generator.wwa.getObjectInfo(e),a=s?i[F.ATR_X]:i[F.ATR_X2];return Math.floor(a/F.CHIP_SIZE)}if(s===v.MAP){const t=this.generator.wwa.getMapInfo(e)[F.ATR_X];return Math.floor(t/F.CHIP_SIZE)}throw new Error("GET_IMG_POS_X: 指定したIDのパーツのTypeが異常です。")}case"GET_IMG_POS_Y":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),s=0===(void 0!==t.value[1]?Number(this.evalWwaNode(t.value[1])):0)?v.OBJECT:v.MAP;if(s===v.OBJECT){const s=void 0===t.value[2]||0===Number(this.evalWwaNode(t.value[2])),i=this.generator.wwa.getObjectInfo(e),a=s?i[F.ATR_Y]:i[F.ATR_Y2];return Math.floor(a/F.CHIP_SIZE)}if(s===v.MAP){const t=this.generator.wwa.getMapInfo(e)[F.ATR_Y];return Math.floor(t/F.CHIP_SIZE)}throw new Error("GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。")}case"LENGTH":this._checkArgsLength(1,t);return function(e){switch(typeof e){case"object":if(null===e)break;return Array.isArray(e)?e.length:Object.keys(e).length;case"string":return e.length}throw new Error("LENGTH: 対応できない値が指定されています。")}(this.evalWwaNode(t.value[0]));case"IS_NUMBER":this._checkArgsLength(1,t);return"number"==typeof this.evalWwaNode(t.value[0]);default:throw new Error("未定義の関数が指定されました: "+t.functionName)}}resolveSystemMessageKeyFromMacroArg(e){return"string"==typeof e?n(e)?e:void 0:"number"==typeof e?o(e):void 0}partsAssignment(e){const t=this.generator.wwa.getGameStatus(),s=this.evalWwaNode(e.destinationX),i=this.evalWwaNode(e.destinationY);if("number"!=typeof s||"number"!=typeof i)throw new Error(`座標は数値で指定してください (${s}, ${i})`);new _(this.generator.wwa,s,i);const a="map"===e.partsKind?v.MAP:v.OBJECT,r=this.resolveParts(a,s,i),n=this.evalWwaNode(e.value);switch(e.operator){case"=":case"+=":case"-=":case"*=":case"/=":{const o=0|Xa[e.operator](r,n);if(o<0)throw new Error(`負値のパーツ番号 ${o} は代入できません`);this.generator.wwa.appearPartsEval(t.playerCoord,`${s}`,`${i}`,o,a);break}default:throw new Error(`演算子 ${e.operator} は partsAssignment では使えません`)}}resolveParts(e,t,s){const i=this.generator.wwa.getGameStatus();switch(e){case v.MAP:return i.wwaData.map[s][t];case v.OBJECT:return i.wwaData.mapObject[s][t];default:throw new Error("存在しないPartsTypeです",e)}}blockStatement(e){return this.evalWwaNodes(e.value)}ifStatement(e){return this.evalWwaNode(e.test)?this.evalWwaNode(e.consequent):e.alternate?this.evalWwaNode(e.alternate):void 0}convertConditionalExpression(e){const t=this.evalWwaNode(e.test)?e.consequent:e.alternate;return this.evalWwaNode(t)}property(e){const t=this.evalWwaNode(e.key);if(!pe(t))throw new Error(`オブジェクトのキーはプリミティブ値でなければなりません。: ${t}`);return[String(this.evalWwaNode(e.key)),this.evalWwaNode(e.value)]}objectExpression(e){const t=e.properties.map((e=>this.evalWwaNode(e)));return new Map(t)}arrayExpression(e){return e.elements.map((e=>this.evalWwaNode(e)))}convertLoopPointerExpression(e){const t=this.evalWwaNode(e.value),s=this.evalWwaNode(e.index);return e.operator,this.for_id.LP[s]=t,0}itemAssignment(e){const t=this.evalWwaNode(e.itemBoxPosition1to12);if("number"!=typeof t||t<0||t>12)throw new Error("ITEMの添字に想定外の値が入っています。0以上12以下の添字を指定してください。: "+t);const s=this.evalWwaNode(e.value);switch(e.operator){case"=":this.generator.wwa.setPlayerGetItem(t,0|s);break;case"+=":case"-=":case"*=":case"/=":{if(0===t)throw new Error("複合代入では ITEM[0] への操作はできません");const i=this.generator.wwa.getGameStatus().itemBox[t-1],a=0|Xa[e.operator](i,s);if(a<0)throw new Error(`負値のパーツ番号 ${a} は代入できません`);this.generator.wwa.setPlayerGetItem(t,a);break}default:throw new Error(`演算子 ${e.operator} は itemAssignment では使えません`)}}evalMessage(e){const t=this.evalWwaNode(e.value),s=this.generator.pickPageAdditionalQueue();this.generator.wwa.handleMsgFunction({message:String(t),additionalItems:s})}evalJumpgate(e){const t=this.evalWwaNode(e.x),s=this.evalWwaNode(e.y);if(isNaN(t)||isNaN(s))throw new Error(`飛び先の値が数値になっていません。 x=${t} / y=${s}`);this.generator.wwa.forcedJumpGate(t,s)}evalRandom(e){const t=this.evalWwaNode(e.value);return Math.floor(Math.random()*t)}evalSetSpecialParameter(e){const t=this.evalWwaNode(e.value);if(!this.generator.wwa||isNaN(t))return t;const s=this.evalSymbol({type:"Symbol",name:e.kind});if(Array.isArray(s))throw new Error(`配列Objectに対して直接代入は出来ません: ${s}`);const i=(()=>{switch(e.operator){case"+=":return s+t;case"-=":return s-t;case"*=":return s*t;case"/=":return s/t;default:return t}})();switch(e.kind){case"PX":return this.generator.wwa.jumpSpecifiedXPos(i),i;case"PY":return this.generator.wwa.jumpSpecifiedYPos(i),i;case"AT":return this.generator.wwa.setPlayerStatus(L.STRENGTH,i,!1),i;case"DF":return this.generator.wwa.setPlayerStatus(L.DEFENCE,i,!1),i;case"GD":return this.generator.wwa.setPlayerStatus(L.GOLD,i,!1),i;case"HP":return this.generator.wwa.setPlayerStatus(L.ENERGY,i,!1),i;case"HPMAX":return this.generator.wwa.setPlayerEnergyMax(i),i;case"i":return this.for_id.i=this.evalWwaNode(e.value),this.for_id.i;case"j":return this.for_id.j=this.evalWwaNode(e.value),this.for_id.j;case"k":return this.for_id.k=this.evalWwaNode(e.value),this.for_id.k;case"LOOPLIMIT":{const t=this.evalWwaNode(e.value);return this.generator.updateLoopLimit(t),t}default:return void console.error("未実装の要素です: "+e.kind)}}evalSetUserVariable(e){if(!(e.index.length>1)){const t=this.evalWwaNode(e.value);if(!this.generator.wwa)return t;const s=this.evalWwaNode(e.index[0]);return this.generator.wwa.setUserVar(s,t,e.operator),t}{const t=this.evalWwaNode(e.value),s=e.index.map((e=>this.evalWwaNode(e)));this.generator.wwa.setUserVarIndecies(s,t,e.operator)}}evalUnaryOperation(e){switch(e.operator){case"+":return this.evalWwaNode(e.argument);case"-":return-this.evalWwaNode(e.argument);case"!":return!this.evalWwaNode(e.argument);default:throw new Error("存在しない単項演算子です")}}evalBinaryOperation(e){const t=this.evalWwaNode(e.left),s=this.evalWwaNode(e.right);switch(e.operator){case"+":return t+s;case"-":return t-s;case"*":return t*s;case"/":return 0===s?0:Math.floor(t/s);case"%":return 0===s?0:t%s;case">":return t>s;case">=":return t>=s;case"<":return t<s;case"<=":return t<=s;case"==":return t==s;case"!=":return t!=s;default:throw new Error("存在しない単項演算子です")}}evalSymbol(e){var t,s,i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f,y,v,A,S,T,I,C,P,O,D,N,b,M,x,L,R,B;const U=this.generator.wwa.getGameStatus(),W=this.generator.wwa.getEnemyStatus();switch(e.name){case"X":return null!==(s=null===(t=this.generator.state.triggerParts)||void 0===t?void 0:t.position.x)&&void 0!==s?s:U.playerCoord.x;case"Y":return null!==(a=null===(i=this.generator.state.triggerParts)||void 0===i?void 0:i.position.y)&&void 0!==a?a:U.playerCoord.y;case"ID":return null!==(n=null===(r=this.generator.state.triggerParts)||void 0===r?void 0:r.id)&&void 0!==n?n:-1;case"TYPE":return null!==(h=null===(o=this.generator.state.triggerParts)||void 0===o?void 0:o.type)&&void 0!==h?h:-1;case"PX":return U.playerCoord.x;case"PY":return U.playerCoord.y;case"CX":return U.cameraCoord.x;case"CY":return U.cameraCoord.y;case"AT":return U.bareStatus.strength;case"AT_TOTAL":return null!==(_=null===(l=null===(c=this.generator.state.battleDamageCalculation)||void 0===c?void 0:c.estimatingParams)||void 0===l?void 0:l.playerStatus.strength)&&void 0!==_?_:U.totalStatus.strength;case"DF":return U.bareStatus.defence;case"DF_TOTAL":return null!==(p=null===(d=null===(u=this.generator.state.battleDamageCalculation)||void 0===u?void 0:u.estimatingParams)||void 0===d?void 0:d.playerStatus.defence)&&void 0!==p?p:U.totalStatus.defence;case"GD":return null!==(E=null===(g=null===(m=this.generator.state.battleDamageCalculation)||void 0===m?void 0:m.estimatingParams)||void 0===g?void 0:g.playerStatus.gold)&&void 0!==E?E:U.totalStatus.gold;case"HP":return null!==(y=null===(f=null===(w=this.generator.state.battleDamageCalculation)||void 0===w?void 0:w.estimatingParams)||void 0===f?void 0:f.playerStatus.energy)&&void 0!==y?y:U.totalStatus.energy;case"HPMAX":return U.energyMax;case"STEP":return U.moveCount;case"TIME":return U.playTime;case"PDIR":return U.playerDirection;case"i":return this.for_id.i;case"j":return this.for_id.j;case"k":return this.for_id.k;case"LOOPLIMIT":return this.generator.loop_limit;case"ITEM_ID":return null!==(A=null===(v=this.generator.state.earnedItem)||void 0===v?void 0:v.partsId)&&void 0!==A?A:-1;case"ITEM_POS":return null!==(T=null===(S=this.generator.state.earnedItem)||void 0===S?void 0:S.itemPos1To12)&&void 0!==T?T:-1;case"ENEMY_HP":return null!==(P=null===(C=null===(I=this.generator.state.battleDamageCalculation)||void 0===I?void 0:I.estimatingParams)||void 0===C?void 0:C.enemyStatus.energy)&&void 0!==P?P:"number"==typeof W?-1:W.energy;case"ENEMY_AT":return null!==(N=null===(D=null===(O=this.generator.state.battleDamageCalculation)||void 0===O?void 0:O.estimatingParams)||void 0===D?void 0:D.enemyStatus.strength)&&void 0!==N?N:"number"==typeof W?-1:W.strength;case"ENEMY_DF":return null!==(x=null===(M=null===(b=this.generator.state.battleDamageCalculation)||void 0===b?void 0:b.estimatingParams)||void 0===M?void 0:M.enemyStatus.defence)&&void 0!==x?x:"number"==typeof W?-1:W.defence;case"ENEMY_GD":return null!==(B=null===(R=null===(L=this.generator.state.battleDamageCalculation)||void 0===L?void 0:L.estimatingParams)||void 0===R?void 0:R.enemyStatus.gold)&&void 0!==B?B:"number"==typeof W?-1:W.gold;case"PICTURE":throw new Error("この機能はまだ実装されていません!");case"PLAYER_PX":return G=U.playerCoord.x,H=U.cameraCoord.x,(G-H)*F.CHIP_SIZE;case"PLAYER_PY":return V=U.playerCoord.y,Y=U.cameraCoord.y,(V-Y)*F.CHIP_SIZE;case"MOVE_SPEED":return k[U.gameSpeedIndex];case"MOVE_FRAME_TIME":return F.CHIP_SIZE/k[U.gameSpeedIndex];case"LP":return this.for_id.LP;case"undefined":return;default:throw new Error("このシンボルは取得できません")}var V,Y,G,H}evalArrayOrObject1D(e){const t=this.evalWwaNode(e.indecies[0]);if("number"!=typeof t){if("v"===e.name)return this.generator.wwa.getUserNameVar(t);throw new Error("このシンボルは取得できません")}const s=this.generator.wwa.getGameStatus();switch(e.name){case"v":return this.generator.wwa.getUserVar(t);case"ITEM":if(t<1||t>12)throw new Error("ITEMの添字に想定外の値が入っています。1以上12以下の添字を指定してください。: "+t);return s.itemBox[t-1];case"PICTURE":throw new Error("この機能はまだ実装されていません!");case"LP":return this.for_id.LP[t];default:throw new Error("このシンボルは取得できません")}}evalArrayOrObject2D(e){switch(e.name){case"m":case"o":const t=this.evalWwaNode(e.indecies[0]),s=this.evalWwaNode(e.indecies[1]);if("number"!=typeof t||"number"!=typeof s)throw new Error(`座標は数値で指定してください (${t}, ${s})`);new _(this.generator.wwa,t,s);const i="o"===e.name?v.OBJECT:v.MAP;return this.generator.wwa.getPartsID(new l(t,s),i);case"v":{const t=e.indecies[0].value,s=this.generator.wwa.getUserNameVar(t);if(null===s||!Array.isArray(s)&&"object"!=typeof s&&"string"!=typeof s)throw new Error(`指定したユーザー定義変数: v["${t}"] は配列・オブジェクト・文字列ではありません`);return Ie(s,this.evalWwaNode(e.indecies[1]))}default:throw new Error("このシンボルは取得できません")}}evalArrayOrObject3DPlus(e){const t=e.indecies.map((e=>this.evalWwaNode(e))),s=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce(((e,t)=>Ie(e,t)),s)}evalLiteral(e){return e.value}}class Za{constructor(e){this.value=e}}class qa{constructor(e,t){this.reason=e,this.value=t}}const za="user-variable-label";const Qa="user-variable-card";function er({index:e,value:t}){const s=document.createElement("div");return s.classList.add(Qa),function(e){return"object"!=typeof e}(t)&&s.classList.add("user-variable-card--is-trimmed"),s.dataset.varIndex=String(e),s.appendChild(function(e){const t=document.createElement("div");t.classList.add("index"),t.textContent=String(e),"string"==typeof e&&t.setAttribute("title",e);return t.appendChild(function(){const e=document.createElement("div");return e.textContent="-",e.setAttribute("aria-hidden","true"),e.classList.add(za),e}()),t}(e)),s.appendChild(function(e){const t=document.createElement("div");t.classList.add("value"),"string"==typeof e&&t.setAttribute("title",Te(e));return tr(t,e),t}(t)),s}function tr(e,t){e.textContent=void 0===t?"-":Te(t)}const sr="user-variable-list";function ir({index:e,value:t}){const s=document.createElement("li");return s.appendChild(er({index:e,value:t})),s}function ar(e,{index:t,value:s}){e.appendChild(ir({index:t,value:s}))}const rr="information";function nr(e,t,s=!1){e.textContent=`${s?"【エラー】":""}${t}`}function or({heading:e,contentVisibilityToggleButton:t,information:s}){const i=document.createElement("header");return i.appendChild(function({heading:e,contentVisibilityToggleButton:t}){const s=document.createElement("div");s.classList.add("heading-area");const i=document.createElement("h2");i.textContent=e.text,s.appendChild(i);const a=document.createElement("button");a.classList.add("content-visibility-toggle-button"),hr(a,!0),t.onClick&&a.addEventListener("click",t.onClick.bind(a));return s.appendChild(a),s}({heading:e,contentVisibilityToggleButton:t})),s&&i.appendChild(function(){const e=document.createElement("p");return e.classList.add(rr),nr(e,"強調されている番号にカーソルを乗せると説明が表示されます。"),e}()),i}function hr(e,t){e.textContent=t?"▲隠す":"▼表示"}const cr="user-variable-list-section";function lr({kind:e}){const t=document.createElement("section");t.classList.add(cr),t.dataset.kind=e;const s=function({kind:e}){const t=document.createElement("ul");return t.classList.add(sr),"numbered"===e&&Array.from({length:F.USER_VAR_NUM}).map(((e,t)=>ir({index:t}))).forEach((e=>t.appendChild(e))),t}({kind:e}),i=or({heading:{text:"named"===e?"名前つき変数一覧":"変数一覧"},information:"numbered"===e?{}:void 0,contentVisibilityToggleButton:{onClick:e=>{const t=i.querySelector(`.${rr}`);"true"===s.getAttribute("aria-hidden")?function(e,t,s){e.removeAttribute("aria-hidden"),t instanceof HTMLElement&&t.removeAttribute("aria-hidden");s instanceof HTMLElement&&hr(s,!0)}(s,t,e.target):function(e,t,s){e.setAttribute("aria-hidden","true"),t instanceof HTMLElement&&t.setAttribute("aria-hidden","true");s instanceof HTMLElement&&hr(s,!1)}(s,t,e.target)}}});return t.appendChild(i),t.appendChild(s),t}function _r(e,t){e instanceof HTMLElement&&Array.from({length:F.USER_VAR_NUM}).map(((s,i)=>{const a=function(e,t){return e.querySelector(`${mr(t)} > .value`)}(e,i);a instanceof HTMLElement&&tr(a,t[i])}))}function ur(e,t){e&&Array.from({length:F.USER_VAR_NUM}).map(((s,i)=>{const a=t[i];if(!a)return;const r=function(e,t){return e.querySelector(`${mr(t)} > .index`)}(e,i);if(!(r instanceof HTMLElement))return;const n=r.querySelector(`.${za}`);n instanceof HTMLElement&&(function(e,t){e.textContent=t}(n,a),function(e,t){e.dataset.labelledVarIndex="true",e.addEventListener("mouseover",(()=>t.removeAttribute("aria-hidden"))),e.addEventListener("mouseleave",(()=>t.setAttribute("aria-hidden","true")))}(r,n))}))}function dr(e,t,s=!1){if(!e)return;const i=function(e){return e.querySelector(`${pr} > header > .${rr}`)}(e);i instanceof HTMLElement&&nr(i,t,s)}const pr=`.${cr}[data-kind="numbered"]`;function mr(e){return`${pr} > .${sr} > li > .${Qa}[data-var-index="${CSS.escape(String(e))}"]`}function gr(e,t){if(!(e instanceof HTMLElement))return;const s=function(e){return new Set([...e.querySelectorAll(wr)].map((e=>e instanceof HTMLElement?e.dataset.varIndex:void 0)).filter(Boolean))}(e),i=yr(e);if(i instanceof HTMLElement){for(const[a,r]of t){const t=Ar(e,a);s.delete(a),t instanceof HTMLElement?tr(t,r):ar(i,{index:a,value:r})}for(const t of s){const s=vr(e,t).parentElement;s instanceof HTMLLIElement&&yr(e).removeChild(s)}}}const Er=`.${cr}[data-kind="named"]`,wr=`${Er} > .${sr} > li > .${Qa}`;function fr(e){return`${wr}[data-var-index="${CSS.escape(e)}"]`}function yr(e){return e.querySelector(`${Er} > .${sr}`)}function vr(e,t){return e.querySelector(fr(t))}function Ar(e,t){return e.querySelector(`${fr(t)} > .value`)}let Sr;function Tr(e,t,s){var i=new H;return i.current=e,i.total=t,i.stage=s,i}class Ir{constructor(e={mapdata:"",urlGateEnable:!1,titleImg:void 0,audioDir:"./audio/",classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDumpElm:void 0,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:"./script/script_file_list.json"}){var t;this._useSuspend=!1,this._useLookingAround=!0,this._isDisallowLoadOldSave=!1,this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._windowCloseWaitingJumpGateRequest=void 0,this._debugConsoleElement=void 0,this.audioExtension="",this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this.userDefinedFunctions={},this.convertWwaNodes=e=>function(e){if("Program"===e.type)return e.body.map((e=>Ha(e)));return[Ha(e)]}(Ya(e)),this.mainCaller=()=>this._main(),this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(z.KEY_ESC)||this._keyStore.checkHitKey(z.KEY_SHIFT)||this._keyStore.checkHitKey(z.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new li(me("wwa-wrapper")),window.addEventListener("click",(e=>{this._isActive=!1})),me("wwa-wrapper").addEventListener("click",(e=>{e.stopPropagation(),this._isActive=!0})),this._isActive=!0,void 0===e.titleImg?(this._hasTitleImg=!1,this._cvsCover=me("progress-panel"),(t=this._cvsCover.getContext("2d")).fillStyle="rgb(0, 0, 0)"):this._hasTitleImg=!0;try{this._hasTitleImg?(me("unstable-version-warning").textContent="この WWA Wing は [不安定版] です。",me("version").textContent="WWA Wing Ver.4.1.0-unstable.based-on.3.12.18.p.6"):this._setLoadingMessage(t,0)}catch(e){}this._dumpElement=e.varDumpElm;const s=window.AudioContext||window.webkitAudioContext;s&&(this.audioContext=new s,this.audioGain=this.audioContext.createGain(),this.audioGain.gain.setValueAtTime(1,this.audioContext.currentTime));var i=new Audio;"no"!==i.canPlayType("audio/mpeg")&&""!==i.canPlayType("audio/mpeg")?this.audioExtension="mp3":this.audioExtension="m4a",this.userDevice=new b,this._isURLGateEnable=e.urlGateEnable,this._isClassicModeEnable=e.classicModeEnable,this._mainCallCounter=0,this._animationCounter=0,this._statusPressCounter=new c(0,0,0,0),e.audioDir?"/"!==e.audioDir[e.audioDir.length-1]&&(e.audioDir+="/"):e.audioDir="./audio/",this._audioDirectory=e.audioDir,this._bottomButtonType=e.useGoToWwa?p.GOTO_WWA:p.BATTLE_REPORT;var r=(new Date).getTime();if(!!location.href.match(/^file/))if(this.userDevice.device===S.GAME){if(this.userDevice.os===A.NINTENDO)F.BATTLE_INTERVAL_FRAME_NUM=5;this._bottomButtonType=p.GAME_END}else alert("【警告】直接HTMLファイルを開いているようです。\nこのプログラムは正常に動作しない可能性があります。\nマップデータの確認を行う場合には同梱の「wwa-server.exe」をご利用ください。\n"+(this.userDevice.browser===T.FIREFOX?"Firefoxの場合も、バージョン68以降はローカルのHTMLファイルを直接開いた場合、通常起動できないことを確認しております。":""));switch(this.userDevice.device){case S.VR:case S.GAME:this._usePassword=!1;break;default:this._usePassword=!0}switch(me("cell-save").textContent=G.QUICK_SAVE,this._usePassword?me("cell-load").textContent=G.PASSWORD:me("cell-load").textContent=G.EMPTY_LOAD,this._bottomButtonType){case p.GOTO_WWA:me("cell-gotowwa").textContent=G.GOTO_WWA;break;case p.BATTLE_REPORT:me("cell-gotowwa").textContent=G.BATTLE_REPORT;break;case p.GAME_END:me("cell-gotowwa").textContent=G.GAME_END}this._loadHandler=s=>{var i;this._wwaData=s,this._wwaData.isItemEffectEnabled=e.itemEffectEnable;try{this._hasTitleImg?me("version").textContent+=" (Map data Ver. "+Math.floor(this._wwaData.version/10)+"."+ +this._wwaData.version%10+")":this._setLoadingMessage(t,1)}catch(e){}var n=me("wwa-wrapper").getAttribute("data-wwa-mapdata").split("/");n.pop(),n.push(this._wwaData.mapCGName),this._wwaData.mapCGName=n.join("/"),this._playTimeCalculator=new he,this._restartData=structuredClone(this._wwaData),this.checkOriginalMapString=this._generateMapDataHash(this._restartData),this.initCSSRule(),this._setProgressBar(Tr(0,4,K.GAME_INIT)),this._setLoadingMessage(t,2);var o=new Image;o.src=this._wwaData.mapCGName,o.addEventListener("error",(()=>{this._setErrorMessage("画像ファイル「"+this._wwaData.mapCGName+"」が見つかりませんでした。\n管理者の方へ: データがアップロードされているか、\nパーミッションを確かめてください。",t)}));var h=this._wwaData.mapCGName.replace("(","\\(").replace(")","\\)");const u=e=>{e.style.backgroundImage="url("+h+")"};Array.prototype.forEach.call(we("div.item-cell"),(e=>{e.style.backgroundPosition=`-${this._wwaData.imgItemboxX*F.CHIP_SIZE}px -${this._wwaData.imgItemboxY*F.CHIP_SIZE}px`,e.style.backgroundImage="url("+h+")"})),Array.prototype.forEach.call(we("div.wide-cell-row"),(e=>{e.style.backgroundPosition="-160px -120px",e.style.backgroundImage="url("+h+")"})),Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(e=>{e.style.backgroundImage="url('"+F.ITEM_BORDER_IMG_DATA_URL+"')",e.style.backgroundPosition="0 0",e.style.display="none",e.style.cursor="pointer"})),Array.prototype.forEach.call(we(".item-cell>.item-disp"),u),Array.prototype.forEach.call(we("div.wide-cell-row>.status-icon"),u),this.setStatusIconCoord(R.ENERGY,new l(this._wwaData.imgStatusEnergyX,this._wwaData.imgStatusEnergyY)),this.setStatusIconCoord(R.STRENGTH,new l(this._wwaData.imgStatusStrengthX,this._wwaData.imgStatusStrengthY)),this.setStatusIconCoord(R.DEFENCE,new l(this._wwaData.imgStatusDefenceX,this._wwaData.imgStatusDefenceY)),this.setStatusIconCoord(R.GOLD,new l(this._wwaData.imgStatusGoldX,this._wwaData.imgStatusGoldY)),this._setProgressBar(Tr(1,4,K.GAME_INIT)),this._setLoadingMessage(t,3),this._mapIDTableCreate(),this._replaceAllRandomObjects();var d=(new Date).getTime();console.log("Loading Complete!"+(d-r)+"ms"),this._cvs=me("wwa-map");var p=this._cvs.getContext("2d",{alpha:!1});p.fillStyle="rgba( 255, 255, 255, 0.5)",p.fillRect(0,0,440,440);var g=new _(this,this._wwaData.playerX,this._wwaData.playerY);this._camera=new Wt(g),this._itemMenu=new gs;var E=new c(this._wwaData.statusEnergy,this._wwaData.statusStrength,this._wwaData.statusDefence,this._wwaData.statusGold);this._player=new Gt(this,g,this._camera,E,this._wwaData.statusEnergyMax,this._wwaData.moves,this._wwaData.gameSpeedIndex),this._userVar={numbered:Array.from({length:F.USER_VAR_NUM}).map((()=>0)),named:new Map},this._objectMovingDataManager=new jt(this,this._player),this._camera.setPlayer(this._player),this._keyStore=new re,this._mouseStore=new ne,e.virtualPadEnable?(this._virtualPadButtonElements={BUTTON_ENTER:me("wwa-enter-button"),BUTTON_ESC:me("wwa-esc-button"),BUTTON_FAST:me("wwa-fast-button"),BUTTON_SLOW:me("wwa-slow-button"),BUTTON_LEFT:me("wwa-left-button"),BUTTON_UP:me("wwa-up-button"),BUTTON_RIGHT:me("wwa-right-button"),BUTTON_DOWN:me("wwa-down-button")},this._virtualPadStore=new ue(this._virtualPadButtonElements,ps(),me("wwa-virtualpad-right"),me("wwa-virtualpad-left"),this._setVirtualPadTouch.bind(this),this._setVirtualPadLeave.bind(this)),function(e,t){if(null===e)return;const s=document.createElement("button");s.classList.add("wwa-virtualpad-toggle-button"),s.textContent="仮想パッド表示切り替え",s.addEventListener("click",t),e.appendChild(s)}(e.virtualPadControllerElm,(()=>{this._virtualPadStore.toggleVisible()}))):(this._virtualPadButtonElements=null,this._virtualPadStore=new ue({})),this._debugConsoleElement=function(e){if(null===e)return;const t=document.createElement("section");t.setAttribute("id","wwa-debug-console");const s=document.createElement("textarea");s.setAttribute("rows","10"),s.setAttribute("cols","60"),s.textContent='v["money"] = 100;\nv["name"] = "ヤツロウ";\nMSG(v["name"]+"「俺の所持金は"+v["money"]+"ゴールドだ」");\nfor(LP[0]=0; LP[0]<2; LP[0]++) {\n LOG(LP);\n}';const i=e=>e.stopPropagation();s.addEventListener("keydown",i),s.addEventListener("keypress",i),s.addEventListener("keyup",i),s.classList.add("console-text-area"),t.appendChild(s);const a=document.createElement("button");return a.classList.add("script-running-button"),a.textContent="実行(X)",t.appendChild(a),e.appendChild(t),t}(me("wwa-debug-console-area")),null===(i=this._debugConsoleElement)||void 0===i||i.querySelector(".script-running-button").addEventListener("click",(()=>{this._debugEvalString()})),this._gamePadStore=new oe,this._pages=[],this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._yesNoChoiceCallInfo=I.NONE,this._prevFrameEventExected=!1,this._isLastPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._shouldSetNextPage=!1,this._passwordLoadExecInNextFrame=!1,this._pageExecuting=!1,this._messageWindow=new cs(this,50,180,340,0,this._wwaData.mapCGName,!1,!0,!1,me("wwa-wrapper")),this._scoreWindow=new ns(this,new l(50,50),!1,me("wwa-wrapper")),this._wwaSave=new qs(Sr,Sr._wwaData.worldName,Sr._wwaData.worldPassNumber,this._checkSaveDataCompatibility.bind(this),(e=>{if(e.length>0){let t="これまでに保存されていたセーブデータは、下記の理由により消えたものがあります。";e.forEach((e=>{switch(e){case js.UNMATCHED_WORLD_NAME:t+="\n・制作者によるマップデータのワールド名の変更";break;case js.UNMATCHED_WORLD_PASS_NUMBER:t+="\n・制作者によるマップデータの暗証番号の変更";break;case js.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:t+="\n・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)"}})),alert(t)}})),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Ws.setRestartData(this._restartData,this._wwaData),this.clearFaces();const f=me("wwa-wrapper").getAttribute("data-wwa-resume-savedata");if("string"==typeof f&&(this._useSuspend=!0,f)){var y=Ws.getStartWWAData(f);this._restartData!==y&&(this._applyQuickLoad(y),this._wwaSave.resumeStart())}const v=me("wwa-wrapper").getAttribute("data-wwa-autosave");null!==v&&this._wwaSave.setAutoSaveInterval(0|Number(v));const T=me("wwa-wrapper").getAttribute("data-wwa-looking-around");if(this._useLookingAround=!(T&&T.match(/false/i)),this._setProgressBar(Tr(2,4,K.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener("keydown",(e=>{if(this._isActive){if(this.userDevice.os===A.NINTENDO)return e.preventDefault(),void e.stopPropagation();this._keyStore.setPressInfo(e.keyCode),e.keyCode!==z.KEY_F5?this._player.isWaitingMessage()?e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_SPACE||e.preventDefault():this._player.isWaitingPasswordWindow()||e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_1&&e.keyCode!==z.KEY_2&&e.keyCode!==z.KEY_3&&e.keyCode!==z.KEY_A&&e.keyCode!==z.KEY_C&&e.keyCode!==z.KEY_D&&e.keyCode!==z.KEY_E&&e.keyCode!==z.KEY_M&&e.keyCode!==z.KEY_N&&e.keyCode!==z.KEY_Q&&e.keyCode!==z.KEY_S&&e.keyCode!==z.KEY_W&&e.keyCode!==z.KEY_X&&e.keyCode!==z.KEY_Y&&e.keyCode!==z.KEY_Z&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_F1&&e.keyCode!==z.KEY_F2&&e.keyCode!==z.KEY_F3&&e.keyCode!==z.KEY_F4&&e.keyCode!==z.KEY_F6&&e.keyCode!==z.KEY_F7&&e.keyCode!==z.KEY_F8&&e.keyCode!==z.KEY_F12&&e.keyCode!==z.KEY_SPACE||e.preventDefault():e.preventDefault()}})),window.addEventListener("keyup",(e=>{if(this._isActive){if(this.userDevice.os===A.NINTENDO)return e.preventDefault(),void e.stopPropagation();this._keyStore.setReleaseInfo(e.keyCode),e.keyCode===z.KEY_F5?e.preventDefault():e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_1&&e.keyCode!==z.KEY_2&&e.keyCode!==z.KEY_3&&e.keyCode!==z.KEY_A&&e.keyCode!==z.KEY_C&&e.keyCode!==z.KEY_D&&e.keyCode!==z.KEY_E&&e.keyCode!==z.KEY_M&&e.keyCode!==z.KEY_N&&e.keyCode!==z.KEY_Q&&e.keyCode!==z.KEY_S&&e.keyCode!==z.KEY_W&&e.keyCode!==z.KEY_X&&e.keyCode!==z.KEY_Y&&e.keyCode!==z.KEY_Z&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_F1&&e.keyCode!==z.KEY_F3&&e.keyCode!==z.KEY_F4&&e.keyCode!==z.KEY_F6&&e.keyCode!==z.KEY_F7&&e.keyCode!==z.KEY_F8&&e.keyCode!==z.KEY_F9&&e.keyCode!==z.KEY_F12&&e.keyCode!==z.KEY_SPACE||this._player.isWaitingMessage()||this._player.isWaitingPasswordWindow()||e.preventDefault()}})),window.addEventListener("blur",(e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()})),window.addEventListener("contextmenu",(e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()})),window.addEventListener("help",(e=>{this._isActive&&e.preventDefault()})),this._mouseControllerElement=me("wwa-controller"),this._mouseControllerElement.addEventListener("mousedown",(e=>{if(this._isActive&&1===e.which){if(this._mouseStore.getMouseState()!==Q.NONE)return void e.preventDefault();const t=fe(e.clientX,e.clientY),s=this._player.getDrawingCenterPosition(),i=t.substract(s),a=Math.abs(i.x),r=Math.abs(i.y);let n,o=!1;if(a<F.CHIP_SIZE&&r<F.CHIP_SIZE){switch(s.x/F.CHIP_SIZE|0){case 0:o=!0,n=m.LEFT;break;case F.H_PARTS_NUM_IN_WINDOW-1:o=!0,n=m.RIGHT}switch(s.y/F.CHIP_SIZE|0){case 0:o=!0,n=m.UP;break;case F.V_PARTS_NUM_IN_WINDOW-1:o=!0,n=m.DOWN}}o||(i.y>0&&r>a?n=m.DOWN:i.y<0&&r>a?n=m.UP:i.x>0&&r<a?n=m.RIGHT:i.x<0&&r<a&&(n=m.LEFT)),this._mouseStore.setPressInfo(n,0)}})),this._mouseControllerElement.addEventListener("mouseleave",(e=>{this._mouseStore.clear()})),this._mouseControllerElement.addEventListener("mouseup",(e=>{this._isActive&&1===e.which&&(this._mouseStore.setReleaseInfo(),e.preventDefault())})),window.TouchEvent){if(this.audioContext){let e=()=>{this.audioContext.createBufferSource().start(0),this._mouseControllerElement.removeEventListener("touchstart",e),e=null};this._mouseControllerElement.addEventListener("touchstart",e)}this._mouseControllerElement.addEventListener("touchstart",(e=>{if(!this._isActive)return;if(this._mouseStore.getMouseState()!==Q.NONE)return void e.preventDefault();const t=e.changedTouches,s=t.length;for(let e=0;e<s;e++){const s=t[e],i=fe(s.clientX,s.clientY),a=this._player.getDrawingCenterPosition(),r=i.substract(a),n=Math.abs(r.x),o=Math.abs(r.y);let h,c=!1;if(n<F.CHIP_SIZE&&o<F.CHIP_SIZE){switch(a.x/F.CHIP_SIZE|0){case 0:c=!0,h=m.LEFT;break;case F.H_PARTS_NUM_IN_WINDOW-1:c=!0,h=m.RIGHT}switch(a.y/F.CHIP_SIZE|0){case 0:c=!0,h=m.UP;break;case F.V_PARTS_NUM_IN_WINDOW-1:c=!0,h=m.DOWN}}c||(r.y>0&&o>n?h=m.DOWN:r.y<0&&o>n?h=m.UP:r.x>0&&o<n?h=m.RIGHT:r.x<0&&o<n&&(h=m.LEFT)),this._mouseStore.setPressInfo(h,s.identifier)}e.cancelable&&e.preventDefault()}));const e=e=>{if(this._isActive)for(let t=0;t<e.changedTouches.length;t++)if(this._mouseStore.getTouchID()===e.changedTouches[t].identifier){this._mouseStore.setReleaseInfo(),e.preventDefault();break}};this._mouseControllerElement.addEventListener("touchend",e),this._mouseControllerElement.addEventListener("touchcancel",e)}me("button-load").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.QUICK_LOAD)})),me("button-save").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.QUICK_SAVE)})),me("button-restart").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.RESTART_GAME)})),me("button-gotowwa").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.GOTO_WWA,!1,!1)})),Array.prototype.forEach.call(we(".wide-cell-row"),(e=>{e.addEventListener("click",(()=>{this._displayHelp()}))})),this._frameCoord=new l(F.IMGPOS_DEFAULT_FRAME_X,F.IMGPOS_DEFAULT_YESNO_Y),this._battleEffectCoord=new l(F.IMGPOS_DEFAULT_BATTLE_EFFECT_X,F.IMGPOS_DEFAULT_BATTLE_EFFECT_Y),this._battleEstimateWindow=new _s(this,this._wwaData.mapCGName,me("wwa-wrapper")),this._passwordWindow=new ds(this,me("wwa-wrapper"),e.disallowLoadOldSave),this._monsterWindow=new rs(this,new l(50,180),340,60,!1,me("wwa-wrapper"),this._wwaData.mapCGName),this._setProgressBar(Tr(3,4,K.GAME_INIT)),this._isLoadedSound=!1,this._temporaryInputDisable=!1,this._paintSkipByDoorOpen=!1,this._clearFacesInNextFrame=!1,this._useConsole=!1,this.wwaCustomEvent("wwa_startup"),this._cgManager=new kt(p,this._wwaData.mapCGName,this._frameCoord,this,e.pictureImageNamesFile,(()=>{this._isSkippedSoundMessage=!0;const s=()=>{switch(this.userDevice.device){case S.PC:this.registerSystemMessagePage("ゲームを開始します。\n画面をクリックしてください。",!1);break;case S.SP:this.registerSystemMessagePage("ゲームを開始します。\n画面にふれてください。",!1)}},i=this.resolveSystemMessage(a.CONFIRM_LOAD_SOUND);if("ON"===i)return this._isLoadedSound=!0,s(),this._setLoadingMessage(t,K.AUDIO),this.loadSound(),void window.requestAnimationFrame(this.soundCheckCaller);if("OFF"===i)return this._isLoadedSound=!1,s(),void this.openGameWindow();if(this._isSkippedSoundMessage=!1,this._hasTitleImg||t.clearRect(0,0,F.SCREEN_WIDTH,F.SCREEN_HEIGHT),this._usePassword){let s=i;e.displayUserVars&&(s+='\n\n※変数表示が有効になっています。\n公開前に必ずHTMLファイル内の\n data-wwa-display-user-vars="true" \nを消してください。'),this._messageWindow.setMessage(s),this._messageWindow.show(),this._setProgressBar(Tr(4,4,K.GAME_INIT));var r=setInterval((()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===w.UNSELECTED&&(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this._yesNoJudgeInNextFrame=w.YES:(this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&(this._yesNoJudgeInNextFrame=w.NO)),this._yesNoJudgeInNextFrame===w.YES?(clearInterval(r),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout((()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,K.AUDIO),this.loadSound(),window.requestAnimationFrame(this.soundCheckCaller)}),F.YESNO_PRESS_DISP_FRAME_NUM*F.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===w.NO&&(clearInterval(r),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout((()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()}),F.YESNO_PRESS_DISP_FRAME_NUM*F.DEFAULT_FRAME_INTERVAL))}),F.DEFAULT_FRAME_INTERVAL)}else clearInterval(r),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!0,this.loadSound(),window.requestAnimationFrame(this.soundCheckCaller)})),this.wwaCustomEvent("wwa_start")};const n=new li;n.addListener("mapData",(e=>this._loadHandler(e))),n.addListener("progress",(e=>this._setProgressBar(e))),n.addListener("error",(e=>this._setErrorMessage("下記のエラーが発生しました。: \n"+e.message,t)));new ci(e.mapdata,n).requestAndLoadMapData().then((async()=>{if(this._canDisplayUserVars=e.displayUserVars,this._userVarNameList=[],this._canDisplayUserVars){this._inlineUserVarViewer={topUserVarIndex:{named:0,numbered:0},isVisible:!1,kind:"numbered"};const t=await(e.userVarNamesFile?Rt(e.userVarNamesFile):{kind:"noFileSpecified",errorMessage:"data-wwa-user-var-names-file 属性に、変数の説明を記したファイル名を書くことで、その説明を表示できます。詳しくはマニュアルをご覧ください。"});this.setUserVarStatus(t,e.userVarNamesFile)}})),(async()=>{var t;const s=null!==(t=e.userDefinedScriptsFile)&&void 0!==t?t:"./script/script_file_list.json",i=await Rt(s);let a=[];console.log(i),"data"===(null==i?void 0:i.kind)&&Array.isArray(i.data)&&i.data.map((e=>{a.push((async e=>{try{const t=await fetch(e);return 200===t.status||304===t.status?{kind:"data",data:await new Response(t.body).text(),fileName:e}:{kind:"httpError",errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`,fileName:e}}catch(t){return{kind:"otherError",errorMessage:t.message,fileName:e}}})(e))}));(await Promise.all(a)).forEach((e=>{try{this.setUsertScript(e)}catch(t){alert(`外部スクリプト ${e.fileName} の解析中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${t.message}`),console.error(t.message)}}));const r=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_WWA_START;if(r)try{this.evalCalcWwaNodeGenerator.evalWwaNode(r)}catch(e){alert(`CALL_WWA_START でエラーが発生しました。\n\n詳細:\n${e.message}`),console.error(e.message)}})(),this.evalCalcWwaNodeGenerator=new $a(this)}setEvalCalcWwaNodeEarnedItem(e,t){this.evalCalcWwaNodeGenerator.setEarnedItem(e,t)}clearEvalCalcWwaNodeEarnedItem(){this.evalCalcWwaNodeGenerator.clearEarnedItem()}callGetItemUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callGetItemFullUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM_FULL;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUseItemUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_USE_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callJumpGateUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_JUMPGATE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUserDefinedBattleDamageFunction(e,t){const s=this.getUserDefinedDamageFunctionNode(e);if(s){this.evalCalcWwaNodeGenerator.setBattleDamageCalculationMode(t);try{const t=this.evalCalcWwaNodeGenerator.evalWwaNode(s),i=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),i?{damage:0,aborted:i}:"number"==typeof t?{damage:this.toAssignableValue(t),aborted:i}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${t})。このターンのダメージは無効になります。`),{damage:0,aborted:i})}catch(t){return console.warn(`${e} のダメージ計算中にエラーが発生しました。このターンのダメージは無効になります。`),console.warn(t),{damage:0,hasError:!0}}}}getUserDefinedDamageFunctionNode(e){var t;return null===(t=this.userDefinedFunctions)||void 0===t?void 0:t[{playerToEnemy:"CALC_PLAYER_TO_ENEMY_DAMAGE",enemyToPlayer:"CALC_ENEMY_TO_PLAYER_DAMAGE"}[e]]}callMoveUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callCameraMoveUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CAMERA_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}getUserScript(e){return this.userDefinedFunctions&&this.userDefinedFunctions[e]||null}setUsertScript(e){if("data"!==e.kind)return void console.error(e);this.convertWwaNodes(e.data).forEach((e=>{if("DefinedFunction"===e.type&&this.userDefinedFunctions){const t=e.functionName;this.userDefinedFunctions[t]=e.body}}))}callUserScript(e){const t=this.getUserScript(e);t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}setUserVarStatus(e,t){if(e)if("noFileSpecified"!==e.kind){if("data"!==e.kind)return this._userVarNameListRequestError=e,void dr(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);if(!e.data||"object"!=typeof e.data)return this._userVarNameListRequestError={kind:"notObject",errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},void dr(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);this._userVarNameList=this.convertUserVariableNameListToArray(e.data),ur(this._dumpElement,this._userVarNameList)}else dr(this._dumpElement,e.errorMessage,!1)}convertUserVariableNameListToArray(e){const t=new Array(F.USER_VAR_NUM);for(let e=0;e<F.USER_VAR_NUM;e++)t[e]=void 0;return Object.keys(e).forEach((s=>{const i=parseInt(s,10);"string"!=typeof e[s]||"string"!=typeof s||isNaN(i)||i<0||i>=F.USER_VAR_NUM||(t[i]=e[s])})),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=F.LOAD_STAGE_MAX_EXCEPT_AUDIO?(me("progress-message-container").textContent=e.stage===F.LOAD_STAGE_MAX_EXCEPT_AUDIO?"World Name: "+this._wwaData.worldName:ie[e.stage],me("progress-bar").style.width=(1*e.stage+e.current/e.total*1)/(F.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*F.MAP_WINDOW_WIDTH+"px",me("progress-disp").textContent=((1*e.stage+e.current/e.total*1)/(F.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+"%"):(this._usePassword?me("progress-message-container").textContent="効果音/BGMを読み込んでいます。(スペースキーでスキップ)":me("progress-message-container").textContent="ゲームデータを読み込んでいます。",me("progress-bar-audio").style.width=e.current*F.MAP_WINDOW_WIDTH/e.total+"px",me("progress-disp").textContent=(e.current/e.total*100).toFixed(2)+"%"))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=X.TITLE+"px "+F.LOADING_FONT,e.fillText(ae[0],j.TITLE_X,j.TITLE_Y),e.font=X.FOOTER+"px "+F.LOADING_FONT,e.fillText("WWA Wing Ver.4.1.0-unstable.based-on.3.12.18.p.6",j.FOOTER_X,j.COPYRIGHT_Y);else if(t<=ae.length)e.font=X.LOADING+"px "+F.LOADING_FONT,t>=2&&(e.clearRect(j.LOADING_X,j.LOADING_Y+j.LINE*(t-3),F.SCREEN_WIDTH-j.LOADING_X,j.LINE),e.fillText(ae[t-1]+" Complete!",j.LOADING_X,j.LOADING_Y+j.LINE*(t-2))),t<ae.length&&e.fillText(ae[t],j.LOADING_X,j.LOADING_Y+j.LINE*(t-1)),1==t&&(e.font=X.FOOTER+"px "+F.LOADING_FONT,e.fillText("World Name "+this._wwaData.worldName,j.FOOTER_X,j.WORLD_Y),e.fillText(" (Map data Ver. "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10+")",j.FOOTER_X,j.WORLD_Y+j.LINE));else{var s;s=this._isSkippedSoundMessage?j.LOADING_Y+j.LINE*(ae.length-1):j.FOOTER_Y,t<=K.AUDIO?e.fillText("Now Sound data Loading .....",j.LOADING_X,s):(e.clearRect(j.LOADING_X,s-j.LINE,F.SCREEN_WIDTH-j.LOADING_X,j.LINE),e.fillText("Now Sound data Loading ..... Complete!",j.LOADING_X,s))}}_setErrorMessage(e,t){this._hasTitleImg?alert(e):(t.clearRect(0,0,F.SCREEN_WIDTH,F.SCREEN_HEIGHT),t.font=X.ERRROR+"px "+F.LOADING_FONT,e.split("\n").forEach((function(e,s){t.fillText(e,j.ERROR_X,j.ERROR_Y+j.LINE*s)})))}createSoundInstance(e){if(0===e||e===B.NO_SOUND||this.sounds[e])return;const t=`${this._audioDirectory}${e}.${this.audioExtension}`;this.sounds[e]=new zs(e,t,this.audioContext,this.audioGain)}loadSound(){this.sounds=new Array(F.SOUND_MAX+1),this.createSoundInstance(B.DECISION),this.createSoundInstance(B.ATTACK);for(let e=1;e<this._wwaData.mapPartsMax;e++){const t=this._wwaData.mapAttribute[e][F.ATR_SOUND];this.createSoundInstance(t)}for(let e=1;e<this._wwaData.objPartsMax;e++){if(this._wwaData.objectAttribute[e][F.ATR_TYPE]===F.OBJECT_RANDOM)continue;const t=this._wwaData.objectAttribute[e][F.ATR_SOUND];this.createSoundInstance(t)}this._wwaData.message.forEach((e=>e.split("\n").forEach((e=>{const t=e.match(/^\$sound=(\d+)/);if(!t||t.length<2)return;const s=parseInt(t[1],10);!isNaN(s)&&0<s&&s<B.NO_SOUND&&this.createSoundInstance(s)})))),this._wwaData.bgm=0,this._soundLoadSkipFlag=!1}checkAllSoundLoaded(){let e=0,t=0;if(!this._hasTitleImg)var s=this._cvsCover.getContext("2d");this._keyStore.update(),this._keyStore.getKeyState(z.KEY_SPACE)===q.KEYDOWN&&(this._soundLoadSkipFlag=!0);for(let s=1;s<=F.SOUND_MAX;s++){const i=this.sounds[s];void 0===i||i.isError()||(t++,i.hasData()&&e++)}if(e<t&&!this._soundLoadSkipFlag)return this._setProgressBar(Tr(e,t,K.AUDIO)),void window.requestAnimationFrame(this.soundCheckCaller);this._setProgressBar(Tr(F.SOUND_MAX,F.SOUND_MAX,K.AUDIO)),this._setLoadingMessage(s,K.FINISH),this.openGameWindow()}_setSoundLoadedCheckTimer(e){const t=this.sounds[e];t.isError()||(this.soundLoadedCheckTimer=window.setInterval((()=>{this._wwaData.bgm===e?t.hasData()?(t.play(this._wwaData.bgmDelayDurationMs),this._wwaData.bgm=e,this._clearSoundLoadedCheckTimer()):t.isError()&&this._clearSoundLoadedCheckTimer():this._clearSoundLoadedCheckTimer()}),100))}_clearSoundLoadedCheckTimer(){this.soundLoadedCheckTimer&&(clearInterval(this.soundLoadedCheckTimer),this.soundLoadedCheckTimer=void 0)}playSound(e,t){if(!this._isLoadedSound)return void(e===B.NO_SOUND?this._wwaData.bgm=0:e>=B.BGM_LB&&(this._wwaData.bgm=e));if(e<0||e>=F.SOUND_MAX)return void console.warn("サウンド番号が範囲外です。");if(e>=B.BGM_LB&&this._wwaData.bgm===e)return;if((e===B.NO_SOUND||e>=B.BGM_LB)&&0!==this._wwaData.bgm&&(this.sounds[this._wwaData.bgm].isPlaying()&&this.sounds[this._wwaData.bgm].pause(),this._wwaData.bgm=0),0===e||e===B.NO_SOUND)return;this.sounds[e].hasData()?e>=B.BGM_LB?(this.sounds[e].play(null!=t?t:this._wwaData.bgmDelayDurationMs),this._wwaData.bgm=e):this.sounds[e].play():e>=B.BGM_LB&&(this._wwaData.bgm=e,this._setSoundLoadedCheckTimer(e))}openGameWindow(){var e=this._player.getPosition();me("wwa-cover").style.opacity="0",0!==this.getObjectIdByPosition(e)&&this._player.setPartsAppearedFlag();var t=me("wwa-wrapper").getAttribute("data-wwa-resume-savedata");if("string"==typeof t&&(this._useSuspend=!0,t)){var s=Ws.getStartWWAData(t);this._restartData!==s&&(this._applyQuickLoad(s),this._wwaSave.resumeStart())}setTimeout((()=>{me("wwa-wrapper").removeChild(me("wwa-cover")),this._main()}),F.SPLASH_SCREEN_DISP_MILLS)}onselectitem(e){if(this._player.canUseItem(e)){me("item"+(e-1)).classList.add("onpress"),this.playSound(B.DECISION);const i=this.resolveSystemMessage(a.CONFIRM_USE_ITEM);if("BLANK"===i){this._player.readyToUseItem(e);var t=this._player.useItem(),s=this.getObjectAttributeById(t,F.ATR_STRING);this.registerPageByMessage(this.getMessageById(s),{showChoice:!1,isSystemMessage:!1,triggerParts:{id:t,type:v.OBJECT,position:this._player.getPosition().getPartsCoord()}})}else this.registerPageByMessage(i,{showChoice:!0,isSystemMessage:!0}),this._yesNoChoiceCallInfo=I.CALL_BY_ITEM_USE,this._yesNoUseItemPos=e;return!0}return!1}onselectbutton(e,t=!1,s=!1){var i=me(x[e]);if(this.playSound(B.DECISION),this._itemMenu.close(),i.classList.add("onpress"),e===C.QUICK_LOAD)switch(this._yesNoChoiceCallInfo=this._wwaSave.getFirstSaveChoiceCallInfo(t),this._yesNoChoiceCallInfo){case I.CALL_BY_QUICK_LOAD:case I.CALL_BY_LOG_QUICK_LOAD:var a,r="";switch(this._yesNoChoiceCallInfo){case I.CALL_BY_QUICK_LOAD:r="読み込むデータを選んでください。",this._wwaSave.selectDBSaveDataList();break;case I.CALL_BY_LOG_QUICK_LOAD:r="読み込むオートセーブを選んでください。",this._wwaSave.selectLogSaveDataList()}switch(a=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._messageWindow.createSaveDom(),a){case I.CALL_BY_LOG_QUICK_LOAD:this.registerSystemMessagePage(r+"\n→Noでオートセーブ復帰画面に移ります。",!0);break;case I.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage(r+"\n→Noでデータ復帰用パスワードの\n 入力選択ができます。",!0);break;case I.NONE:this.registerSystemMessagePage(r,!0)}break;case I.CALL_BY_PASSWORD_LOAD:this.onpasswordloadcalled()}else if(e===C.QUICK_SAVE)this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):(this._wwaSave.selectDBSaveDataList(),this._messageWindow.createSaveDom(),this._usePassword?(this.registerSystemMessagePage("データの一時保存先を選んでください。\n→Noでデータ復帰用パスワードの\n 表示選択ができます。",!0),this._yesNoChoiceCallInfo=I.CALL_BY_QUICK_SAVE):(this.registerSystemMessagePage("データの一時保存先を選んでください。",!0),this._yesNoChoiceCallInfo=I.CALL_BY_QUICK_SAVE));else if(e===C.RESTART_GAME)this.registerSystemMessagePage("初めからスタートしなおしますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_RESTART_GAME;else if(e===C.GOTO_WWA)if(s)this._bottomButtonType!==p.GOTO_WWA&&me(x[C.GOTO_WWA]).classList.remove("onpress"),this.registerSystemMessagePage("WWAの公式サイトを開きますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_GOTO_WWA;else switch(this._bottomButtonType){case p.GOTO_WWA:this._yesNoChoiceCallInfo=I.CALL_BY_GOTO_WWA,this.registerSystemMessagePage("WWAの公式サイトを開きますか?",!0);break;case p.GAME_END:this._yesNoChoiceCallInfo=I.CALL_BY_END_GAME,this.registerSystemMessagePage("WWAゲームを終了しますか?",!0);break;case p.BATTLE_REPORT:this.launchBattleEstimateWindow()}}onpasswordloadcalled(){this._usePassword?(me(x[C.QUICK_LOAD]).classList.add("onpress"),this.registerSystemMessagePage("データ復帰用のパスワードを入力しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_PASSWORD_LOAD):this.registerSystemMessagePage("セーブデータがありません。")}onpasswordsavecalled(){me(x[C.QUICK_SAVE]).classList.add("onpress"),this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):this._useSuspend?(this.registerSystemMessagePage("ゲームを中断しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_SUSPEND):this._usePassword&&(this.registerSystemMessagePage("データ復帰用のパスワードを表示しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_PASSWORD_SAVE)}onpasssuspendsavecalled(){me(x[C.QUICK_SAVE]).classList.add("onpress"),this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):(this.registerSystemMessagePage("ゲームを中断しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_SUSPEND)}onitemmenucalled(){this.registerSystemMessagePage("右のメニューを選択してください。"),this._messageWindow.setItemMenuChoice(!0),this.playSound(B.DECISION),this._itemMenu.openView()}onchangespeed(e){if(!this._wwaData.permitChangeGameSpeed)return void this.registerSystemMessagePageByKey(a.GAME_SPEED_CHANGE_DISABLED);switch(e){case P.UP:this._player.speedUp();break;case P.DOWN:this._player.speedDown()}const t=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CHANGE_SPEED;t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t),this.registerSystemMessagePageByKey(a.GAME_SPEED_CHANGED)}isBattleSpeedIndexForQuickBattle(e){return F.QUICK_BATTLE_SPEED_INDECIES.some((t=>t===e))}_main(){var e;this._temporaryInputDisable=!1,this._stopUpdateByLoadFlag=!1,this._keyStore.update(),this._mouseStore.update(),this._virtualPadStore.update(),this._gamePadStore.update();const t=this._reservedPartsAppearances.length>0;if(this._reservedPartsAppearances.forEach((e=>this.appearParts(e))),this._reservedPartsAppearances=[],this._waitFrame-- >0)return t&&this._drawAll(),void window.requestAnimationFrame(this.mainCaller);if(this._waitFrame=0,void 0!==this._yesNoJudgeInNextFrame&&(this._yesNoJudge=this._yesNoJudgeInNextFrame,this._yesNoJudgeInNextFrame=void 0),this._clearFacesInNextFrame&&(this.clearFaces(),this._clearFacesInNextFrame=!1),this._pageExecuting=!0,this._pages.length>0&&this._shouldSetNextPage)for(this._shouldSetNextPage=!1;this._pages.length>0;){const e=this._pages.shift(),t=$t.executeNodes(e.firstNode,e.triggerParts);if(!0===t.isError){this._isLastPage=!1;break}void 0!==this._reservedMoveMacroTurn&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0);const s=t.messages.filter((e=>!e.isEmpty())),i=Boolean(e.scoreOption);i&&0===s.length&&s.push(this._createSimpleMessage("スコアを表示します。",e.triggerParts)),e.additionalItems&&e.additionalItems.forEach((e=>{if("face"===e.type)this.addFace(e.data.face)}));if(s.length>0){const t=s.map((e=>e.generatePrintableMessage())).join("\n");this._messageWindow.setMessage(t),this._messageWindow.setYesNoChoice(e.showChoice),this._messageWindow.setPositionByPlayerPosition(0!==this._faces.length,i,e.isSystemMessage,this._player.getPosition(),this._camera.getPosition()),i&&(this._lastScoreOptions=e.scoreOption,this.updateScore(e.scoreOption),this._scoreWindow.show()),this._player.setMessageWaiting(),this._isLastPage=e.isLastPage,this._shouldSetNextPage=!1;break}if(0===this._pages.length){if(this._hideMessageWindow().newPageGenerated)continue;if(this._dispatchWindowClosedTimeRequests().newPageGenerated)continue;this.clearFaces();break}}if(this._pageExecuting=!1,this._reservedJumpDestination&&(this._player.jumpTo(this._reservedJumpDestination),this._reservedJumpDestination=void 0),this._player.mainFrameCount(),this._player.isControllable()){if(this._wwaData.disableSaveFlag||this._wwaSave.isAutoSaveFrame(this._player)&&this._quickSave(I.CALL_BY_LOG_QUICK_SAVE),this._player.isDelayFrame())this._player.updateDelayFrame();else{const e=this._player.getDir(),t=[NaN,NaN,z.KEY_DOWN,NaN,z.KEY_LEFT,NaN,z.KEY_RIGHT,NaN,z.KEY_UP,NaN][e];this._actionGamePadButtonItemMacro()||(this._keyStore.getKeyStateForControllPlayer(z.KEY_LEFT)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_UP)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_RIGHT)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_DOWN)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.LEFT)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.UP)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.RIGHT)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.DOWN)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(t)?this._checkTurnKeyPressed()?this._player.setDir(e):(this._player.controll(e),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_LEFT)?this._checkTurnKeyPressed()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_UP)?this._checkTurnKeyPressed()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_RIGHT)?this._checkTurnKeyPressed()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_DOWN)?this._checkTurnKeyPressed()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.LEFT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.UP)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.RIGHT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.DOWN)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_LEFT")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_UP")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_RIGHT")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_DOWN")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._keyStore.getKeyState(z.KEY_1)===q.KEYDOWN?this.onselectitem(1):this._keyStore.getKeyState(z.KEY_2)===q.KEYDOWN?this.onselectitem(2):this._keyStore.getKeyState(z.KEY_3)===q.KEYDOWN?this.onselectitem(3):this._keyStore.getKeyState(z.KEY_Q)===q.KEYDOWN?this.onselectitem(4):this._keyStore.getKeyState(z.KEY_W)===q.KEYDOWN?this.onselectitem(5):this._keyStore.getKeyState(z.KEY_E)===q.KEYDOWN?this.onselectitem(6):this._keyStore.getKeyState(z.KEY_A)===q.KEYDOWN?this.onselectitem(7):this._keyStore.getKeyState(z.KEY_S)===q.KEYDOWN?this.onselectitem(8):this._keyStore.getKeyState(z.KEY_D)===q.KEYDOWN?this.onselectitem(9):this._keyStore.getKeyState(z.KEY_Z)===q.KEYDOWN?this.onselectitem(10):this._keyStore.getKeyState(z.KEY_X)===q.KEYDOWN?this.onselectitem(11):this._keyStore.getKeyState(z.KEY_C)===q.KEYDOWN?this.onselectitem(12):this._keyStore.getKeyState(z.KEY_I)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_MINUS)||this._virtualPadStore.checkTouchButton("BUTTON_SLOW")?this.onchangespeed(P.DOWN):this._keyStore.getKeyState(z.KEY_P)===q.KEYDOWN||this._keyStore.checkHitKey(z.KEY_F2)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_PLUS)||this._virtualPadStore.checkTouchButton("BUTTON_FAST")?this.onchangespeed(P.UP):this._keyStore.getKeyState(z.KEY_F1)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_M)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this.launchBattleEstimateWindow():this._keyStore.checkHitKey(z.KEY_F3)?(this.playSound(B.DECISION),this.onselectbutton(C.QUICK_LOAD,!0)):this._keyStore.checkHitKey(z.KEY_F4)?(this.playSound(B.DECISION),this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled()):this._keyStore.checkHitKey(z.KEY_F5)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_ZR)?this.onselectbutton(C.QUICK_LOAD):this._keyStore.checkHitKey(z.KEY_F6)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_ZL)?this.onselectbutton(C.QUICK_SAVE):this._keyStore.checkHitKey(z.KEY_F7)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_R)?this.onselectbutton(C.RESTART_GAME):this._keyStore.checkHitKey(z.KEY_F8)?this.onselectbutton(C.GOTO_WWA,!1,!0):this._keyStore.checkHitKey(z.KEY_F9)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_X)||this._virtualPadStore.checkTouchButton("BUTTON_ESC")?(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onitemmenucalled():this._keyStore.checkHitKey(z.KEY_V)?this._displayUserVars():this._keyStore.checkHitKey(z.KEY_X)?this._debugConsoleElement&&this._debugEvalString():(this._keyStore.checkHitKey(z.KEY_F12)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_Y))&&this._displayHelp());[{key:z.KEY_A,func:"CALL_PUSH_A"},{key:z.KEY_B,func:"CALL_PUSH_B"},{key:z.KEY_C,func:"CALL_PUSH_C"},{key:z.KEY_D,func:"CALL_PUSH_D"},{key:z.KEY_E,func:"CALL_PUSH_E"},{key:z.KEY_F,func:"CALL_PUSH_F"},{key:z.KEY_G,func:"CALL_PUSH_G"},{key:z.KEY_H,func:"CALL_PUSH_H"},{key:z.KEY_I,func:"CALL_PUSH_I"},{key:z.KEY_J,func:"CALL_PUSH_J"},{key:z.KEY_K,func:"CALL_PUSH_K"},{key:z.KEY_L,func:"CALL_PUSH_L"},{key:z.KEY_M,func:"CALL_PUSH_M"},{key:z.KEY_N,func:"CALL_PUSH_N"},{key:z.KEY_O,func:"CALL_PUSH_O"},{key:z.KEY_P,func:"CALL_PUSH_P"},{key:z.KEY_Q,func:"CALL_PUSH_Q"},{key:z.KEY_R,func:"CALL_PUSH_R"},{key:z.KEY_S,func:"CALL_PUSH_S"},{key:z.KEY_T,func:"CALL_PUSH_T"},{key:z.KEY_U,func:"CALL_PUSH_U"},{key:z.KEY_V,func:"CALL_PUSH_V"},{key:z.KEY_W,func:"CALL_PUSH_W"},{key:z.KEY_X,func:"CALL_PUSH_X"},{key:z.KEY_Y,func:"CALL_PUSH_Y"},{key:z.KEY_Z,func:"CALL_PUSH_Z"},{key:z.KEY_ENTER,func:"CALL_PUSH_ENTER"},{key:z.KEY_ESC,func:"CALL_PUSH_ESC"},{key:z.KEY_SPACE,func:"CALL_PUSH_SPACE"},{key:z.KEY_LEFT,func:"CALL_PUSH_LEFT"},{key:z.KEY_RIGHT,func:"CALL_PUSH_RIGHT"},{key:z.KEY_UP,func:"CALL_PUSH_UP"},{key:z.KEY_DOWN,func:"CALL_PUSH_DOWN"}].forEach((e=>{if(this._keyStore.checkHitKey(e.key)){const t=this.userDefinedFunctions&&this.userDefinedFunctions[e.func];t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}}))}this._keyStore.memorizeKeyStateOnControllableFrame(),this._mouseStore.memorizeMouseStateOnControllableFrame()}else if(this._player.isJumped())this._camera.isResetting()||this._player.processAfterJump();else if(this._player.isMoving())this._player.move(),this._objectMovingDataManager.update(),this._player.getPosition().isJustPosition()&&this._dispatchPlayerAndObjectsStopTimeRequests();else if(this._player.isWaitingMessage()){if(this._messageWindow.isVisible()||this._messageWindow.show(),this._messageWindow.isYesNoChoice())this._messageWindow.isSaveChoice()&&(this._messageWindow.saveUpdate(),this._messageWindow.isSaveClose()||(this._keyStore.checkHitKey(z.KEY_LEFT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchButton("BUTTON_LEFT")?this._messageWindow.saveControll(m.LEFT):this._keyStore.checkHitKey(z.KEY_UP)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchButton("BUTTON_UP")?this._messageWindow.saveControll(m.UP):this._keyStore.checkHitKey(z.KEY_RIGHT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchButton("BUTTON_RIGHT")?this._messageWindow.saveControll(m.RIGHT):(this._keyStore.checkHitKey(z.KEY_DOWN)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchButton("BUTTON_DOWN"))&&this._messageWindow.saveControll(m.DOWN))),this._messageWindow.isInputDisable()||(this._yesNoJudge===w.UNSELECTED&&(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this._yesNoJudge=w.YES:(this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&(this._yesNoJudge=w.NO)),(this._yesNoJudge===w.YES||this._yesNoJudge===w.NO)&&(this.playSound(B.DECISION),this._yesNoDispCounter=F.YESNO_PRESS_DISP_FRAME_NUM,this._messageWindow.setInputDisable(),this._messageWindow.update()));else if(this._messageWindow.isItemMenuChoice()){if(this._itemMenu.update(),this._keyStore.checkHitKey(z.KEY_LEFT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchingButton("BUTTON_LEFT")?this._itemMenu.controll(m.LEFT):this._keyStore.checkHitKey(z.KEY_UP)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchingButton("BUTTON_UP")?this._itemMenu.controll(m.UP):this._keyStore.checkHitKey(z.KEY_RIGHT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchingButton("BUTTON_RIGHT")?this._itemMenu.controll(m.RIGHT):(this._keyStore.checkHitKey(z.KEY_DOWN)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchingButton("BUTTON_DOWN"))&&this._itemMenu.controll(m.DOWN),this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER"))this._setNextPage(),this._messageWindow.setItemMenuChoice(!1),this._itemMenu.ok();else if(this._mouseStore.checkClickMouse(m.LEFT)||this._mouseStore.checkClickMouse(m.UP)||this._mouseStore.checkClickMouse(m.RIGHT)||this._mouseStore.checkClickMouse(m.DOWN)||this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC")){for(var s=0;s<x.length;s++){(n=me(x[s])).classList.contains("onpress")&&n.classList.remove("onpress")}this._itemMenu.ng(),this._setNextPage(),this.playSound(B.DECISION),this._messageWindow.setItemMenuChoice(!1)}}else{var i=this._keyStore.getKeyStateForMessageCheck(z.KEY_ENTER),a=this._keyStore.getKeyStateForMessageCheck(z.KEY_SPACE),r=this._keyStore.getKeyStateForMessageCheck(z.KEY_ESC);if(i===q.KEYDOWN||i===q.KEYPRESS_MESSAGECHANGE||a===q.KEYDOWN||a===q.KEYPRESS_MESSAGECHANGE||r===q.KEYDOWN||r===q.KEYPRESS_MESSAGECHANGE||this._mouseStore.getMouseState()===Q.MOUSEDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")||this._virtualPadStore.checkTouchButton("BUTTON_ESC")){for(s=0;s<x.length;s++){var n;(n=me(x[s])).classList.contains("onpress")&&n.classList.remove("onpress")}this._setNextPage()}}if(null===(e=this._inlineUserVarViewer)||void 0===e?void 0:e.isVisible){const e=this._inlineUserVarViewer.kind;let t=!1;const s="named"===e?this._userVar.named.size:F.USER_VAR_NUM;this._keyStore.getKeyState(z.KEY_DOWN)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]++,t=!0),this._keyStore.getKeyState(z.KEY_UP)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]--,t=!0),this._keyStore.getKeyState(z.KEY_RIGHT)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]+=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(z.KEY_LEFT)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]-=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(z.KEY_V)===q.KEYDOWN&&("named"===this._inlineUserVarViewer.kind?this._inlineUserVarViewer.kind="numbered":"numbered"===this._inlineUserVarViewer.kind&&(this._inlineUserVarViewer.kind="named"),t=!0),this._inlineUserVarViewer.topUserVarIndex[e]<0&&(this._inlineUserVarViewer.topUserVarIndex[e]+=s),this._inlineUserVarViewer.topUserVarIndex[e]>s&&(this._inlineUserVarViewer.topUserVarIndex[e]-=s),t&&(this._setNextPage(),this._inlineUserVarViewer.isVisible=!0,this._displayUserVars())}}else this._player.isWaitingEstimateWindow()?(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_SPACE)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&this.hideBattleEstimateWindow():this._player.isFighting()?(this._player.fight(),this._monsterWindow.update(this._monster)):this._player.isWaitingMoveMacro()&&(this._player.isMoveObjectAutoExecTime()&&(this.moveObjects(!1),this._player.resetMoveObjectAutoExecTimer()),this._objectMovingDataManager.update());if(this.updatePicturesAnimation(),this._cgManager.picture.updateFrameTimerValue(),this._prevFrameEventExected=!1,this._player.getPosition().isJustPosition()&&this._camera.getPosition().isScreenTopPosition()){if(!this._shouldTreatWillMessageDisplay(this._pages)&&!this._player.isPausing()){this._player.isPartsAppearedTime()&&this._player.clearPartsAppearedFlag(),this._replaceRandomObjectsInScreen();var o=this.checkMap();o||this.checkObject(),this._prevFrameEventExected=o}this._player.isWaitingMessage()&&this._messageWindow.isYesNoChoice()&&this._yesNoJudge!==w.UNSELECTED&&!this._player.isWaitingMoveMacro()&&!this._player.isFighting()&&this._execChoiceWindowRunningEvent()}this._passwordLoadExecInNextFrame&&(this._stopUpdateByLoadFlag=!0,this._loadType=O.PASSWORD,this._player.clearPasswordWindowWaiting(),this._passwordLoadExecInNextFrame=!1),this._drawAll(),this._mainCallCounter++,this._mainCallCounter%=1e9,this._player.isWaitingMessage()&&this._isClassicModeEnable||(this._animationCounter=(this._animationCounter+1)%(2*F.ANIMATION_REP_HALF_FRAME),0!==this._animationCounter&&this._animationCounter!==F.ANIMATION_REP_HALF_FRAME+1||this.updateAllPicturesCache()),this._camera.isResetting()&&this._camera.advanceTransitionStepNum(),this._player.isWaitingMessage()||(this._player.decrementLookingAroundTimer(),this._statusPressCounter.energy>0&&0==--this._statusPressCounter.energy&&me("disp-energy").classList.remove("onpress"),this._statusPressCounter.strength>0&&0==--this._statusPressCounter.strength&&me("disp-strength").classList.remove("onpress"),this._statusPressCounter.defence>0&&0==--this._statusPressCounter.defence&&me("disp-defence").classList.remove("onpress"),this._statusPressCounter.gold>0&&0==--this._statusPressCounter.gold&&me("disp-gold").classList.remove("onpress")),this._player.isWaitingMoveMacro()&&(this._player.decrementMoveObjectAutoExecTimer(),this._player.isWaitingMoveMacro()||this._dispatchPlayerAndObjectsStopTimeRequests()),this._stopUpdateByLoadFlag?this._fadeout((()=>{if(this._loadType===O.QUICK_LOAD){this._quickLoad(),this.wwaCustomEvent("wwa_quickload");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_QUICKLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===O.RESTART_GAME){this.restartGame(),this.wwaCustomEvent("wwa_restert");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_RESTART;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===O.PASSWORD){this._applyQuickLoad(this._passwordSaveExtractData),this._passwordSaveExtractData=void 0,this.wwaCustomEvent("wwa_passwordload");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_PASSWORDLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}setTimeout(this.mainCaller,F.DEFAULT_FRAME_INTERVAL,this)})):window.requestAnimationFrame(this.mainCaller),function({dumpElement:e,namedUserVar:t,userVar:s}){t&&gr(e,t),s&&_r(e,s)}({dumpElement:this._dumpElement,userVar:this._userVar.numbered,namedUserVar:this._userVar.named});const h=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_FRAME;h&&this.evalCalcWwaNodeGenerator.evalWwaNode(h)}vibration(e){this._gamePadStore.vibration(e)}_isMainAnimation(){return this._animationCounter>F.ANIMATION_REP_HALF_FRAME}_drawAll(){var e,t,s=this._camera.getPosition().getPartsCoord(),i=this._camera.getPosition().getOffsetCoord(),a=F.MAP_WINDOW_HEIGHT,r=this._player.getPosition().getPartsCoord();if(this._paintSkipByDoorOpen)this._paintSkipByDoorOpen=!1;else{if(this._cgManager.clearCanvas(0,0,F.MAP_WINDOW_WIDTH,F.MAP_WINDOW_HEIGHT),this._cgManager.drawBase(0,0,F.MAP_WINDOW_WIDTH,F.MAP_WINDOW_HEIGHT),this._camera.isResetting()){if(null!==this._camera.getPreviousPosition())var n=this._camera.getPreviousPosition().getPartsCoord(),o=this._camera.getPreviousPosition().getOffsetCoord();a=this._camera.getTransitionStepNum()*F.CHIP_SIZE}var h=!1;if(a!==this._cgManager.mapCacheYLimit&&(this._cgManager.mapCacheYLimit=a,h=!0),s.x===this._cgManager.cpPartsLog.x&&s.y===this._cgManager.cpPartsLog.y||(this._cgManager.cpPartsLog.x=s.x,this._cgManager.cpPartsLog.y=s.y,h=!0),h&&(this._cgManager.clearBackCanvas(),this._cgManager.clearObjectCanvases()),this._camera.isResetting()&&(this._drawMap(n,o,a,!0),this._drawPlayer(n,o,a,!0),this._drawObjects(n,o,a,!0),this._camera.isFinalStep()))var c=255,l=setInterval((()=>{var e=me("wwa-fader");if((c-=3*F.FADEOUT_SPEED)<=0)return clearInterval(l),e.style.backgroundColor="transparent",e.removeAttribute("style"),void(e.style.display="none");e.style.opacity=c/255+""}),20);this._drawMap(s,i,a,!1,h),this._drawPlayer(s,i,a),this._drawObjects(s,i,a,!1,h),this._player.isFighting()&&!this._player.isBattleStartFrame()&&(e=this._player.isTurn()?this._monster.position.x:r.x,t=this._player.isTurn()?this._monster.position.y:r.y,this._cgManager.drawCanvas(this._battleEffectCoord.x,this._battleEffectCoord.y,F.CHIP_SIZE*(e-s.x)-i.x,F.CHIP_SIZE*(t-s.y)-i.y)),this._drawEffect(),this._drawPictures(),this._drawFaces(),this._drawFrame()}}_drawMap(e,t,s,i=!1,a=!1){if(void 0!==e){var r,n=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),h=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW);if(r=0,i)for(var l=n;l<=o;l++)for(var _=h;_<=c;_++){var u=this._wwaData.map[_][l],d=this._wwaData.mapAttribute[u][F.ATR_X]/F.CHIP_SIZE,p=this._wwaData.mapAttribute[u][F.ATR_Y]/F.CHIP_SIZE,m=F.CHIP_SIZE*(l-e.x)-t.x,g=F.CHIP_SIZE*(_-e.y)-t.y;this._cgManager.copyBackCanvasWithLowerYLimit(d,p,m,g,s)}else{for(l=n;l<=o;l++)for(_=h;_<=c;_++){u=this._wwaData.map[_][l];this._cgManager.mapCache[r]!==u&&(this._cgManager.mapCache[r]=u,a=!0),r++}if(a){this._cgManager.clearBackCanvasWithLowerYLimit(s);for(l=n;l<=o;l++)for(_=h;_<=c;_++){u=this._wwaData.map[_][l],d=this._wwaData.mapAttribute[u][F.ATR_X]/F.CHIP_SIZE,p=this._wwaData.mapAttribute[u][F.ATR_Y]/F.CHIP_SIZE,m=F.CHIP_SIZE*(l-e.x)-t.x,g=F.CHIP_SIZE*(_-e.y)-t.y;this._cgManager.copyBackCanvasWithUpperYLimit(d,p,m,g,s)}}this._cgManager.drawBackCanvas()}}}_drawPlayer(e,t,s,i=!1){if(void 0===e||this._wwaData.delPlayerFlag)return;const a=this._player.getPosition().getPartsCoord(),r=this._player.getPosition().getOffsetCoord(),n=[NaN,NaN,2,NaN,4,NaN,6,NaN,0,NaN][this._player.getDir()],o=(a.x-e.x)*F.CHIP_SIZE+r.x-t.x,h=(a.y-e.y)*F.CHIP_SIZE+r.y-t.y;let c;if(this._useLookingAround&&this._player.isLookingAround()&&!this._player.isWaitingMessage()){const e=[2,3,4,5,0,1,6,7];c=this._wwaData.playerImgPosX+e[Math.floor(this._mainCallCounter%64/8)]}else c=this._player.isMovingImage()?this._wwaData.playerImgPosX+n+1:this._wwaData.playerImgPosX+n;i?this._cgManager.drawCanvasWithLowerYLimit(c,this._wwaData.playerImgPosY,o,h,s):this._cgManager.drawCanvasWithUpperYLimit(c,this._wwaData.playerImgPosY,o,h,s)}_drawObjects(e,t,s,i=!1,a=!1){if(void 0!==e){var r,n,o,h,c,_,u,p,m,g,E,w,f,y,v=Math.max(0,e.x-1),A=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),S=Math.max(0,e.y-1),T=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW),I=0,C=this._isMainAnimation(),P=this._player.isFighting()&&this._player.isTurn()&&this._player.getPosition().getPartsCoord().equals(this._monster.position);if(i)for(g=v;g<=A;g++)for(E=S;E<=T;E++)P&&new l(g,E).equals(this._monster.position)||(w=this._wwaData.mapObject[E][g],r=new l(0,0),this._wwaData.objectAttribute[w][F.ATR_MOVE]!==D.STATIC&&null!==(m=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new l(g,E)))&&(r=m),c=F.CHIP_SIZE*(g-e.x)+r.x-t.x,_=F.CHIP_SIZE*(E-e.y)+r.y-t.y,n=C||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,u=this._wwaData.objectAttribute[w][F.ATR_TYPE],p=this._wwaData.objectAttribute[w][F.ATR_NUMBER],0===w||this._checkNoDrawObject(new l(g,E),u,p)||this._cgManager.copyObjectCanvasWithLowerYLimit(C?1:0,o,h,c,_,s));else{var O,N,b,M,x,L=[],R=[];for(g=v;g<=A;g++)for(E=S;E<=T;E++)f=w=this._wwaData.mapObject[E][g],u=this._wwaData.objectAttribute[w][F.ATR_TYPE],p=this._wwaData.objectAttribute[w][F.ATR_NUMBER],this._checkNoDrawObject(new l(g,E),u,p)&&(f=0),N=this._wwaData.objectAttribute[w][F.ATR_MOVE]===D.STATIC,0!==f&&(b=!(!P||!new l(g,E).equals(this._monster.position)),N?R.push(new d(w,g,E,N,b)):(L.push(new d(w,g,E,N,b)),f=0),b&&(f=0)),this._cgManager.mapObjectCache[I]!==f&&(this._cgManager.mapObjectCache[I]=f,a=!0),I++;for(a&&(this._cgManager.clearObjectCanvasesWithLowerYLimit(s),Array.prototype.push.apply(L,R)),x=L.length,M=0;M<x;M++)if(g=(O=L[M]).x,E=O.y,w=O.partsIDObj,N=O.isStatic,b=O.isFighting,c=F.CHIP_SIZE*(g-e.x)-t.x,_=F.CHIP_SIZE*(E-e.y)-t.y,N){if(b)continue;for(y=0;y<2;y++)n=!!y||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,this._cgManager.copyObjectCanvasWithUpperYLimit(y,o,h,c,_,s)}else null!==(m=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new l(g,E)))&&(c+=m.x,_+=m.y),n=C||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,this._cgManager.drawCanvasWithUpperYLimit(o,h,c,_,s);this._cgManager.drawObjectCanvas(C?1:0)}}}_drawEffect(){if(0!==this._wwaData.effectCoords.length&&0!==this._wwaData.effectWaits){var e=Math.floor(this._mainCallCounter%(this._wwaData.effectCoords.length*this._wwaData.effectWaits)/this._wwaData.effectWaits);this._cgManager.drawEffect(e)}}_drawFaces(){for(var e=0;e<this._faces.length;e++)this._cgManager.drawCanvasWithSize(this._faces[e].srcPos.x,this._faces[e].srcPos.y,this._faces[e].srcSize.x,this._faces[e].srcSize.y,this._faces[e].destPos.x,this._faces[e].destPos.y)}_drawFrame(){this._cgManager.drawFrame()}_drawPictures(){this._cgManager.drawPictures()}_checkNoDrawObject(e,t,s){var i=this._player.getPosition(),a=i.getPartsCoord();return!(!i.isJustPosition()||a.x!==e.x||a.y!==e.y||this._wwaData.objectNoCollapseDefaultFlag)&&(t===F.OBJECT_DOOR&&0===s||(t===F.OBJECT_STATUS||t===F.OBJECT_MESSAGE||t===F.OBJECT_ITEM||t===F.OBJECT_SELL||t===F.OBJECT_BUY||t===F.OBJECT_SELL||t===F.OBJECT_LOCALGATE))}getMapWidth(){if(void 0===this._wwaData)throw new Error("マップデータがロードされていません");return this._wwaData.mapWidth}getMapIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.map[t.y][t.x]}getObjectIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.mapObject[t.y][t.x]}getMapTypeByPosition(e){var t=e.getPartsCoord(),s=this._wwaData.map[t.y][t.x];return this._wwaData.mapAttribute[s][F.ATR_TYPE]}getObjectTypeByPosition(e){var t=e.getPartsCoord(),s=this._wwaData.mapObject[t.y][t.x];return this._wwaData.objectAttribute[s][F.ATR_TYPE]}getMapAttributeByPosition(e,t){var s=e.getPartsCoord(),i=this._wwaData.map[s.y][s.x];return this._wwaData.mapAttribute[i][t]}isCurrentPosMapPartsIncludingMessage(e){return 0!==this.getMapAttributeByPosition(e,F.ATR_STRING)}getObjectAttributeByPosition(e,t){var s=e.getPartsCoord(),i=this._wwaData.mapObject[s.y][s.x];return this._wwaData.objectAttribute[i][t]}getMapAttributeById(e,t){return this._wwaData.mapAttribute[e][t]}getObjectAttributeById(e,t){return this._wwaData.objectAttribute[e][t]}getObjectCropXById(e){return this._wwaData.objectAttribute[e][F.ATR_X]}getObjectCropYById(e){return this._wwaData.objectAttribute[e][F.ATR_Y]}getMessageById(e){return this._wwaData.message[e]}getSystemMessageById(e){return this._wwaData.systemMessage[e]}getMapInfo(e){return this._wwaData.mapAttribute[e]}checkMap(e){var t=this._player.getPosition().getPartsCoord();e=null!=e?e:t;var s=this._wwaData.map[e.y][e.x];var i=this.getMapInfo(s)[F.ATR_TYPE],a=e.x===t.x&&e.y===t.y,r=!1;return(!a||this._player.getLastExecPartsIDOnSamePosition(v.MAP)!==s)&&(i===F.MAP_STREET?r=this._execMapStreetEvent(e,s,i):i===F.MAP_WALL?r=this._execMapWallEvent(e,s,i):i===F.MAP_LOCALGATE?r=this._execMapLocalGateEvent(e,s,i):i===F.MAP_URLGATE&&(r=this._execMapUrlGateEvent(e,s,i)),a&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(v.MAP,s),r)}getObjectInfo(e){return this._wwaData.objectAttribute[e]}checkObject(e){var t=this._player.getPosition().getPartsCoord();e=null!=e?e:t;var s=this._wwaData.mapObject[e.y][e.x];var i=this.getObjectInfo(s)[F.ATR_TYPE],a=e.x===t.x&&e.y===t.y;a&&this._player.getLastExecPartsIDOnSamePosition(v.OBJECT)===s||(i===F.OBJECT_NORMAL?this._execObjectNormalEvent(e,s,i):i===F.OBJECT_MESSAGE?this._execObjectMessageEvent(e,s,i):i===F.OBJECT_MONSTER?this._execObjectMonsterEvent(e,s,i):i===F.OBJECT_ITEM?this._execObjectItemEvent(e,s,i):i===F.OBJECT_DOOR?this._execObjectDoorEvent(e,s,i):i===F.OBJECT_STATUS?this._execObjectStatusEvent(e,s,i):i===F.OBJECT_BUY?this._execObjectBuyEvent(e,s,i):i===F.OBJECT_SELL?this._execObjectSellEvent(e,s,i):i===F.OBJECT_URLGATE?this._execObjectUrlGateEvent(e,s,i):i===F.OBJECT_SCORE?this._execObjectScoreEvent(e,s,i):i===F.OBJECT_SELECT?this._execObjectYesNoChoiceEvent(e,s,i):i===F.OBJECT_LOCALGATE&&this._execObjectLocalGateEvent(e,s,i),a&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(v.OBJECT,s))}_execMapStreetEvent(e,t,s){var i=this._wwaData.mapAttribute[t][F.ATR_ITEM];if(0!==i&&!this._player.hasItem(i))return!1;this.reserveAppearPartsInNextFrame(e,f.MAP,t);const a=this._wwaData.mapAttribute[t][F.ATR_STRING],r=this._wwaData.message[a],n=this._wwaData.mapAttribute[t][F.ATR_NUMBER];return this._waitFrame+=n*F.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.registerPageByMessage(r,{triggerParts:{id:t,type:v.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),0!==a&&this._shouldTreatWillMessageDisplay(this._pages)||0!==n}_shouldTreatWillMessageDisplay(e){return e.reduce(((e,t)=>e||!is(t.firstNode)),!1)}_execMapWallEvent(e,t,s){var i=this.getObjectIdByPosition(e.convertIntoPosition(this)),a=this.getObjectAttributeById(i,F.ATR_TYPE);if(0===i||a===F.OBJECT_NORMAL||a===F.OBJECT_DOOR&&(!this._player.hasItem(this.getObjectAttributeById(i,F.ATR_ITEM))||this.getObjectAttributeById(a,F.ATR_MODE)===F.PASSABLE_OBJECT)){this.reserveAppearPartsInNextFrame(e,f.MAP,t);var r=this._wwaData.mapAttribute[t][F.ATR_STRING],n=this._wwaData.message[r];return this.registerPageByMessage(n,{triggerParts:{id:t,type:v.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),!1}return!1}_execMapLocalGateEvent(e,t,s){var i=this._player.getPosition().getPartsCoord(),a=this._wwaData.mapAttribute[t][F.ATR_JUMP_X],r=this._wwaData.mapAttribute[t][F.ATR_JUMP_Y];return a>F.RELATIVE_COORD_LOWER&&(a=e.x+a-F.RELATIVE_COORD_BIAS),r>F.RELATIVE_COORD_LOWER&&(r=e.y+r-F.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,f.MAP,t),0<=a&&0<=r&&a<this._wwaData.mapWidth&&r<this._wwaData.mapWidth&&(a!==i.x||r!==i.y)&&(this.reserveJumpInNextFrame(new _(this,a,r,0,0)),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),!0)}_execMapUrlGateEvent(e,t,s){var i=this._wwaData.mapAttribute[t][F.ATR_STRING];if(!this._isURLGateEnable)return!0;const r=this.resolveSystemMessage(a.CONFIRM_ENTER_URL_GATE);if("BLANK"!==r)return this.registerSystemMessagePage(r,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_MAP_PARTS,this._yesNoURL=this._wwaData.message[i].split(/\s/g)[0],!0;location.href=ye(this._wwaData.message[i].split(/\s/g)[0])}_execObjectNormalEvent(e,t,s){}_execObjectMessageEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord(),n=this._wwaData.objectAttribute[t][F.ATR_SOUND];e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{triggerParts:{id:t,type:v.OBJECT,position:e}}),this._waitFrame+=this._wwaData.objectAttribute[t][F.ATR_NUMBER]*F.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this.playSound(n)}_execObjectStatusEvent(e,t,s){var i=new c(this._wwaData.objectAttribute[t][F.ATR_ENERGY],this._wwaData.objectAttribute[t][F.ATR_STRENGTH],this._wwaData.objectAttribute[t][F.ATR_DEFENCE],this._wwaData.objectAttribute[t][F.ATR_GOLD]),a=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[a],n=this._player.getStatusWithoutEquipments();if(i.strength>F.STATUS_MINUS_BORDER&&n.strength<i.strength-F.STATUS_MINUS_BORDER||i.defence>F.STATUS_MINUS_BORDER&&n.defence<i.defence-F.STATUS_MINUS_BORDER||i.gold>F.STATUS_MINUS_BORDER&&n.gold<i.gold-F.STATUS_MINUS_BORDER)return this.setPartsOnPosition(v.OBJECT,0,e),this._keyStore.allClear(),void this._mouseStore.clear();i.energy=i.energy>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.energy:i.energy,i.strength=i.strength>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.strength:i.strength,i.defence=i.defence>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.defence:i.defence,i.gold=i.gold>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.gold:i.gold,this._player.addStatusAll(i),this.setStatusChangedEffect(i),this._player.isDead()&&0!==this._wwaData.objectAttribute[t][F.ATR_ENERGY]&&this.shouldApplyGameOver({isCalledByMacro:!1})?this.gameover():(this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.setPartsOnPosition(v.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]))}_execObjectMonsterEvent(e,t,s){this._monster=this._createMonster(t,e,(()=>{this._monster=void 0,this._monsterWindow.hide(),this._dispatchWindowClosedTimeRequests()})),this._player.startBattleWith(this._monster)}_execObjectBuyEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectSellEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectItemEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[i];try{var n=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),o=(e.x-n.x)*F.CHIP_SIZE,h=(e.y-n.y)*F.CHIP_SIZE;this._player.addItem(t,this._wwaData.objectAttribute[t][F.ATR_NUMBER],!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new l(o,h),itemBoxBackgroundImageCoord:new l(this._wwaData.imgItemboxX*F.CHIP_SIZE,this._wwaData.imgItemboxY*F.CHIP_SIZE)}:void 0),this.setPartsOnPosition(v.OBJECT,0,e),0!==this._wwaData.objectAttribute[t][F.ATR_MODE]||(this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t))}catch(e){this.registerSystemMessagePageByKey(a.ITEM_BOX_FULL)}this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectDoorEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_ITEM],a=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[a];this._player.hasItem(i)&&(0===this._wwaData.objectAttribute[t][F.ATR_MODE]&&this._player.removeItemByPartsID(i),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]),this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.setPartsOnPosition(v.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this._paintSkipByDoorOpen=!0)}_execObjectYesNoChoiceEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectLocalGateEvent(e,t,s){var i=this._player.getPosition().getPartsCoord();e.x!==i.x||e.y!==i.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e);var a=this._wwaData.objectAttribute[t][F.ATR_JUMP_X],r=this._wwaData.objectAttribute[t][F.ATR_JUMP_Y];a>F.RELATIVE_COORD_LOWER&&(a=i.x+a-F.RELATIVE_COORD_BIAS),r>F.RELATIVE_COORD_LOWER&&(r=i.y+r-F.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),0<=a&&0<=r&&a<this._wwaData.mapWidth&&r<this._wwaData.mapWidth&&(a!==i.x||r!==i.y)&&(this.reserveJumpInNextFrame(new _(this,a,r,0,0)),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]))}_execObjectUrlGateEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING];if(!this._isURLGateEnable)return;const r=this.resolveSystemMessage(a.CONFIRM_ENTER_URL_GATE);"BLANK"!==r?(this.registerSystemMessagePage(r,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this._yesNoURL=this._wwaData.message[i].split(/\s/g)[0]):location.href=ye(this._wwaData.message[i].split(/\s/g)[0])}_execObjectScoreEvent(e,t,s){const i=this._wwaData.objectAttribute[t][F.ATR_STRING];this.registerPageByMessage(this._wwaData.message[i],{triggerParts:{id:t,type:v.OBJECT,position:e},scoreOption:{rates:{energy:this._wwaData.objectAttribute[t][F.ATR_ENERGY],strength:this._wwaData.objectAttribute[t][F.ATR_STRENGTH],defence:this._wwaData.objectAttribute[t][F.ATR_DEFENCE],gold:this._wwaData.objectAttribute[t][F.ATR_GOLD]}}}),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}updateScore(e){const t=e||this._lastScoreOptions;if(!t)return;const s=this._player.getStatus().calculateScore(t);this._scoreWindow.update(s)}_execChoiceWindowObjectSellEvent(){if(!this._player.hasGold(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD]))return this.registerSystemMessagePageByKey(a.NO_MONEY),{};if(0!==this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM]){const e=this._yesNoChoicePartsCoord,t=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),s=(e.x-t.x)*F.CHIP_SIZE,i=(e.y-t.y)*F.CHIP_SIZE,r=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM],n=this._wwaData.objectAttribute[r][F.ATR_NUMBER];try{this._player.addItem(r,n,!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new l(s,i),itemBoxBackgroundImageCoord:new l(this._wwaData.imgItemboxX*F.CHIP_SIZE,this._wwaData.imgItemboxY*F.CHIP_SIZE)}:void 0)}catch(e){return this.registerSystemMessagePageByKey(a.ITEM_BOX_FULL),{}}}const e=new c(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ENERGY],this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_STRENGTH],this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_DEFENCE],-this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD]);return e.energy=e.energy>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-e.energy:e.energy,this.setStatusChangedEffect(e),this._player.addStatusAll(e),this._player.isDead()&&0!==this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ENERGY]&&this.shouldApplyGameOver({isCalledByMacro:!1})?(this.gameover(),{isGameOver:!0}):(this.appearParts({pos:this._yesNoChoicePartsCoord,triggerType:f.OBJECT,triggerPartsId:this._yesNoChoicePartsID}),{})}_execChoiceWindowRunningEvent(){var e,t;if(0==--this._yesNoDispCounter)if(this._yesNoJudge===w.YES){if(this._yesNoChoiceCallInfo===I.CALL_BY_MAP_PARTS)(e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.MAP_URLGATE&&(location.href=ye(this._yesNoURL));else if(this._yesNoChoiceCallInfo===I.CALL_BY_OBJECT_PARTS)if((e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.OBJECT_BUY)this._player.hasItem(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM])?(this._player.removeItemByPartsID(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM]),t=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD],this._player.earnGold(t),this.setStatusChangedEffect(new c(0,0,0,t)),this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.OBJECT,this._yesNoChoicePartsID)):this.registerSystemMessagePageByKey(a.NO_ITEM);else if(e===F.OBJECT_SELL){const{isGameOver:e}=this._execChoiceWindowObjectSellEvent();if(e)return}else e===F.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.CHOICE_YES,this._yesNoChoicePartsID):e===F.OBJECT_URLGATE&&(location.href=ye(this._yesNoURL));else this._yesNoChoiceCallInfo===I.CALL_BY_ITEM_USE?this._player.readyToUseItem(this._yesNoUseItemPos):this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===I.CALL_BY_LOG_QUICK_LOAD?(this._messageWindow.deleteSaveDom(),me(x[C.QUICK_LOAD]).classList.remove("onpress"),this._messageWindow.load()&&(this._stopUpdateByLoadFlag=!0,this._loadType=O.QUICK_LOAD)):this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_SAVE?(this._messageWindow.deleteSaveDom(),me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._quickSave(I.CALL_BY_QUICK_SAVE)):this._yesNoChoiceCallInfo===I.CALL_BY_RESTART_GAME?(me(x[C.RESTART_GAME]).classList.remove("onpress"),this._stopUpdateByLoadFlag=!0,this._loadType=O.RESTART_GAME):this._yesNoChoiceCallInfo===I.CALL_BY_END_GAME?(window.history.back(-1),me(x[C.GOTO_WWA]).classList.remove("onpress")):this._yesNoChoiceCallInfo===I.CALL_BY_GOTO_WWA?(location.href=ye(F.WWA_HOME),me(x[C.GOTO_WWA]).classList.remove("onpress")):this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_LOAD?(me(x[C.QUICK_LOAD]).classList.remove("onpress"),this._player.setPasswordWindowWating(),this._passwordWindow.show(hs.LOAD)):this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_SAVE?(me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._player.setPasswordWindowWating(),this._passwordWindow.password=this._quickSave(I.CALL_BY_PASSWORD_SAVE),this._passwordWindow.show(hs.SAVE)):this._yesNoChoiceCallInfo===I.CALL_BY_SUSPEND&&(me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._quickSave(I.CALL_BY_SUSPEND));this._yesNoJudge=w.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._messageWindow.setYesNoChoice(!1)}else if(this._yesNoJudge===w.NO){if(this._yesNoChoiceCallInfo===I.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][F.ATR_TYPE],F.MAP_URLGATE;else if(this._yesNoChoiceCallInfo===I.CALL_BY_OBJECT_PARTS)(e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.OBJECT_BUY||e===F.OBJECT_SELL||(e===F.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.CHOICE_NO,this._yesNoChoicePartsID):F.OBJECT_URLGATE);else if(this._yesNoChoiceCallInfo===I.CALL_BY_ITEM_USE){me("item"+(this._yesNoUseItemPos-1)).classList.remove("onpress")}else if(this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===I.CALL_BY_LOG_QUICK_LOAD)switch(this._messageWindow.deleteSaveDom(),this._yesNoChoiceCallInfo=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._yesNoChoiceCallInfo){case I.NONE:me(x[C.QUICK_LOAD]).classList.remove("onpress");break;case I.CALL_BY_PASSWORD_LOAD:return this._yesNoJudge=w.UNSELECTED,void this.onpasswordloadcalled();case I.CALL_BY_LOG_QUICK_LOAD:this._wwaSave.selectLogSaveDataList(),this._messageWindow.createSaveDom();var s=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword);switch(this._yesNoJudge=w.UNSELECTED,s){case I.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage("読み込むオートセーブを選んでください。\n→Noでデータ復帰用パスワードの\n 入力選択ができます。",!0);break;case I.NONE:this.registerSystemMessagePage("読み込むオートセーブを選んでください。",!0)}return}else if(this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_SAVE){if(this._messageWindow.deleteSaveDom(),this._usePassword||this._useSuspend)return this._yesNoJudge=w.UNSELECTED,void(this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled());me(x[C.QUICK_SAVE]).classList.remove("onpress")}else if(this._yesNoChoiceCallInfo===I.CALL_BY_RESTART_GAME)me(x[C.RESTART_GAME]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_END_GAME)me(x[C.GOTO_WWA]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_GOTO_WWA)me(x[C.GOTO_WWA]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_LOAD)me(x[C.QUICK_LOAD]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_SAVE)me(x[C.QUICK_SAVE]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_SUSPEND){if(this._usePassword)return this._yesNoJudge=w.UNSELECTED,void this.onpasswordsavecalled();me(x[C.QUICK_SAVE]).classList.remove("onpress")}this._yesNoJudge=w.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._messageWindow.setYesNoChoice(!1)}}_dispatchWindowClosedTimeRequests(){if(this._windowCloseWaitingJumpGateRequest&&this.forcedJumpGate(this._windowCloseWaitingJumpGateRequest.x,this._windowCloseWaitingJumpGateRequest.y),this._windowCloseWaitingMessageDisplayRequests.length>0){const e=this._windowCloseWaitingMessageDisplayRequests.shift();return this.registerPageByMessage(e.message,{additionalItems:e.additionalItems}),{newPageGenerated:!0}}return{newPageGenerated:!1}}_dispatchPlayerAndObjectsStopTimeRequests(){this._playerAndObjectsStopWaitingGameSpeedChangeRequest&&(this.setPlayerSpeedIndex(this._playerAndObjectsStopWaitingGameSpeedChangeRequest.speedIndex),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0),this._playerAndObjectsStopWaitingMessageDisplayRequests.length>0&&(this.registerPageByMessage(this._playerAndObjectsStopWaitingMessageDisplayRequests.map((e=>e.message)).join("<p>"),{additionalItems:this._playerAndObjectsStopWaitingMessageDisplayRequests.map((e=>e.additionalItems)).flat()}),this._playerAndObjectsStopWaitingMessageDisplayRequests=[])}_clearAllRequests(){this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingJumpGateRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[]}reserveMessageDisplayWhenShouldOpen(e){this._player.isWaitingMessage()||this._player.isFighting()||this._player.isWaitingPasswordWindow()||this._player.isWaitingEstimateWindow()?this._windowCloseWaitingMessageDisplayRequests.push(e):this._player.isMoving()||this._player.isWaitingMoveMacro()?this._playerAndObjectsStopWaitingMessageDisplayRequests.push(e):this.registerPageByMessage(e.message,{additionalItems:e.additionalItems})}handleMsgFunction(e){this._pageExecuting?this._windowCloseWaitingMessageDisplayRequests.push(e):this.reserveMessageDisplayWhenShouldOpen(e)}registerSystemMessagePage(e,t=!1){this.registerPageByMessage(e,{showChoice:t,isSystemMessage:!0})}registerSystemMessagePageByKey(e){const t=this.resolveSystemMessage(e);"BLANK"!==t&&this.registerPageByMessage(t,{isSystemMessage:!0})}_createSimpleMessage(e,t){return new Zt(e,(()=>this.generateTokenValues(t)),((e,t)=>this._execEvalString(e,t)))}registerPageByMessage(e,{showChoice:t=!1,isSystemMessage:s=!1,triggerParts:i={id:0,type:v.OBJECT,position:new l(0,0)},scoreOption:a,additionalItems:r=[]}={}){const n=ts(e,{triggerParts:i,isSystemMessage:s,showChoice:t,scoreOption:a,additionalItems:r},(e=>function(e,t,s){var i;let a=s.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\=(.*)$/);if((null===a||3!==a.length)&&(a=s.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)/),null===a||2!==a.length))throw new Error("マクロではありません");const r=`$${a[1].toLowerCase()}`,n="$if"===r&&s.match(/,/)?M.LEGACY_IF:U[r],o=Boolean(n!==M.SHOW_STR&&n!==M.SHOW_STR2),h=(null!==(i=a[2])&&void 0!==i?i:"").split(",").map((e=>o?e.trim():e));return new Xt(e,t,void 0===n?M.UNDEFINED:n,h)}(this,i,e)),((e,t)=>this._execEvalString(e,t)),(e=>this.generateTokenValues(e)));this._pages=this._pages.concat(n),this._shouldSetNextPage=!0}appearParts({pos:e,triggerType:t,triggerPartsId:s}){var i,a,r,n,o,h,c=t===f.CHOICE_NO?F.APPERANCE_PARTS_MIN_INDEX_NO:F.APPERANCE_PARTS_MIN_INDEX,u=t===f.CHOICE_YES?F.APPERANCE_PARTS_MAX_INDEX_YES:F.APPERANCE_PARTS_MAX_INDEX;for(t===f.MAP?(s=0===s?this._wwaData.map[e.y][e.x]:s,i=v.MAP):(s=0===s?this._wwaData.mapObject[e.y][e.x]:s,i=v.OBJECT),h=c;h<=u;h++){var d=F.ATR_APPERANCE_BASE+h*F.REL_ATR_APPERANCE_UNIT_LENGTH,p=d+F.REL_ATR_APPERANCE_ID,m=d+F.REL_ATR_APPERANCE_X,g=d+F.REL_ATR_APPERANCE_Y,E=d+F.REL_ATR_APPERANCE_TYPE;if(a=i===v.MAP?this._wwaData.mapAttribute[s][p]:this._wwaData.objectAttribute[s][p],r=i===v.MAP?this._wwaData.mapAttribute[s][E]:this._wwaData.objectAttribute[s][E],n=i===v.MAP?this._wwaData.mapAttribute[s][m]:this._wwaData.objectAttribute[s][m],o=i===v.MAP?this._wwaData.mapAttribute[s][g]:this._wwaData.objectAttribute[s][g],n===F.PLAYER_COORD?(n=this._player.getPosition().getPartsCoord().x,this._player.resetEventExecutionInfo()):n>F.RELATIVE_COORD_LOWER&&(n=e.x+n-F.RELATIVE_COORD_BIAS),o===F.PLAYER_COORD?(o=this._player.getPosition().getPartsCoord().y,this._player.resetEventExecutionInfo()):o>F.RELATIVE_COORD_LOWER&&(o=e.y+o-F.RELATIVE_COORD_BIAS),0!==n||0!==o)try{if(new _(this,n,o,0,0),r===v.MAP){if(a>=this._wwaData.mapPartsMax)throw new Error("背景パーツの範囲外IDが指定されました");var w=new l(n,o);this.setPartsOnPosition(v.MAP,a,w)}else{if(a>=this._wwaData.objPartsMax)throw new Error("物体パーツの範囲外IDが指定されました");w=new l(n,o);this.setPartsOnPosition(v.OBJECT,a,w),this._replaceRandomObject(new l(n,o)),n===this._player.getPosition().getPartsCoord().x&&o===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch(e){}}}reserveAppearPartsInNextFrame(e,t,s=0){this._reservedPartsAppearances.push({pos:e,triggerType:t,triggerPartsId:s})}reserveJumpInNextFrame(e){this._reservedJumpDestination=e}appearPartsByDirection(e,t,s){var i=this._player.getPosition().getPartsCoord(),a=this._player.getDir(),r=g[a],n=E[a];this.appearPartsEval(i,(r>=0?"+":"-")+Math.abs(r)*e,(n>=0?"+":"-")+Math.abs(n)*e,t,s)}appearPartsEval(e,t,s,i,a){var r,n,o=this._player.getPosition().getPartsCoord();if("P"===t||"p"===t)r=o.x;else if("+"===t[0])r=e.x+parseInt(t.substr(1));else if("-"===t[0])r=e.x-parseInt(t.substr(1));else if(r=parseInt(t),isNaN(r))throw new Error("座標として解釈できない文字が含まれています。");if("P"===s||"p"===s)n=o.y;else if("+"===s[0])n=e.y+parseInt(s.substr(1));else if("-"===s[0])n=e.y-parseInt(s.substr(1));else if(n=parseInt(s),isNaN(n))throw new Error("座標として解釈できない文字が含まれています。");try{new _(this,r,n,0,0);if(a===v.MAP){if(i>=this._wwaData.mapPartsMax)throw new Error("背景パーツの範囲外IDが指定されました");var h=new l(r,n);this.setPartsOnPosition(v.MAP,i,h)}else{if(i>=this._wwaData.objPartsMax)throw new Error("物体パーツの範囲外IDが指定されました");h=new l(r,n);this.setPartsOnPosition(v.OBJECT,i,h),this._replaceRandomObject(new l(r,n)),r===this._player.getPosition().getPartsCoord().x&&n===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch(e){}}getPartsID(e,t){if(e.x<0||e.y<0)throw new Error("想定外の座標が指定されました");return t===v.MAP?this._wwaData.map[e.y][e.x]:this._wwaData.mapObject[e.y][e.x]}_replaceRandomObject(e){var t,s,i=this._wwaData.mapObject[e.y][e.x];if(this._wwaData.objectAttribute[i][F.ATR_TYPE]===F.OBJECT_RANDOM){for(var a=0;a<F.RANDOM_ITERATION_MAX;a++){if(s=Math.floor(10*Math.random()),(t=this._wwaData.objectAttribute[i][F.ATR_RANDOM_BASE+s])>=this._wwaData.objPartsMax){t=0;break}if(this._wwaData.objectAttribute[t][F.ATR_TYPE]!==F.OBJECT_RANDOM)break;i=t}this.setPartsOnPosition(v.OBJECT,t,e)}}_replaceRandomObjectsInScreen(){for(var e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x-1),s=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),i=Math.max(0,e.y-1),a=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW),r=t;r<=s;r++)for(var n=i;n<=a;n++)this._replaceRandomObject(new l(r,n))}_replaceAllRandomObjects(){for(var e=0;e<this._wwaData.mapWidth;e++)for(var t=0;t<this._wwaData.mapWidth;t++)this._replaceRandomObject(new l(e,t))}gameover(){var e=this._wwaData.gameoverX,t=this._wwaData.gameoverY;this._yesNoJudge=w.UNSELECTED,this._pages=[],this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._player.clearMessageWaiting(),this._messageWindow.clear(),this._messageWindow.setYesNoChoice(!1),this._waitFrame=0,this._temporaryInputDisable=!0,this._shouldSetNextPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._clearAllRequests(),this._player.jumpTo(new _(this,e,t,0,0));const s=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GAMEOVER;s&&this.evalCalcWwaNodeGenerator.evalWwaNode(s)}setYesNoInput(e){this._yesNoJudgeInNextFrame=e}getYesNoState(){return void 0!==this._yesNoJudgeInNextFrame?this._yesNoJudgeInNextFrame:this._yesNoJudge}setStatusChangedEffect(e){this._wwaData.isItemEffectEnabled&&(0!==e.strength&&(me("disp-strength").classList.add("onpress"),this._statusPressCounter.strength=F.STATUS_CHANGED_EFFECT_FRAME_NUM),0!==e.defence&&(me("disp-defence").classList.add("onpress"),this._statusPressCounter.defence=F.STATUS_CHANGED_EFFECT_FRAME_NUM),e instanceof c&&(0!==e.energy&&(me("disp-energy").classList.add("onpress"),this._statusPressCounter.energy=F.STATUS_CHANGED_EFFECT_FRAME_NUM),0!==e.gold&&(me("disp-gold").classList.add("onpress"),this._statusPressCounter.gold=F.STATUS_CHANGED_EFFECT_FRAME_NUM)))}setPartsOnPosition(e,t,s){var i,a,r=s.y<<Z.BITSHIFT|s.x;e===v.MAP?(i=this._wwaData.map[s.y][s.x],t=this.loadMapPartsID(t),i=this.loadMapPartsID(i),this._wwaData.map[s.y][s.x]=t,-1!==(a=this._mapIDTable[i].indexOf(r))&&this._mapIDTable[i].splice(a,1),-1===(a=this._mapIDTable[t].indexOf(r))&&this._mapIDTable[t].push(r)):(i=this._wwaData.mapObject[s.y][s.x],t=this.loadMapPartsObjectID(t),i=this.loadMapPartsObjectID(i),this._wwaData.mapObject[s.y][s.x]=t,-1!==(a=this._mapObjectIDTable[i].indexOf(r))&&this._mapObjectIDTable[i].splice(a,1),-1===(a=this._mapObjectIDTable[t].indexOf(r))&&this._mapObjectIDTable[t].push(r))}_countSamePartsLength(e,t){var s;for(s=t+1;s<e.length&&e[s]===e[s-1];s++);return s-t}_compressMap(e){for(var t=[],s=0;s<e.length;s++){t[s]=[];for(var i=0;i<e[s].length;){var a=this._countSamePartsLength(e[s],i);t[s].push([e[s][i],a]),i+=a}}return t}_decompressMap(e){for(var t=[],s=0;s<e.length;s++){t[s]=[];for(var i=0;i<e[s].length;i++)for(var a=e[s][i][1],r=0;r<a;r++)t[s].push(e[s][i][0])}return t}_generateMapDataHash(e){var t="A",s=0,i=0,a=0;for(a=0;a<e.map.length;a++){for(i=0;i<e.map[a].length;)s=this._countSamePartsLength(e.map[a],i),t+=e.map[a][i]+"|"+s+"/",i+=s;for(i=0;i<e.mapObject[a].length;)s=this._countSamePartsLength(e.mapObject[a],i),t+=e.mapObject[a][i]+"|"+s+"/",i+=s}for(var r=0;r<e.mapAttribute.length;r++)for(var n=0;n<e.mapAttribute[r].length;n++)t+=e.mapAttribute[r][n]+"/";for(var o=0;o<e.objectAttribute.length;o++)for(var h=0;h<e.objectAttribute[o].length;h++)t+=e.objectAttribute[o][h]+"/";return fs(t+="Z")}_generateSaveDataHash(e){var t=this._generateMapDataHash(e),s=[];for(var i in e)"map"!==i&&"mapObject"!==i&&"mapCompressed"!==i&&"mapObjectCompressed"!==i&&"mapAttribute"!==i&&"objectAttribute"!==i&&"checkString"!==i&&s.push(i);s.sort();for(var a=0;a<s.length;a++)t+=ve(e[s[a]]);return fs(t)}compressSystem(){return Ws}_quickSave(e){var t,s;const i=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_SAVE;i&&this.evalCalcWwaNodeGenerator.evalWwaNode(i);var a,r,n=structuredClone(this._wwaData),o=this._player.getPosition().getPartsCoord(),h=this._player.getStatusWithoutEquipments();switch(n.itemBox=this._player.getCopyOfItemBox(),n.playerX=o.x,n.playerY=o.y,n.statusEnergyMax=this._player.getEnergyMax(),n.statusEnergy=h.energy,n.statusStrength=h.strength,n.statusDefence=h.defence,n.statusGold=h.gold,n.moves=this._player.getMoveCount(),n.frameCount=this._player.getFrameCount(),n.gameSpeedIndex=this._player.getSpeedIndex(),n.playTime=null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0,n.userVar=this._userVar.numbered.slice(),n.userNamedVar=structuredClone(this._userVar.named),e){case I.CALL_BY_LOG_QUICK_SAVE:case I.CALL_BY_QUICK_SAVE:case I.CALL_BY_SUSPEND:break;case I.CALL_BY_PASSWORD_SAVE:n.checkOriginalMapString=this.checkOriginalMapString,n.checkString=this._generateSaveDataHash(n)}switch(n.message=void 0,n.mapAttribute=void 0,n.objectAttribute=void 0,e){case I.CALL_BY_QUICK_SAVE:return this._messageWindow.save(this._cvs,n),this.wwaCustomEvent("wwa_quicksave",{data:n}),"";case I.CALL_BY_PASSWORD_SAVE:const e=Ws.compress(n,{isPassword:!0});e.isCompress=1;const t=JSON.stringify(e);return this.wwaCustomEvent("wwa_passwordsave",{data:n,compress:e}),a=t,r=this._wwaData.worldPassNumber,console.warn(Es.enc.Utf8.parse(a)),Es.AES.encrypt(Es.enc.Utf8.parse(a),ws(r)).toString();case I.CALL_BY_SUSPEND:this.wwaCustomEvent("wwa_suspend",{data:n,compress:Ws.compress(n)});break;case I.CALL_BY_LOG_QUICK_SAVE:this.wwaCustomEvent("wwa_autosave",{data:n}),this._wwaSave.autoSave(this._cvs,n)}}wwaCustomEvent(e,t={}){this.wwaCustomEventEmitter.dispatch(e,t)}_decodePassword(e){let t,s="";try{i=e,a=this._wwaData.worldPassNumber,s=Es.AES.decrypt(i,ws(a)).toString(Es.enc.Utf8)}catch(e){t=e}var i,a,r;if(!s){console.warn("新方式でのパスワード暗号化解除失敗:",t);try{s=function(e,t,s){return Es.AES.decrypt(e,function(e,t){return`^ /${231*e+8310+t}P+>A[]`}(t,s)).toString(Es.enc.Utf8)}(e,this._wwaData.worldPassNumber,this.checkOriginalMapString)}catch(e){t=e}}if(!s){console.warn("旧方式でのパスワード暗号化解除失敗:",t);const e=t&&t.message?t.message:"";throw new Error("パスワード取得時からワールド制作者によってマップの暗証番号が変更されたか、\nパスワードが壊れているために正常にセーブデータが復元できませんでした。\n"+e)}try{r=JSON.parse(s)}catch(e){throw new Error("マップデータ以外のものが暗号化されたか、マップデータに何かが不足しているようです。\nJSON PARSE FAILED")}if(r.isCompress){delete r.isCompress;const[e,t]=Ws.decompress(r);return[Hs(e),t]}return[r,{isWorldNameEmpty:!1}]}_quickLoad(e=!1,t=null,s=!0){if(!e&&void 0===this._wwaSave.hasSaveData()&&null===t)throw new Error("セーブデータがありません。");let i,a=!1;if(null!==t){const e=this._decodePassword(t);i=e[0],a=e[1].isWorldNameEmpty}else i=structuredClone(e?this._restartData:this._messageWindow.load());if(i.message=structuredClone(this._restartData.message),i.mapAttribute=structuredClone(this._restartData.mapAttribute),i.objectAttribute=structuredClone(this._restartData.objectAttribute),void 0===i.map&&(i.map=this._decompressMap(i.mapCompressed)),void 0===i.mapObject&&(i.mapObject=this._decompressMap(i.mapObjectCompressed)),delete i.mapCompressed,delete i.mapObjectCompressed,null!==t){if(!a&&i.worldName!==this._wwaData.worldName)throw console.error("Invalid title",`(password)=${i.worldName} (current map)=${this._wwaData.worldName}`),new Error("前回パスワード取得時から、制作者によってワールド名が変更されたためロードできませんでした。\n予めご了承ください。");const e=this.checkOriginalMapString;if(this._isDisallowLoadOldSave&&i.checkOriginalMapString!==e)throw console.error("Invalid hash",`(password)=${i.checkOriginalMapString} (current map)=${e}`),new Error("前回パスワード取得時から、制作者によってマップが変更されたためロードできませんでした。\n(マップデータ制作者の設定により、内容が変更されると以前のパスワードは利用できなくなります。)\n予めご了承ください。");console.log("Valid Password!")}return s&&this._applyQuickLoad(i),i}_applyQuickLoad(e){this._userVar.named=e.userNamedVar,this._userVar.numbered=e.userVar,this._player.setEnergyMax(e.statusEnergyMax),this._player.setEnergy(e.statusEnergy),this._player.setStrength(e.statusStrength),this._player.setDefence(e.statusDefence),this._player.setGold(e.statusGold),this._player.setMoveCount(e.moves),this._player.setFrameCount(e.frameCount),this._player.clearItemBox();for(var t=0;t<e.itemBox.length;t++)this._player.addItem(e.itemBox[t],t+1,!0);this._player.systemJumpTo(new _(this,e.playerX,e.playerY,0,0)),0===e.bgm?this.playSound(B.NO_SOUND):this.playSound(e.bgm,e.bgmDelayDurationMs),this.setImgClick(new l(e.imgClickX,e.imgClickY)),0!==this.getObjectIdByPosition(this._player.getPosition())&&this._player.setPartsAppearedFlag(),this._clearAllRequests(),this._playTimeCalculator=new he(e.playTime),this._wwaData=e,this._mapIDTableCreate(),this._replaceAllRandomObjects(),this.setStatusIconCoord(R.ENERGY,new l(e.imgStatusEnergyX,e.imgStatusEnergyY)),this.setStatusIconCoord(R.STRENGTH,new l(e.imgStatusStrengthX,e.imgStatusStrengthY)),this.setStatusIconCoord(R.DEFENCE,new l(e.imgStatusDefenceX,e.imgStatusDefenceY)),this.setStatusIconCoord(R.GOLD,new l(e.imgStatusGoldX,e.imgStatusGoldY)),this.setWideCellCoord(new l(e.imgWideCellX,e.imgWideCellY)),this.setItemboxBackgroundPosition({x:e.imgItemboxX,y:e.imgItemboxY}),this.setFrameCoord(new l(e.imgFrameX,e.imgFrameY)),this.setPlayerSpeedIndex(e.gameSpeedIndex),this.updateCSSRule(),this.updateEffect(),this._cgManager.restorePictures(this._wwaData.pictureRegistry),this.updateAllPicturesCache(),this._player.updateStatusValueBox(),this._wwaSave.quickSaveButtonUpdate(this._wwaData)}_mapIDTableCreate(){var e;for(this._mapIDTable=[],this._mapObjectIDTable=[],e=0;e<this._wwaData.mapPartsMax;e++)this._mapIDTable[e]=[];for(e=0;e<this._wwaData.objPartsMax;e++)this._mapObjectIDTable[e]=[];for(var t=0;t<this._wwaData.mapWidth;t++)for(var s=0;s<this._wwaData.mapWidth;s++){var i=s<<Z.BITSHIFT|t;e=this._wwaData.map[s][t],this._mapIDTable[e]instanceof Array||(this._mapIDTable[e]=[]),this._mapIDTable[e].push(i),e=this._wwaData.mapObject[s][t],this._mapObjectIDTable[e]instanceof Array||(this._mapObjectIDTable[e]=[]),this._mapObjectIDTable[e].push(i)}}restartGame(){this._quickLoad(!0)}_fadeout(e){var t=0,s=F.MAP_WINDOW_WIDTH,i=F.FADEOUT_SPEED,a=me("wwa-fader");a.style.display="block";var r=setInterval((()=>{if(t+=i,(s-=2*i)<=0||2*t>F.MAP_WINDOW_WIDTH)return a.removeAttribute("style"),a.style.display="block",a.style.borderWidth="0",a.style.width=F.MAP_WINDOW_WIDTH+"px",a.style.height=F.MAP_WINDOW_HEIGHT+"px",a.style.backgroundColor="#808080",clearInterval(r),void e();a.style.width=s+"px",a.style.height=s+"px",a.style.borderWidth=t+"px"}),20)}moveObjects(e){var t,s,i,a=this._camera.getPosition(),r=(this._player.getPosition(),a.getPartsCoord(),a.getPartsCoord().x),n=a.getPartsCoord().y;if(this.getMapAttributeByPosition(this._player.getPosition(),F.ATR_TYPE)!==F.MAP_LOCALGATE&&this.getObjectAttributeByPosition(this._player.getPosition(),F.ATR_TYPE)!==F.OBJECT_LOCALGATE){for(t=new Array(F.V_PARTS_NUM_IN_WINDOW+2),this.hoge=new Array(F.V_PARTS_NUM_IN_WINDOW+2),i=-1;i<=F.V_PARTS_NUM_IN_WINDOW;i++)for(t[i+1]=new Array(F.H_PARTS_NUM_IN_WINDOW+2),this.hoge[i+1]=new Array(F.H_PARTS_NUM_IN_WINDOW+2),s=-1;s<=F.H_PARTS_NUM_IN_WINDOW;s++)if(n+i<0||n+i>=this._wwaData.mapWidth||r+s<0||r+s>=this._wwaData.mapWidth)t[i+1][s+1]=0,this.hoge[i+1][s+1]=0;else{try{var o=(h=new _(this,r+s,n+i,0,0)).getPartsCoord()}catch(e){t[i+1][s+1]=0,this.hoge[i+1][s+1]=0;continue}this._wwaData.mapObject[o.y][o.x];t[i+1][s+1]=this._wwaData.mapObject[o.y][o.x],this.hoge[i+1][s+1]=-this._wwaData.mapObject[o.y][o.x]}for(s=-1;s<=F.H_PARTS_NUM_IN_WINDOW;s++)if(!(r+s<0||r+s>=this._wwaData.mapWidth))for(i=-1;i<=F.V_PARTS_NUM_IN_WINDOW;i++)if(!(n+i<0||n+i>=this._wwaData.mapWidth)){try{var h;o=(h=new _(this,r+s,n+i,0,0)).getPartsCoord()}catch(e){continue}var c=this._wwaData.mapObject[o.y][o.x];if(0!==c&&this._wwaData.objectAttribute[c][F.ATR_MOVE]!==D.STATIC&&this._wwaData.objectAttribute[c][F.ATR_TYPE]!==F.OBJECT_LOCALGATE&&this._wwaData.objectAttribute[c][F.ATR_TYPE]!==F.OBJECT_RANDOM&&(this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.CHASE_PLAYER||this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.RUN_OUT||this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.HANG_AROUND)){var u=this._wwaData.objectAttribute[c][F.ATR_MOVE];if(u!==D.HANG_AROUND){var d,p=this._getCandidateCoord(e,h,u),m=new l(p.x,o.y),g=new l(o.x,p.y),E=null;if(this._objectCanMoveTo(e,p,t))this._setObjectsInNextFrame(o,p,r,n,t,c);else{var w=this._getSecondCandidateMoveMode(e,o,p,m,g,this._wwaData.objectAttribute[c][F.ATR_TYPE]===F.OBJECT_MONSTER,t);w===N.MODE_X?this._setObjectsInNextFrame(o,m,r,n,t,c):w===N.MODE_Y?this._setObjectsInNextFrame(o,g,r,n,t,c):null===(E=this._getThirdCandidate(e,h,p,u,t))||this._wwaData.isOldMove?(d=this._getRandomMoveCoord(e,h,t),this._setObjectsInNextFrame(o,d,r,n,t,c)):this._setObjectsInNextFrame(o,E,r,n,t,c)}}else d=this._getRandomMoveCoord(e,h,t),this._setObjectsInNextFrame(o,d,r,n,t,c)}}}}_getCandidateCoord(e,t,s){var i=t.getPartsCoord();this._player.getPosition().getOffsetCoord(),this._player.getPosition().getPartsCoord();try{var a=e?this._player.getPosition().getNextJustPosition().getPartsCoord():this._player.getPosition().getPartsCoord()}catch(e){throw new Error("予期せぬ方向への移動のようです。")}var r=i.clone(),n=0,o=0;return s===D.CHASE_PLAYER?(n=i.x>a.x?-1:i.x<a.x?1:0,o=i.y>a.y?-1:i.y<a.y?1:0):s===D.RUN_OUT&&(n=i.x>a.x?1:i.x<a.x?-1:0,o=i.y>a.y?1:i.y<a.y?-1:0),r.x+=n,r.y+=o,r.x=Math.min(this._wwaData.mapWidth-1,Math.max(0,r.x)),r.y=Math.min(this._wwaData.mapWidth-1,Math.max(0,r.y)),r}_getSecondCandidateMoveMode(e,t,s,i,a,r,n){return!e||(this._player.getDir()!==m.UP&&this._player.getDir()!==m.DOWN||!r)&&(this._player.getDir()!==m.LEFT&&this._player.getDir()!==m.RIGHT||r)?this._objectCanMoveTo(e,i,n)?N.MODE_X:this._objectCanMoveTo(e,a,n)?N.MODE_Y:N.UNDECIDED:this._objectCanMoveTo(e,a,n)?N.MODE_Y:this._objectCanMoveTo(e,i,n)?N.MODE_X:N.UNDECIDED}_getThirdCandidate(e,t,s,i,a){var r,n=i===D.CHASE_PLAYER?1:i===D.RUN_OUT?-1:0,o=e?this._player.getPosition().getNextJustPosition().getPartsCoord():this._player.getPosition().getPartsCoord(),h=t.getPartsCoord();if(o.x!==h.x){if(r=new l(s.x,h.y+1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(s.x,h.y-1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x,h.y+1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x,h.y-1*n),this._objectCanMoveTo(e,r,a))return r}if(o.y!==h.y){if(r=new l(h.x+1*n,s.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x-1*n,s.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x+1*n,h.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x-1*n,h.y),this._objectCanMoveTo(e,r,a))return r}return null}_getRandomMoveCoord(e,t,s){const i=t.getPartsCoord(),a=i.clone(),r=this._wwaData.isOldMove?F.RANDOM_MOVE_ITERATION_NUM_BEFORE_V31:F.RANDOM_MOVE_ITERATION_NUM;for(let t=0;t<r;t++){const t=[-1,1,0,0,-1,-1,1,1],r=[0,0,1,-1,1,-1,1,-1],n=Math.floor(Math.random()*t.length);if(a.x=i.x+t[n],a.y=i.y+r[n],this._objectCanMoveTo(e,a,s))return a}return i}isPrevFrameEventExecuted(){return this._prevFrameEventExected}_objectCanMoveTo(e,t,s){if(t.x<0||t.y<0||this._wwaData.mapWidth<=t.x||this._wwaData.mapWidth<=t.y)return!1;var i=this._wwaData.map[t.y][t.x],a=this._wwaData.mapObject[t.y][t.x],r=this._wwaData.mapAttribute[i][F.ATR_TYPE],n=this._camera.getPosition(),o=n.getPartsCoord().x,h=n.getPartsCoord().y;if(0===i&&!this.isOldMap()||r===F.MAP_WALL)return!1;var c=t.x-o+1,l=t.y-h+1;if(0<=c&&0<=l&&c<s.length&&l<s.length){if(0!==s[l][c])return!1}else if(0!==a)return!1;if(e){if(this._player.getPosition().getNextJustPosition().getPartsCoord().equals(t))return!1}else if(this._player.getPosition().getPartsCoord().equals(t))return!1;return!0}_setObjectsInNextFrame(e,t,s,i,a,r){var n=t.x-s+1,o=t.y-i+1;0<=t.x&&t.x<=this._wwaData.mapWidth&&0<=t.y&&t.y<=this._wwaData.mapWidth&&(0<=n&&n<a.length&&0<=o&&o<a.length&&(a[e.y-i+1][e.x-s+1]=0,a[t.y-i+1][t.x-s+1]=r,this.hoge[t.y-i+1][t.x-s+1]=r),this._objectMovingDataManager.add(r,e.convertIntoPosition(this),t.convertIntoPosition(this),e.getDirectionTo(t)))}launchBattleEstimateWindow(){const e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x),s=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW-1),i=Math.max(0,e.y),a=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW-1),r=[];this.playSound(B.DECISION);for(let e=t;e<=s;e++)for(let t=i;t<=a;t++){const s=this._wwaData.mapObject[t][e];this._wwaData.objectAttribute[s][F.ATR_TYPE]!==F.OBJECT_MONSTER||r.find((e=>e.partsID===s))||r.push(this._createMonster(s,new l(e,t)))}if(this._bottomButtonType===p.BATTLE_REPORT&&me(x[C.GOTO_WWA]).classList.add("onpress"),0===r.length)return me(x[C.GOTO_WWA]).classList.remove("onpress"),this.hideBattleEstimateWindow(),!1;this._battleEstimateWindow.update(this._player.getStatus(),r,((e,t)=>this._player.calcBattleResultForPlayerTurn(e,t.status,!0)),((e,t)=>this._player.calcBattleResultForEnemyTurn(e.status,t,!0)),this.isUsingDefaultDamageCalcFunction()),this._battleEstimateWindow.show(),this._player.setEstimateWindowWating();const n=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_BATTLE_REPORT;return n&&this.evalCalcWwaNodeGenerator.evalWwaNode(n),!0}isUsingDefaultDamageCalcFunction(){return void 0===this.getUserDefinedDamageFunctionNode("enemyToPlayer")&&void 0===this.getUserDefinedDamageFunctionNode("playerToEnemy")}_createMonster(e,t,s){return new Ht(e,t,new l(this._wwaData.objectAttribute[e][F.ATR_X],this._wwaData.objectAttribute[e][F.ATR_Y]),new c(this._wwaData.objectAttribute[e][F.ATR_ENERGY],this._wwaData.objectAttribute[e][F.ATR_STRENGTH],this._wwaData.objectAttribute[e][F.ATR_DEFENCE],this._wwaData.objectAttribute[e][F.ATR_GOLD]),this._wwaData.message[this._wwaData.objectAttribute[e][F.ATR_STRING]],this._wwaData.objectAttribute[e][F.ATR_ITEM],s)}hideBattleEstimateWindow(){this._battleEstimateWindow.hide(),this._player.clearEstimateWindowWaiting(),me(x[C.GOTO_WWA]).classList.remove("onpress"),this._dispatchWindowClosedTimeRequests()}hidePasswordWindow(e=!1){if(this._passwordWindow.hide(),e||this._passwordWindow.mode===hs.SAVE)return this._player.clearPasswordWindowWaiting(),void this._dispatchWindowClosedTimeRequests();try{var t=this._quickLoad(!1,this._passwordWindow.password,!1)}catch(e){return this._player.clearPasswordWindowWaiting(),this._dispatchWindowClosedTimeRequests(),void alert("セーブデータの復元に失敗しました。\nエラー詳細:\n"+e.message)}this._passwordLoadExecInNextFrame=!0,this._passwordSaveExtractData=t}_displayUserVars(){if(!this._canDisplayUserVars||!this._inlineUserVarViewer)return;let e="";if(this._inlineUserVarViewer.isVisible=!0,this._player.isControllable()){const t=[...this._userVar.named];if("named"===this._inlineUserVarViewer.kind)if(e="名前つき変数一覧\n",0===t.length)e+="名前つき変数はありません\n";else if(t.length<=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM)e+=t.map((([e,t])=>`${e}: ${Te(t)}`)).join("\n"),e+="\n";else for(let s=0;s<F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM;s++){let i=(this._inlineUserVarViewer.topUserVarIndex[this._inlineUserVarViewer.kind]+s)%t.length;e+=`${t[i][0]}: ${Te(t[i][1],!0)}\n`}else if("numbered"===this._inlineUserVarViewer.kind){e="変数一覧\n",this._userVarNameListRequestError&&("noFileSpecified"===this._userVarNameListRequestError.kind?e+=this._userVarNameListRequestError.errorMessage+"\n":(e+="【変数名取得失敗】\n",e+=" すべての変数を名無しとしています。\n",e+=` エラー詳細: ${this._userVarNameListRequestError.errorMessage}\n`));for(let t=0;t<F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM;t++){let s=(this._inlineUserVarViewer.topUserVarIndex[this._inlineUserVarViewer.kind]+t)%F.USER_VAR_NUM;e+=`${`変数 ${s}: ${this._userVarNameList&&this._userVarNameList[s]?this._userVarNameList[s]:"名無し"}`}: ${Te(this._userVar.numbered[s],!0)}\n`}}e+="\n操作方法\n",e+="上キー:1つ戻す 下キー:1つ進める\n",e+="左キー:10個戻す 右キー:10個進める\n",e+="Vキー: 名前付き変数/通常変数の切り替え",this.registerSystemMessagePage(e)}}_displayHelp(){var e;if(this._player.isControllable()){const s=null===(e=this._playTimeCalculator)||void 0===e?void 0:e.calculatePlayTimeFormat();var t="";switch(this.userDevice.device){case S.GAME:switch(this.userDevice.os){case A.NINTENDO:t=" 【操作方法】\nA:Yes,戦闘結果予測の表示\nB:No\nX:メニュー\nY:このリストの表示\nR:初めからスタート\nZL:データの一時保存\nZR:一時保存データの読み込み\n+: 移動速度を上げる\n-: 移動速度を落とす\n WWA Wing バージョン:4.1.0-unstable.based-on.3.12.18.p.6\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;case A.PLAY_STATION:t=" 【操作方法】\n〇:Yes,戦闘結果予測の表示\n×:No\n△:メニュー\n□:このリストの表示\nR1:初めからスタート\nL2:データの一時保存\nR2:一時保存データの読み込み\nOPTIONS: 移動速度を上げる\nSHARE: 移動速度を落とす\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.18.p.6\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;case A.XBOX:t=" 【操作方法】\nB:Yes,戦闘結果予測の表示\nA:No\nY:メニュー\nX:このリストの表示\nRB:初めからスタート\nLT:データの一時保存\nRT:一時保存データの読み込み\nMENU: 移動速度を上げる\nWINDOW: 移動速度を落とす\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.18.p.6\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;default:return}break;case S.SP:case S.VR:return;case S.PC:t=" 【操作方法】\nF1、M:戦闘結果予測の表示\nF3:復帰用パスワード入力\nF4:復帰用パスワード表示\nF5:一時保存データの読み込み\nF6:データの一時保存\nF7:初めからスタート\nF8:WWA公式ページにリンク\nF12:このリストの表示\nキーボードの「123、QWE、ASD、ZXC」は右のアイテムボックスに対応。\n「Enter、Y」はYes,\n「Esc、N」はNoに対応。\n   I: 移動速度を落とす/\nF2、P: 移動速度を上げる\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.18.p.6\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;default:return}t&&this.registerSystemMessagePage(t)}}_setNextPage(){if(this._clearFacesInNextFrame=!0,this._scoreWindow.isVisible()&&this._scoreWindow.hide(),this._isLastPage&&void 0!==this._reservedMoveMacroTurn&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0),0===this._pages.length){const{newPageGenerated:e}=this._hideMessageWindow();e||(this.clearFaces(),this._dispatchWindowClosedTimeRequests())}else this._shouldSetNextPage=!0;this._inlineUserVarViewer&&(this._inlineUserVarViewer.isVisible=!1)}_hideMessageWindow(){const e=this._player.isReadyToUseItem()?this._player.useItem():0,t=this.getObjectAttributeById(e,F.ATR_STRING);return 0===t?(this._messageWindow.isVisible()&&(this._player.setDelayFrame(),this._messageWindow.hide(),this._keyStore.allClear(),this._mouseStore.clear()),this._player.clearMessageWaiting(),{newPageGenerated:!1}):(this.registerPageByMessage(this.getMessageById(t),{triggerParts:{id:e,type:v.OBJECT,position:this._player.getPosition().getPartsCoord()}}),{newPageGenerated:0!==this._pages.length})}getPlayerPositon(){return this._player.getPosition()}loadMapPartsObjectID(e){return(e|=0)<0||e>=this._wwaData.objPartsMax?0:e}loadMapPartsID(e){return(e|=0)<0||e>=this._wwaData.mapPartsMax?0:e}replaceParts(e,t,s=v.OBJECT,i=!1){var a,r,n,o,h,c,l,_,u=this._camera.getPosition().getPartsCoord(),d=i?Math.max(0,u.x):0,p=i?Math.min(this._wwaData.mapWidth-1,u.x+F.H_PARTS_NUM_IN_WINDOW-1):this._wwaData.mapWidth-1,m=i?Math.max(0,u.y):0,g=i?Math.min(this._wwaData.mapWidth-1,u.y+F.V_PARTS_NUM_IN_WINDOW)-1:this._wwaData.mapWidth-1;if(i=0!==d||p!==this._wwaData.mapWidth-1||0!==m||g!==this._wwaData.mapWidth-1,s===v.OBJECT)if(e=this.loadMapPartsObjectID(e),t=this.loadMapPartsObjectID(t),o=this._mapObjectIDTable[e].concat(),(l=this._mapObjectIDTable[e]).length=0,_=this._mapObjectIDTable[t],r=o.length,i)for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,d<=h&&h<=p&&m<=c&&c<=g?(this._wwaData.mapObject[c][h]=t,_.push(a)):l.push(a);else{for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,this._wwaData.mapObject[c][h]=t;Array.prototype.push.apply(_,o)}else if(e=this.loadMapPartsID(e),t=this.loadMapPartsID(t),o=this._mapIDTable[e].concat(),(l=this._mapIDTable[e]).length=0,_=this._mapIDTable[t],r=o.length,i)for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,d<=h&&h<=p&&m<=c&&c<=g?(this._wwaData.map[c][h]=t,_.push(a)):l.push(a);else{for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,this._wwaData.map[c][h]=t;Array.prototype.push.apply(_,o)}}getYesNoImgCoord(){return new l(this._wwaData.yesnoImgPosX,this._wwaData.yesnoImgPosY)}setYesNoImgCoord(e){return this._wwaData.yesnoImgPosX=e.x,this._wwaData.yesnoImgPosY=e.y,e}getPlayerImgCoord(){return new l(this._wwaData.playerImgPosX,this._wwaData.playerImgPosY)}setPlayerImgCoord(e){return this._wwaData.playerImgPosX=e.x,this._wwaData.playerImgPosY=e.y,e}setPlayerEnergyMax(e){return this._player.setEnergyMax(this.toValidStatusValue(e))}getMapPartsNum(){return this._wwaData.mapPartsMax}getObjectPartsNum(){return this._wwaData.objPartsMax}setMoveMacroWaitingToPlayer(e){this._reservedMoveMacroTurn=e}disableSave(e){return this._wwaData.disableSaveFlag=e,this._wwaSave.quickSaveButtonUpdate(this._wwaData),e}isOldMap(){return this._wwaData.isOldMap}setOldMap(e){return this._wwaData.isOldMap=e}setObjectNotCollapseOnPartsOnPlayer(e){return this._wwaData.objectNoCollapseDefaultFlag=e}setGameOverPosition(e){if(e.x<0||e.x>=this.getMapWidth()||e.y<0||e.y>=this.getMapWidth())throw new Error("マップの範囲外が指定されています!");return this._wwaData.gameoverX=e.x,this._wwaData.gameoverY=e.y,e}getGemeOverPosition(){return new l(this._wwaData.gameoverX,this._wwaData.gameoverY)}toValidStatusValue(e){return this.isNotNumberTypeOrNaN(e)||e<0?0:Math.floor(e)}setPlayerStatus(e,t,s){if(e===L.ENERGY){if(this._player.setEnergy(this.toValidStatusValue(t)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:s}))return this.gameover(),{isGameOver:!0}}else if(e===L.STRENGTH)this._player.setStrength(this.toValidStatusValue(t));else if(e===L.DEFENCE)this._player.setDefence(this.toValidStatusValue(t));else if(e===L.GOLD)this._player.setGold(this.toValidStatusValue(t));else{if(e!==L.MOVES)throw new Error("未定義のステータスタイプです");this._player.setMoveCount(this.toValidStatusValue(t))}return{}}setDelPlayer(e){return this._wwaData.delPlayerFlag=e}setPlayerGetItem(e,t){try{this._player.addItem(t,e,!0)}catch(e){}}setStatusIconCoord(e,t){const s=t.x*F.CHIP_SIZE,i=t.y*F.CHIP_SIZE,a=e=>{Ee(`${e}>.status-icon`).style.backgroundPosition=`-${s}px -${i}px`};switch(e){case R.ENERGY:this._wwaData.imgStatusEnergyX=t.x,this._wwaData.imgStatusEnergyY=t.y,a("#disp-energy");break;case R.STRENGTH:this._wwaData.imgStatusStrengthX=t.x,this._wwaData.imgStatusStrengthY=t.y,a("#disp-strength");break;case R.DEFENCE:this._wwaData.imgStatusDefenceX=t.x,this._wwaData.imgStatusDefenceY=t.y,a("#disp-defence");break;case R.GOLD:this._wwaData.imgStatusGoldX=t.x,this._wwaData.imgStatusGoldY=t.y,a("#disp-gold");break;default:throw new Error("種別が不正です。")}return t.clone()}setWideCellCoord(e){this._wwaData.imgWideCellX=e.x,this._wwaData.imgWideCellY=e.y;const t=e.x*F.CHIP_SIZE,s=e.y*F.CHIP_SIZE;return Array.prototype.forEach.call(we("div.wide-cell-row"),(e=>{e.style.backgroundPosition="-"+t+"px -"+s+"px"})),e.clone()}setFrameCoord(e){return this._wwaData.imgFrameX=e.x,this._wwaData.imgFrameY=e.y,this._cgManager.setFrameImage(e),e.clone()}setBattleEffectCoord(e){return this._battleEffectCoord=e.clone()}canInput(){return!this._temporaryInputDisable&&!this._cgManager.picture.isWaiting()}setEffect(e,t){this._wwaData.effectWaits=e,this._wwaData.effectCoords=t,this.updateEffect()}stopEffect(){this._wwaData.effectCoords=[],this.updateEffect()}updateEffect(){this._cgManager.updateEffects(this._wwaData.effectCoords)}updateAllPicturesCache(){this._cgManager.updateAllPicturesCache(this._isMainAnimation())}updatePicturesAnimation(){this._player.isPausing()||this._cgManager.updatePicturesAnimation(this._isMainAnimation())}setImgClick(e){if(this._wwaData.imgClickX=e.x,this._wwaData.imgClickY=e.y,e.equals(new l(0,0)))Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(e=>{e.style.backgroundImage="url('"+F.ITEM_BORDER_IMG_DATA_URL+"')",e.style.backgroundPosition="0 0"}));else{var t=this._wwaData.mapCGName.replace("(","\\(").replace(")","\\)");Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(s=>{s.style.backgroundImage="url('"+t+"')",s.style.backgroundPosition="-"+e.x*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"}))}}addFace(e){this._faces.push(e),this._messageWindow.setPositionByPlayerPosition(0!==this._faces.length,this._scoreWindow.isVisible(),!1,this._player.getPosition(),this._camera.getPosition())}clearFaces(){this._faces=[]}updateItemEffectEnabled(e){this._wwaData.isItemEffectEnabled=e}setOldMove(e){this._wwaData.isOldMove=e}setGameOverPolicy(e){switch(e){case 0:return void(this._wwaData.gameOverPolicy="default");case 1:return void(this._wwaData.gameOverPolicy="never");case 2:return void(this._wwaData.gameOverPolicy="except-macro");default:return}}setBgmDelay(e){this._wwaData.bgmDelayDurationMs=e}setPictureRegistry(t,s,i,a,r){var n,o,h,c,l;const _=i===v.OBJECT?this._wwaData.objectAttribute[s]:i===v.MAP?this._wwaData.mapAttribute[s]:null;if(null===_)throw new Error("対応していないパーツ番号です。");const u=this.getMessageById(_[F.ATR_STRING]);if(!u)throw i===v.OBJECT?new Error(`物体パーツ ${s} 番に対応したテキストが見つかりませんでした。`):new Error(`背景パーツ ${s} 番に対応したテキストが見つかりませんでした。`);const d=this._returnEvalString("("+u+")"),p=this._cgManager.picture.registerPictureFromRawRegistry({layerNumber:t,imgPosX:(null!==(n=_[F.ATR_X])&&void 0!==n?n:0)/F.CHIP_SIZE,imgPosX2:(null!==(o=_[F.ATR_X2])&&void 0!==o?o:0)/F.CHIP_SIZE,imgPosY:(null!==(h=_[F.ATR_Y])&&void 0!==h?h:0)/F.CHIP_SIZE,imgPosY2:(null!==(c=_[F.ATR_Y2])&&void 0!==c?c:0)/F.CHIP_SIZE,triggerPartsX:a.x,triggerPartsY:a.y,soundNumber:null!==(l=_[F.ATR_SOUND])&&void 0!==l?l:0,properties:e(d)},s,i,r);this._wwaData.pictureRegistry=p,this.updateAllPicturesCache()}setPictureRegistryFromRawText(e,t){const s=this._cgManager.picture.registerPictureFromRawText(e,t);this._wwaData.pictureRegistry=s,this.updateAllPicturesCache()}setPictureRegistryFromObject(e,t){const s=this._cgManager.picture.registerPictureFromObject(e,t);this._wwaData.pictureRegistry=s,this.updateAllPicturesCache()}deletePictureRegistry(e){const t=this._cgManager.picture.deletePicture(e);this._wwaData.pictureRegistry=t}clearAllPictures(){this._cgManager.picture.clearAllPictures(),this._wwaData.pictureRegistry=[]}initCSSRule(){this._styleElm=me(F.WWA_STYLE_TAG_ID),this._sheet=this._styleElm.sheet,this.updateCSSRule()}updateCSSRule(){if(void 0===this._stylePos)this._stylePos=new Array(2);else if(void 0!==this._sheet.addRule)for(var e=0;e<this._stylePos.length;e++)this._sheet.removeRule(this._stylePos[this._styleElm[e]]);else for(e=0;e<this._stylePos.length;e++)this._sheet.deleteRule(this._stylePos[this._styleElm[e]]);const t="div.wwa-message-window, div#wwa-text-message-window, div#wwa-battle-estimate, div#wwa-password-window",s=this._isClassicModeEnable?1:.9,i=`\nbackground-color: rgba(${this._wwaData.frameColorR}, ${this._wwaData.frameColorG}, ${this._wwaData.frameColorB}, ${s});\nborder-color: rgba(${this._wwaData.frameOutColorR}, ${this._wwaData.frameOutColorG}, ${this._wwaData.frameOutColorB}, 1);\ncolor: rgba(${this._wwaData.fontColorR}, ${this._wwaData.fontColorG}, ${this._wwaData.fontColorB}, 1);\nwhite-space: pre-wrap;\n`,a="div#wwa-sidebar",r=`\ncolor: rgba(${this._wwaData.statusColorR}, ${this._wwaData.statusColorG}, ${this._wwaData.statusColorB},1);\nfont-weight: bold;\n`;void 0!==this._sheet.addRule?(this._stylePos[J.MESSAGE_WINDOW]=this._sheet.addRule(t,i),this._stylePos[J.SIDEBAR]=this._sheet.addRule(a,r)):(this._stylePos[J.MESSAGE_WINDOW]=this._sheet.insertRule(`${t} { ${i} }`,0),this._stylePos[J.SIDEBAR]=this._sheet.insertRule(`${a} { ${r} }`,1))}changeStyleRule(e,t,s,i){e===$.COLOR_FRAME?(this._wwaData.frameColorR=t,this._wwaData.frameColorG=s,this._wwaData.frameColorB=i):e===$.COLOR_FRAMEOUT?(this._wwaData.frameOutColorR=t,this._wwaData.frameOutColorG=s,this._wwaData.frameOutColorB=i):e===$.COLOR_STR?(this._wwaData.fontColorR=t,this._wwaData.fontColorG=s,this._wwaData.fontColorB=i):e===$.COLOR_STATUS_STR&&(this._wwaData.statusColorR=t,this._wwaData.statusColorG=s,this._wwaData.statusColorB=i),this.updateCSSRule()}showMonsterWindow(){this._monsterWindow.show()}isClassicMode(){return this._isClassicModeEnable}isConsoleOutputMode(){return this._useConsole}forcedJumpGate(e,t){this._player.isWaitingMessage()?this._windowCloseWaitingJumpGateRequest={x:e,y:t}:(this._windowCloseWaitingJumpGateRequest=void 0,this._player.jumpTo(new _(this,e,t,0,0)))}setUserVarIndecies(e,t,s="="){const i=this._userVar.named.get(e[0]),a=e.length-1,r=e.slice(1,a).reduce(((e,t)=>Ie(e,t)),i);let n=t;const o=e[a];if(!(e.length>1))throw new Error(`indeciesの引数が足りていません: ${e}`);switch(s){case"=":n=t;break;case"+=":n=Ie(r,o)+t;break;case"-=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)-t;break;case"*=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)*t;break;case"/=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)/t;break;default:throw new TypeError(`その演算子は利用できません: ${s}`)}if(Array.isArray(r)){if("number"!=typeof o)throw new TypeError(`配列の添字に数字以外は使えません: ${e[a]}`);r[o]=n}else if("object"==typeof r&&null!==r){Ce(r,String(o),n)}else{if("string"==typeof r)throw new TypeError(`文字列 "${r}" の特定の文字を直接書き換えることはできません`);Ce(r,o,n)}this._userVar.named.set(e[0],i)}setUserVar(e,t,s){const i=(e,t)=>{if("number"==typeof e){if("number"!=typeof t)throw new TypeError("数字index変数への数値以外の代入は今のところできません。あらかじめご了承ください。");this._userVar.numbered[e]="number"==typeof t?this.toAssignableValue(t):t}else this._userVar.named.set(e,t)},a=(e=>"number"==typeof e?this._userVar.numbered[e]:this._userVar.named.get(e))(e);if("number"==typeof t)switch(s){case"+=":if("number"==typeof a)i(e,a+t);else{if("string"!=typeof a)throw new TypeError("boolean に number は足せません");i(e,String(a)+t)}break;case"-=":if("number"!=typeof a)throw new TypeError("string/boolean から number は引けません");i(e,a-t);break;case"*=":if("number"!=typeof a)throw new TypeError("string/boolean に number はかけられません");i(e,a*t);break;case"/=":if("number"!=typeof a)throw new TypeError("string/boolean は number で割れません");i(e,a/t);break;default:i(e,t)}else if("string"==typeof t)switch(s){case"+=":i(e,a+t);break;case"=":i(e,t);break;default:throw new TypeError("文字列を -=, *=, /= で複合代入することはできません")}else switch(s){case"+=":if("string"!=typeof a)throw new TypeError("number/boolean に boolean を足せません");i(e,a+t);break;case"=":i(e,t);break;default:throw new TypeError("booleanを -=, *=, /= で複合代入することはできません")}this._messageWindow.update()}toAssignableValue(e){const t=e>0?Math.floor(e):Math.ceil(e),s=Math.max(Math.min(t,F.USER_VAR_NUM_MAX_VALUE),F.USET_VAR_NUM_MIN_VALUE);return this.isNotNumberTypeOrNaN(s)?0:s}isValidUserVarIndex(e){return"number"==typeof e&&e>=0&&e<F.USER_VAR_NUM&&(0|e)===e}isNotNumberTypeOrNaN(e){return"number"!=typeof e||e!=e}getUserVar(e){return this._userVar.numbered[e]}getUserNameVar(e){return this._userVar.named.get(e.toString())}getAllUserNameVar(){return e(this._userVar.named)}recUserPosition(e,t){var s=this._player.getPosition().getPartsCoord();this.setUserVar(e,s.x),this.setUserVar(t,s.y)}jumpRecUserPosition(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.forcedJumpGate(s,i)}jumpSpecifiedXPos(e){const t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(e,t.y)}jumpSpecifiedYPos(e){const t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(t.x,e)}outputUserVar(e){console.log("Var["+e+"] = "+this._userVar.numbered[e])}setUserVarHP(e){this.setUserVar(e,this._player.getStatus().energy)}setUserVarHPMAX(e){this.setUserVar(e,this._player.getEnergyMax())}setUserVarAT(e,t){switch(t){case"bare":return void this.setUserVar(e,this._player.getStatusWithoutEquipments().strength);case"equipment":return void this.setUserVar(e,this._player.getStatusOfEquipments().strength);default:return void this.setUserVar(e,this._player.getStatus().strength)}}setUserVarDF(e,t){switch(t){case"bare":return void this.setUserVar(e,this._player.getStatusWithoutEquipments().defence);case"equipment":return void this.setUserVar(e,this._player.getStatusOfEquipments().defence);default:return void this.setUserVar(e,this._player.getStatus().defence)}}setUserVarMONEY(e){this.setUserVar(e,this._player.getStatus().gold)}setHPUserVar(e,t){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const s=this._userVar.numbered[e];if(Se(s,`v[${e}]`))return this._player.setEnergy(this.toValidStatusValue(s)),this._player.updateStatusValueBox(),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:t})?(this.gameover(),{isGameOver:!0}):{}}setHPMAXUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setEnergyMax(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setATUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setStrength(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setDFUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setDefence(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setMONEYUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setGold(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setUserVarStep(e){this.setUserVar(e,this._player.getMoveCount())}setUserVarVal(e,t){this.setUserVar(e,t)}setUserValOtherUserVal(e,t){this.setUserVar(e,this._userVar.numbered[t])}setUserValAdd(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];"boolean"!=typeof s&&"boolean"!=typeof i&&this.setUserVar(e,s+i)}setUserValSub(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,s-i)}setUserValMul(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,s*i)}setUserValDiv(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,0===i?0:s/i)}setUserValMod(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,0===i?0:s%i)}setUserValRandNum(e,t,s){this.setUserVar(e,Math.floor(Math.random()*this.toAssignableValue(t))+s)}speedChangeJudge(e){this._wwaData.permitChangeGameSpeed=e}execSetMacro(e="",t){const s=function(e,t){const s=dt(e),i=s.match(et);if(null!==i){const e=pt(i[2],t),s=pt(i[4],t);return ut(_t(i[3],e,s),i[1])}const a=s.match(tt);if(null!==a){const e=pt(a[1],t),s=pt(a[3],t);return ut(_t(a[2],e,s),a[1])}throw new Error("setMacroのフォーマットを満たしていません: "+e)}(e,this.generateTokenValues(t.triggerParts)),{assignee:i,rawValue:a}=s;switch(i){case"energy":if(this._player.setEnergy(this.toValidStatusValue(a)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:!0}))return this._player.updateStatusValueBox(),this.gameover(),{isGameOver:!0};break;case"energyMax":this._player.setEnergyMax(this.toValidStatusValue(a));break;case"strength":this._player.setStrength(this.toValidStatusValue(a));break;case"defence":this._player.setDefence(this.toValidStatusValue(a));break;case"gold":this._player.setGold(this.toValidStatusValue(a));break;case"moveCount":this._player.setMoveCount(this.toValidStatusValue(a));break;case"variable":if(isNaN(s.index)||!this.isValidUserVarIndex(s.index))throw new Error("ユーザ変数の添字が範囲外です。");this.setUserVar(s.index,this.toAssignableValue(a));break;case"map":this.appearPartsEval(t.triggerParts.position,`${s.x}`,`${s.y}`,s.rawValue,v.MAP);break;case"mapObject":this.appearPartsEval(t.triggerParts.position,`${s.x}`,`${s.y}`,s.rawValue,v.OBJECT);break;case"item":this.setPlayerGetItem(s.boxIndex1to12,a);break;case"playerDirection":this._player.setDir(a)}return this._player.updateStatusValueBox(),{}}generateTokenValues(e){var t,s;return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),itemBox:this._player.getCopyOfItemBox(),partsId:null==e?void 0:e.id,partsType:null==e?void 0:e.type,partsPosition:null==e?void 0:e.position,map:this._wwaData.map,mapObject:this._wwaData.mapObject}}userVarUserIf(e,t){if(void 0===t[5])throw new Error("$if の引数不足 str="+t);const s=parseInt(t[0],10),i=parseInt(t[2],10);if(!this.isValidUserVarIndex(s)||!this.isValidUserVarIndex(i))throw new Error("判定対象のユーザ変数の添字が範囲外です!");const a=this._userVar.numbered[s],r=t[1],n=this._userVar.numbered[i];if(!Se(a,`v[${s}]`)||!Se(n,`v[${i}]`))return;const o=e=>parseInt(e,10)?v.MAP:v.OBJECT;if(this.compareUserVar(a,r,n)){const s=parseInt(t[3],10),i=t[4],a=t[5],r=o(t[6]);return void this.appearPartsEval(e,i,a,s,r)}if(void 0===t[9])return;const h=parseInt(t[7],10),c=t[8],l=t[9],_=o(t[10]);this.appearPartsEval(e,c,l,h,_)}compareUserVar(e,t,s){switch(t){case"==":return e===s;case"!=":return e!==s;case">=":return e>=s;case">":return e>s;case"<=":return e<=s;case"<":return e<s;default:throw new Error(`未定義の演算子です: ${t}`)}}setPlayerSpeedIndex(e){if(e<F.MIN_SPEED_INDEX||F.MAX_SPEED_INDEX<e)throw new Error("#set_speed の引数が異常です:"+e);this._player.isMoving()?this._playerAndObjectsStopWaitingGameSpeedChangeRequest={speedIndex:e}:(this._wwaData.gameSpeedIndex=this._player.setSpeedIndex(e),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0)}setUserVarPlayTime(e){var t,s;this.setUserVar(e,null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0)}hideStatus(e,t){if(e<0||e>V.length)throw new Error("隠すパラメータは0から3の間で指定してください。");this._changeStatusVisibility(V[e],!t),this._player.updateStatusValueBox()}varMap(e,t,s,i,a){if(!this.isValidUserVarIndex(i))throw new Error("対象のユーザ変数の添字が範囲外です");const r=this._userVar.numbered[i];if("number"!=typeof r)throw new Error("数値でないパーツ番号は指定できません");if(r<0)throw new Error("負のパーツ番号は指定できません");if(a===v.OBJECT&&r>=this.getObjectPartsNum())throw new Error("物体パーツ番号の最大値を超えるパーツ番号が指定されました");if(a===v.MAP&&r>=this.getMapPartsNum())throw new Error("背景パーツ番号の最大値を超えるパーツ番号が指定されました");this.appearPartsEval(e,t,s,r,a)}setItemboxBackgroundPosition(e){this._wwaData.imgItemboxX=e.x,this._wwaData.imgItemboxY=e.y,Array.prototype.forEach.call(we("div.item-cell"),(t=>{t.style.backgroundPosition=`-${e.x*F.CHIP_SIZE}px -${e.y*F.CHIP_SIZE}px`}))}_getVirtualPadButton(e){if(!ce.includes(e))throw new ReferenceError(`WWAの仮想パッド ${e} は存在しません。`);return this._virtualPadButtonElements[e]}_setVirtualPadTouch(e){this._getVirtualPadButton(e).classList.add("wwa-virtualpad__button--pressed")}_setVirtualPadLeave(e){this._getVirtualPadButton(e).classList.remove("wwa-virtualpad__button--pressed")}_actionGamePadButtonItemMacro(){if(!this._wwaData.gamePadButtonItemTable)return!1;var e,t,s,i;for(e=this._wwaData.gamePadButtonItemTable.length,t=0;t<e;t++)if(s=this._wwaData.gamePadButtonItemTable[t]){switch(i=!1,t){case te.BUTTON_CROSS_KEY_LEFT:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)&&(i=!0);break;case te.BUTTON_CROSS_KEY_RIGHT:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)&&(i=!0);break;case te.BUTTON_CROSS_KEY_UP:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)&&(i=!0);break;case te.BUTTON_CROSS_KEY_DOWN:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)&&(i=!0)}if(this._gamePadStore.buttonTrigger(t)&&(i=!0),i&&this.onselectitem(s))return!0}return!1}setGamePadButtonItemTable(e,t){var s,i;if(!this._wwaData.gamePadButtonItemTable)for(i in this._wwaData.gamePadButtonItemTable=[],te)s=i,this._wwaData.gamePadButtonItemTable[s]=0;this._wwaData.gamePadButtonItemTable.length>e&&(this._wwaData.gamePadButtonItemTable[e]=t)}_checkSaveDataCompatibility(e,t,s){return void 0!==e&&e!==this._wwaData.worldName?js.UNMATCHED_WORLD_NAME:s&&s!==Zs(this._wwaData.worldName,this._wwaData.worldPassNumber)?js.UNMATCHED_WORLD_PASS_NUMBER:this._isDisallowLoadOldSave&&t!==this.checkOriginalMapString?js.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:null}isVisibleStatus(e){switch(e){case"energy":return this._wwaData.isVisibleStatusEnergy;case"strength":return this._wwaData.isVisibleStatusStrength;case"defence":return this._wwaData.isVisibleStatusDefence;case"gold":return this._wwaData.isVisibleStatusGold;default:throw new Error("存在しないステータスが与えられました")}}_changeStatusVisibility(e,t){switch(e){case"energy":return void(this._wwaData.isVisibleStatusEnergy=t);case"strength":return void(this._wwaData.isVisibleStatusStrength=t);case"defence":return void(this._wwaData.isVisibleStatusDefence=t);case"gold":return void(this._wwaData.isVisibleStatusGold=t);default:throw new Error("存在しないステータスが与えられました")}}shouldApplyGameOver({isCalledByMacro:e}){return e?"default"===this._wwaData.gameOverPolicy:"default"===this._wwaData.gameOverPolicy||"except-macro"===this._wwaData.gameOverPolicy}getEnemyStatus(){return this._monster?this._monster.status:-1}setEnemyStatus(e){if(!this._monster)throw new Error("敵が存在しません");this._monster.setStatus(e)}getGameStatus(){var e,t;return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:null!==(t=null===(e=this._playTimeCalculator)||void 0===e?void 0:e.calculateTimeMs())&&void 0!==t?t:0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),cameraCoord:this._camera.getPosition().getPartsCoord(),itemBox:this._player.getCopyOfItemBox(),gameSpeedIndex:this._player.getSpeedIndex(),wwaData:this._wwaData}}_debugEvalString(){if(this._player.isControllable())try{const e=this._debugConsoleElement.querySelector(".console-text-area");if(!(e instanceof HTMLTextAreaElement))throw new Error("要素 #wwa-debug-console > .console-text-area が textarea 要素でありません");this._execEvalString(e.value)}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message)}}_execEvalString(e,t){try{const s=this.convertWwaNodes(e);t&&this.evalCalcWwaNodeGenerator.setTriggerParts(t.id,t.type,t.position),this.evalCalcWwaNodeGenerator.evalWwaNodes(s),this.evalCalcWwaNodeGenerator.clearTemporaryState()}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message)}}_returnEvalString(e){try{const t=Ha(Ya("("+e+")"));return this.evalCalcWwaNodeGenerator.evalWwaNode(t)}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message,!1)}}movePlayer(e){this._player.controll(e)}isPlayerWaitingMessage(){return this._player.isWaitingMessage()}_loadSystemMessage(e){if(this._wwaData.customSystemMessages[e])return this._wwaData.customSystemMessages[e];const t=r[e];if(t.mapdataParams)switch(t.mapdataParams.messageArea){case"message":{const e=this._wwaData.message[t.mapdataParams.index];return""===e?t.defaultText:e}case"systemMessage":{const e=this._wwaData.systemMessage[t.mapdataParams.index];return""===e?t.defaultText:e}default:throw new Error("システムエラー: システムメッセージの設定がおかしいようです")}return t.defaultText}resolveSystemMessage(e){const t=this._loadSystemMessage(e);switch(e){case a.ITEM_SELECT_TUTORIAL:return t.replaceAll("%HOW_TO_USE_ITEM%",(()=>{switch(this.userDevice.device){case S.PC:return"右のボックスを選択する";case S.VR:return"右のボックスをクリックする";case S.SP:return"右のボックスをタップする";case S.GAME:switch(this.userDevice.os){case A.NINTENDO:return"Xボタンを押すか、右のボックスをタップする";case A.PLAY_STATION:return"△ボタンを押す";case A.XBOX:return"Yボタンを押す";default:return"右のボックスを選択する"}default:return"右のボックスを選択する"}})());case a.GAME_SPEED_CHANGED:{const e=this._player.getSpeedIndex();return t.replaceAll("%GAME_SPEED_NAME%",W[e]).replaceAll("%HIGH_SPEED_MESSAGE%",this.isBattleSpeedIndexForQuickBattle(e)?"戦闘も速くなります。\n":"").replaceAll("%MAX_SPEED_INDEX%",String(F.MAX_SPEED_INDEX+1)).replaceAll("%GAME_SPEED_INDEX%",String(e+1)).replaceAll("%SPEED_UP_BUTTON%",this.userDevice.os===A.NINTENDO?"+ボタン":"Pキー").replaceAll("%SPEED_DOWN_BUTTON%",this.userDevice.os===A.NINTENDO?"-ボタン":"Iキー")}default:return t}}overwriteSystemMessage(e,t){this._wwaData.customSystemMessages[e]=t}}var Cr=!1;function Pr(){if(navigator.userAgent.match(/(?:msie|trident)/i)||navigator.userAgent.match(/edge/i))return void alert("このゲームをプレイするには、Google Chrome や Mozilla Firefox などの最新のブラウザでこのページを開いてください。\nご利用の環境のサポートは、既に終了しています。");Array.prototype.forEach.call(we("a.wwa-copyright"),(e=>{e.addEventListener("click",(()=>{Cr=!0}))})),window.addEventListener("beforeunload",(e=>{var t="このページを離れますか?";if(Cr)return Cr=!1,e.returnValue=t,t}));const e=me("wwa-wrapper").getAttribute("data-wwa-title-img"),t=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-enable"),s=null!==t&&null!==t.match(/^true$/i);ms(me("wwa-wrapper"),e,s);var i=me("wwa-wrapper").getAttribute("data-wwa-mapdata"),a=me("wwa-wrapper").getAttribute("data-wwa-audio-dir"),r=me("wwa-wrapper").getAttribute("data-wwa-var-dump-elm"),n=null,o="true"===me("wwa-wrapper").getAttribute("data-wwa-display-user-vars"),h=me("wwa-wrapper").getAttribute("data-wwa-user-var-names-file");me("wwa-wrapper").hasAttribute("data-wwa-var-dump-elm")&&o&&(n=function(e){const t=ge(e);return t instanceof HTMLElement?(t.classList.add("wwa-vardump-wrapper"),t.appendChild(lr({kind:"named"})),t.appendChild(lr({kind:"numbered"})),t):null}(r));var c=!0;me("wwa-wrapper").getAttribute("data-wwa-urlgate-enable").match(/^false$/i)&&(c=!1);var l=me("wwa-wrapper").getAttribute("data-wwa-classic-mode-enable"),_=!1;null!==l&&l.match(/^true$/i)&&(_=!0);var u=!0,d=me("wwa-wrapper").getAttribute("data-wwa-item-effect-enable");null!==d&&d.match(/^false$/i)&&(u=!1);let p=!1;const m=me("wwa-wrapper").getAttribute("data-wwa-use-go-to-wwa");null!==m&&m.match(/^true$/i)&&(p=!0);const g=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-viewport-fit-enable");ps()&&null!==g&&g.match(/^true$/i)&&(!function(){const e=document.getElementsByTagName("head")[0];let t=document.createElement("meta");t.setAttribute("name","viewport"),e.appendChild(t),de()}(),window.addEventListener("resize",de));const E=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-controller-elm"),w=s&&E?Ee(E):null,f=me("wwa-wrapper").getAttribute("data-wwa-picture-image-names-file"),y=(()=>{const e=me("wwa-wrapper").getAttribute("data-wwa-disallow-load-old-save");return!(null===e||!e.match(/^true$/i))})(),v=me("wwa-wrapper").getAttribute("data-wwa-user-defined-scripts-file");Sr=new Ir({mapdata:i,urlGateEnable:c,titleImg:null!=e?e:void 0,audioDir:a,classicModeEnable:_,itemEffectEnable:u,useGoToWwa:p,disallowLoadOldSave:y,varDumpElm:n,userVarNamesFile:h,displayUserVars:o,virtualPadEnable:s,virtualPadControllerElm:w,userDefinedScriptsFile:v,pictureImageNamesFile:f})}"complete"===document.readyState?setTimeout(Pr):window.addEventListener("load",(function(){setTimeout(Pr)}))}()}();
21
+ function(){var e=i,t=e.lib,s=t.WordArray,a=t.Hasher,r=e.algo,n=s.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),o=s.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),h=s.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=s.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),l=s.create([0,1518500249,1859775393,2400959708,2840853838]),_=s.create([1352829926,1548603684,1836072691,2053994217,0]),u=r.RIPEMD160=a.extend({_doReset:function(){this._hash=s.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var s=0;s<16;s++){var i=t+s,a=e[i];e[i]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}var r,u,f,y,v,A,S,T,I,C,P,O=this._hash.words,D=l.words,N=_.words,b=n.words,M=o.words,x=h.words,L=c.words;for(A=r=O[0],S=u=O[1],T=f=O[2],I=y=O[3],C=v=O[4],s=0;s<80;s+=1)P=r+e[t+b[s]]|0,P+=s<16?d(u,f,y)+D[0]:s<32?p(u,f,y)+D[1]:s<48?m(u,f,y)+D[2]:s<64?g(u,f,y)+D[3]:E(u,f,y)+D[4],P=(P=w(P|=0,x[s]))+v|0,r=v,v=y,y=w(f,10),f=u,u=P,P=A+e[t+M[s]]|0,P+=s<16?E(S,T,I)+N[0]:s<32?g(S,T,I)+N[1]:s<48?m(S,T,I)+N[2]:s<64?p(S,T,I)+N[3]:d(S,T,I)+N[4],P=(P=w(P|=0,L[s]))+C|0,A=C,C=I,I=w(T,10),T=S,S=P;P=O[1]+f+I|0,O[1]=O[2]+y+C|0,O[2]=O[3]+v+A|0,O[3]=O[4]+r+S|0,O[4]=O[0]+u+T|0,O[0]=P},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(t.length+1),this._process();for(var a=this._hash,r=a.words,n=0;n<5;n++){var o=r[n];r[n]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8)}return a},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function d(e,t,s){return e^t^s}function p(e,t,s){return e&t|~e&s}function m(e,t,s){return(e|~t)^s}function g(e,t,s){return e&s|t&~s}function E(e,t,s){return e^(t|~s)}function w(e,t){return e<<t|e>>>32-t}e.RIPEMD160=a._createHelper(u),e.HmacRIPEMD160=a._createHmacHelper(u)}(Math),i.RIPEMD160)},648:function(e,t,s){var i,a,r,n,o,h,c,l;e.exports=(l=s(518),a=(i=l).lib,r=a.WordArray,n=a.Hasher,o=i.algo,h=[],c=o.SHA1=n.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],c=0;c<80;c++){if(c<16)h[c]=0|e[t+c];else{var l=h[c-3]^h[c-8]^h[c-14]^h[c-16];h[c]=l<<1|l>>>31}var _=(i<<5|i>>>27)+o+h[c];_+=c<20?1518500249+(a&r|~a&n):c<40?1859775393+(a^r^n):c<60?(a&r|a&n|r&n)-1894007588:(a^r^n)-899497514,o=n,n=r,r=a<<30|a>>>2,a=i,i=_}s[0]=s[0]+i|0,s[1]=s[1]+a|0,s[2]=s[2]+r|0,s[3]=s[3]+n|0,s[4]=s[4]+o|0},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(i+64>>>9<<4)]=Math.floor(s/4294967296),t[15+(i+64>>>9<<4)]=s,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),i.SHA1=n._createHelper(c),i.HmacSHA1=n._createHmacHelper(c),l.SHA1)},623:function(e,t,s){var i,a,r,n,o,h;e.exports=(h=s(518),s(110),a=(i=h).lib.WordArray,r=i.algo,n=r.SHA256,o=r.SHA224=n.extend({_doReset:function(){this._hash=new a.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=n._doFinalize.call(this);return e.sigBytes-=4,e}}),i.SHA224=n._createHelper(o),i.HmacSHA224=n._createHmacHelper(o),h.SHA224)},110:function(e,t,s){var i;e.exports=(i=s(518),function(e){var t=i,s=t.lib,a=s.WordArray,r=s.Hasher,n=t.algo,o=[],h=[];!function(){function t(t){for(var s=e.sqrt(t),i=2;i<=s;i++)if(!(t%i))return!1;return!0}function s(e){return 4294967296*(e-(0|e))|0}for(var i=2,a=0;a<64;)t(i)&&(a<8&&(o[a]=s(e.pow(i,.5))),h[a]=s(e.pow(i,1/3)),a++),i++}();var c=[],l=n.SHA256=r.extend({_doReset:function(){this._hash=new a.init(o.slice(0))},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],l=s[5],_=s[6],u=s[7],d=0;d<64;d++){if(d<16)c[d]=0|e[t+d];else{var p=c[d-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=c[d-2],E=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;c[d]=m+c[d-7]+E+c[d-16]}var w=i&a^i&r^a&r,f=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),y=u+((o<<26|o>>>6)^(o<<21|o>>>11)^(o<<7|o>>>25))+(o&l^~o&_)+h[d]+c[d];u=_,_=l,l=o,o=n+y|0,n=r,r=a,a=i,i=y+(f+w)|0}s[0]=s[0]+i|0,s[1]=s[1]+a|0,s[2]=s[2]+r|0,s[3]=s[3]+n|0,s[4]=s[4]+o|0,s[5]=s[5]+l|0,s[6]=s[6]+_|0,s[7]=s[7]+u|0},_doFinalize:function(){var t=this._data,s=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;return s[a>>>5]|=128<<24-a%32,s[14+(a+64>>>9<<4)]=e.floor(i/4294967296),s[15+(a+64>>>9<<4)]=i,t.sigBytes=4*s.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(l),t.HmacSHA256=r._createHmacHelper(l)}(Math),i.SHA256)},882:function(e,t,s){var i;e.exports=(i=s(518),s(703),function(e){var t=i,s=t.lib,a=s.WordArray,r=s.Hasher,n=t.x64.Word,o=t.algo,h=[],c=[],l=[];!function(){for(var e=1,t=0,s=0;s<24;s++){h[e+5*t]=(s+1)*(s+2)/2%64;var i=(2*e+3*t)%5;e=t%5,t=i}for(e=0;e<5;e++)for(t=0;t<5;t++)c[e+5*t]=t+(2*e+3*t)%5*5;for(var a=1,r=0;r<24;r++){for(var o=0,_=0,u=0;u<7;u++){if(1&a){var d=(1<<u)-1;d<32?_^=1<<d:o^=1<<d-32}128&a?a=a<<1^113:a<<=1}l[r]=n.create(o,_)}}();var _=[];!function(){for(var e=0;e<25;e++)_[e]=n.create()}();var u=o.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new n.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var s=this._state,i=this.blockSize/2,a=0;a<i;a++){var r=e[t+2*a],n=e[t+2*a+1];r=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),(O=s[a]).high^=n,O.low^=r}for(var o=0;o<24;o++){for(var u=0;u<5;u++){for(var d=0,p=0,m=0;m<5;m++)d^=(O=s[u+5*m]).high,p^=O.low;var g=_[u];g.high=d,g.low=p}for(u=0;u<5;u++){var E=_[(u+4)%5],w=_[(u+1)%5],f=w.high,y=w.low;for(d=E.high^(f<<1|y>>>31),p=E.low^(y<<1|f>>>31),m=0;m<5;m++)(O=s[u+5*m]).high^=d,O.low^=p}for(var v=1;v<25;v++){var A=(O=s[v]).high,S=O.low,T=h[v];T<32?(d=A<<T|S>>>32-T,p=S<<T|A>>>32-T):(d=S<<T-32|A>>>64-T,p=A<<T-32|S>>>64-T);var I=_[c[v]];I.high=d,I.low=p}var C=_[0],P=s[0];for(C.high=P.high,C.low=P.low,u=0;u<5;u++)for(m=0;m<5;m++){var O=s[v=u+5*m],D=_[v],N=_[(u+1)%5+5*m],b=_[(u+2)%5+5*m];O.high=D.high^~N.high&b.high,O.low=D.low^~N.low&b.low}O=s[0];var M=l[o];O.high^=M.high,O.low^=M.low}},_doFinalize:function(){var t=this._data,s=t.words,i=(this._nDataBytes,8*t.sigBytes),r=32*this.blockSize;s[i>>>5]|=1<<24-i%32,s[(e.ceil((i+1)/r)*r>>>5)-1]|=128,t.sigBytes=4*s.length,this._process();for(var n=this._state,o=this.cfg.outputLength/8,h=o/8,c=[],l=0;l<h;l++){var _=n[l],u=_.high,d=_.low;u=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),c.push(d),c.push(u)}return new a.init(c,o)},clone:function(){for(var e=r.clone.call(this),t=e._state=this._state.slice(0),s=0;s<25;s++)t[s]=t[s].clone();return e}});t.SHA3=r._createHelper(u),t.HmacSHA3=r._createHmacHelper(u)}(Math),i.SHA3)},78:function(e,t,s){var i,a,r,n,o,h,c,l;e.exports=(l=s(518),s(703),s(759),a=(i=l).x64,r=a.Word,n=a.WordArray,o=i.algo,h=o.SHA512,c=o.SHA384=h.extend({_doReset:function(){this._hash=new n.init([new r.init(3418070365,3238371032),new r.init(1654270250,914150663),new r.init(2438529370,812702999),new r.init(355462360,4144912697),new r.init(1731405415,4290775857),new r.init(2394180231,1750603025),new r.init(3675008525,1694076839),new r.init(1203062813,3204075428)])},_doFinalize:function(){var e=h._doFinalize.call(this);return e.sigBytes-=16,e}}),i.SHA384=h._createHelper(c),i.HmacSHA384=h._createHmacHelper(c),l.SHA384)},759:function(e,t,s){var i;e.exports=(i=s(518),s(703),function(){var e=i,t=e.lib.Hasher,s=e.x64,a=s.Word,r=s.WordArray,n=e.algo;function o(){return a.create.apply(a,arguments)}var h=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=o()}();var l=n.SHA512=t.extend({_doReset:function(){this._hash=new r.init([new a.init(1779033703,4089235720),new a.init(3144134277,2227873595),new a.init(1013904242,4271175723),new a.init(2773480762,1595750129),new a.init(1359893119,2917565137),new a.init(2600822924,725511199),new a.init(528734635,4215389547),new a.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var s=this._hash.words,i=s[0],a=s[1],r=s[2],n=s[3],o=s[4],l=s[5],_=s[6],u=s[7],d=i.high,p=i.low,m=a.high,g=a.low,E=r.high,w=r.low,f=n.high,y=n.low,v=o.high,A=o.low,S=l.high,T=l.low,I=_.high,C=_.low,P=u.high,O=u.low,D=d,N=p,b=m,M=g,x=E,L=w,R=f,B=y,U=v,k=A,W=S,V=T,F=I,Y=C,G=P,H=O,K=0;K<80;K++){var j,X,$=c[K];if(K<16)X=$.high=0|e[t+2*K],j=$.low=0|e[t+2*K+1];else{var J=c[K-15],Z=J.high,q=J.low,z=(Z>>>1|q<<31)^(Z>>>8|q<<24)^Z>>>7,Q=(q>>>1|Z<<31)^(q>>>8|Z<<24)^(q>>>7|Z<<25),ee=c[K-2],te=ee.high,se=ee.low,ie=(te>>>19|se<<13)^(te<<3|se>>>29)^te>>>6,ae=(se>>>19|te<<13)^(se<<3|te>>>29)^(se>>>6|te<<26),re=c[K-7],ne=re.high,oe=re.low,he=c[K-16],ce=he.high,le=he.low;X=(X=(X=z+ne+((j=Q+oe)>>>0<Q>>>0?1:0))+ie+((j+=ae)>>>0<ae>>>0?1:0))+ce+((j+=le)>>>0<le>>>0?1:0),$.high=X,$.low=j}var _e,ue=U&W^~U&F,de=k&V^~k&Y,pe=D&b^D&x^b&x,me=N&M^N&L^M&L,ge=(D>>>28|N<<4)^(D<<30|N>>>2)^(D<<25|N>>>7),Ee=(N>>>28|D<<4)^(N<<30|D>>>2)^(N<<25|D>>>7),we=(U>>>14|k<<18)^(U>>>18|k<<14)^(U<<23|k>>>9),fe=(k>>>14|U<<18)^(k>>>18|U<<14)^(k<<23|U>>>9),ye=h[K],ve=ye.high,Ae=ye.low,Se=G+we+((_e=H+fe)>>>0<H>>>0?1:0),Te=Ee+me;G=F,H=Y,F=W,Y=V,W=U,V=k,U=R+(Se=(Se=(Se=Se+ue+((_e+=de)>>>0<de>>>0?1:0))+ve+((_e+=Ae)>>>0<Ae>>>0?1:0))+X+((_e+=j)>>>0<j>>>0?1:0))+((k=B+_e|0)>>>0<B>>>0?1:0)|0,R=x,B=L,x=b,L=M,b=D,M=N,D=Se+(ge+pe+(Te>>>0<Ee>>>0?1:0))+((N=_e+Te|0)>>>0<_e>>>0?1:0)|0}p=i.low=p+N,i.high=d+D+(p>>>0<N>>>0?1:0),g=a.low=g+M,a.high=m+b+(g>>>0<M>>>0?1:0),w=r.low=w+L,r.high=E+x+(w>>>0<L>>>0?1:0),y=n.low=y+B,n.high=f+R+(y>>>0<B>>>0?1:0),A=o.low=A+k,o.high=v+U+(A>>>0<k>>>0?1:0),T=l.low=T+V,l.high=S+W+(T>>>0<V>>>0?1:0),C=_.low=C+Y,_.high=I+F+(C>>>0<Y>>>0?1:0),O=u.low=O+H,u.high=P+G+(O>>>0<H>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,s=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(i+128>>>10<<5)]=Math.floor(s/4294967296),t[31+(i+128>>>10<<5)]=s,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=t.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=t._createHelper(l),e.HmacSHA512=t._createHmacHelper(l)}(),i.SHA512)},865:function(e,t,s){var i;e.exports=(i=s(518),s(201),s(989),s(953),s(768),function(){var e=i,t=e.lib,s=t.WordArray,a=t.BlockCipher,r=e.algo,n=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],o=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],h=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],_=r.DES=a.extend({_doReset:function(){for(var e=this._key.words,t=[],s=0;s<56;s++){var i=n[s]-1;t[s]=e[i>>>5]>>>31-i%32&1}for(var a=this._subKeys=[],r=0;r<16;r++){var c=a[r]=[],l=h[r];for(s=0;s<24;s++)c[s/6|0]|=t[(o[s]-1+l)%28]<<31-s%6,c[4+(s/6|0)]|=t[28+(o[s+24]-1+l)%28]<<31-s%6;for(c[0]=c[0]<<1|c[0]>>>31,s=1;s<7;s++)c[s]=c[s]>>>4*(s-1)+3;c[7]=c[7]<<5|c[7]>>>27}var _=this._invSubKeys=[];for(s=0;s<16;s++)_[s]=a[15-s]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,s){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var a=s[i],r=this._lBlock,n=this._rBlock,o=0,h=0;h<8;h++)o|=c[h][((n^a[h])&l[h])>>>0];this._lBlock=n,this._rBlock=r^o}var _=this._lBlock;this._lBlock=this._rBlock,this._rBlock=_,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){var s=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=s,this._lBlock^=s<<e}function d(e,t){var s=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=s,this._rBlock^=s<<e}e.DES=a._createHelper(_);var p=r.TripleDES=a.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),i=e.length<4?e.slice(0,2):e.slice(2,4),a=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=_.createEncryptor(s.create(t)),this._des2=_.createEncryptor(s.create(i)),this._des3=_.createEncryptor(s.create(a))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=a._createHelper(p)}(),i.TripleDES)},703:function(e,t,s){var i;e.exports=(i=s(518),function(e){var t=i,s=t.lib,a=s.Base,r=s.WordArray,n=t.x64={};n.Word=a.extend({init:function(e,t){this.high=e,this.low=t}}),n.WordArray=a.extend({init:function(t,s){t=this.words=t||[],this.sigBytes=s!=e?s:8*t.length},toX32:function(){for(var e=this.words,t=e.length,s=[],i=0;i<t;i++){var a=e[i];s.push(a.high),s.push(a.low)}return r.create(s,this.sigBytes)},clone:function(){for(var e=a.clone.call(this),t=e.words=this.words.slice(0),s=t.length,i=0;i<s;i++)t[i]=t[i].clone();return e}})}(),i)},156:function(){},699:function(){}},t={};function s(i){var a=t[i];if(void 0!==a)return a.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,s),r.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";function e(t,s=new WeakMap){if("symbol"==typeof t)throw new TypeError("symbol は変換対象外です");if(t instanceof Map){if(s.has(t))return s.get(t);const i=Object.create(null);s.set(t,i);for(const[a,r]of t.entries())i[a]=e(r,s);return i}if(Array.isArray(t)){if(s.has(t))return s.get(t);const i=[];s.set(t,i);for(const a of t)i.push(e(a,s));return i}if("object"==typeof t&&null!==t)throw new TypeError("Mapおよび配列でないオブジェクトは変換対象外です");return t}const t=Object.freeze({CONFIRM_LOAD_SOUND:{code:1,defaultText:"効果音・BGMデータをロードしますか?",mapdataParams:{messageArea:"systemMessage",index:2}},NO_MONEY:{code:101,defaultText:"所持金がたりない。",mapdataParams:{messageArea:"message",index:6}},NO_ITEM:{code:201,mapdataParams:{messageArea:"message",index:7},defaultText:"アイテムを持っていない。"},ITEM_BOX_FULL:{code:202,defaultText:"これ以上、アイテムを持てません。",mapdataParams:{messageArea:"systemMessage",index:1}},ITEM_SELECT_TUTORIAL:{code:203,defaultText:"このアイテムは%HOW_TO_USE_ITEM%ことで使用できます。\n使用できるアイテムは色枠で囲まれます。",mapdataParams:{messageArea:"systemMessage",index:0}},CONFIRM_USE_ITEM:{code:204,defaultText:"このアイテムを使用します。\nよろしいですか?",mapdataParams:{messageArea:"message",index:8}},CANNOT_DAMAGE_MONSTER:{code:301,defaultText:"相手の防御能力が高すぎる!"},BATTLE_NOT_SETTLED:{code:302,defaultText:"勝負がつかない!"},CONFIRM_ENTER_URL_GATE:{code:401,defaultText:"他のページにリンクします。\nよろしいですか?",mapdataParams:{messageArea:"message",index:5}},GAME_SPEED_CHANGED:{code:501,defaultText:"移動速度を【%GAME_SPEED_NAME%】に切り替えました。\n%HIGH_SPEED_MESSAGE%(%MAX_SPEED_INDEX%段階中%GAME_SPEED_INDEX%)\n速度を落とすには%SPEED_DOWN_BUTTON%, 速度を上げるには%SPEED_UP_BUTTON%を押してください。"},GAME_SPEED_CHANGE_DISABLED:{code:502,defaultText:"ここでは移動速度を\n変更できません。"}}),i=Object.keys(t),a=i.reduce(((e,t)=>({...e,[t]:t})),{}),r=t;function n(e){return i.some((t=>t===e))}function o(e){for(let t of i)if(r[t].code===e)return t}class h{add(e){return this.strength+=e.strength,this.defence+=e.defence,this}plus(e){return new h(this.strength+e.strength,this.defence+e.defence)}minus(e){return new h(this.strength-e.strength,this.defence-e.defence)}equals(e){return this.strength===e.strength&&this.defence===e.defence}constructor(e,t){this.strength=e,this.defence=t}}class c extends h{add(e){return e instanceof c&&(this.energy+=e.energy,this.gold+=e.gold),this.strength+=e.strength,this.defence+=e.defence,this}plus(e){return e instanceof c?new c(this.energy+e.energy,this.strength+e.strength,this.defence+e.defence,this.gold+e.gold):new c(this.energy,this.strength+e.strength,this.defence+e.defence,this.gold)}minus(e){return e instanceof c?new c(this.energy-e.energy,this.strength-e.strength,this.defence-e.defence,this.gold-e.gold):new c(this.energy,this.strength-e.strength,this.defence-e.defence,this.gold)}equals(e){return this.energy===e.energy&&this.strength===e.strength&&this.defence===e.defence&&this.gold===e.gold}calculateScore(e){return Object.keys(e.rates).reduce(((t,s)=>t+e.rates[s]*this[s]),0)}clone(){return new c(this.energy,this.strength,this.defence,this.gold)}constructor(e,t,s,i){super(t,s),this.energy=e,this.gold=i}}class l{equals(e){return this.x===e.x&&this.y===e.y}substract(e){return new l(this.x-e.x,this.y-e.y)}clone(){return new l(this.x,this.y)}convertIntoPosition(e){return new _(e,this.x,this.y,0,0)}getDirectionTo(e){return this.x<e.x?this.y>e.y?m.RIGHT_UP:this.y===e.y?m.RIGHT:m.RIGHT_DOWN:this.x===e.x?this.y>e.y?m.UP:this.y===e.y?m.NO_DIRECTION:m.DOWN:this.y>e.y?m.LEFT_UP:this.y===e.y?m.LEFT:m.LEFT_DOWN}toString(){return"("+this.x+", "+this.y+")"}constructor(e=0,t=0){this.x=e,this.y=t}}class _{getPartsCoord(){return this._partsCoord}getOffsetCoord(){return this._offsetCoord}getScreenTopPosition(){var e=Math.floor(this._partsCoord.x/(F.H_PARTS_NUM_IN_WINDOW-1))*(F.H_PARTS_NUM_IN_WINDOW-1),t=Math.floor(this._partsCoord.y/(F.V_PARTS_NUM_IN_WINDOW-1))*(F.V_PARTS_NUM_IN_WINDOW-1);return new _(this._wwa,e,t,0,0)}getDefaultCameraPosition(){var e=this.getScreenTopPosition(),t=e.getPartsCoord(),s=this._wwa.getMapWidth(),i=e.getPartsCoord().clone();return t.x===s-1&&i.x--,t.y===s-1&&i.y--,i.convertIntoPosition(this._wwa).getScreenTopPosition()}getNextJustPosition(e){if(void 0!==e){var t=this._partsCoord;return new _(this._wwa,t.x+g[e],t.y+E[e],0,0)}var s=this._partsCoord.x,i=this._partsCoord.y;return this._offsetCoord.x<0?s--:this._offsetCoord.x>0&&s++,this._offsetCoord.y<0?i--:this._offsetCoord.y>0&&i++,new _(this._wwa,s,i,0,0)}getNextFramePosition(e,t,s){var i=this._partsCoord.x,a=this._partsCoord.y,r=this._offsetCoord.x+g[e]*t,n=this._offsetCoord.y+E[e]*s;if(r<0){var o=Math.floor(Math.abs(r)/F.CHIP_SIZE);i-=o,r=(r+o*F.CHIP_SIZE)%F.CHIP_SIZE}if(n<0){var h=Math.floor(Math.abs(n)/F.CHIP_SIZE);a-=h,n=(n+h*F.CHIP_SIZE)%F.CHIP_SIZE}return r>=F.CHIP_SIZE&&(i+=Math.floor(r/F.CHIP_SIZE),r=(r+F.CHIP_SIZE)%F.CHIP_SIZE),n>=F.CHIP_SIZE&&(a+=Math.floor(n/F.CHIP_SIZE),n=(n+F.CHIP_SIZE)%F.CHIP_SIZE),new _(this._wwa,i,a,r,n)}isJustPosition(){return 0==this._offsetCoord.x&&0==this._offsetCoord.y}isScreenTopPosition(){var e=this.getScreenTopPosition();return this.equals(e)}equals(e){return this._partsCoord.equals(e.getPartsCoord())&&this._offsetCoord.equals(e.getOffsetCoord())}isInCameraRange(e,t=!1){var s=e.getPosition()._partsCoord,i=this._partsCoord.x,a=this._partsCoord.y,r=t?1:0;return s.x<=i&&i<s.x+F.H_PARTS_NUM_IN_WINDOW-r&&s.y<=a&&a<s.y+F.V_PARTS_NUM_IN_WINDOW-r}hasLocalGate(){return this._wwa.getMapTypeByPosition(this)===F.MAP_LOCALGATE||this._wwa.getObjectTypeByPosition(this)===F.OBJECT_LOCALGATE}clone(){return new _(this._wwa,this._partsCoord.x,this._partsCoord.y,this._offsetCoord.x,this._offsetCoord.y)}constructor(e,t,s,i=0,a=0){if(this._wwa=e,void 0===this._wwa)throw new Error("WWAのインスタンスが存在しません. ");var r=this._wwa.getMapWidth();if(t<0||t>=r||t>=r-1&&i>0||s<0||s>=r||s>=r-1&&a>0)throw new Error("範囲外の座標です!! parts:("+t+", "+s+"), offset:("+i+", "+a+"), mapWidth = "+r);this._partsCoord=new l(t,s),this._offsetCoord=new l(i,a)}}class u{constructor(e,t,s){this.destPos=e.clone(),this.srcPos=t.clone(),this.srcSize=s.clone()}}class d{constructor(e,t,s,i,a){this.partsIDObj=e,this.x=t,this.y=s,this.isStatic=i,this.isFighting=a}}var p,m;!function(e){e[e.GOTO_WWA=0]="GOTO_WWA",e[e.BATTLE_REPORT=1]="BATTLE_REPORT",e[e.GAME_END=2]="GAME_END"}(p||(p={})),function(e){e[e.UNUSED=0]="UNUSED",e[e.LEFT=4]="LEFT",e[e.RIGHT=6]="RIGHT",e[e.DOWN=2]="DOWN",e[e.UP=8]="UP",e[e.LEFT_DOWN=1]="LEFT_DOWN",e[e.LEFT_UP=7]="LEFT_UP",e[e.RIGHT_DOWN=3]="RIGHT_DOWN",e[e.RIGHT_UP=9]="RIGHT_UP",e[e.NO_DIRECTION=5]="NO_DIRECTION"}(m||(m={}));const g=[0,-1,0,1,-1,0,1,-1,0,1],E=[0,1,1,1,0,0,0,-1,-1,-1];var w,f,y,v,A,S,T,I,C,P,O,D,N;!function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.UNSELECTED=2]="UNSELECTED"}(w||(w={})),function(e){e[e.MAP=0]="MAP",e[e.OBJECT=1]="OBJECT",e[e.CHOICE_YES=2]="CHOICE_YES",e[e.CHOICE_NO=3]="CHOICE_NO"}(f||(f={})),function(e){e[e.NORMAL=0]="NORMAL",e[e.CAN_USE=1]="CAN_USE",e[e.NOT_DISAPPEAR=2]="NOT_DISAPPEAR"}(y||(y={})),function(e){e[e.MAP=1]="MAP",e[e.OBJECT=0]="OBJECT"}(v||(v={}));class b{constructor(){var e=window.navigator.userAgent;this.os=this._getOS(e),this.browser=this.getBrowser(e),this.device=this.getDevice()}_getOS(e){return e.match(/xbox/i)?A.XBOX:e.match(/windows/i)?A.WINDOWS:e.match(/macintosh/i)?"ontouchstart"in document?A.IOS:A.MACINTOSH:e.match(/iphone|ipad|ipod/i)?A.IOS:e.match(/oculus/i)?A.OCULUS:e.match(/android/i)?A.ANDROID:e.match(/nintendo/i)?A.NINTENDO:e.match(/playstation/i)?A.PLAY_STATION:e.match(/linux/i)?A.LINUX:A.OTHERS}getBrowser(e){return e.match(/chrome/i)?T.CHROME:e.match(/firefox/i)?T.FIREFOX:e.match(/safari/i)?T.SAFARI:T.OTHERS}getDevice(){switch(this.os){case A.WINDOWS:case A.MACINTOSH:case A.LINUX:return S.PC;case A.IOS:case A.ANDROID:return S.SP;case A.OCULUS:return S.VR;case A.NINTENDO:case A.PLAY_STATION:case A.XBOX:return S.GAME}return S.OTHERS}}!function(e){e[e.WINDOWS=1]="WINDOWS",e[e.MACINTOSH=2]="MACINTOSH",e[e.LINUX=3]="LINUX",e[e.ANDROID=4]="ANDROID",e[e.IOS=5]="IOS",e[e.NINTENDO=6]="NINTENDO",e[e.PLAY_STATION=7]="PLAY_STATION",e[e.OCULUS=8]="OCULUS",e[e.XBOX=9]="XBOX",e[e.OTHERS=9999]="OTHERS"}(A||(A={})),function(e){e[e.PC=1]="PC",e[e.SP=2]="SP",e[e.VR=3]="VR",e[e.GAME=4]="GAME",e[e.OTHERS=9999]="OTHERS"}(S||(S={})),function(e){e[e.CHROME=1]="CHROME",e[e.FIREFOX=2]="FIREFOX",e[e.SAFARI=3]="SAFARI",e[e.OTHERS=9999]="OTHERS"}(T||(T={})),function(e){e[e.NONE=0]="NONE",e[e.CALL_BY_MAP_PARTS=1]="CALL_BY_MAP_PARTS",e[e.CALL_BY_OBJECT_PARTS=2]="CALL_BY_OBJECT_PARTS",e[e.CALL_BY_ITEM_USE=3]="CALL_BY_ITEM_USE",e[e.CALL_BY_QUICK_SAVE=4]="CALL_BY_QUICK_SAVE",e[e.CALL_BY_QUICK_LOAD=5]="CALL_BY_QUICK_LOAD",e[e.CALL_BY_RESTART_GAME=6]="CALL_BY_RESTART_GAME",e[e.CALL_BY_GOTO_WWA=7]="CALL_BY_GOTO_WWA",e[e.CALL_BY_PASSWORD_SAVE=8]="CALL_BY_PASSWORD_SAVE",e[e.CALL_BY_PASSWORD_LOAD=9]="CALL_BY_PASSWORD_LOAD",e[e.CALL_BY_END_GAME=10]="CALL_BY_END_GAME",e[e.CALL_BY_SUSPEND=11]="CALL_BY_SUSPEND",e[e.CALL_BY_LOG_QUICK_SAVE=12]="CALL_BY_LOG_QUICK_SAVE",e[e.CALL_BY_LOG_QUICK_LOAD=13]="CALL_BY_LOG_QUICK_LOAD"}(I||(I={})),function(e){e[e.QUICK_LOAD=0]="QUICK_LOAD",e[e.QUICK_SAVE=1]="QUICK_SAVE",e[e.RESTART_GAME=2]="RESTART_GAME",e[e.GOTO_WWA=3]="GOTO_WWA"}(C||(C={})),function(e){e[e.UP=0]="UP",e[e.DOWN=1]="DOWN"}(P||(P={})),function(e){e[e.QUICK_LOAD=0]="QUICK_LOAD",e[e.RESTART_GAME=1]="RESTART_GAME",e[e.PASSWORD=2]="PASSWORD"}(O||(O={})),function(e){e[e.STATIC=0]="STATIC",e[e.CHASE_PLAYER=1]="CHASE_PLAYER",e[e.RUN_OUT=2]="RUN_OUT",e[e.HANG_AROUND=3]="HANG_AROUND"}(D||(D={})),function(e){e[e.MODE_X=0]="MODE_X",e[e.MODE_Y=1]="MODE_Y",e[e.UNDECIDED=2]="UNDECIDED"}(N||(N={}));var M,x=["cell-load","cell-save","cell-restart","cell-gotowwa"];!function(e){e[e.UNDEFINED=0]="UNDEFINED",e[e.IMGPLAYER=1]="IMGPLAYER",e[e.IMGYESNO=2]="IMGYESNO",e[e.HPMAX=3]="HPMAX",e[e.SAVE=4]="SAVE",e[e.ITEM=5]="ITEM",e[e.DEFAULT=6]="DEFAULT",e[e.OLDMAP=7]="OLDMAP",e[e.PARTS=8]="PARTS",e[e.MOVE=9]="MOVE",e[e.MAP=10]="MAP",e[e.DIRMAP=11]="DIRMAP",e[e.IMGFRAME=12]="IMGFRAME",e[e.IMGBOM=13]="IMGBOM",e[e.DELPLAYER=14]="DELPLAYER",e[e.FACE=15]="FACE",e[e.EFFECT=16]="EFFECT",e[e.GAMEOVER=17]="GAMEOVER",e[e.IMGCLICK=18]="IMGCLICK",e[e.STATUS=19]="STATUS",e[e.EFFITEM=20]="EFFITEM",e[e.COLOR=21]="COLOR",e[e.WAIT=22]="WAIT",e[e.SOUND=23]="SOUND",e[e.JUMPGATE=24]="JUMPGATE",e[e.RECPOSITION=25]="RECPOSITION",e[e.JUMPRECPOSITION=26]="JUMPRECPOSITION",e[e.CONSOLE_LOG=27]="CONSOLE_LOG",e[e.COPY_HP_TO=28]="COPY_HP_TO",e[e.SET_HP=29]="SET_HP",e[e.COPY_HPMAX_TO=30]="COPY_HPMAX_TO",e[e.SET_HPMAX=31]="SET_HPMAX",e[e.COPY_AT_TO=32]="COPY_AT_TO",e[e.SET_AT=33]="SET_AT",e[e.COPY_DF_TO=34]="COPY_DF_TO",e[e.SET_DF=35]="SET_DF",e[e.COPY_MONEY_TO=36]="COPY_MONEY_TO",e[e.SET_MONEY=37]="SET_MONEY",e[e.COPY_STEP_COUNT_TO=38]="COPY_STEP_COUNT_TO",e[e.VAR_SET_VAL=39]="VAR_SET_VAL",e[e.VAR_SET=40]="VAR_SET",e[e.VAR_ADD=41]="VAR_ADD",e[e.VAR_SUB=42]="VAR_SUB",e[e.VAR_MUL=43]="VAR_MUL",e[e.VAR_DIV=44]="VAR_DIV",e[e.VAR_SET_RAND=45]="VAR_SET_RAND",e[e.SHOW_STR=46]="SHOW_STR",e[e.GAME_SPEED=47]="GAME_SPEED",e[e.IF=50]="IF",e[e.SET_SPEED=51]="SET_SPEED",e[e.COPY_TIME_TO=52]="COPY_TIME_TO",e[e.HIDE_STATUS=53]="HIDE_STATUS",e[e.VAR_MAP=54]="VAR_MAP",e[e.VAR_MOD=55]="VAR_MOD",e[e.NO_GAMEOVER=56]="NO_GAMEOVER",e[e.ELSE_IF=57]="ELSE_IF",e[e.ELSE=58]="ELSE",e[e.END_IF=59]="END_IF",e[e.SET=60]="SET",e[e.MAP2=61]="MAP2",e[e.SHOW_STR2=62]="SHOW_STR2",e[e.CONSOLE_LOG2=63]="CONSOLE_LOG2",e[e.DELAYBGM=64]="DELAYBGM",e[e.SYSMSG=65]="SYSMSG",e[e.PICTURE=66]="PICTURE",e[e.GAMEPAD_BUTTON=100]="GAMEPAD_BUTTON",e[e.OLDMOVE=101]="OLDMOVE",e[e.LEGACY_IF=10050]="LEGACY_IF"}(M||(M={}));var L,R,B,U={"":0,$imgplayer:1,$imgyesno:2,$hpmax:3,$save:4,$item:5,$default:6,$oldmap:7,$parts:8,$move:9,$map:10,$dirmap:11,$imgframe:12,$imgbom:13,$delplayer:14,$face:15,$effect:16,$gameover:17,$imgclick:18,$status:19,$effitem:20,$color:21,$wait:22,$sound:23,$jumpgate:24,$rec_pos:25,$jump_rec_pos:26,$console_log:27,$copy_hp_to:28,$set_hp:29,$copy_hpmax_to:30,$set_hpmax:31,$copy_at_to:32,$set_at:33,$copy_df_to:34,$set_df:35,$copy_money_to:36,$set_money:37,$copy_step_count_to:38,$var_set_val:39,$var_set:40,$var_add:41,$var_sub:42,$var_mul:43,$var_div:44,$var_set_rand:45,$show_str:46,$game_speed:47,$if:50,$set_speed:51,$copy_time_to:52,$hide_status:53,$var_map:54,$var_mod:55,$no_gameover:56,$else_if:57,$else:58,$endif:59,$set:60,$map2:61,$show_str2:62,$console_log2:63,$delaybgm:64,$sysmsg:65,$picture:66,$gamepad_button:100,$oldmove:101};!function(e){e[e.ENERGY=0]="ENERGY",e[e.STRENGTH=1]="STRENGTH",e[e.DEFENCE=2]="DEFENCE",e[e.GOLD=3]="GOLD",e[e.MOVES=4]="MOVES"}(L||(L={})),function(e){e[e.ENERGY=0]="ENERGY",e[e.STRENGTH=1]="STRENGTH",e[e.DEFENCE=2]="DEFENCE",e[e.GOLD=3]="GOLD",e[e.WIDE_CELL_ROW=4]="WIDE_CELL_ROW",e[e.ITEM_BG=5]="ITEM_BG",e[e.MAIN_FRAME=6]="MAIN_FRAME"}(R||(R={})),function(e){e[e.DECISION=1]="DECISION",e[e.ATTACK=3]="ATTACK",e[e.BGM_LB=70]="BGM_LB",e[e.NO_SOUND=99]="NO_SOUND"}(B||(B={}));const k=[1,2,5,8,10,20],W=["超低速","低速","準低速","中速","高速","超高速"],V=["energy","strength","defence","gold"];class F{}F.WWA_HOME="http://wwajp.com",F.ITEMBOX_SIZE=12,F.MAP_ATR_MAX=60,F.OBJ_ATR_MAX=60,F.OLD_MAP_ATR_MAX=40,F.OLD_OBJ_ATR_MAX=40,F.ATR_TYPE=3,F.ATR_MODE=4,F.ATR_STRING=5,F.ATR_X=6,F.ATR_Y=7,F.ATR_X2=8,F.ATR_Y2=9,F.ATR_ENERGY=10,F.ATR_STRENGTH=11,F.ATR_DEFENCE=12,F.ATR_GOLD=13,F.ATR_ITEM=14,F.ATR_NUMBER=15,F.ATR_JUMP_X=16,F.ATR_MOVE=16,F.ATR_JUMP_Y=17,F.ATR_SOUND=19,F.ATR_APPERANCE_BASE=20,F.REL_ATR_APPERANCE_ID=0,F.REL_ATR_APPERANCE_X=1,F.REL_ATR_APPERANCE_Y=2,F.REL_ATR_APPERANCE_TYPE=3,F.REL_ATR_APPERANCE_UNIT_LENGTH=4,F.ATR_RANDOM_BASE=10,F.RANDOM_ATR_NUM=10,F.RANDOM_ITERATION_MAX=10,F.MAP_STREET=0,F.MAP_WALL=1,F.MAP_LOCALGATE=2,F.MAP_URLGATE=4,F.OBJECT_NORMAL=0,F.OBJECT_MESSAGE=1,F.OBJECT_URLGATE=2,F.OBJECT_STATUS=3,F.OBJECT_ITEM=4,F.OBJECT_DOOR=5,F.OBJECT_MONSTER=6,F.OBJECT_SCORE=11,F.OBJECT_SELL=14,F.OBJECT_BUY=15,F.OBJECT_RANDOM=16,F.OBJECT_SELECT=17,F.OBJECT_LOCALGATE=18,F.SYSTEM_MESSAGE_NUM=20,F.IMGPOS_DEFAULT_YESNO_X=3,F.IMGPOS_DEFAULT_YESNO_Y=1,F.IMGRELPOS_YESNO_YES_X=0,F.IMGRELPOS_YESNO_NO_X=1,F.IMGRELPOS_YESNO_YESP_X=2,F.IMGRELPOS_YESNO_NOP_X=3,F.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X=0,F.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y=0,F.IMGPOS_DEFAULT_FRAME_X=0,F.IMGPOS_DEFAULT_FRAME_Y=1,F.IMGPOS_DEFAULT_BATTLE_EFFECT_X=3,F.IMGPOS_DEFAULT_BATTLE_EFFECT_Y=3,F.DEFAULT_DISABLE_SAVE=!1,F.DEFAULT_OLDMAP=!1,F.DEFAULT_OBJECT_NO_COLLAPSE=!1,F.SPLASH_SCREEN_DISP_MILLS=100,F.DEFAULT_FRAME_INTERVAL=20,F.GAMEOVER_FRAME_INTERVAL=50,F.YESNO_PRESS_DISP_FRAME_NUM=20,F.WAIT_TIME_FRAME_NUM=6,F.CHIP_SIZE=40,F.MAP_WINDOW_WIDTH=440,F.MAP_WINDOW_HEIGHT=440,F.H_PARTS_NUM_IN_WINDOW=F.MAP_WINDOW_WIDTH/F.CHIP_SIZE,F.V_PARTS_NUM_IN_WINDOW=F.MAP_WINDOW_HEIGHT/F.CHIP_SIZE,F.MIN_SPEED_INDEX=0,F.MAX_SPEED_INDEX=k.length-1,F.QUICK_BATTLE_SPEED_INDECIES=[k.length-2,k.length-1],F.ANIMATION_REP_HALF_FRAME=22,F.PLAYER_LOOKING_AROUND_START_FRAME=4*F.ANIMATION_REP_HALF_FRAME,F.RELATIVE_COORD_BIAS=1e4,F.RELATIVE_COORD_LOWER=F.RELATIVE_COORD_BIAS-1e3,F.PLAYER_COORD=F.RELATIVE_COORD_BIAS-1e3,F.LOCALGATE_PLAYER_WAIT_FRAME=5,F.STATUS_CHANGED_EFFECT_FRAME_NUM=20,F.PASSABLE_OBJECT=1,F.APPERANCE_PARTS_MIN_INDEX=0,F.APPERANCE_PARTS_MAX_INDEX=9,F.APPERANCE_PARTS_MIN_INDEX_NO=5,F.APPERANCE_PARTS_MAX_INDEX_YES=4,F.FADEOUT_SPEED=8,F.STATUS_MINUS_BORDER=3e4,F.ITEMBOX_IS_FULL=-1,F.BATTLE_INTERVAL_FRAME_NUM=10,F.BATTLE_SPEED_CHANGE_TURN_NUM=40,F.RANDOM_MOVE_ITERATION_NUM=50,F.RANDOM_MOVE_ITERATION_NUM_BEFORE_V31=8,F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX=8,F.SOUND_MAX=100,F.ITEM_BORDER_IMG_DATA_URL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAArklEQVRYR+2Y0QqAIAxFt///aENJHwxxuJUSxzeh3S7HXaNpEkly4FIRzba0GEyHeVTN7jqDWvb7V4Y1NLibZIY0NbiL5G3MZLCe / 1fn3XJgJYjB7mgg6O1VCEKwXo79JeklY62nB62kRs9BEIKkeNIDhISQEBJC4k0BBCF4D7D4cV9shf99ixdB + MrM0y3fa3zV05D45GOqhwPMGPkYlccIOEY2VKUN0UNVXxC7ADj7mDi9aFZZAAAAAElFTkSuQmCC",F.LOAD_STAGE_MAX_EXCEPT_AUDIO=7,F.WWA_STYLE_TAG_ID="wwa-additional-style",F.DEFAULT_FRAME_COLOR_R=255,F.DEFAULT_FRAME_COLOR_G=255,F.DEFAULT_FRAME_COLOR_B=255,F.DEFAULT_FRAMEOUT_COLOR_R=96,F.DEFAULT_FRAMEOUT_COLOR_G=96,F.DEFAULT_FRAMEOUT_COLOR_B=96,F.DEFAULT_STRBACK_COLOR_R=0,F.DEFAULT_STRBACK_COLOR_G=0,F.DEFAULT_STRBACK_COLOR_B=0,F.DEFAULT_STATUS_COLOR_R=0,F.DEFAULT_STATUS_COLOR_G=0,F.DEFAULT_STATUS_COLOR_B=0,F.KEYPRESS_MESSAGE_CHANGE_FRAME_NUM=20,F.WWAP_SERVER_OLD="http://wwawing.com/wwap",F.WWAP_SERVER="https://wwaphoenix.github.io",F.WWAP_SERVER_AUDIO_DIR="audio",F.WWAP_SERVER_TITLE_IMG="cover_p.gif",F.WWAP_SERVER_LOADER_NO_WORKER="wwaload.noworker.js",F.SCREEN_WIDTH=560,F.SCREEN_HEIGHT=440,F.LOADING_FONT="Times New Roman",F.MSG_STR_WIDTH=16,F.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME=20,F.ITEMBOX_TOP_Y=140,F.USER_VAR_NUM=256,F.USER_VAR_NUM_MAX_VALUE=9007199254740991,F.USET_VAR_NUM_MIN_VALUE=-9007199254740991,F.CONTROLL_WAIT_FRAME=6,F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM=10,F.FIGHT_DRAW_TURN=40;class Y{}Y.QUICK_SAVE_MAX=4,Y.QUICK_SAVE_THUMNAIL_WIDTH=99,Y.QUICK_SAVE_THUMNAIL_HEIGHT=99,Y.SAVE_INTERVAL_MOVE=200,Y.INDEXEDDB_DB_NAME="WWA_WING_DB",Y.INDEXEDDB_TABLE_NAME="SAVE_TABLE",Y.DATE_LAST_SAVE_TEXT_COLOR="rgba(255,255,0,1)";class G{}G.EMPTY_LOAD="",G.EMPTY_SAVE="",G.PASSWORD="Password",G.QUICK_SAVE="Quick Save",G.QUICK_LOAD="Quick Load",G.BATTLE_REPORT="Battle Report",G.GAME_END="Game End",G.GOTO_WWA="Goto WWA",G.RESTART_GAME="Restart Game";class H{}var K;!function(e){e[e.INIT=0]="INIT",e[e.MAP_LOAD=1]="MAP_LOAD",e[e.OBJ_LOAD=2]="OBJ_LOAD",e[e.MAP_ATTR=3]="MAP_ATTR",e[e.OBJ_ATTR=4]="OBJ_ATTR",e[e.RAND_PARTS=5]="RAND_PARTS",e[e.MESSAGE=6]="MESSAGE",e[e.GAME_INIT=7]="GAME_INIT",e[e.AUDIO=8]="AUDIO",e[e.FINISH=9]="FINISH"}(K||(K={}));var j,X,$,J,Z,q,z,Q,ee,te,se,ie=["ロードの準備をしています。","背景パーツを読み込んでいます。","物体パーツを読み込んでます。","背景パーツの属性を読み込んでます。","物体パーツの属性を読み込んでます。","ランダムパーツを置換しています。","メッセージを読み込んでます。","Welcome to WWA Wing!"],ae=["Welcome to WWA Wing!","Now Map Data Loading .....","Now CG Data Loading .....","Now Making chara CG ....."];!function(e){e[e.LINE=30]="LINE",e[e.TITLE_X=100]="TITLE_X",e[e.TITLE_Y=70]="TITLE_Y",e[e.LOADING_X=50]="LOADING_X",e[e.LOADING_Y=140]="LOADING_Y",e[e.ERROR_X=10]="ERROR_X",e[e.ERROR_Y=180]="ERROR_Y",e[e.FOOTER_X=160]="FOOTER_X",e[e.FOOTER_Y=360]="FOOTER_Y",e[e.WORLD_Y=330]="WORLD_Y",e[e.COPYRIGHT_Y=390]="COPYRIGHT_Y"}(j||(j={})),function(e){e[e.TITLE=32]="TITLE",e[e.LOADING=22]="LOADING",e[e.FOOTER=18]="FOOTER",e[e.ERRROR=16]="ERRROR"}(X||(X={})),function(e){e[e.COLOR_FRAME=0]="COLOR_FRAME",e[e.COLOR_FRAMEOUT=1]="COLOR_FRAMEOUT",e[e.COLOR_STR=2]="COLOR_STR",e[e.COLOR_STATUS_STR=4]="COLOR_STATUS_STR"}($||($={})),function(e){e[e.MESSAGE_WINDOW=0]="MESSAGE_WINDOW",e[e.SIDEBAR=1]="SIDEBAR"}(J||(J={})),function(e){e[e.BITSHIFT=16]="BITSHIFT",e[e.BITMASK=65535]="BITMASK"}(Z||(Z={})),function(e){e[e.NONE=0]="NONE",e[e.KEYDOWN=1]="KEYDOWN",e[e.KEYPRESS=2]="KEYPRESS",e[e.KEYUP=3]="KEYUP",e[e.KEYPRESS_MESSAGECHANGE=4]="KEYPRESS_MESSAGECHANGE"}(q||(q={})),function(e){e[e.KEY_ENTER=13]="KEY_ENTER",e[e.KEY_SHIFT=16]="KEY_SHIFT",e[e.KEY_ESC=27]="KEY_ESC",e[e.KEY_SPACE=32]="KEY_SPACE",e[e.KEY_LEFT=37]="KEY_LEFT",e[e.KEY_UP=38]="KEY_UP",e[e.KEY_RIGHT=39]="KEY_RIGHT",e[e.KEY_DOWN=40]="KEY_DOWN",e[e.KEY_1=49]="KEY_1",e[e.KEY_2=50]="KEY_2",e[e.KEY_3=51]="KEY_3",e[e.KEY_A=65]="KEY_A",e[e.KEY_B=66]="KEY_B",e[e.KEY_C=67]="KEY_C",e[e.KEY_D=68]="KEY_D",e[e.KEY_E=69]="KEY_E",e[e.KEY_F=70]="KEY_F",e[e.KEY_G=71]="KEY_G",e[e.KEY_H=72]="KEY_H",e[e.KEY_I=73]="KEY_I",e[e.KEY_J=74]="KEY_J",e[e.KEY_K=75]="KEY_K",e[e.KEY_L=76]="KEY_L",e[e.KEY_M=77]="KEY_M",e[e.KEY_N=78]="KEY_N",e[e.KEY_O=79]="KEY_O",e[e.KEY_P=80]="KEY_P",e[e.KEY_Q=81]="KEY_Q",e[e.KEY_R=82]="KEY_R",e[e.KEY_S=83]="KEY_S",e[e.KEY_T=84]="KEY_T",e[e.KEY_U=85]="KEY_U",e[e.KEY_V=86]="KEY_V",e[e.KEY_W=87]="KEY_W",e[e.KEY_X=88]="KEY_X",e[e.KEY_Y=89]="KEY_Y",e[e.KEY_Z=90]="KEY_Z",e[e.KEY_F1=112]="KEY_F1",e[e.KEY_F2=113]="KEY_F2",e[e.KEY_F3=114]="KEY_F3",e[e.KEY_F4=115]="KEY_F4",e[e.KEY_F5=116]="KEY_F5",e[e.KEY_F6=117]="KEY_F6",e[e.KEY_F7=118]="KEY_F7",e[e.KEY_F8=119]="KEY_F8",e[e.KEY_F9=120]="KEY_F9",e[e.KEY_F10=121]="KEY_F10",e[e.KEY_F12=123]="KEY_F12"}(z||(z={}));class re{checkHitKey(e){var t=this.getKeyState(e);return t===q.KEYDOWN||t===q.KEYPRESS}getKeyState(e){return this._prevKeyState[e]?this._keyState[e]?q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}getKeyStateForControllPlayer(e){return this._prevKeyStateOnControllable[e]?this._keyState[e]?q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}getKeyStateForMessageCheck(e){return this._prevKeyState[e]?this._keyState[e]?this._keyInputContinueFrameNum[e]>=F.KEYPRESS_MESSAGE_CHANGE_FRAME_NUM?q.KEYPRESS_MESSAGECHANGE:q.KEYPRESS:q.KEYUP:this._keyState[e]?q.KEYDOWN:q.NONE}setPressInfo(e){this._nextKeyState[e]=!0,this._keyInputContinueFrameNum[e]=-1}setReleaseInfo(e){this._nextKeyState[e]=!1,this._keyInputContinueFrameNum[e]=-1}update(){var e;for(this._prevKeyState=this._keyState.slice(),this._keyState=this._nextKeyState.slice(),e=0;e<re.KEY_BUFFER_MAX;e++)this._keyState[e]&&this._keyInputContinueFrameNum[e]++}memorizeKeyStateOnControllableFrame(){this._prevKeyStateOnControllable=this._keyState.slice()}allClear(){var e;for(this._nextKeyState=new Array(re.KEY_BUFFER_MAX),e=0;e<re.KEY_BUFFER_MAX;e++)this._nextKeyState[e]=!1}constructor(){var e;for(this._nextKeyState=new Array(re.KEY_BUFFER_MAX),this._keyState=new Array(re.KEY_BUFFER_MAX),this._prevKeyState=new Array(re.KEY_BUFFER_MAX),this._prevKeyStateOnControllable=new Array(re.KEY_BUFFER_MAX),this._keyInputContinueFrameNum=new Array(re.KEY_BUFFER_MAX),e=0;e<re.KEY_BUFFER_MAX;e++)this._nextKeyState[e]=!1,this._keyState[e]=!1,this._prevKeyState[e]=!1,this._prevKeyStateOnControllable[e]=!1,this._keyInputContinueFrameNum[e]=0}}re.KEY_BUFFER_MAX=256,function(e){e[e.NONE=0]="NONE",e[e.MOUSEDOWN=1]="MOUSEDOWN",e[e.MOUSEPRESS=2]="MOUSEPRESS",e[e.MOUSEUP=3]="MOUSEUP"}(Q||(Q={})),function(e){e[e.DIR_KEY=1]="DIR_KEY"}(ee||(ee={}));class ne{checkClickMouse(e){var t;return(t=void 0!==e?this.getMouseState(e):this.getMouseState())===Q.MOUSEDOWN||t===Q.MOUSEPRESS}getMouseState(e){return void 0!==e&&this._inputDir!==e?Q.NONE:this._prevMouseState?this._mouseState?Q.MOUSEPRESS:Q.MOUSEUP:this._mouseState?Q.MOUSEDOWN:Q.NONE}getMouseStateForControllPlayer(e){return void 0!==e&&this._inputDir!==e?Q.NONE:this._prevMouseStateOnControllable?this._mouseState?Q.MOUSEPRESS:Q.MOUSEUP:this._mouseState?Q.MOUSEDOWN:Q.NONE}setPressInfo(e,t){this._nextMouseState=!0,this._inputDir=e,this._touchID=t}setReleaseInfo(){this._touchID=0,this._nextMouseState=!1}touchIDIsSetDir(){return this._touchID===ee.DIR_KEY}memorizeMouseStateOnControllableFrame(){this._prevMouseStateOnControllable=this._mouseState}update(){this._prevMouseState=this._mouseState,this._mouseState=this._nextMouseState}clear(){this._nextMouseState=!1}getTouchID(){return this._touchID}constructor(){this._prevMouseState=!1,this._mouseState=!1,this._nextMouseState=!1}}!function(e){e[e.BUTTON_INDEX_B=0]="BUTTON_INDEX_B",e[e.BUTTON_INDEX_A=1]="BUTTON_INDEX_A",e[e.BUTTON_INDEX_Y=2]="BUTTON_INDEX_Y",e[e.BUTTON_INDEX_X=3]="BUTTON_INDEX_X",e[e.BUTTON_INDEX_L=4]="BUTTON_INDEX_L",e[e.BUTTON_INDEX_R=5]="BUTTON_INDEX_R",e[e.BUTTON_INDEX_ZL=6]="BUTTON_INDEX_ZL",e[e.BUTTON_INDEX_ZR=7]="BUTTON_INDEX_ZR",e[e.BUTTON_INDEX_MINUS=8]="BUTTON_INDEX_MINUS",e[e.BUTTON_INDEX_PLUS=9]="BUTTON_INDEX_PLUS",e[e.BUTTON_INDEX_LEFT_STICK=10]="BUTTON_INDEX_LEFT_STICK",e[e.BUTTON_INDEX_RIGHT_STICK=11]="BUTTON_INDEX_RIGHT_STICK",e[e.BUTTON_CROSS_KEY_UP=12]="BUTTON_CROSS_KEY_UP",e[e.BUTTON_CROSS_KEY_DOWN=13]="BUTTON_CROSS_KEY_DOWN",e[e.BUTTON_CROSS_KEY_LEFT=14]="BUTTON_CROSS_KEY_LEFT",e[e.BUTTON_CROSS_KEY_RIGHT=15]="BUTTON_CROSS_KEY_RIGHT"}(te||(te={})),function(e){e[e.AXES_L_HORIZONTAL_INDEX=0]="AXES_L_HORIZONTAL_INDEX",e[e.AXES_L_VERTICAL_INDEX=1]="AXES_L_VERTICAL_INDEX",e[e.AXES_R_HORIZONTAL_INDEX=2]="AXES_R_HORIZONTAL_INDEX",e[e.AXES_R_VERTICAL_INDEX=3]="AXES_R_VERTICAL_INDEX",e[e.AXES_CROSS_KEY=9]="AXES_CROSS_KEY"}(se||(se={}));class oe{constructor(){var e;for(this.gamepad=null,this.triggers=[],e=0;e<16;e++)this.triggers[e]=!1}update(){this.gamepad=null;var e=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:[];if(e&&e.length>0&&e[0]){var t=e[0];this.gamepad=t}}buttonTrigger(...e){if(!this.gamepad)return!1;var t,s,i,a,r;for(s=e.length,t=0;t<s;t++){i=e[t];var n=this.gamepad.buttons[i];if(!n)return!1;if(a="object"==typeof n?!0===n.pressed:1===n,r=this.triggers[i],this.triggers[i]=a,a&&!r)return!0}return!1}buttonPressed(...e){if(!this.gamepad)return!1;var t,s,i;for(s=e.length,t=0;t<s;t++){i=e[t];var a=this.gamepad.buttons[i];if(!a)return!1;if("object"==typeof a?!0===a.pressed:1===a)return!0}return!1}crossPressed(...e){if(!this.gamepad)return!1;var t,s;for(s=e.length,t=0;t<s;t++)switch(e[t]){case te.BUTTON_CROSS_KEY_UP:if(this.gamepad.axes[se.AXES_L_VERTICAL_INDEX]<=-.6||this.gamepad.axes[se.AXES_R_VERTICAL_INDEX]<=-.6||-1===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_UP))return!0;break;case te.BUTTON_CROSS_KEY_DOWN:if(this.gamepad.axes[se.AXES_L_VERTICAL_INDEX]>=.7||this.gamepad.axes[se.AXES_R_VERTICAL_INDEX]>=.7||.1===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_DOWN))return!0;break;case te.BUTTON_CROSS_KEY_LEFT:if(this.gamepad.axes[se.AXES_L_HORIZONTAL_INDEX]<=-.7||this.gamepad.axes[se.AXES_R_HORIZONTAL_INDEX]<=-.7||.7===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_LEFT))return!0;break;case te.BUTTON_CROSS_KEY_RIGHT:if(this.gamepad.axes[se.AXES_L_HORIZONTAL_INDEX]>.6||this.gamepad.axes[se.AXES_R_HORIZONTAL_INDEX]>.6||-.5===this.stickFloor(se.AXES_CROSS_KEY)||this.buttonPressed(te.BUTTON_CROSS_KEY_RIGHT))return!0}return!1}vibration(e){return!!this.gamepad&&(!!this.gamepad.vibrationActuator&&void(e?this.gamepad.vibrationActuator.playEffect("dual-rumble",{startDelay:0,duration:100,weakMagnitude:1,strongMagnitude:.5}):this.gamepad.vibrationActuator.playEffect("dual-rumble",{startDelay:0,duration:100,weakMagnitude:.5,strongMagnitude:1})))}stickFloor(...e){if(!this.gamepad)return 0;var t,s,i;for(s=e.length,t=0;t<s;t++){i=e[t];var a=this.gamepad.axes[i];return"number"!=typeof a?0:Math.floor(10*a)/10}return 0}}class he{constructor(e=0){this.lastCalculatedTimeUnixMs=Date.now(),this.lastCalculatedPlayTimeMs=e}calculateTimeMs(){const e=Date.now(),t=e-this.lastCalculatedTimeUnixMs+this.lastCalculatedPlayTimeMs;return this.lastCalculatedTimeUnixMs=e,this.lastCalculatedPlayTimeMs=t,t}calculatePlayTimeFormat(){return he.formatPlayTimeText(this.calculateTimeMs()/1e3)}static formatPlayTimeText(e){const t=Math.floor(e);return t>=36e6?"9999:99:99":("000"+(t/60/60|0)).slice(-4)+":"+("0"+(t/60|0)%60).slice(-2)+":"+("0"+t%60).slice(-2)}}const ce=["BUTTON_ENTER","BUTTON_ESC","BUTTON_SIDEBAR","BUTTON_FAST","BUTTON_SLOW","BUTTON_LEFT","BUTTON_UP","BUTTON_RIGHT","BUTTON_DOWN"],le=["BUTTON_LEFT","BUTTON_UP","BUTTON_RIGHT","BUTTON_DOWN"],_e=new Set(le);class ue{constructor(e,t=!1,s=null,i=null,a=null,r=null){if(this._enabled=null!==e,this._visible=t,this._onTouchStart=a||null,this._onTouchEnd=r||null,this._availableButtons=[],this._isTouchingButtons={},this._moveButtonsElement=i,this._buttonWrapperElement=s,this._setVisible(t),this._moveButtonsElement&&(this._moveButtonsElement.style.visibility="visible"),this._buttonWrapperElement&&(this._buttonWrapperElement.style.visibility="visible"),null!==e){for(const t in e){const s=e[t];if(!s)continue;const i=t;this._availableButtons.push(i),s.setAttribute("type",t),this._isTouchingButtons[i]={prev:!1,current:!1,next:!1};const a=e=>{e.cancelable&&e.preventDefault()},r=e=>{a(e),this.allClear()};s.addEventListener("touchstart",(e=>{a(e),this.setTouchInfo(i)})),s.addEventListener("touchcancel",r),ue.isMoveButton(i)?(s.addEventListener("touchmove",this._detectMovingMoveButton.bind(this)),s.addEventListener("touchend",this.allMoveClear.bind(this))):s.addEventListener("touchend",(e=>{a(e),this.clearTouchInfo(i)}))}null!==i&&i.addEventListener("touchmove",this._detectMovingMoveButton.bind(this))}}_detectMovingMoveButton(e){e.preventDefault(),this.allMoveClear();const t=e.targetTouches.item(0);if(!this._moveButtonsElement||null===t)return;const s=this._moveButtonsElement.getBoundingClientRect(),i=document.body.getBoundingClientRect(),a=s.left-i.left+s.width/2,r=s.top-i.top+s.height/2,n=t.pageX-a,o=t.pageY-r;n>=o?n<=-o?this.setTouchInfo("BUTTON_UP"):this.setTouchInfo("BUTTON_RIGHT"):n>=-o?this.setTouchInfo("BUTTON_DOWN"):this.setTouchInfo("BUTTON_LEFT")}_setVisible(e){null!==this._moveButtonsElement&&(this._moveButtonsElement.style.display=e?"grid":"none"),null!==this._buttonWrapperElement&&(this._buttonWrapperElement.style.display=e?"grid":"none"),this._visible=e}checkTouchButton(e){if(!this._enabled)return!1;return"TOUCH"===this.getButtonState(e)}checkTouchingButton(e){if(!this._enabled)return!1;const t=this.getButtonState(e);return"TOUCH"===t||"TOUCHING"===t}getButtonState(e){const t=this._isTouchingButtons[e];if(!this._enabled||void 0===t)return"NONE";const s=t.prev,i=t.current;return s&&i?"TOUCHING":i?"TOUCH":s?"LEAVE":"NONE"}setTouchInfo(e){const t=this._isTouchingButtons[e];this._enabled&&void 0!==t&&(t.next=!0)}clearTouchInfo(e){const t=this._isTouchingButtons[e];this._enabled&&void 0!==t&&(t.next=!1)}allMoveClear(){le.forEach((e=>{this._availableButtons.includes(e)&&this.clearTouchInfo(e)}))}allClear(){this._availableButtons.forEach((e=>{if(void 0!==e){const t=this._isTouchingButtons[e];void 0!==t&&(t.next=!1)}}))}static isMoveButton(e){return _e.has(e)}update(){this._availableButtons.forEach((e=>{var t,s;if(void 0===e)return;const i=this._isTouchingButtons[e];if(void 0!==i)switch(this._isTouchingButtons[e].prev=i.current,this._isTouchingButtons[e].current=i.next,this.getButtonState(e)){case"TOUCH":null===(t=this._onTouchStart)||void 0===t||t.call(this,e);break;case"LEAVE":null===(s=this._onTouchEnd)||void 0===s||s.call(this,e)}}))}toggleVisible(){this._setVisible(!this._visible)}}function de(){const e=document.querySelector("meta[name='viewport']"),t=window.innerWidth,s=window.innerHeight;let i="user-scalable=no";if(t>s){i=`width=${Math.floor(t/s*456)},${i}`}else t<=s&&(i=`width=576,${i}`);null==e||e.setAttribute("content",`${i}`)}function pe(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e||"symbol"==typeof e||null==e}var me=e=>document.getElementById(e),ge=e=>document.querySelector(e),Ee=e=>document.querySelector(e),we=e=>document.querySelectorAll(e),fe=(e,t)=>{var s,i,a=window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft,r=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;return s=e-me("wwa-wrapper").offsetLeft+a,i=t-me("wwa-wrapper").offsetTop+r,new l(s,i)},ye=e=>e.match(/^https?:\/\//)||e.match(/^\.\.\//)?e:location.href="./"+e,ve=e=>{var t="";if(e instanceof Array){for(var s=0;s<e.length;s++)t+=ve(e[s])+"/";return t}return e+""};const Ae=e=>e.split("").reverse().join("");function Se(e,t){if("number"!=typeof e)throw new TypeError(`${t} が数値ではありません。`);return!0}function Te(e,t,s=0){if(s>=3)return"...";if("number"==typeof e||"boolean"==typeof e||null==e)return String(e);if("string"==typeof e){const s=[...e];return t&&s.length>10?`"${s.slice(0,10).join("")}…`:`"${e}"`}if(Array.isArray(e))return`[${e.map((e=>Te(e,!0,s+1))).join(",")}]`;if(e instanceof Map){return`{${[...e].map((([e,t])=>`${e}:${Te(t,!0,s+1)}`)).join(",")}}`}throw new TypeError("この値はフォーマットできません",e)}function Ie(e,t){if(Array.isArray(e)){if("number"!=typeof t)throw new TypeError("配列に対して、数字以外をindexにできません");return t<0||t>=e.length?void console.warn(`配列のインデックス ${t} は範囲外です`):e[t]}if(e instanceof Map){if(!pe(t))throw new TypeError("オブジェクトのキーはプリミティブ値でなければなりません。: "+t);return e.get(String(t))}if("string"==typeof e){if("number"!=typeof t)throw new TypeError(`文字列 "${e}" に対して、数字以外をindexにできません`);return t<0||t>=e.length?void console.warn(`文字列 "${e}" のインデックス ${t} は範囲外です`):e[t]}throw pe(e)?new TypeError(`プリミティブ値 ${String(e)} は添字参照できません`):new TypeError(String(e)+"は添字参照できません")}function Ce(e,t,s){if(Array.isArray(e)){if("number"!=typeof t)throw new TypeError("数字以外をindexにできません");e[t]=s}else{if(!(e instanceof Map))throw"string"==typeof e?new TypeError(`文字列 "${e}" の特定の文字を直接書き換えることはできません`):pe(e)?new TypeError(`プリミティブ値 ${String(e)} は添字参照できません`):new TypeError(String(e)+"は添字参照できません");if(!pe(t))throw new TypeError("オブジェクトのキーはプリミティブ値でなければなりません。: "+t);e.set(String(t),s)}}const Pe=[{name:"pos",type:"numberArray"},{name:"time",type:"numberOrArray"},{name:"timeFrame",type:"numberOrArray"},{name:"size",type:"numberArray"},{name:"animTime",type:"numberArray"},{name:"animTimeFrame",type:"numberArray"},{name:"move",type:"numberArray"},{name:"accel",type:"numberArray"},{name:"zoom",type:"numberArray"},{name:"zoomAccel",type:"numberArray"},{name:"anchor",type:"number"},{name:"circle",type:"numberArray"},{name:"repeat",type:"numberArray"},{name:"img",type:"numberArray"},{name:"imgFile",type:"string"},{name:"imgMap",type:"numberArray"},{name:"sound",type:"number"},{name:"crop",type:"numberArray"},{name:"text",type:"string"},{name:"font",type:"string"},{name:"fontSize",type:"number"},{name:"fontFamily",type:"string"},{name:"italic",type:"number"},{name:"bold",type:"number"},{name:"color",type:"numberArray"},{name:"textAlign",type:"string"},{name:"lineHeight",type:"number"},{name:"opacity",type:"number"},{name:"fade",type:"number"},{name:"angle",type:"number"},{name:"rotate",type:"number"},{name:"wait",type:"number"},{name:"waitFrame",type:"number"},{name:"next",type:"numberArray"},{name:"create",type:"numberArray2D"},{name:"map",type:"numberArray"},{name:"script",type:"string"}],Oe={time_frame:"timeFrame",anim_time:"animTime",anim_time_frame:"animTimeFrame",zoom_accel:"zoomAccel",img_file:"imgFile",img_map:"imgMap",font_size:"fontSize",font_family:"fontFamily",text_align:"textAlign",line_height:"lineHeight",wait_frame:"waitFrame"},De="-?\\d+",Ne=`v\\[(${De})\\]`,be=`m\\[${De}\\]\\[${De}\\]`,Me=`m\\[(${De})\\]\\[(${De})\\]`,xe=`o\\[${De}\\]\\[${De}\\]`,Le=`o\\[(${De})\\]\\[(${De})\\]`,Re=`ITEM\\[${De}\\]`,Be=`ITEM\\[(${De})\\]`,Ue=`${`v\\[${De}\\]`}|${be}|${xe}|${Re}`,ke="HP|HPMAX|AT|DF|GD|STEP|PDIR",We=`${Ue}|${be}|${xe}|${Re}|${ke}`,Ve=`${De}|${Ue}|AT_TOTAL|AT_ITEMS|DF_TOTAL|DF_ITEMS|TIME|X|Y|PX|PY|ID|TYPE|ITEM_COUNT_ALL|${ke}`,Fe=`RAND\\((${Ve})\\)`,Ye=`ITEM_COUNT\\((${Ve})\\)`,Ge=`${Ve}|${`${`RAND\\((?:${Ve})\\)`}|${`ITEM_COUNT\\((?:${Ve})\\)`}`}`,He="\\+|\\-|\\*|\\/|%",Ke="^\\(",je="\\)$",Xe=new RegExp(`^${De}$`),$e=new RegExp(`^${Ne}$`),Je=new RegExp(`^${Me}$`),Ze=new RegExp(`^${Le}$`),qe=new RegExp(`^${Be}$`),ze=new RegExp(`^${Fe}$`),Qe=new RegExp(`${Ye}$`),et=new RegExp(`${Ke}(${We})=(${Ge})(${He})(${Ge})${je}`),tt=new RegExp(`${Ke}(${We})(=|\\+=|\\-=|\\*=|\\/=|%=)(${Ge})${je}`),st=new RegExp(`^(${Ge})(?:(${He})(${Ge}))?$`),it=new RegExp(`${Ke}(${Ge})(>|<|<=|>=|==|!=)(${Ge})${je}`),at=new RegExp(`{{(${Ge})}}`,"g");function rt(e){return"RAND"!==e.type&&"ITEM_COUNT"!==e.type}function nt(e){switch(e){case"HP":case"HPMAX":case"AT":case"AT_TOTAL":case"AT_ITEMS":case"DF":case"DF_TOTAL":case"DF_ITEMS":case"GD":case"STEP":case"TIME":case"X":case"Y":case"PX":case"PY":case"PDIR":case"ID":case"TYPE":case"ITEM_COUNT_ALL":return{type:e};default:const t=e.match($e);if(t){const e=ot(t);return null===e?null:{type:"VARIABLE",index:e}}const s=e.match(Je);if(s){const e=ht(s);return null===e?null:{type:"MAP",x:e[0],y:e[1]}}const i=e.match(Ze);if(i){const e=ht(i);return null===e?null:{type:"OBJECT",x:e[0],y:e[1]}}const a=e.match(qe);if(a){const e=ot(a);return null===e?null:{type:"ITEM",boxIndex1To12:e}}if(e.match(Xe)){const t=parseInt(e,10);return null===t||isNaN(t)?null:{type:"NUMBER",rawValue:t}}const r=e.match(ze);if(r){const e=r.length>=2?nt(r[1]):null;return null!==e&&rt(e)?{type:"RAND",argument:e}:null}const n=e.match(Qe);if(n){const e=n.length>=2?nt(n[1]):null;return null!==e&&rt(e)?{type:"ITEM_COUNT",argument:e}:null}return null}}function ot(e){const t=e.length>=2?Number(e[1]):null;return null===t||isNaN(t)?null:t}function ht(e){if(e.length<3)return null;const t=Number(e[1]),s=Number(e[2]);return isNaN(t)||isNaN(s)?null:[t,s]}function ct(e,t,s=0){if("boolean"==typeof e)return e;const i=lt(e.left,t,s),a=lt(e.right,t,s);return function(e,t,s){switch(e){case">":return t>s;case"<":return t<s;case">=":return t>=s;case"<=":return t<=s;case"==":return t===s;case"!=":return t!==s;default:return!1}}(e.operator,i,a)}function lt(e,t,s=0){var i,a,r,n,o,h;switch(e.type){case"HP":return t.totalStatus.energy;case"HPMAX":return t.energyMax;case"AT":return t.bareStatus.strength;case"AT_TOTAL":return t.totalStatus.strength;case"AT_ITEMS":return t.itemStatus.strength;case"DF":return t.bareStatus.defence;case"DF_TOTAL":return t.totalStatus.defence;case"DF_ITEMS":return t.itemStatus.defence;case"GD":return t.totalStatus.gold;case"STEP":return t.moveCount;case"VARIABLE":{const s=t.userVars[e.index];return Se(s,`v${e.index}`)?s:0}case"MAP":return e.y<0||e.y>=t.map.length||e.x<0||e.x>=t.map[e.y].length?0:t.map[e.y][e.x];case"OBJECT":return e.y<0||e.y>=t.mapObject.length||e.x<0||e.x>=t.mapObject[e.y].length?0:t.mapObject[e.y][e.x];case"ITEM":return e.boxIndex1To12<1||e.boxIndex1To12>12?0:t.itemBox[e.boxIndex1To12-1];case"ITEM_COUNT_ALL":return t.itemBox.filter((e=>0!==e)).length;case"NUMBER":return e.rawValue;case"TIME":return t.playTime;case"X":return null!==(a=null===(i=t.partsPosition)||void 0===i?void 0:i.x)&&void 0!==a?a:t.playerCoord.x;case"Y":return null!==(n=null===(r=t.partsPosition)||void 0===r?void 0:r.y)&&void 0!==n?n:t.playerCoord.y;case"PX":return t.playerCoord.x;case"PY":return t.playerCoord.y;case"PDIR":return t.playerDirection;case"ID":return null!==(o=t.partsId)&&void 0!==o?o:-1;case"TYPE":return null!==(h=t.partsType)&&void 0!==h?h:-1;case"RAND":return Math.floor(Math.random()*lt(e.argument,t));case"ITEM_COUNT":return t.itemBox.filter((s=>s===lt(e.argument,t))).length;default:return s}}function _t(e,t,s){switch(e){case"=":return s;case"+":case"+=":return t+s;case"-":case"-=":return t-s;case"*":case"*=":return t*s;case"/":case"/=":return 0===s?0:t/s;case"%":case"%=":return 0===s?0:t%s;default:throw new Error("未定義の演算子です")}}function ut(e,t){var s;switch(null===(s=nt(t))||void 0===s?void 0:s.type){case"VARIABLE":{const s=t.match(/^v\[(\d+)\]$/),i=Number(s[1]);if(null===i||isNaN(i))throw new Error("ユーザ変数の添字のパースに失敗しました");return{assignee:"variable",index:i,rawValue:e}}case"MAP":{const s=t.match(/^m\[(\d+)\]\[(\d+)\]$/),i=Number(s[1]),a=Number(s[2]);if(null===i||null===a||isNaN(i)||isNaN(a))throw new Error("背景パーツの添字のパースに失敗しました");return{assignee:"map",x:i,y:a,rawValue:e}}case"OBJECT":{const s=t.match(/^o\[(\d+)\]\[(\d+)\]$/),i=Number(s[1]),a=Number(s[2]);if(null===i||null===a||isNaN(i)||isNaN(a))throw new Error("物体パーツの添字のパースに失敗しました");return{assignee:"mapObject",x:i,y:a,rawValue:e}}case"ITEM":{const s=t.match(/^ITEM\[(\d+)\]$/),i=Number(s[1]);if(null===i||isNaN(i))throw new Error("アイテムの添字のパースに失敗しました");return{assignee:"item",boxIndex1to12:i,rawValue:e}}case"ITEM_COUNT_ALL":case"ITEM_COUNT":throw new Error("左辺値に所持アイテム数は入れられません");case"NUMBER":throw new Error("左辺値に定数は入れられません");case"HP":return{assignee:"energy",rawValue:e};case"HPMAX":return{assignee:"energyMax",rawValue:e};case"AT":return{assignee:"strength",rawValue:e};case"AT_TOTAL":throw new Error("左辺値に合計攻撃力は入れられません");case"AT_ITEMS":throw new Error("左辺値にアイテム攻撃力は入れられません");case"DF":return{assignee:"defence",rawValue:e};case"DF_TOTAL":throw new Error("左辺値に合計防御力は入れられません");case"DF_ITEMS":throw new Error("左辺値にアイテム防御力は入れられません");case"GD":return{assignee:"gold",rawValue:e};case"STEP":return{assignee:"moveCount",rawValue:e};case"TIME":throw new Error("左辺値にプレイ時間は入れられません");case"PX":throw new Error("左辺値にプレイヤーX座標は入れられません");case"PY":throw new Error("左辺値にプレイヤーY座標は入れられません");case"X":throw new Error("左辺値にパーツX座標は入れられません");case"Y":throw new Error("左辺値にパーツY座標は入れられません");case"ID":throw new Error("左辺値にパーツ番号座標は入れられません");case"TYPE":throw new Error("左辺値にパーツ種別は入れられません");case"PDIR":return{assignee:"playerDirection",rawValue:e};case"RAND":throw new Error("左辺値に乱数は入れられません");default:throw new Error("この文字列から代入操作オブジェクトは生成できません")}}function dt(e){return e.replace(/\s/g,"")}function pt(e,t,s=0){return lt(nt(e),t,s)}function mt(e,t,s=0){const i=dt(e).match(st);if(null!==i){const e=pt(i[1],t,s),a=i[3]?pt(i[3],t,s):void 0,r=i[2];return r&&a?_t(r,e,a):e}throw new Error("マクロ引数のフォーマットを満たしていません: "+e)}function gt(e){const t=dt(e).match(it);if(null===t||t.length<=3)return void console.error(`判定式が異常です: ${e}`);const s=nt(t[1]),i=nt(t[3]);if(s&&i)return{left:s,right:i,operator:t[2]};console.error(`判定式が異常です: ${e}`)}const Et=(e,t)=>{const s=Pe.find((({name:t})=>t===e));if(!s)return console.warn(`定義外のプロパティ ${e} を見つけました。`),!1;switch(s.type){case"numberArray2D":{if(!Array.isArray(t))return console.warn(`プロパティ ${e} は配列形式である必要がありますが、配列形式になっていません。`),!1;const s=t.map(((e,t)=>Array.isArray(e)?null:t+1)).filter((e=>null!==e));if(s.length>0)return console.warn(`プロパティ ${e} は配列の配列である必要がありますが、 ${s.join(", ")} の要素が配列形式になっていません。`),!1;break}case"string":if("string"!=typeof t){if("number"!=typeof t)return console.warn(`プロパティ ${e} では文字列形式である必要があります。実際に入った値は ${t} です。`),!1;console.warn(`プロパティ ${e} は文字列形式を推奨しています。実際に入った値は ${t} です。`)}}return!0},wt=e=>{var t;return null!==(t=Oe[e])&&void 0!==t?t:e},ft=e=>-1===e,yt=e=>{const t=Object.entries(e.properties).map((([e,t])=>{const s=wt(e);if(!Et(s,t))return[s,t];if("string"===Pe.find((({name:e})=>e===s)).type)if("string"!=typeof t)return[s,t.toString()];return[s,t]}));return{...e,properties:Object.fromEntries(t)}},vt=(e,t,s)=>Array.isArray(e)?e[t]:s?e:void 0,At=(e,t,s,i)=>e>0||t>0||s>0||i>0,St=e=>e<0?0:e,Tt=e=>Math.max(e,1),It=e=>Math.max(e,1);class Ct{}Ct.ITEMBOX_SIZE=12,Ct.MAP_ATR_MAX=60,Ct.OBJ_ATR_MAX=60,Ct.OLD_MAP_ATR_MAX=40,Ct.OLD_OBJ_ATR_MAX=40,Ct.ATR_CROP1=1,Ct.ATR_CROP2=2,Ct.ATR_TYPE=3,Ct.ATR_JUMP_X=16,Ct.ATR_JUMP_Y=17,Ct.MAP_LOCALGATE=2,Ct.OBJECT_LOCALGATE=18,Ct.SYSTEM_MESSAGE_NUM=20,Ct.IMGPOS_DEFAULT_YESNO_X=3,Ct.IMGPOS_DEFAULT_YESNO_Y=1,Ct.IMGPOS_DEFAULT_PLAYER_X=2,Ct.IMGPOS_DEFAULT_PLAYER_Y=0,Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X=0,Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y=0,Ct.IMGPOS_DEFAULT_STATUS_X=3,Ct.IMGPOS_DEFAULT_STATUS_Y=2,Ct.IMGRELPOS_ENERGY_ICON_X=0,Ct.IMGRELPOS_STRENGTH_ICON_X=1,Ct.IMGRELPOS_DEFENCE_ICON_X=2,Ct.IMGRELPOS_GOLD_ICON_X=3,Ct.IMGPOS_DEFAULT_WIDE_CELL_X=4,Ct.IMGPOS_DEFAULT_WIDE_CELL_Y=3,Ct.IMGPOS_DEFAULT_ITEMBOX_X=1,Ct.IMGPOS_DEFAULT_ITEMBOX_Y=2,Ct.IMGPOS_DEFAULT_FRAME_X=0,Ct.IMGPOS_DEFAULT_FRAME_Y=1,Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_X=3,Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_Y=3,Ct.DEFAULT_DISABLE_SAVE=!1,Ct.DEFAULT_OLDMAP=!1,Ct.DEFAULT_OBJECT_NO_COLLAPSE=!1,Ct.DEFAULT_FRAME_COLOR_R=255,Ct.DEFAULT_FRAME_COLOR_G=255,Ct.DEFAULT_FRAME_COLOR_B=255,Ct.DEFAULT_FRAMEOUT_COLOR_R=96,Ct.DEFAULT_FRAMEOUT_COLOR_G=96,Ct.DEFAULT_FRAMEOUT_COLOR_B=96,Ct.DEFAULT_STR_COLOR_R=0,Ct.DEFAULT_STR_COLOR_G=0,Ct.DEFAULT_STR_COLOR_B=0,Ct.DEFAULT_STATUS_COLOR_R=0,Ct.DEFAULT_STATUS_COLOR_G=0,Ct.DEFAULT_STATUS_COLOR_B=0,Ct.DEFAULT_MOVES=0,Ct.DEFAULT_SPEED_INDEX=3,Ct.USER_VAR_NUM=256;var Pt,Ot;!function(e){e[e.MAP=1]="MAP",e[e.OBJECT=0]="OBJECT"}(Pt||(Pt={})),function(e){e[e.INIT=0]="INIT",e[e.MAP_LOAD=1]="MAP_LOAD",e[e.OBJ_LOAD=2]="OBJ_LOAD",e[e.MAP_ATTR=3]="MAP_ATTR",e[e.OBJ_ATTR=4]="OBJ_ATTR",e[e.RAND_PARTS=5]="RAND_PARTS",e[e.MESSAGE=6]="MESSAGE"}(Ot||(Ot={}));class Dt{constructor(){this._milisecondTimer=0,this._frameTimer=0,this._points=new Map}addPoint(e,t,s){if(!t&&!s)return;const i=Nt(t,s);switch(this._points.set(e,i),i.type){case"milisecond":{const e=[...this._points.values()].filter((({type:e})=>"milisecond"===e)).map((({value:e})=>e));this._milisecondLimit=Math.max(...e);break}case"frame":{const e=[...this._points.values()].filter((({type:e})=>"frame"===e)).map((({value:e})=>e));this._frameLimit=Math.max(...e)}}}enabled(){return this._points.size>0&&(this._milisecondTimer<this._milisecondLimit||this._frameTimer<this._frameLimit)}tick(e){this.enabled()&&!this.isTimeOver()&&(this._milisecondTimer+=e,this._frameTimer++)}isOver(e,t){if(this._points.has(e)){const t=this._points.get(e);switch(t.type){case"milisecond":return this._milisecondTimer>=t.value;case"frame":return this._frameTimer>=t.value;default:return!1}}return t}isNotOver(e,t){if(this._points.has(e)){const t=this._points.get(e);switch(t.type){case"milisecond":return this._milisecondTimer<t.value;case"frame":return this._frameTimer<t.value;default:return!1}}return t}isTimeOver(){return!1}get timeLimit(){return{milisecond:this._milisecondLimit,frame:this._frameLimit}}}const Nt=(e,t)=>e?{value:e,type:"milisecond"}:t?{value:t,type:"frame"}:void 0;class bt{constructor(e,t){this.canvas=new OffscreenCanvas(Tt(e),It(t)),this.ctx=this.canvas.getContext("2d",{alpha:!0}),this.ctx.imageSmoothingEnabled=!1}getCanvasImage(){return this.canvas}drawCanvas(e,t,s,i,a,r=F.CHIP_SIZE,n=F.CHIP_SIZE){this.ctx.drawImage(e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE,F.CHIP_SIZE,i,a,r,n)}drawCanvasFree(e,t,s,i,a){this.ctx.drawImage(e,t,s,i,a)}drawFont(e,t,s,i){if(void 0!==i){e.split("\n").forEach(((e,a)=>{this.ctx.fillText(e,t,s+a*i)}))}else this.ctx.fillText(e,t,s)}updateSize(e,t){this.canvas.width=Tt(e),this.canvas.height=It(t),this.ctx.imageSmoothingEnabled=!1}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)}}const Mt=(e,t,s)=>"maximum"===e?{width:F.MAP_WINDOW_WIDTH,height:F.MAP_WINDOW_HEIGHT}:"minimumWithMargin"===e?{width:t+2*F.CHIP_SIZE,height:s+2*F.CHIP_SIZE}:{width:t,height:s},xt=(e,t,s,i,a)=>"maximum"===e?{x:i,y:a}:"minimumWithMargin"===e?{x:F.CHIP_SIZE+t/2,y:F.CHIP_SIZE+s/2}:{x:t/2,y:s/2};class Lt{constructor(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f,y,v,A,S,T,I,C,P,O,D,N,b,M,x,L,R,B,U,k,W,V,Y,G,H,K,j,X,$,J,Z,q,z,Q,ee,te,se;this._registry=t;const{properties:ie}=t;this._posBaseX=null!==(a=null===(i=ie.pos)||void 0===i?void 0:i[0])&&void 0!==a?a:0,this._posBaseY=null!==(n=null===(r=ie.pos)||void 0===r?void 0:r[1])&&void 0!==n?n:0,[this._imgMainX,this._imgMainY]=Lt._getImgPosByPicture(this._registry,!0),[this._imgSubX,this._imgSubY]=Lt._getImgPosByPicture(this._registry,!1),this._mapCropCache=Lt._getMapImgPosArray(this._registry,e),this._drawChip=At(this._imgMainX,this._imgMainY,this._imgSubX,this._imgSubY)||null!==this._mapCropCache,this._repeatX=null!==(h=null===(o=ie.repeat)||void 0===o?void 0:o[0])&&void 0!==h?h:1,this._repeatY=null!==(l=null===(c=ie.repeat)||void 0===c?void 0:c[1])&&void 0!==l?l:1,this._imgFile=s,this._cropX=this._imgFile?1:null!==(u=null===(_=ie.crop)||void 0===_?void 0:_[0])&&void 0!==u?u:1,this._cropY=this._imgFile?1:null!==(p=null===(d=ie.crop)||void 0===d?void 0:d[1])&&void 0!==p?p:1,this._sizeX=null!==(g=null===(m=ie.size)||void 0===m?void 0:m[0])&&void 0!==g?g:this._imgFile?this._imgFile.width:F.CHIP_SIZE,this._sizeY=null!==(w=null===(E=ie.size)||void 0===E?void 0:E[1])&&void 0!==w?w:this._imgFile?this._imgFile.height:F.CHIP_SIZE,this._circleRadiusX=null!==(y=null===(f=ie.circle)||void 0===f?void 0:f[0])&&void 0!==y?y:0,this._circleRadiusY=null!==(A=null===(v=ie.circle)||void 0===v?void 0:v[1])&&void 0!==A?A:this._circleRadiusX,this._circleAngle=null!==(T=null===(S=ie.circle)||void 0===S?void 0:S[2])&&void 0!==T?T:0,this._fontStyle=Lt._getFontValue(ie),this._textAlign=Lt._convertTextAlign(ie.textAlign);const ae=null!==(C=null===(I=ie.color)||void 0===I?void 0:I[0])&&void 0!==C?C:0,re=null!==(O=null===(P=ie.color)||void 0===P?void 0:P[1])&&void 0!==O?O:0,ne=null!==(N=null===(D=ie.color)||void 0===D?void 0:D[2])&&void 0!==N?N:0;this._fillStyle=`rgb(${ae}, ${re}, ${ne})`,this._moveX=null!==(M=null===(b=ie.move)||void 0===b?void 0:b[0])&&void 0!==M?M:0,this._moveY=null!==(L=null===(x=ie.move)||void 0===x?void 0:x[1])&&void 0!==L?L:0,this._accelX=null!==(B=null===(R=ie.accel)||void 0===R?void 0:R[0])&&void 0!==B?B:0,this._accelY=null!==(k=null===(U=ie.accel)||void 0===U?void 0:U[1])&&void 0!==k?k:0,this._zoomX=null!==(V=null===(W=ie.zoom)||void 0===W?void 0:W[0])&&void 0!==V?V:0,this._zoomY=null!==(G=null===(Y=ie.zoom)||void 0===Y?void 0:Y[1])&&void 0!==G?G:0,this._zoomAccelX=null!==(K=null===(H=ie.zoomAccel)||void 0===H?void 0:H[0])&&void 0!==K?K:0,this._zoomAccelY=null!==(X=null===(j=ie.zoomAccel)||void 0===j?void 0:j[1])&&void 0!==X?X:0,this._anchor=null!==($=ie.anchor)&&void 0!==$?$:7,this._circleSpeed=null!==(Z=null===(J=ie.circle)||void 0===J?void 0:J[3])&&void 0!==Z?Z:0,this._opacity=null!==(q=ie.opacity)&&void 0!==q?q:100,this._fade=null!==(z=ie.fade)&&void 0!==z?z:0,this._angleRadian=ie.angle?ie.angle*Math.PI/180:0,this._rotateRadian=ie.rotate?ie.rotate*Math.PI/180:0,ie.text?((ie.angle||ie.rotate)&&console.warn(`レイヤー${this.layerNumber}番: テキストの描画と回転の併用は、現時点では非推奨です。今後動作が変わる可能性があるので、自己責任でお願いします。`),this._drawCoordType="maximum"):ie.angle||ie.rotate?this._drawCoordType="minimumWithMargin":this._drawCoordType="minimum",this._updatePictureCache();const{width:oe,height:he}=Mt(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas=new bt(oe,he),this._timer=new Dt,this._timer.addPoint("start",vt(ie.time,1,!1),vt(ie.timeFrame,1,!1)),this._timer.addPoint("end",vt(ie.time,0,!0),vt(ie.timeFrame,0,!0)),this._timer.addPoint("startAnim",null===(Q=ie.animTime)||void 0===Q?void 0:Q[0],null===(ee=ie.animTimeFrame)||void 0===ee?void 0:ee[0]),this._timer.addPoint("endAnim",null===(te=ie.animTime)||void 0===te?void 0:te[1],null===(se=ie.animTimeFrame)||void 0===se?void 0:se[1]),this._timer.addPoint("wait",ie.wait,ie.waitFrame),0!==this._angleRadian){const{x:e,y:t}=xt(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext(),this._hasAnimation=this.getHasAnimation()}get layerNumber(){return this._registry.layerNumber}get hasAnimation(){return this._hasAnimation}get canvasImage(){return this._canvas.getCanvasImage()}get appearParts(){var e;if(this._registry.properties.map&&!(this._registry.properties.map.length<3))return{partsNumber:this._registry.properties.map[0],x:this._registry.properties.map[1],y:this._registry.properties.map[2],partsType:null!==(e=this._registry.properties.map[3])&&void 0!==e?e:Pt.OBJECT}}get executeScriptFunctionName(){return this._registry.properties.script}updateCanvasContext(){this._canvas.ctx.globalAlpha=Lt._roundPercentage(this._opacity)/100,this._canvas.ctx.font=this._fontStyle,this._canvas.ctx.textBaseline="top",this._textAlign&&(this._canvas.ctx.textAlign=this._textAlign),this._canvas.ctx.fillStyle=this._fillStyle}draw(e,t){this.clearCanvas();const s=t?this._imgMainX:this._imgSubX,i=t?this._imgMainY:this._imgSubY,{x:a,y:r}=(n=this._drawCoordType,o=this._posDestX,h=this._posDestY,"maximum"===n?{x:o,y:h}:"minimumWithMargin"===n?{x:F.CHIP_SIZE,y:F.CHIP_SIZE}:{x:0,y:0});var n,o,h;for(let n=0;n<this._repeatY;n++)for(let o=0;o<this._repeatX;o++){const h=a+this._charaWidth*o,c=r+this._charaHeight*n;if(this._imgFile)this._canvas.drawCanvasFree(this._imgFile,h,c,this._charaWidth,this._charaHeight);else if(this._drawChip)if(null!==this._mapCropCache)this._mapCropCache.forEach(((s,i)=>{s.forEach((([s,a,r,n],o)=>{At(s,a,r,n)&&this._canvas.drawCanvas(e,t?s:r,t?a:n,h+this._chipWidth*o,c+this._chipHeight*i,this._chipWidth,this._chipHeight)}))}));else for(let t=0;t<this._cropY;t++)for(let a=0;a<this._cropX;a++)this._canvas.drawCanvas(e,s+a,i+t,h+this._chipWidth*a,c+this._chipHeight*t,this._chipWidth,this._chipHeight);this.getHasText()&&this._canvas.drawFont(this._registry.properties.text,h,c,this._registry.properties.lineHeight)}}getDrawPictureCoords(){return e=this._drawCoordType,t=this._posDestX,s=this._posDestY,i=this._totalWidth,a=this._totalHeight,"maximum"===e?{x:0,y:0,width:F.MAP_WINDOW_WIDTH,height:F.MAP_WINDOW_HEIGHT}:"minimumWithMargin"===e?{x:t-F.CHIP_SIZE,y:s-F.CHIP_SIZE,width:i*(2*F.CHIP_SIZE),height:a*(2*F.CHIP_SIZE)}:{x:t,y:s,width:i,height:a};var e,t,s,i,a}updateAnimation(){if(this._timer.isNotOver("startAnim",!1)||this._timer.isOver("endAnim",!1))return;this._posBaseX=this._posBaseX+this._moveX,this._posBaseY=this._posBaseY+this._moveY,this._moveX=this._moveX+this._accelX,this._moveY=this._moveY+this._accelY,this._sizeX=this._sizeX+this._zoomX,this._sizeY=this._sizeY+this._zoomY,this._zoomX=this._zoomX+this._zoomAccelX,this._zoomY=this._zoomY+this._zoomAccelY,this._updatePictureCache();const{width:e,height:t}=Mt(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas.updateSize(e,t),this._circleAngle=this._circleAngle+this._circleSpeed,0!==this._fade&&(this._opacity=this._opacity+this._fade),0!==this._angleRadian||0!==this._rotateRadian){this._angleRadian+=this._rotateRadian;const{x:e,y:t}=xt(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext()}_updatePictureCache(){this._chipWidth=St(this._sizeX),this._chipHeight=St(this._sizeY),this._charaWidth=this._chipWidth*this._cropX,this._charaHeight=this._chipHeight*this._cropY,this._totalWidth=this._charaWidth*this._repeatX,this._totalHeight=this._charaHeight*this._repeatY,this._posDestX=Math.floor(((e,t,s)=>{switch(s){case 1:case 4:case 7:default:return e;case 2:case 5:case 8:return e-t/2;case 3:case 6:case 9:return e-t}})(((e,t,s)=>{if(0===t)return e;const i=s*Math.PI/180;return e+t*Math.cos(i)})(this._posBaseX,this._circleRadiusX,this._circleAngle),this._charaWidth,this._anchor)),this._posDestY=Math.floor(((e,t,s)=>{switch(s){case 1:case 2:case 3:return e-t;case 4:case 5:case 6:return e-t/2;default:return e}})(((e,t,s)=>{if(0===t)return e;const i=s*Math.PI/180;return e+t*Math.sin(i)})(this._posBaseY,this._circleRadiusY,this._circleAngle),this._charaHeight,this._anchor))}isNotStarted(){return this._timer.isNotOver("start",!1)}tickTime(e){this._timer.tick(e)}isDeadlineOver(){return this._timer.isOver("end",!1)}isStartTimeOver(){return this._timer.isOver("start",!0)}isWaiting(){return this._timer.isNotOver("wait",!1)}clearCanvas(){this._canvas.clear()}getRegistryData(){return this._registry}getNextPicturePartsInfo(){var e;const t=Array.isArray(this._registry.properties.next)&&this._registry.properties.next[0]?{layerNumber:this._registry.layerNumber,partsNumber:this._registry.properties.next[0],partsType:null!==(e=this._registry.properties.next[1])&&void 0!==e?e:Pt.OBJECT,connectProperties:!!this._registry.properties.next[2]}:void 0,s=Array.isArray(this._registry.properties.create)?this._registry.properties.create.filter(Array.isArray).map((e=>{var t;return{layerNumber:e[0],partsNumber:e[1],partsType:null!==(t=e[2])&&void 0!==t?t:Pt.OBJECT,connectProperties:!!e[3]}})):[];return t?s.concat(t):s}getNextPictureProperties(){const e={...this._registry.properties};return delete e.next,delete e.create,{...e,pos:[this._posBaseX,this._posBaseY],move:[this._moveX,this._moveY],size:[this._sizeX,this._sizeY],zoom:[this._zoomX,this._zoomY],circle:[this._circleRadiusX,this._circleRadiusY,this._circleAngle,this._circleSpeed],opacity:this._opacity}}getTriggerPartsCoord(){return new l(this._registry.triggerPartsX,this._registry.triggerPartsY)}getHasAnimation(){return 0!==this._moveX||0!==this._moveY||0!==this._accelX||0!==this._accelY||0!==this._zoomX||0!==this._zoomY||0!==this._zoomAccelX||0!==this._zoomAccelY||0!==this._circleSpeed||0!==this._fade||0!==this._rotateRadian}getHasText(){return this._registry.properties.text}static _getImgPosByPicture(e,t){var s,i,a,r;const{properties:n}=e;return void 0!==(null===(s=n.imgMap)||void 0===s?void 0:s[0])&&void 0!==(null===(i=n.imgMap)||void 0===i?void 0:i[1])?[0,0]:void 0!==(null===(a=n.img)||void 0===a?void 0:a[0])&&void 0!==(null===(r=n.img)||void 0===r?void 0:r[1])?t?[n.img[0],n.img[1]]:void 0!==n.img[2]&&void 0!==n.img[3]?[n.img[2],n.img[3]]:[n.img[0],n.img[1]]:t||0===e.imgPosX2&&0===e.imgPosY2?[e.imgPosX,e.imgPosY]:[e.imgPosX2,e.imgPosY2]}static _getMapImgPosArray(e,t){var s,i,a,r,n,o,h,c,_;const{properties:u}=e,d=null!==(i=null===(s=u.imgMap)||void 0===s?void 0:s[0])&&void 0!==i?i:-1,p=null!==(r=null===(a=u.imgMap)||void 0===a?void 0:a[1])&&void 0!==r?r:-1;if(d<0||p<0)return null;const m=null!==(o=null===(n=u.crop)||void 0===n?void 0:n[0])&&void 0!==o?o:1,g=null!==(c=null===(h=u.crop)||void 0===h?void 0:h[1])&&void 0!==c?c:1,E=void 0!==(null===(_=u.imgMap)||void 0===_?void 0:_[2])&&u.imgMap[2]>=1?Pt.MAP:Pt.OBJECT,w=[];for(let e=0;e<g;e++){const s=[];for(let i=0;i<m;i++){const a=t.getPartsID(new l(d+i,p+e),E);if(0===a)s.push([0,0,0,0]);else{const e=E===Pt.MAP?t.getMapInfo(a):t.getObjectInfo(a);E===Pt.MAP||0===e[F.ATR_X2]&&0===e[F.ATR_Y2]?s.push([e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE,e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE]):s.push([e[F.ATR_X]/F.CHIP_SIZE,e[F.ATR_Y]/F.CHIP_SIZE,e[F.ATR_X2]/F.CHIP_SIZE,e[F.ATR_Y2]/F.CHIP_SIZE])}}w.push(s)}return w}static _getFontValue(e){if(e.font)return e.font;const t=getComputedStyle(me("wwa-wrapper"));if(void 0===e.fontSize&&void 0===e.fontFamily&&void 0===e.italic&&void 0===e.bold)return t.font;return`${e.italic?"italic":""} ${e.bold?"bold":""} ${e.fontSize?`${e.fontSize}px`:t.fontSize} ${e.fontFamily&&e.fontFamily.length>0?e.fontFamily:t.fontFamily}`}static _convertTextAlign(e){return e?["center","end","left","right","start"].includes(e)?e:(console.warn(`textAlign プロパティで不正な値が検出されました。: ${e}`),null):null}static _roundPercentage(e){return e<0?0:e>100?100:e}}const Rt=async e=>fetch(e).then((t=>200===t.status||304===t.status?{kind:"data",data:t}:{kind:"httpError",errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`})).catch((t=>({kind:"connectionError",errorMessage:`ファイル ${e} が読み込めませんでした。通信状態がいい場所で再度お試しください。`}))).then((async e=>"data"===e.kind?{kind:"data",data:await e.data.json()}:e)).catch((t=>({kind:"brokenJson",errorMessage:`ファイル ${e} が壊れています。`})));class Bt{constructor(e,t){this._wwa=e,this._pictures=new Map,this._anonymousPictures=[],this._externalImageFiles=new Map,this._frameTimerValue=Bt._getNowFrameValue(),this._setupExternalImageFiles(t)}async _setupExternalImageFiles(e){if(!e)return;const t=await Rt(e);if(t)if("data"===t.kind)if(t.data&&"object"==typeof t.data){if("files"in t.data){const{files:s}=t.data;"object"==typeof s?Object.entries(t.data.files).forEach((([e,t])=>{this._externalImageFiles.set(e,{status:"loading"});const s=new Image;s.src=t,s.onerror=s=>{"string"==typeof s?console.warn(`ピクチャ画像ファイル ${t} が見つかりませんでした。エラーメッセージ: ${s}`):console.warn(`ピクチャ画像ファイル ${t} が見つかりませんでした。`),this._externalImageFiles.set(e,{status:"failed"})},s.onload=()=>{this._externalImageFiles.set(e,{status:"success",element:s})}})):console.warn(`ピクチャ画像の定義ファイル ${e} の files が正しい形式で書かれていません。`)}}else console.warn(`ピクチャ画像の定義ファイル ${e} が正しい形式で書かれていません。`);else console.warn(`ピクチャ画像の定義ファイル ${e} が見つかりませんでした。エラーメッセージ: ${t.errorMessage}`)}static _getNowFrameValue(){return performance.now()}registerPicture(e){var t;const s=Object.keys(e.properties).filter((e=>!Pe.some((({name:t})=>t===e))));if(s.length>0)throw new Error(`不明なプロパティ名 ${s.map((e=>`"${e}"`)).join(", ")} が検出されました。`);let i;if(e.properties.imgFile){const t=this._externalImageFiles.get(e.properties.imgFile);t?"loading"===t.status?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} はまだ読み込みを完了していません。`):"failed"===t.status?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} を表示することができません。画像ファイルの Path が間違っていないかご確認ください。`):i=t.element:console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} が定義に含まれていません。定義ファイルがあるかご確認ください。`)}const a=null!==(t=e.properties.sound)&&void 0!==t?t:e.soundNumber;if(a&&this._wwa.playSound(a),r=e.layerNumber,!Number.isInteger(r)||!(r>0||ft(r)))throw new Error(`指定したレイヤー番号 ${e.layerNumber}番はこのバージョンでは無効です!`);var r;ft(e.layerNumber)?this._anonymousPictures.push(new Lt(this._wwa,e,i)):(this._pictures.set(e.layerNumber,new Lt(this._wwa,e,i)),this._pictures=new Map([...this._pictures.entries()].sort((([,e],[,t])=>e.layerNumber-t.layerNumber))))}registerPictureFromRawRegistry(e,t,s,i){return this.registerPicture(((e,t)=>{const s=e=>"number"==typeof e?e:mt(e,t),i=Object.entries(e.properties).map((([e,t])=>{const i=wt(e);if(!Et(i,t))return[i,t];switch(Pe.find((({name:e})=>e===i)).type){case"number":return[i,s(t)];case"numberArray":return[i,t.map(s)];case"numberOrArray":return Array.isArray(t)?[i,t.map(s)]:[i,[s(t)]];case"numberArray2D":return!Array.isArray(t)||t.some(Array.isArray)?[i,t]:[i,t.map((e=>e.map(s)))];case"string":if("string"!=typeof t)return[i,t.toString()];let e=String(t);return Array.from(t.matchAll(at)).forEach((i=>{i.length<2&&console.warn(`テンプレート文字列で合致した文字列の中の値を取り出すことができませんでした。文字列そのものの値は ${t} です。`);const a=i[0],r=i[1],n=s(r);e=e.replace(a,"number"==typeof n?n.toString():n)})),[i,e];default:return[i,t]}}));return{...e,properties:Object.fromEntries(i)}})(i?{...e,properties:{...i,...e.properties}}:e,this._wwa.generateTokenValues({id:t,type:s,position:new l(e.triggerPartsX,e.triggerPartsY)}))),this.getPictureRegistryData()}registerPictureFromRawText(e,t){const s=(e=>{try{const t=JSON.parse(e.propertiesText);if(Array.isArray(t))throw new Error("配列形式ではなくオブジェクト形式で記述してください。");if("object"!=typeof t)throw new Error("オブジェクト形式で記述してください。");return{...e,properties:t}}catch(e){console.error(`JSON パースエラーが発生しました!: ${e.message}`)}})({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,propertiesText:t});return this.registerPicture(yt(s)),this.getPictureRegistryData()}registerPictureFromObject(e,t){return this.registerPicture(yt({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,properties:t})),this.getPictureRegistryData()}deletePicture(e){return ft(e)?(this._anonymousPictures.forEach((e=>{e.clearCanvas()})),this._anonymousPictures.splice(0),this.getPictureRegistryData()):(this._pictures.has(e)&&(this._pictures.get(e).clearCanvas(),this._pictures.delete(e)),this.getPictureRegistryData())}clearAllPictures(){this._pictures.forEach((e=>{e.clearCanvas()})),this._anonymousPictures.forEach((e=>{e.clearCanvas()})),this._pictures.clear(),this._anonymousPictures.splice(0)}forEachPictures(e){this._anonymousPictures.forEach(e),this._pictures.forEach(e)}updateAllPicturesCache(e,t){this.forEachPictures((s=>{s.isNotStarted()||s.draw(e,t)}))}updateFrameTimerValue(){this._frameTimerValue=Bt._getNowFrameValue()}updatePicturesAnimation(e,t){const s=Bt._getNowFrameValue()-this._frameTimerValue;this.forEachPictures((i=>{if(i.tickTime(s),!i.isNotStarted()){if(i.isDeadlineOver()){const e=i.layerNumber,t=i.getNextPicturePartsInfo(),s=i.appearParts,a=i.executeScriptFunctionName,r=i.getNextPictureProperties(),n=i.getTriggerPartsCoord();this._wwa.deletePictureRegistry(e);for(const e of t)this._wwa.setPictureRegistry(e.layerNumber,e.partsNumber,e.partsType,n,e.connectProperties?r:void 0);return void 0!==s&&this._wwa.setPartsOnPosition(s.partsType,s.partsNumber,new l(s.x,s.y)),void(a&&this._wwa.callUserScript(a))}i.hasAnimation&&(i.updateAnimation(),i.draw(e,t))}}))}isWaiting(){for(const e of this._pictures.values())if(e.isWaiting())return!0;for(const e of this._anonymousPictures)if(e.isWaiting())return!0;return!1}getPictureRegistryData(){return Array.from(this._pictures.values()).map((e=>e.getRegistryData()))}}class Ut{constructor(e,t,s){this.cvs=document.createElement("canvas"),this.cvs.width=e,this.cvs.height=t,this.ctx=this.cvs.getContext("2d",{alpha:s}),this._isTransparent=s}drawCanvas(e,t,s,i,a,r=F.CHIP_SIZE,n=F.CHIP_SIZE){this.ctx.drawImage(e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE,F.CHIP_SIZE,i,a,r,n)}clear(){this.clearRect(0,0,this.cvs.width,this.cvs.height)}clearRectWithLowerYLimit(e){this.clearRect(0,0,this.cvs.width,e)}clearRect(e,t,s,i){this._isTransparent?this.ctx.clearRect(e,t,s,i):(this.ctx.fillStyle="#9E9E9E",this.ctx.fillRect(e,t,s,i))}}class kt{_load(){this._frameCoord,this._isLoaded||(this.mapCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this.mapObjectCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this._image=new Image,this._image.addEventListener("load",(()=>{this.createFrame(),this._loadCompleteCallBack()})),this._image.addEventListener("error",(()=>{throw new Error("Image Load Failed!!\nfile name:"+this._fileName)})),this._image.src=this._fileName,this._isLoaded=!0)}createFrame(){this._frameCanvas.clear(),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y,0,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+2,0,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+2,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE);for(var e=1;e<F.H_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y,F.CHIP_SIZE*e,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y+2,F.CHIP_SIZE*e,F.MAP_WINDOW_HEIGHT-F.CHIP_SIZE);for(e=1;e<F.V_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+1,0,F.CHIP_SIZE*e),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+1,F.MAP_WINDOW_WIDTH-F.CHIP_SIZE,F.CHIP_SIZE*e)}updateEffects(e){var t;if(e){var s,i=e.length;for(t=0;t<i;t++){var a=e[t];(s=this._effectCanvases[t])?s.clear():s=this._effectCanvases[t]=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0);for(var r=0;r<F.V_PARTS_NUM_IN_WINDOW;r++)for(var n=0;n<F.H_PARTS_NUM_IN_WINDOW;n++)s.drawCanvas(this._image,a.x,a.y,n*F.CHIP_SIZE,r*F.CHIP_SIZE)}}}restorePictures(e){this.picture.clearAllPictures(),e.forEach((e=>{this.picture.registerPicture(e)}))}updateAllPicturesCache(e=!0){this.picture.updateAllPicturesCache(this._image,e)}updatePicturesAnimation(e=!0){this.picture.updatePicturesAnimation(this._image,e)}drawFrame(){this._ctx.drawImage(this._frameCanvas.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE,0,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2),0,F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2)),this._ctx.drawImage(this._frameCanvas.cvs,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2),F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-1),F.CHIP_SIZE,F.CHIP_SIZE,F.CHIP_SIZE*(F.H_PARTS_NUM_IN_WINDOW-2))}drawEffect(e){var t=this._effectCanvases[e];t&&this._ctx.drawImage(t.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}drawPictures(){this.picture.forEachPictures((e=>{const{x:t,y:s,width:i,height:a}=e.getDrawPictureCoords();this._ctx.drawImage(e.canvasImage,0,0,i,a,t,s,i,a)}))}drawCanvas(e,t,s,i){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE,F.CHIP_SIZE,s,i,F.CHIP_SIZE,F.CHIP_SIZE)}drawCanvasWithSize(e,t,s,i,a,r){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE*s,F.CHIP_SIZE*i,a,r,F.CHIP_SIZE*s,F.CHIP_SIZE*i)}drawCanvasWithUpperYLimit(e,t,s,i,a){if(!this._isLoaded)throw new Error("No image was loaded.");var r=Math.max(0,i+F.CHIP_SIZE-a);r>=F.CHIP_SIZE||this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t,F.CHIP_SIZE,F.CHIP_SIZE-r,s,i,F.CHIP_SIZE,F.CHIP_SIZE)}copyCanvas(e,t){return(s,i,a,r,n)=>{if(!this._isLoaded)throw new Error("No image was loaded.");const o=Math.max(0,t(r,n));o>=F.CHIP_SIZE||e.ctx.drawImage(this._image,F.CHIP_SIZE*s,F.CHIP_SIZE*i+o,F.CHIP_SIZE,F.CHIP_SIZE-o,a,r+o,F.CHIP_SIZE,F.CHIP_SIZE)}}copyBackCanvasWithUpperYLimit(e,t,s,i,a){this.copyCanvas(this._backCanvas,((e,t)=>e+F.CHIP_SIZE-t))(e,t,s,i,a)}copyBackCanvasWithLowerYLimit(e,t,s,i,a){this.copyCanvas(this._backCanvas,((e,t)=>t-e))(e,t,s,i,a)}copyObjectCanvasWithUpperYLimit(e,t,s,i,a,r){this.copyCanvas(this._objectCanvases[e],((e,t)=>e+F.CHIP_SIZE-t))(t,s,i,a,r)}copyObjectCanvasWithLowerYLimit(e,t,s,i,a,r){this.copyCanvas(this._objectCanvases[e],((e,t)=>t-e))(t,s,i,a,r)}drawBackCanvas(){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._backCanvas.cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}drawObjectCanvas(e){if(!this._isLoaded)throw new Error("No image was loaded.");this._ctx.drawImage(this._objectCanvases[e].cvs,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,0,0,F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW)}clearBackCanvas(){this._backCanvas.clear()}clearBackCanvasWithLowerYLimit(e){this._backCanvas.clearRectWithLowerYLimit(e)}clearObjectCanvases(){var e;for(e=0;e<2;e++)this._objectCanvases[e].clear()}clearObjectCanvasesWithLowerYLimit(e){var t;for(t=0;t<2;t++)this._objectCanvases[t].clearRectWithLowerYLimit(e)}drawCanvasWithLowerYLimit(e,t,s,i,a){if(!this._isLoaded)throw new Error("No image was loaded.");var r=Math.max(0,a-i);r>=F.CHIP_SIZE||this._ctx.drawImage(this._image,F.CHIP_SIZE*e,F.CHIP_SIZE*t+r,F.CHIP_SIZE,F.CHIP_SIZE-r,s,i+r,F.CHIP_SIZE,F.CHIP_SIZE)}clearCanvas(e,t,s,i){this._ctx.clearRect(e,t,s,i)}drawBase(e,t,s,i){this._ctx.fillStyle="#9E9E9E",this._ctx.fillRect(e,t,s,i)}setFrameImage(e){this._frameCoord=e,this.createFrame()}constructor(e,t,s,i,a,r){var n;for(this._isLoaded=!1,this.mapCache=void 0,this.mapObjectCache=void 0,this.mapCacheYLimit=0,this._frameCanvas=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0),this._backCanvas=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!1),this._objectCanvases=[],this._effectCanvases=[],this.picture=new Bt(i,a),n=0;n<2;n++)this._objectCanvases[n]=new Ut(F.CHIP_SIZE*F.V_PARTS_NUM_IN_WINDOW,F.CHIP_SIZE*F.H_PARTS_NUM_IN_WINDOW,!0);this._ctx=e,this._fileName=t,this._loadCompleteCallBack=r,this._load(),this._frameCoord=s.clone(),this.cpPartsLog=new l(0,0)}}class Wt{constructor(e){this._position=null,this.reset(e)}setPlayer(e){this._player=e}isResetting(){return this._isResetting}getPosition(){return this._position}getPreviousPosition(){return this._positionPrev}resetPreviousPosition(){this._positionPrev=null}move(e){var t=k[this._player.getSpeedIndex()];this._position=this._position.getNextFramePosition(e,t*(F.H_PARTS_NUM_IN_WINDOW-1),t*(F.V_PARTS_NUM_IN_WINDOW-1))}getTransitionStepNum(){return this._transitionStep}advanceTransitionStepNum(){return++this._transitionStep,this._transitionStep===F.V_PARTS_NUM_IN_WINDOW&&(this._isResetting=!1,this._transitionStep=0),this._transitionStep}isFinalStep(){if(!1===this._isResetting)throw new Error("リセット中ではありません。");return this._transitionStep===F.V_PARTS_NUM_IN_WINDOW-1}reset(e){this._positionPrev=this._position,this._position=e.getDefaultCameraPosition(),this._transitionStep=0,this._isResetting=!0}}class Vt{getPosition(){return this._position}constructor(e){this._position=e}}class Ft extends Vt{constructor(e){super(e)}}var Yt;!function(e){e[e.CONTROLLABLE=0]="CONTROLLABLE",e[e.MOVING=1]="MOVING",e[e.CAMERA_MOVING=2]="CAMERA_MOVING",e[e.MESSAGE_WAITING=3]="MESSAGE_WAITING",e[e.LOCALGATE_JUMPED=4]="LOCALGATE_JUMPED",e[e.BATTLE=5]="BATTLE",e[e.ESTIMATE_WINDOW_WAITING=6]="ESTIMATE_WINDOW_WAITING",e[e.PASSWORD_WINDOW_WAITING=7]="PASSWORD_WINDOW_WAITING",e[e.LOCALGATE_JUMPED_WITH_MESSAGE=8]="LOCALGATE_JUMPED_WITH_MESSAGE"}(Yt||(Yt={}));class Gt extends Ft{move(){if(this.isControllable())this.controll(this._dir);else if(this._state===Yt.CAMERA_MOVING){try{this._camera.move(this._dir)}catch(e){}this._isOnCameraStopPosition()&&(this._state=Yt.CONTROLLABLE,this._wwa.callCameraMoveUserDefineFunction())}else if(this._state===Yt.MOVING){try{var e=this._position.getNextFramePosition(this._dir,k[this._speedIndex],k[this._speedIndex])}catch(e){}e.isJustPosition()&&(this._state=Yt.CONTROLLABLE,this.toggleMovingImage(),this._moves++,this._isPartsEventExecuted=!1,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._wwa.callMoveUserDefineFunction()),this._position=e}}controll(e){var t,s;if(this.isControllable()){this._isPreparedForLookingAround=!1,this._dir=e;try{t=this._position.getNextFramePosition(this._dir,k[this._speedIndex],k[this._speedIndex]),s=this._position.getNextJustPosition(e)}catch(e){return}if(this._isOnCameraMovingPosition()){if(0!==this._wwa.getMapIdByPosition(s)||this._wwa.isOldMap()||this._wwa.debug)try{this._camera.move(this._dir),this._state=Yt.CAMERA_MOVING}catch(e){this._state=Yt.CONTROLLABLE}return}if(!this.canMoveTo(s))return this._wwa.getMapTypeByPosition(s)===F.MAP_WALL&&this._wwa.checkMap(s.getPartsCoord()),void this._wwa.checkObject(s.getPartsCoord());this._position=t,this._state=Yt.MOVING,this._wwa.getMapAttributeByPosition(this._position.getNextJustPosition(e),F.ATR_TYPE)!==F.MAP_LOCALGATE&&this._wwa.moveObjects(!0)}}setDir(e){this._isPreparedForLookingAround=!1,this._dir=e}canMoveTo(e){if(null===e)return!1;if(this._wwa.debug)return!0;this._wwa.getMapWidth(),e.getPartsCoord(),e.getOffsetCoord();return!(0===this._wwa.getMapIdByPosition(e)&&!this._wwa.isOldMap())&&(this._wwa.getMapTypeByPosition(e)!==F.MAP_WALL&&(0===this._wwa.getObjectIdByPosition(e)||(this._wwa.getObjectTypeByPosition(e)===F.OBJECT_NORMAL&&this._wwa.getObjectAttributeByPosition(e,F.ATR_MODE)===F.PASSABLE_OBJECT||this._wwa.getObjectTypeByPosition(e)===F.OBJECT_DOOR&&this._wwa.getObjectAttributeByPosition(e,F.ATR_NUMBER)===F.PASSABLE_OBJECT&&!this.hasItem(this._wwa.getObjectAttributeByPosition(e,F.ATR_ITEM)))))}isMoving(){return this._state==Yt.MOVING||this._state==Yt.CAMERA_MOVING}_isOnCameraMovingPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x==F.H_PARTS_NUM_IN_WINDOW-1&&this._dir===m.RIGHT||t.x===e.x&&this._dir===m.LEFT||t.y-e.y==F.V_PARTS_NUM_IN_WINDOW-1&&this._dir===m.DOWN||t.y===e.y&&this._dir===m.UP}_isOnCameraStopPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x==F.H_PARTS_NUM_IN_WINDOW-1&&this._dir===m.LEFT||t.x===e.x&&this._dir===m.RIGHT||t.y-e.y==F.V_PARTS_NUM_IN_WINDOW-1&&this._dir===m.UP||t.y===e.y&&this._dir===m.DOWN}isControllable(){var e=this._afterMoveMacroFlag;return this._afterMoveMacroFlag=!1,this._state===Yt.CONTROLLABLE&&!this._partsAppeared&&(this._wwa.getMapTypeByPosition(this._position)!==F.MAP_LOCALGATE&&this._wwa.getMapTypeByPosition(this._position)!==F.MAP_URLGATE||!this._wwa.isPrevFrameEventExecuted())&&0===this._moveMacroWaitingRemainMoves&&0===this._moveObjectAutoExecTimer&&!e&&this._wwa.canInput()}getCopyOfItemBox(){return this._itemBox.slice()}getDir(){return this._dir}isMovingImage(){return this._isMovingImage}toggleMovingImage(){this._isMovingImage?this._isMovingImage=!1:this._isMovingImage=!0}getEnergyMax(){return this._energyMax}isJumped(){return this._state===Yt.LOCALGATE_JUMPED||this._state===Yt.LOCALGATE_JUMPED_WITH_MESSAGE}setMessageWaiting(){this._state=Yt.MESSAGE_WAITING}isWaitingMessage(){return this._state===Yt.MESSAGE_WAITING}isDelayFrame(){return this._messageDelayFrameCount>0}updateDelayFrame(){this._messageDelayFrameCount--}setDelayFrame(){this._messageDelayFrameCount=1}clearMessageWaiting(){this._state!==Yt.MESSAGE_WAITING&&this._state!==Yt.LOCALGATE_JUMPED_WITH_MESSAGE||(this._state===Yt.MESSAGE_WAITING?this._state=Yt.CONTROLLABLE:this._state===Yt.LOCALGATE_JUMPED_WITH_MESSAGE&&(this._state=Yt.LOCALGATE_JUMPED),this._isPartsEventExecuted=!0,this._isPreparedForLookingAround&&(this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME))}setEstimateWindowWating(){this._state=Yt.ESTIMATE_WINDOW_WAITING}isWaitingEstimateWindow(){return this._state===Yt.ESTIMATE_WINDOW_WAITING}clearEstimateWindowWaiting(){this._state===Yt.ESTIMATE_WINDOW_WAITING&&(this._state=Yt.CONTROLLABLE)}setPasswordWindowWating(){this._state=Yt.PASSWORD_WINDOW_WAITING}isWaitingPasswordWindow(){return this._state===Yt.PASSWORD_WINDOW_WAITING}clearPasswordWindowWaiting(){this._state===Yt.PASSWORD_WINDOW_WAITING&&(this._state=Yt.CONTROLLABLE)}isPartsEventExecuted(){return this._isPartsEventExecuted}resetEventExecutionInfo(){this._isPartsEventExecuted=!1}getLastExecPartsIDOnSamePosition(e){return e===v.MAP?this._samePosLastExecutedMapID:this._samePosLastExecutedObjID}setLastExecInfoOnSamePosition(e,t){e===v.MAP?this._samePosLastExecutedMapID=t:this._samePosLastExecutedObjID=t}processAfterJump(){this._state!==Yt.LOCALGATE_JUMPED&&this._state!==Yt.LOCALGATE_JUMPED_WITH_MESSAGE||0==--this._jumpWaitFramesRemain&&(this._state=this._state===Yt.LOCALGATE_JUMPED?Yt.CONTROLLABLE:Yt.MESSAGE_WAITING)}jumpTo(e){var t=this._camera.getPosition();this.getPosition();return!this._position.equals(e)&&(this._position=e,e.isInCameraRange(this._camera,!0)||this._camera.reset(e),this._state=this._state===Yt.MESSAGE_WAITING?Yt.LOCALGATE_JUMPED_WITH_MESSAGE:Yt.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=F.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,e.hasLocalGate()?this._dir=m.DOWN:e.getPartsCoord().y<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(m.DOWN).hasLocalGate()?this._dir=m.UP:e.getPartsCoord().y>=1&&e.getNextJustPosition(m.UP).hasLocalGate()?this._dir=m.DOWN:e.getPartsCoord().x<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(m.RIGHT).hasLocalGate()?this._dir=m.LEFT:e.getPartsCoord().x>=1&&e.getNextJustPosition(m.LEFT).hasLocalGate()?this._dir=m.RIGHT:this._dir=m.DOWN,this._camera.getPosition().equals(t)||(this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME),this._wwa.callJumpGateUserDefineFunction(),!0)}systemJumpTo(e){this._position=e,this._camera.reset(e),this._camera.resetPreviousPosition(),this._state=Yt.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=F.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._dir=m.DOWN,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME}addStatusAll(e){return this._status.add(e),this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),this._status}setEnergyMax(e){return this._energyMax=e,0!==e&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}setEnergy(e){return this._status.energy=e,this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}damage(e){this._status.energy=Math.max(0,this._status.energy-e),this.isDead()&&(this._status.energy=0),0!==this._energyMax&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox()}setStrength(e){return this._status.strength=e,this.updateStatusValueBox(),e}setDefence(e){return this._status.defence=e,this.updateStatusValueBox(),e}setGold(e){return this._status.gold=e,this.updateStatusValueBox(),e}getStatus(){return this._status.plus(this._equipStatus)}getStatusWithoutEquipments(){return this._status.plus(new h(0,0))}getStatusOfEquipments(){return this._equipStatus.plus(new h(0,0))}updateStatusValueBox(){var e;const t=this._status.plus(this._equipStatus);this._energyValueElement.textContent=this._wwa.isVisibleStatus("energy")?String(t.energy):"",this._strengthValueElement.textContent=this._wwa.isVisibleStatus("strength")?String(t.strength):"",this._defenceValueElement.textContent=this._wwa.isVisibleStatus("defence")?String(t.defence):"",this._goldValueElement.textContent=this._wwa.isVisibleStatus("gold")?String(t.gold):"",null===(e=this._wwa._messageWindow)||void 0===e||e.update(),this._wwa.updateScore()}updateItemBox(e){for(let t=0;t<this._itemBoxElement.length;t++){const s=this._itemBoxElement[t],i=ge("#item"+t);if(0===this._itemBox[t]){s.style.backgroundPosition="-40px 0px",this.disposeItemEffect(t,this._itemBoxElement[t],i);continue}const a=this._wwa.getObjectCropXById(this._itemBox[t]),r=this._wwa.getObjectCropYById(this._itemBox[t]);if(!e||t!==e.insertPos-1){s.style.backgroundPosition="-"+a+"px -"+r+"px",this.disposeItemEffect(t,this._itemBoxElement[t],i);continue}const n=e.itemScreenPixelCoord.x-e.itemBoxScreenPixelCoord.x,o=e.itemScreenPixelCoord.y-e.itemBoxScreenPixelCoord.y,h=-n*F.DEFAULT_FRAME_INTERVAL/F.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME,c=0===e.overwrittenObjectId||void 0===e.overwrittenObjectId,l=c?e.itemBoxBackgroundImageCoord.x:this._wwa.getObjectCropXById(e.overwrittenObjectId),_=c?e.itemBoxBackgroundImageCoord.y:this._wwa.getObjectCropYById(e.overwrittenObjectId);s.style.left=n+"px",s.style.top=o+"px","number"==typeof this.itemEffectStartTimers[t]&&clearInterval(this.itemEffectStartTimers[t]),this.itemEffectStartTimers[t]=window.setTimeout((()=>{this.itemEffectStartTimers[t]=void 0,this.startItemEffect(t,s,i,{target:{x:a,y:r},overwritten:{x:l,y:_}},h)}),F.DEFAULT_FRAME_INTERVAL)}}startItemEffect(e,t,s,i,a){const r=s.querySelector(this.overwittenItemSelector);r&&s.removeChild(r);const n=document.createElement("div");n.classList.add(this.overwittenItemClassName),n.style.backgroundPosition="-"+i.overwritten.x+"px -"+i.overwritten.y+"px",n.style.backgroundImage=s.style.backgroundImage,s.appendChild(n),t.style.backgroundPosition="-"+i.target.x+"px -"+i.target.y+"px",t.style.transitionDuration=a+"ms",t.style.transitionProperty="left,top",t.style.transitionTimingFunction="linear",t.style.left="0",t.style.top="0",s.classList.add(this.itemTransitioningClassName),t.addEventListener("transitionend",(()=>{this.disposeItemEffect(e,t,s)}),{once:!0})}disposeItemEffect(e,t,s){"number"==typeof this.itemEffectStartTimers[e]&&(clearInterval(this.itemEffectStartTimers[e]),this.itemEffectStartTimers[e]=void 0),t.style.transitionDuration="0s",t.style.transitionProperty="",t.style.left="0",t.style.top="0",s.classList.contains(this.itemTransitioningClassName)&&s.classList.remove(this.itemTransitioningClassName);const i=s.querySelector(this.overwittenItemSelector);i&&s.removeChild(i)}isDead(){return this._status.energy<=0}addItem(e,t=0,s=!1,i){var a,r,n,o=this._wwa.getObjectAttributeById(e,F.ATR_NUMBER),h=0;if(0===t&&0!==o&&(t=o),0===t){if(0===e)return;if((a=this._getBlankItemPos())===F.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),new Error("これ以上、アイテムを持てません。");h=this._itemBox[a-1],this._forceSetItemBox(a,e)}else if(!1===s)if(a=t,n=this._itemBox[a-1],this._wwa.getObjectAttributeById(n,F.ATR_NUMBER)!==this._wwa.getObjectAttributeById(e,F.ATR_NUMBER)){if((r=this._getBlankItemPos())===F.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),new Error("これ以上、アイテムを持てません。");this._forceSetItemBox(r,n),this._forceSetItemBox(a,e)}else h=this._itemBox[a-1],this._forceSetItemBox(a,e);else a=t,h=this._itemBox[a-1],this._forceSetItemBox(a,e);this._updateEquipmentStatus(),this.updateItemBox(i?{insertPos:a,itemScreenPixelCoord:i.screenPixelCoord,itemBoxBackgroundImageCoord:i.itemBoxBackgroundImageCoord,itemBoxScreenPixelCoord:new l(F.MAP_WINDOW_WIDTH+(a-1)%3*F.CHIP_SIZE,F.ITEMBOX_TOP_Y+Math.floor((a-1)/3)*F.CHIP_SIZE),overwrittenObjectId:h}:void 0)}_forceSetItemBox(e,t){var s,i=this,r=Ee("#item"+(e-1)+">.item-click-border"),n=this._wwa.getObjectAttributeById(t,F.ATR_MODE);if(this.removeItemByItemPosition(e),this._itemBox[e-1]=t,this._wwa.setEvalCalcWwaNodeEarnedItem(t,e),this._wwa.callGetItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),0!==t&&n!==y.NORMAL){const t=this._wwa.resolveSystemMessage(a.ITEM_SELECT_TUTORIAL);this._isClickableItemGot||("BLANK"!==t&&this._wwa.registerSystemMessagePage(t),this._isClickableItemGot=!0),r.style.display="block",s=e,i._itemUsingEvent[s-1]=()=>{(i.isControllable()||i._wwa._messageWindow.isItemMenuChoice())&&(i._wwa._itemMenu.close(),i._wwa._setNextPage(),i._wwa.onselectitem(s))},r.addEventListener("click",this._itemUsingEvent[e-1])}}_getBlankItemPos(){var e;for(e=1;e<this._itemBox.length+1;e++)if(0===this._itemBox[e-1])return e;return F.ITEMBOX_IS_FULL}_updateEquipmentStatus(){var e,t=new h(0,0);for(e=0;e<F.ITEMBOX_SIZE;e++)0!==this._itemBox[e]&&(t.strength+=this._wwa.getObjectAttributeById(this._itemBox[e],F.ATR_STRENGTH),t.defence+=this._wwa.getObjectAttributeById(this._itemBox[e],F.ATR_DEFENCE));var s=t.minus(this._equipStatus);this._wwa.setStatusChangedEffect(s),this._equipStatus=t,this.updateStatusValueBox()}hasItem(e){for(var t=0;t<F.ITEMBOX_SIZE;t++)if(this._itemBox[t]===e)return!0;return!1}canUseItem(e){var t=this._itemBox[e-1];return 0!==t&&this._wwa.getObjectAttributeById(t,F.ATR_MODE)!==y.NORMAL}useItem(){var e;e=this._itemBox[this._readyToUseItemPos1To12-1],this._wwa.getObjectAttributeById(e,F.ATR_MODE)!==y.NOT_DISAPPEAR&&this.removeItemByItemPosition(this._readyToUseItemPos1To12);var t=me("item"+(this._readyToUseItemPos1To12-1));return setTimeout((()=>{t.classList.contains("onpress")&&t.classList.remove("onpress")}),F.DEFAULT_FRAME_INTERVAL),this._wwa.setEvalCalcWwaNodeEarnedItem(e,this._readyToUseItemPos1To12),this._wwa.callUseItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),this._isReadyToUseItem=!1,this._readyToUseItemPos1To12=void 0,e}canHaveMoreItems(){return this._getBlankItemPos()!==F.ITEMBOX_IS_FULL}removeItemByItemPosition(e){var t;0!==this._itemBox[e-1]&&(this._wwa.getObjectAttributeById(this._itemBox[e-1],F.ATR_MODE)!==y.NORMAL&&((t=Ee("#item"+(e-1)+">.item-click-border")).removeEventListener("click",this._itemUsingEvent[e-1]),t.style.display="none"),this._itemBox[e-1]=0,this._updateEquipmentStatus(),this.updateItemBox())}removeItemByPartsID(e){var t;if(!this.hasItem(e))throw new Error("アイテムを持っていない");for(var s=0;s<F.ITEMBOX_SIZE;s++)if(this._itemBox[s]===e)return this._wwa.getObjectAttributeById(this._itemBox[s],F.ATR_MODE)!==y.NORMAL&&((t=Ee("#item"+s+">.item-click-border")).removeEventListener("click",this._itemUsingEvent[s]),t.style.display="none"),this._itemBox[s]=0,this._updateEquipmentStatus(),void this.updateItemBox()}clearItemBox(){for(var e=1;e<=F.ITEMBOX_SIZE;e++)this.removeItemByItemPosition(e);this._updateEquipmentStatus(),this.updateItemBox()}hasGold(e){return this._status.gold>=e}payGold(e){if(!this.hasGold(e))throw new Error("お金が足りない");this.setGold(this._status.gold-e)}earnGold(e){this.setGold(this._status.gold+e)}setPartsAppearedFlag(){this._partsAppeared=!0}clearPartsAppearedFlag(){this._partsAppeared=!1}isPartsAppearedTime(){return!0===this._partsAppeared}startBattleWith(e){this._isPlayerTurn=!0,this._battleFrameCounter=F.BATTLE_INTERVAL_FRAME_NUM,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=e,this._state=Yt.BATTLE}isFighting(){return this._state===Yt.BATTLE}isTurn(){return this._isPlayerTurn}getTurnNum(){return this._battleTurnLength}isBattleStartFrame(){return this._battleFrameCounter===F.BATTLE_INTERVAL_FRAME_NUM&&0===this._battleTurnLength}calcBattleResultForPlayerTurn(e,t,s=!1){const i=this._wwa.callUserDefinedBattleDamageFunction("playerToEnemy",s?{playerStatus:e,enemyStatus:t}:void 0);return i||{damage:this._calcDamageDefault(e,t)}}calcBattleResultForEnemyTurn(e,t,s=!1){const i=this._wwa.callUserDefinedBattleDamageFunction("enemyToPlayer",s?{playerStatus:t,enemyStatus:e}:void 0);return i||{damage:this._calcDamageDefault(e,t)}}_calcDamageDefault(e,t){const s=e.strength-t.defence;return s>0?s:0}fight(){if(!this.isFighting())throw new Error("バトルが開始されていません。");if(0===this._battleTurnLength&&this._battleFrameCounter===F.BATTLE_INTERVAL_FRAME_NUM&&this._wwa.showMonsterWindow(),--this._battleFrameCounter>0)return;this._battleTurnLength++,this._wwa.isBattleSpeedIndexForQuickBattle(this._speedIndex)||this._battleTurnLength>F.BATTLE_SPEED_CHANGE_TURN_NUM?(1===this._battleTurnLength&&(this._wwa.playSound(B.ATTACK),this._wwa.vibration(!1)),this._battleFrameCounter=1):(this._battleFrameCounter=F.BATTLE_INTERVAL_FRAME_NUM,this._wwa.playSound(B.ATTACK),this._wwa.vibration(!0));var e=this.getStatus(),t=this._enemy.status;let s=!1;if(this._isPlayerTurn){if(1===this._battleTurnLength&&this._wwa.isUsingDefaultDamageCalcFunction()&&e.strength<=t.defence&&e.defence>=t.strength)return this._enemy.battleEndProcess(),this._wwa.registerSystemMessagePageByKey(a.CANNOT_DAMAGE_MONSTER),this._battleTurnLength=0,this._enemy=null,void(this._state=Yt.CONTROLLABLE);const{damage:i,aborted:r}=this.calcBattleResultForPlayerTurn(e,t);this._enemy.damage(i),s=Boolean(r),this._enemy.status.energy<=0&&(this._wwa.playSound(this._wwa.getObjectAttributeById(this._enemy.partsID,F.ATR_SOUND)),this.earnGold(t.gold),this._wwa.setStatusChangedEffect(new c(0,0,0,t.gold)),0!==this._enemy.item?this._wwa.setPartsOnPosition(v.OBJECT,this._enemy.item,this._enemy.position):this._wwa.setPartsOnPosition(v.OBJECT,0,this._enemy.position),this._wwa.reserveAppearPartsInNextFrame(this._enemy.position,f.OBJECT,this._enemy.partsID),this._state=Yt.CONTROLLABLE,this._wwa.registerPageByMessage(this._enemy.message,{triggerParts:{id:this._enemy.partsID,type:v.OBJECT,position:this._enemy.position}}),this._enemy.battleEndProcess(),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null),null!==this._enemy&&(0===i?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0),this._isPlayerTurn=!1}else{const{damage:i,aborted:a}=this.calcBattleResultForEnemyTurn(t,e);this.damage(i),s=Boolean(a),this._status.energy<=0&&(this.setEnergy(0),this._enemy.battleEndProcess(),this._state=Yt.CONTROLLABLE,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null,this._wwa.shouldApplyGameOver({isCalledByMacro:!1})&&this._wwa.gameover()),0===i?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0,this._isPlayerTurn=!0}(this._battleNoDamageTurnLength>F.FIGHT_DRAW_TURN||s)&&(this._enemy.battleEndProcess(),this._state=Yt.CONTROLLABLE,this._wwa.registerSystemMessagePageByKey(a.BATTLE_NOT_SETTLED),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null)}readyToUseItem(e){var t;if(!this.canUseItem(e))throw new Error("アイテムがないか、アイテムが使えません。");t=this._itemBox[e-1],this._wwa.getObjectAttributeById(t,F.ATR_STRING),this._wwa.reserveAppearPartsInNextFrame(this._position.getPartsCoord(),f.OBJECT,t),this._readyToUseItemPos1To12=e,this._isReadyToUseItem=!0}isReadyToUseItem(){return this._isReadyToUseItem}getDrawingCenterPosition(){var e=this._position.getPartsCoord(),t=this._position.getOffsetCoord(),s=this._camera.getPosition(),i=s.getPartsCoord(),a=s.getOffsetCoord(),r=(e.x-i.x)*F.CHIP_SIZE+t.x-a.x+F.CHIP_SIZE/2,n=(e.y-i.y)*F.CHIP_SIZE+t.y-a.y+F.CHIP_SIZE/2;return new l(r,n)}mainFrameCount(){this._frameCount++}getFrameCount(){return this._frameCount}setFrameCount(e){return"number"!=typeof e&&(e=0),this._frameCount=e}getMoveCount(){return this._moves}setMoveCount(e){return this._moves=e}isMoveObjectAutoExecTime(){return 0===this._moveObjectAutoExecTimer}setMoveMacroWaiting(e){e<0||(this._moveMacroWaitingRemainMoves=e,this._moveObjectAutoExecTimer=0)}resetMoveObjectAutoExecTimer(){this._moveObjectAutoExecTimer=F.CHIP_SIZE/k[this._speedIndex],this._moveMacroWaitingRemainMoves--}decrementMoveObjectAutoExecTimer(){return this._moveMacroWaitingRemainMoves>=0&&this._moveObjectAutoExecTimer>0&&(this._moveObjectAutoExecTimer--,0===this._moveMacroWaitingRemainMoves&&0===this._moveObjectAutoExecTimer&&(this._afterMoveMacroFlag=!0)),0}isWaitingMoveMacro(){return 0!==this._moveMacroWaitingRemainMoves||0!==this._moveObjectAutoExecTimer}decrementLookingAroundTimer(){return this._isPreparedForLookingAround&&this._lookingAroundTimer>0?--this._lookingAroundTimer:0}isLookingAround(){return this._isPreparedForLookingAround&&0===this._lookingAroundTimer}getSpeedIndex(){return this._speedIndex}speedUp(){return this._speedIndex=Math.min(F.MAX_SPEED_INDEX,this._speedIndex+1)}speedDown(){return this._speedIndex=Math.max(F.MIN_SPEED_INDEX,this._speedIndex-1)}setSpeedIndex(e){if(e<F.MIN_SPEED_INDEX||F.MAX_SPEED_INDEX<e)throw new Error("#set_speed の引数が異常です:"+e);return this._speedIndex=e,this._speedIndex}isPausing(){return this.isJumped()||this.isWaitingMessage()||this.isWaitingPasswordWindow()||this.isWaitingEstimateWindow()||this.isWaitingMoveMacro()||this.isFighting()}constructor(e,t,s,i,a,r,n){super(t),this.itemTransitioningClassName="item-transitioning",this.overwittenItemClassName="item-overwritten",this.overwittenItemSelector=`.${this.overwittenItemClassName}`,this.itemEffectStartTimers=new Array(F.ITEMBOX_SIZE),this._status=i,this._equipStatus=new h(0,0),this._itemBox=new Array(F.ITEMBOX_SIZE),this._itemBoxElement=new Array(F.ITEMBOX_SIZE),this._itemUsingEvent=new Array(F.ITEMBOX_SIZE);for(var o=0;o<this._itemBox.length;o++)this._itemBox[o]=0,this._itemBoxElement[o]=Ee("#item"+o+">.item-disp");this.updateItemBox(),this._energyMax=a,this._dir=m.DOWN,this._isMovingImage=!1,this._wwa=e,this._state=Yt.CONTROLLABLE,this._camera=s,this._isPartsEventExecuted=!1,this._energyValueElement=Ee("#disp-energy>.status-value-box"),this._strengthValueElement=Ee("#disp-strength>.status-value-box"),this._defenceValueElement=Ee("#disp-defence>.status-value-box"),this._goldValueElement=Ee("#disp-gold>.status-value-box"),this._isReadyToUseItem=!1,this._isClickableItemGot=!1,this._moves=r,this._moveMacroWaitingRemainMoves=0,this._moveObjectAutoExecTimer=0,this.updateStatusValueBox(),this._partsAppeared=!1,this._afterMoveMacroFlag=!1,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=F.PLAYER_LOOKING_AROUND_START_FRAME,this._speedIndex=n,this._messageDelayFrameCount=0,this._battleNoDamageTurnLength=0}}class Ht{constructor(e,t,s,i,a,r,n){this._partsID=e,this._position=t,this._imgCoord=s,this._status=i,this._message=a,this._item=r,this._battleEndCallback=n}get partsID(){return this._partsID}get position(){return this._position}get imgCoord(){return this._imgCoord}get status(){return this._status}get message(){return this._message}get item(){return this._item}damage(e){this._status.energy=Math.max(0,this._status.energy-e)}battleEndProcess(){var e;null===(e=this._battleEndCallback)||void 0===e||e.call(this)}setStatus(e){null!==e.energy&&(this._status.energy=e.energy),null!==e.strength&&(this._status.strength=e.strength),null!==e.defence&&(this._status.defence=e.defence)}clone(){return new Ht(this._partsID,this._position.clone(),this._imgCoord.clone(),this._status.clone(),this._message,this._item,this._battleEndCallback)}}class Kt{constructor(e,t,s,i,a){this._player=e,this._objectID=t,this._srcPos=s,this._destPos=i,this._dir=a,this._currentPos=this._srcPos.clone()}update(){var e=this._player.getSpeedIndex();return this._currentPos=this._currentPos.getNextFramePosition(this._dir,k[e],k[e]),this._currentPos}get isAchievedDestination(){return this._currentPos.equals(this._destPos)}get currentPosition(){return this._currentPos}get beforePosition(){return this._srcPos}get destination(){return this._destPos}get objID(){return this._objectID}}class jt{constructor(e,t){this._wwa=e,this._player=t,this.clear()}add(e,t,s,i){this._queue.push(new Kt(this._player,e,t,s,i))}update(){for(var e=[],t=[],s=0;s<this._queue.length;s++)this._queue[s].update(),this._queue[s].isAchievedDestination?(e.push(this._queue[s]),this._wwa.setPartsOnPosition(v.OBJECT,0,this._queue[s].beforePosition.getPartsCoord()),this._wwa.setPartsOnPosition(v.OBJECT,this._queue[s].objID,this._queue[s].destination.getPartsCoord())):t.push(this._queue[s]);return this._queue=t,e}clear(){this._queue=[]}get objectMovingData(){return this.objectMovingData}getOffsetByBeforePartsCoord(e){var t=this._queue.filter((t=>t.beforePosition.getPartsCoord().equals(e)));return 0===t.length?null:t[0].currentPosition.getOffsetCoord()}}class Xt{constructor(e,t,s,i){this._wwa=e,this._triggerParts=t,this.macroType=s,this.macroArgs=i}isJunction(){return[M.IF,M.ELSE_IF,M.ELSE,M.END_IF].includes(this.macroType)}execute(){try{switch(this.macroType){case M.IMGPLAYER:return this._executeImgPlayerMacro(),{};case M.IMGYESNO:return this._executeImgYesNoMacro(),{};case M.HPMAX:return this._executeHPMaxMacro(),{};case M.SAVE:return this._executeSaveMacro(),{};case M.ITEM:return this._executeItemMacro(),{};case M.DEFAULT:return this._executeDefaultMacro(),{};case M.OLDMAP:return this._executeOldMapMacro(),{};case M.PARTS:return this._executePartsMacro(),{};case M.MOVE:return this._executeMoveMacro(),{};case M.MAP:return this._executeMapMacro(1),{};case M.DIRMAP:return this._executeDirMapMacro(),{};case M.IMGFRAME:return this._executeImgFrameMacro(),{};case M.IMGBOM:return this._executeImgBomMacro(),{};case M.DELPLAYER:return this._executeDelPlayerMacro(),{};case M.FACE:return this._executeFaceMacro(),{};case M.EFFECT:return this._executeEffectMacro(),{};case M.GAMEOVER:return this._executeGameOverMacro(),{};case M.IMGCLICK:return this._executeImgClickMacro(),{};case M.STATUS:{const{isGameOver:e}=this._executeStatusMacro();return{isGameOver:e}}case M.EFFITEM:return this._executeEffItemMacro(),{};case M.COLOR:return this._executeColorMacro(),{};case M.WAIT:return this._executeWaitMacro(),{};case M.SOUND:return this._executeSoundMacro(),{};case M.GAMEPAD_BUTTON:return this._executeGamePadButtonMacro(),{};case M.OLDMOVE:return this._executeOldMoveMacro(),{};case M.JUMPGATE:return this._executeJumpGateMacro(),{};case M.RECPOSITION:return this._executeRecPositionMacro(),{};case M.JUMPRECPOSITION:return this._executeJumpRecPositionMacro(),{};case M.CONSOLE_LOG:return this._executeConsoleLogMacro(1),{};case M.COPY_HP_TO:return this._executeCopyHpToMacro(),{};case M.SET_HP:{const{isGameOver:e}=this._executeSetHPMacro();return{isGameOver:e}}case M.COPY_HPMAX_TO:return this._executeCopyHpMaxToMacro(),{};case M.SET_HPMAX:return this._executeSetHpMaxMacro(),{};case M.COPY_AT_TO:return this._executeCopyAtToMacro(),{};case M.SET_AT:return this._executeSetAtMacro(),{};case M.COPY_DF_TO:return this._executeCopyDfToMacro(),{};case M.SET_DF:return this._executeSetDfMacro(),{};case M.COPY_MONEY_TO:return this._executeCopyMoneyToMacro(),{};case M.SET_MONEY:return this._executeSetMoneyMacro(),{};case M.COPY_STEP_COUNT_TO:return this._executeSetStepCountMacro(),{};case M.VAR_SET_VAL:return this._executeVarSetValMacro(),{};case M.VAR_SET:return this._executeVarSetMacro(),{};case M.VAR_ADD:return this._executeVarAddMacro(),{};case M.VAR_SUB:return this._executeVarSubMacro(),{};case M.VAR_MUL:return this._executeVarMulMacro(),{};case M.VAR_DIV:return this._executeVarDivMacro(),{};case M.VAR_MOD:return this._executeVarModMacro(),{};case M.VAR_SET_RAND:return this._executeVarSetRandMacro(),{};case M.GAME_SPEED:return this._executeGameSpeedMacro(),{};case M.SHOW_STR:case M.SHOW_STR2:case M.IF:return{};case M.LEGACY_IF:return this._executeLegacyIfMacro(),{};case M.ELSE_IF:case M.ELSE:case M.END_IF:return{};case M.SET_SPEED:return this._executeSetSpeedMacro(),{};case M.COPY_TIME_TO:return this._executeCopyTimeToMacro(),{};case M.HIDE_STATUS:return this._executeHideStatusMacro(),{};case M.VAR_MAP:return this._executeVarMapMacro(),{};case M.NO_GAMEOVER:return this._executeNoGameOverMacro(),{};case M.SET:{const{isGameOver:e}=this._executeSetMacro();return{isGameOver:e}}case M.MAP2:return this._executeMapMacro(2),{};case M.CONSOLE_LOG2:return this._executeConsoleLogMacro(2),{};case M.DELAYBGM:return this._executeDelayBgmMacro(),{};case M.SYSMSG:return this._executeSysMsgMacro(),{};case M.PICTURE:return this._executePictureMacro(),{};default:return console.log("不明なマクロIDが実行されました:"+this.macroType),{}}}catch(e){}}_concatEmptyArgs(e){if(this.macroArgs.length<e){for(var t=new Array(e-this.macroArgs.length),s=0;s<t.length;s++)t[s]="";this.macroArgs=this.macroArgs.concat(t)}}_evaluateIntValue(e,t=0){const s=this.macroArgs[e];if(""===s)return t;const i=Number(s),a=i>=0?Math.floor(i):Math.ceil(i);return isNaN(a)?mt(s,this._wwa.generateTokenValues(this._triggerParts),t):a}_executeJumpGateMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.forcedJumpGate(e,t)}_executeRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.recUserPosition(e,t)}_executeJumpRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.jumpRecUserPosition(e,t)}_executeConsoleLogMacro(e){this._concatEmptyArgs(1);const t=this._evaluateIntValue(0);switch(e){case 1:return void this._wwa.outputUserVar(t);case 2:return void console.log(`${this.macroArgs[0]} = ${t}`)}}_executeCopyHpToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHP(e)}_executeCopyHpMaxToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHPMAX(e)}_executeCopyAtToMacro(){this._concatEmptyArgs(2);const e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarAT(e,t)}_executeCopyDfToMacro(){this._concatEmptyArgs(2);const e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarDF(e,t)}_parseStatusKind(e){switch(e){case 0:default:return"all";case 1:return"bare";case 2:return"equipment"}}_executeCopyMoneyToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarMONEY(e)}_executeSetHPMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);return this._wwa.setHPUserVar(e,!0)}_executeSetHpMaxMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setHPMAXUserVar(e)}_executeSetAtMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setATUserVar(e)}_executeSetDfMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setDFUserVar(e)}_executeSetMoneyMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMONEYUserVar(e)}_executeSetStepCountMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarStep(e)}_executeVarSetValMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserVarVal(e,t)}_executeVarSetMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValOtherUserVal(e,t)}_executeVarAddMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValAdd(e,t)}_executeVarSubMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValSub(e,t)}_executeVarMulMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMul(e,t)}_executeVarDivMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValDiv(e,t)}_executeVarModMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMod(e,t)}_executeVarSetRandMacro(){this._concatEmptyArgs(3);const e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,0);this._wwa.setUserValRandNum(e,t,s)}_executeGameSpeedMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.speedChangeJudge(e)}_executeLegacyIfMacro(){for(var e=new Array(11),t=0;t<10;t++)e[t]=this.macroArgs[t];this._wwa.userVarUserIf(this._triggerParts.position,e)}_executeSetSpeedMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setPlayerSpeedIndex(e-1)}_executeCopyTimeToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarPlayTime(e)}_executeHideStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=0!==this._evaluateIntValue(1);this._wwa.hideStatus(e,t)}_executeVarMapMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this.macroArgs[1],s=this.macroArgs[2],i=this._evaluateIntValue(3,v.OBJECT);if(e<0)throw new Error("入力変数が不正です");this._wwa.varMap(this._triggerParts.position,t,s,e,i)}_executeImgPlayerMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerImgCoord(new l(e,t))}_executeImgYesNoMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setYesNoImgCoord(new l(e,t))}_executeHPMaxMacro(){this._concatEmptyArgs(1);var e=Math.max(0,this._evaluateIntValue(0));this._wwa.setPlayerEnergyMax(e)}_executeSaveMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.disableSave(e)}_executeItemMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerGetItem(e,t)}_executeDefaultMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setObjectNotCollapseOnPartsOnPlayer(e)}_executeOldMapMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setOldMap(e)}_executePartsMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,v.OBJECT),i=this._evaluateIntValue(3);if(s!==v.OBJECT&&s!==v.MAP)throw new Error("パーツ種別が不明です");if(0!==i&&1!==i&&(i=1),e<0||t<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(e>=this._wwa.getObjectPartsNum()||t>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(e>=this._wwa.getMapPartsNum()||t>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");this._wwa.replaceParts(e,t,s,!!i)}_executeMoveMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMoveMacroWaitingToPlayer(e)}_executeMapMacro(e){this._concatEmptyArgs(4);const t=this._evaluateIntValue(0);var s=this._evaluateIntValue(3,v.OBJECT);if(t<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(t>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(t>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");if(1===e){const e=this.macroArgs[1],i=this.macroArgs[2];this._wwa.appearPartsEval(this._triggerParts.position,e,i,t,s)}else if(2===e){const e=this._evaluateIntValue(1),i=this._evaluateIntValue(2);if(isNaN(e)||isNaN(i))throw new Error("出現先座標が不正です");this._wwa.appearPartsEval(this._triggerParts.position,`${e}`,`${i}`,t,s)}}_executeDirMapMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2,v.OBJECT);if(isNaN(e)||isNaN(t)||isNaN(s))throw new Error("引数が整数ではありません");if(e<0)throw new Error("パーツ番号が不正です");if(s===v.OBJECT){if(e>=this._wwa.getObjectPartsNum())throw new Error("パーツ番号が不正です")}else if(e>=this._wwa.getMapPartsNum())throw new Error("パーツ番号が不正です");this._wwa.appearPartsByDirection(t,e,s)}_executeImgFrameMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2);if(t<0||s<0)throw new Error("座標は正でなければなりません。");if(e===R.ENERGY||e===R.STRENGTH||e===R.DEFENCE||e===R.GOLD)this._wwa.setStatusIconCoord(e,new l(t,s));else if(e===R.WIDE_CELL_ROW)this._wwa.setWideCellCoord(new l(t,s));else if(e===R.ITEM_BG)this._wwa.setItemboxBackgroundPosition({x:t,y:s});else{if(e!==R.MAIN_FRAME)throw new Error("種別が不正です。");this._wwa.setFrameCoord(new l(t,s))}}_executeImgBomMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("座標は正でなければなりません。");this._wwa.setBattleEffectCoord(new l(e,t))}_executeDelPlayerMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setDelPlayer(!!e)}_executeFaceMacro(){this._concatEmptyArgs(6);var e,t=this._evaluateIntValue(0),s=this._evaluateIntValue(1),i=this._evaluateIntValue(2),a=this._evaluateIntValue(3),r=this._evaluateIntValue(4),n=this._evaluateIntValue(5);if(t<0||s<0||i<0||a<0||r<0||n<0)throw new Error("各引数は0以上の整数でなければなりません。");e=new u(new l(t,s),new l(i,a),new l(r,n)),this._wwa.addFace(e)}_executeEffectMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);if(e<0)throw new Error("待ち時間は0以上の整数でなければなりません。");if(0!==e){for(var t=[],s=1;s<this.macroArgs.length;s+=2){var i,a=this._evaluateIntValue(s);if(a<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");if(s+1===this.macroArgs.length)throw new Error("画像のパーツ座標指定で、Y座標が指定されていません。");if((i=this._evaluateIntValue(s+1))<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");t.push(new l(a,i))}this._wwa.setEffect(e,t)}else this._wwa.stopEffect()}_executeGameOverMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||e>=this._wwa.getMapWidth()||t<0||t>=this._wwa.getMapWidth())throw new Error("マップの範囲外が指定されています!");this._wwa.setGameOverPosition(new l(e,t))}_executeImgClickMacro(){if(this._concatEmptyArgs(2),this.macroArgs.length<1)throw new Error("引数が少なすぎます");var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("引数が0以上の整数ではありません");this._wwa.setImgClick(new l(e,t))}_executeEffItemMacro(){if(this.macroArgs.length<1)throw new Error("引数が少なすぎます");var e=this._evaluateIntValue(0);this._wwa.updateItemEffectEnabled(!!e)}_executeStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||4<e)throw new Error("ステータス種別が範囲外です。");return this._wwa.setPlayerStatus(e,t,!0)}_executeColorMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),s=this._evaluateIntValue(2),i=this._evaluateIntValue(3);if(e<0||e>5)throw new Error("種別は0から5までです");if(t<0||t>255||s<0||s>255||i<0||i>255)throw new Error("色が範囲外です");this._wwa.changeStyleRule(e,t,s,i)}_executeWaitMacro(){throw new Error("Not implemented!")}_executeSoundMacro(){this._concatEmptyArgs(2);const e=parseInt(this.macroArgs[0]),t=parseInt(this.macroArgs[1]);this._wwa.playSound(e,t)}_executeGamePadButtonMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw new Error("各引数は0以上の整数でなければなりません。");if(t>F.ITEMBOX_SIZE)throw new Error("アイテムボックス上限を超えた数値が指定されました。");this._wwa.setGamePadButtonItemTable(e,t)}_executeOldMoveMacro(){this._concatEmptyArgs(1);const e=!!this._evaluateIntValue(0);this._wwa.setOldMove(e)}_executeNoGameOverMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setGameOverPolicy(e)}_executeSetMacro(){return this._wwa.execSetMacro(this.macroArgs[0],{triggerParts:this._triggerParts})}_executePictureMacro(){if(this._concatEmptyArgs(3),this.macroArgs.length<1)throw new Error("引数が少なすぎます");const e=this._evaluateIntValue(0),t=this.macroArgs[1].length>0?this.macroArgs[1]:"+0";if("0"===t)return void this._wwa.deletePictureRegistry(e);const s=((e,t)=>{if("+"===e[0]){const s=parseInt(e.substring(1,10));if(Number.isNaN(s))throw new Error("+ 以降の文字列は数値形式で記載してください。");return t+s}if("-"===e[0]){const s=parseInt(e.substring(1,10));if(Number.isNaN(s))throw new Error("- 以降の文字列は数値形式で記載してください。");return t-s}const s=parseInt(e,10);if(Number.isNaN(s))throw new Error("数値形式ではないため、解析できません。");return s})(t,this._triggerParts.id);if(0===s)throw new Error("パーツ番号の相対値算出で0が検出されました。ピクチャを消去する場合は0のまま指定してください。");if(s<0)throw new Error("パーツ番号は0以上の整数でなければなりません。");const i=this._evaluateIntValue(2,v.OBJECT);this._wwa.setPictureRegistry(e,s,i,this._triggerParts.position)}_executeDelayBgmMacro(){this._concatEmptyArgs(1);const e=this._evaluateIntValue(0);this._wwa.setBgmDelay(e)}_executeSysMsgMacro(){this._concatEmptyArgs(2);const e=this.resolveSystemMessageKeyFromMacroArg(this.macroArgs[0]);if(!e)throw new Error("該当するシステムメッセージの定義がありません");const t=""===this.macroArgs[1]?void 0:this.macroArgs[1].replaceAll("\\n","\n");this._wwa.overwriteSystemMessage(e,t)}resolveSystemMessageKeyFromMacroArg(e){if(n(e))return e;return o(this._evaluateIntValue(0))}}class $t{constructor(e){this.generateTokenValues=e}static executeNodes(e,t){var s;try{return{isError:!1,messages:null!==(s=null==e?void 0:e.execute(t))&&void 0!==s?s:[]}}catch(e){return console.error(e),{isError:!0}}}}class Jt extends $t{constructor(e=[],t){super(t),this.branches=e}appendBranch(e){this.branches.push(e)}getLastUnconnectedBranch(){for(let e of this.branches)if(!e.next)return e}evaluateAndGetNextNode(e){for(let t of this.branches)if(!t.descriminant||ct(t.descriminant,this.generateTokenValues(e)))return t.next}hasElseBranch(){return this.branches.filter((e=>Boolean(e.elseBranch))).length>=1}execute(e){if(!e)throw new Error("パーツ起因ページによる実行ではないため、Junctionノードの利用を想定していません。");const t=this.evaluateAndGetNextNode(e);return t?t.execute(e):[]}}class Zt extends $t{constructor(e,t,s,i,a,r){super(t),this.evalScript=s,this.macro=i,this.next=a,this.script=r,this.messageSegments=this.parseMessage(e),void 0===this.macro&&(this.macro=[])}isEmpty(){return this.messageSegments.reduce(((e,t)=>e&&""===t),!0)}generatePrintableMessage(){return this.messageSegments.reduce(((e,t)=>`${e}${"string"==typeof t?t:t()}`),"")}appendMessage(e,t=!1){this.messageSegments=this.messageSegments.concat(t?["\n"]:[],this.parseMessage(e))}static createEmptyMessage(e,t,s){return new Zt([],e,t,void 0,void 0,s)}parseMessage(e){return"string"==typeof e?[e]:e}execute(e){var t;return this.script&&this.evalScript(this.script,e),null===(t=this.macro)||void 0===t||t.forEach((e=>{if(e.execute().isGameOver)throw new Error("ゲームオーバーのため、メッセージ・マクロの実行を打ち切ります。")})),this.next?[this,...this.next.execute(e)]:[this]}}function qt({content:e,script:t,generatingOption:s,pageType:i,parseMacro:a,evalScript:r,generateTokenValuesCallback:n}){let o,h,c;const l=function(e,t){return e.split("\n").map((e=>{const s=e.match(/(\$(?:[a-zA-Z_][a-zA-Z0-9_]*)(?:.*))/);if(!s||s.length<2)return e.startsWith("$")?void 0:{type:"text",text:e};const i=t(s[1]);switch(i.macroType){case M.IF:case M.ELSE_IF:case M.ELSE:case M.END_IF:case M.SHOW_STR:case M.SHOW_STR2:return{type:i.macroType,text:e,macro:i};default:return{type:"normalMacro",text:e,macro:i}}})).filter(Boolean)}(e,a),_=[];if(l.forEach(((e,t)=>{try{const i=0===t?void 0:l[t-1].type,a=_[_.length-1],u=function(e,t,s,i,a){switch(e.type){case M.IF:return new Jt([{descriminant:gt(e.macro.macroArgs[0])}],s);case M.SHOW_STR:case M.SHOW_STR2:return t?new Zt(es(e.macro.macroArgs,s,{triggerParts:a.triggerParts,version:e.type===M.SHOW_STR2?2:1}),s,i):void 0;case"text":return t?new Zt(e.text,s,i):void 0;case"normalMacro":return t?new Zt("",s,i,[e.macro]):void 0;default:return}}(e,!o||!zt(i),n,r,{triggerParts:s.triggerParts}),d=function(e,t,s,i){const a=0===i.length;switch(t.type){case M.IF:return void i.push(e);case M.ELSE_IF:if(a)throw new Error("構文エラー: $if を呼ぶ前に $else_if は呼べません");return void s.appendBranch({descriminant:gt(t.macro.macroArgs[0])});case M.ELSE:if(a)throw new Error("構文エラー: $if を呼ぶ前に $else は呼べません");return void s.appendBranch({descriminant:!0,elseBranch:{type:"real"}});case M.END_IF:if(a)throw new Error("構文エラー: $if を呼ぶ前に $endif は呼べません");return i.pop()}}(u,e,a,_);d&&(c=d),i?function(e,t,s,i,a,r,n,o){const h=zt(t);switch(t){case M.IF:case M.ELSE_IF:case M.ELSE:{if(!i||!a)return;const e=a.getLastUnconnectedBranch();if(!e)throw new Error("lastUnconnectedBranchが見つかりませんでした。");return void(e.next=i)}case M.END_IF:if(!(i&&r instanceof Jt))return;for(let e=0;e<r.branches.length;e++){let t=r.branches[e].next;t?Qt(t,i):r.branches[e].next=i}return void(r.hasElseBranch()||r.branches.push({next:i,descriminant:!0,elseBranch:{type:"pesudo-else"}}));default:{if(!(h&&s instanceof Zt))return;const t=!s.isEmpty();e.type===M.SHOW_STR||e.type===M.SHOW_STR2?s.appendMessage(es(e.macro.macroArgs,n,{triggerParts:o.triggerParts,version:e.type===M.SHOW_STR2?2:1}),t):"text"===e.type?s.appendMessage(e.text,t):"normalMacro"===e.type?s.macro.push(e.macro):s.next=i}}}(e,i,h,u,a,c,n,{triggerParts:s.triggerParts}):o=u,u&&(h=u)}catch(e){console.error(`$if-$else_if-$else-$endif マクロの解析中にエラーが発生しました。ページ ${t}`),console.error(e)}})),t&&"first"===i){const e=Zt.createEmptyMessage(n,r,t);e.next=o,o=e}return{firstNode:o,isLastPage:"last"===i,triggerParts:s.triggerParts,isSystemMessage:s.isSystemMessage,showChoice:"first"===i?s.showChoice:void 0,scoreOption:"first"===i?s.scoreOption:void 0,additionalItems:s.additionalItems}}const zt=e=>e===M.SHOW_STR||e===M.SHOW_STR2||"text"===e||"normalMacro"===e;function Qt(e,t){let s=e;for(;;)if(s instanceof Jt&&(s=s.branches[0].next),s instanceof Zt){if(!s.next)return void(s.next=t);s=s.next}}function es(e,t,s){return e.map((e=>{const i=Number(e);if(!isNaN(i))return()=>{const e=t(s.triggerParts).userVars;return 1===s.version?e[i]:i};return null!==dt(e).match(st)?()=>mt(e,t(s.triggerParts)):e.replace(/\\n/g,"\n")}))}function ts(e,t,s,i,a){const r=function(e){return e.split(/\n\<c\>/i)[0].split(/\<c\>/i)[0].replace(/\n\<p\>\n/gi,"<P>").replace(/\n\<p\>/gi,"<P>").replace(/\<p\>\n/gi,"<P>").replace(/\<p\>/gi,"<P>").split("\n").map((e=>{if(!e.startsWith("//"))return e.match(/\/\//)?Ae(Ae(e).replace(/^.*\/\/(?!:s?ptth)/gi,"")):e})).filter((e=>void 0!==e)).join("\n").replace(/\\\/\\\//gi,"//")}(e),{pageContents:n,script:o}=function(e){if(""===e)return{pageContents:[]};const t=e.split(/\<script\>/i),[s,i]=t.length>1?[t[0],t[1]]:[t[0]];return{pageContents:s.split(/\<p\>/gi),script:i}}(r);return 0===n.length?[{firstNode:Zt.createEmptyMessage(a,i,o),isLastPage:!0,...t}]:n.map(((e,r)=>qt({script:o,content:e,generatingOption:t,pageType:ss(r,n.length),parseMacro:s,evalScript:i,generateTokenValuesCallback:a})))}function ss(e,t){return 0===e?"first":e===t-1?"last":"other"}function is(e){return void 0===e||(e instanceof Jt?e.branches.reduce(((e,t)=>e&&is(t.next)),!0):e instanceof Zt?e.isEmpty()&&is(e.next):void 0)}class as{constructor(e,t,s,i,a,r,n){this._wwa=e,this._coord=t,this._width=s,this._height=i,this._isVisible=a,this._parentElement=r,this._element=document.createElement("div"),this._element.style.position="absolute",this._element.style.borderWidth="2px",this._element.style.borderStyle="solid",e.isClassicMode()?this._element.style.borderRadius="15px":this._element.style.borderRadius="10px",this._element.classList.add("wwa-message-window"),this._element.style.zIndex=n+"",this._element.style.left=this._coord.x+"px",this._element.style.top=this._coord.y+"px",this._element.style.width=this._width+"px",this._element.style.height=this._height+"px",this._parentElement.appendChild(this._element)}update(e){}show(){this._isVisible=!0,this._element.style.display="block",this.update(),this._wwa.wwaCustomEvent("wwa_window_show",{name:this.windowName,element:this._element,text:this._element.textContent})}hide(){this._isVisible=!1,this._element.style.display="none",this.update(),this._wwa.wwaCustomEvent("wwa_window_hide",{name:this.windowName})}isVisible(){return this._isVisible}get windowName(){return"TextWindow"}}class rs extends as{constructor(e,t,s,i,a,r,n){super(e,new l(t.x,t.y),s,i,a,r,201),this._cgFileName=n,this._monsterBox=document.createElement("div"),this._monsterBox.style.width=F.CHIP_SIZE+"px",this._monsterBox.style.height=F.CHIP_SIZE+"px",this._monsterBox.style.position="absolute",this._monsterBox.style.left="10px",this._monsterBox.style.top="10px",this._monsterBox.style.backgroundImage="url("+this._cgFileName.replace("(","\\(").replace(")","\\)")+")",this._monsterBox.style.backgroundPosition="0 0",this._element.appendChild(this._monsterBox),this._energyBox=document.createElement("div"),this._energyBox.style.position="absolute",this._energyBox.style.left="80px",this._energyBox.style.top="10px",this._energyBox.textContent="生命力 0",this._element.appendChild(this._energyBox),this._strengthBox=document.createElement("div"),this._strengthBox.style.position="absolute",this._strengthBox.style.left="80px",this._strengthBox.style.top="30px",this._strengthBox.textContent="攻撃力 0",this._element.appendChild(this._strengthBox),this._defenceBox=document.createElement("div"),this._defenceBox.style.position="absolute",this._defenceBox.style.left="180px",this._defenceBox.style.top="30px",this._defenceBox.textContent="防御力 0",this._element.appendChild(this._defenceBox),this._isVisible?this._element.style.display="block":this._element.style.display="none"}update(e){void 0!==e&&(this._monsterBox.style.backgroundPosition="-"+e.imgCoord.x+"px -"+e.imgCoord.y+"px",this._energyBox.textContent="生命力 "+e.status.energy,this._strengthBox.textContent="攻撃力 "+e.status.strength,this._defenceBox.textContent="防御力 "+e.status.defence)}get windowName(){return"MonsterWindow"}}class ns extends as{constructor(e,t,s,i){e.isClassicMode()?(super(e,new l(2*F.CHIP_SIZE,30),7*F.CHIP_SIZE,40,s,i,202),this._element.style.borderWidth="0",this._element.style.borderRadius="4px",this._element.style.fontSize="20px",this._element.style.lineHeight="40px"):super(e,new l(t.x,t.y),340,30,s,i,202),this._element.style.textAlign="center",this._isVisible?this._element.style.display="block":this._element.style.display="none",this.update(0)}update(e){void 0!==e&&(this._element.textContent="Score: "+e)}get windowName(){return"ScoreWindow"}}var os,hs;ns.WINDOW_NAME="ScoreWindow",function(e){e[e.TOP=0]="TOP",e[e.CENTER=1]="CENTER",e[e.BOTTOM=2]="BOTTOM",e[e.SCORE=3]="SCORE"}(os||(os={}));class cs{constructor(e,t,s,i,a,r,n,o,h,c){this._wwaSave=void 0,this._save_select_id=0,this._save_counter=0,this._save_close=!1;var l=this,_=r.replace("(","\\(").replace(")","\\)");switch(this._wwa=e,this._cgFileName=r,this._x=t,this._y=s,this._width=i,this._height=a,this._message="",this._isVisible=n,this._isYesno=o,this._isItemMenu=h,this._element=document.createElement("div"),this._element.id="wwa-text-message-window",this._element.classList.add("wwa-message-window"),this._msgWrapperElement=document.createElement("div"),this._msgWrapperElement.style.textAlign="left",this._msgWrapperElement.style.wordWrap="break-word",this._msgWrapperElement.style.margin=e.isClassicMode()?"8px 0 8px 16px":"0",this._msgWrapperElement.style.padding=e.isClassicMode()?"0":"7px",this._element.appendChild(this._msgWrapperElement),this._saveElement=document.createElement("div"),this._saveElement.style.padding="0",this._saveElement.style.margin="0",this._element.appendChild(this._saveElement),this._dummyElement=document.createElement("div"),this._dummyElement.style.display="none",this._dummyElement.style.padding="0",this._dummyElement.style.margin="0",this._dummyElement.style.height="55px",this._element.appendChild(this._dummyElement),this._ynWrapperElement=document.createElement("div"),this._ynWrapperElement.classList.add("wwa-yesno-wrapper"),this._element.appendChild(this._ynWrapperElement),this._parentElement=c,this._parentElement.appendChild(this._element),this._divYesElement=document.createElement("div"),this._divYesElement.classList.add("wwa-yes-button"),this._divYesElement.style.background="url("+_+")",this._divYesElement.onclick=function(){l._isInputDisable||(e.setYesNoInput(w.YES),l.update())},this._divYesElement.style.cursor="pointer",this._divNoElement=document.createElement("div"),this._divNoElement.classList.add("wwa-no-button"),this._divNoElement.style.background="url("+_+")",this._divNoElement.onclick=function(){l._isInputDisable||(e.setYesNoInput(w.NO),l.update())},this._ynWrapperElement.appendChild(this._divYesElement),this._ynWrapperElement.appendChild(this._divNoElement),l._isInputDisable=!1,e.userDevice.device){case S.SP:case S.VR:this._parentElement.classList.add("useScaleUp")}this.update()}setPosition(e,t,s,i){this._x=e,this._y=t,this._width=s,this._height=i,this.update()}setPositionByPlayerPosition(e,t,s,i,a){var r,n=i.getPartsCoord().substract(a.getPartsCoord()).y;r=e?os.BOTTOM:t?os.SCORE:s?os.CENTER:n>=Math.ceil(F.V_PARTS_NUM_IN_WINDOW/2)?os.TOP:os.BOTTOM,this.setPositionEasy(r)}setPositionEasy(e){var t=Math.floor(this._element.clientHeight/2);return e===os.CENTER?(this._y=F.MAP_WINDOW_HEIGHT/2-t,void this.update()):e===os.TOP?(this._y=Math.max(20,F.MAP_WINDOW_HEIGHT/4-t)+10,void this.update()):e===os.BOTTOM?(this._y=Math.min(F.MAP_WINDOW_HEIGHT-20-this._element.clientHeight,3*F.MAP_WINDOW_HEIGHT/4-t),void this.update()):e===os.SCORE?(this._y=80,void this.update()):void 0}setMessage(e){this._message=e,this.update()}clear(){this._message="",this.update()}setYesNoChoice(e){return this._isInputDisable=!1,this._isYesno=e,this.update(),this._isYesno}isYesNoChoice(){return this._isYesno}isSaveChoice(){return this._isSave}setItemMenuChoice(e){return this._isInputDisable=!1,this._isItemMenu=e,this.update(),this._isItemMenu}isItemMenuChoice(){return this._isItemMenu}setInputDisable(){this._isInputDisable=!0}isInputDisable(){return this._isInputDisable}show(){this._isVisible=!0,this.update()}hide(){this._isVisible=!1,this.update()}isVisible(){return this._isVisible}isWideChar(e){return null!==e.match(/^[^\x01-\x7E\xA1-\xDF]+$/)}createClassicTextElement(e){var t=document.createElement("span");let s=0,i="";for(let r=0;r<e.length||0!=s;r++)if(this.isWideChar(e.charAt(r))?s+=2:s+=1,i+=e.charAt(r),s+1>2*F.MSG_STR_WIDTH){"。"!==e.charAt(r+1)&&"、"!==e.charAt(r+1)||(i+=e.charAt(r+1),r++);var a=document.createElement("span");a.style.display="inline-block",a.style.width="100%",a.textContent=i,t.appendChild(a),s=0,i=""}return t}update(){var e=this._wwa.getYesNoImgCoord();this._isYesno?(this._wwa.getYesNoState()===w.YES?(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YESP_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NO_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"):this._wwa.getYesNoState()===w.NO?(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YES_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NOP_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"):(this._divYesElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_YES_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px",this._divNoElement.style.backgroundPosition="-"+(e.x+F.IMGRELPOS_YESNO_NO_X)*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"),this._ynWrapperElement.style.display="block"):this._ynWrapperElement.style.display="none",this._msgWrapperElement.textContent="";var t=this._message.split("\n");t.forEach(((e,s)=>{let i;this._wwa.isClassicMode()?i=this.createClassicTextElement(e):(i=document.createElement("span"),i.textContent=t[s]),this._msgWrapperElement.appendChild(i),this._msgWrapperElement.appendChild(document.createElement("br"))})),this._isVisible?(this._element.style.left=this._x+"px",this._element.style.top=this._y+"px"):(this._element.style.left="-999999px",this._element.style.top="-999999px"),this._isSave?this._saveElement.style.display="block":this._saveElement.style.display="none",this._element.style.width=this._width+"px",this._element.style.minHeight=this._height+"px"}setWWASave(e){this._wwaSave=e}createSaveDom(){var e,t,s,i,a,r,n,o,h,c,l;t=document.createElement("div"),c=(o=document.getElementById("disp-energy")).style.backgroundPosition,l=o.style.backgroundImage;for(var _=this._wwaSave.list.length,u=0;u<_;u++)e=this._wwaSave.list[u],(s=document.createElement("div")).classList.add("savedata"),s.setAttribute("save_id",u),s.addEventListener("click",(e=>{this.setSaveID(0|e.currentTarget.getAttribute("save_id")),this._save_close=!0,e.preventDefault()})),(i=document.createElement("div")).classList.add("ss"),s.appendChild(i),(a=document.createElement("div")).classList.add("wide-cell-row"),a.style.backgroundPosition=c,a.style.backgroundImage=l,s.appendChild(a),t.appendChild(s),e.flag&&(i.appendChild(e.cvs),(r=document.createElement("span")).textContent=e.getDateText(),e.isLastSaveData()&&(r.style.color=Y.DATE_LAST_SAVE_TEXT_COLOR),i.appendChild(r),(n=document.createElement("div")).classList.add("status-icon"),n.style.backgroundImage=l,n.style.backgroundPosition="-120px -80px",a.appendChild(n),(h=document.createElement("div")).classList.add("status-value-box"),h.textContent=e.getStatusEnergy(),a.appendChild(h));this._saveElement.textContent="",this._saveElement.appendChild(t),this.setSaveID(this._save_select_id),this._isSave=!0,this._save_counter=0,this._save_close=!1}deleteSaveDom(){this._saveElement.textContent="",this._isSave=!1}setSaveID(e){this._save_select_id=e;for(var t,s=document.querySelectorAll(".savedata"),i=s.length,a=0;a<i;a++)t=s[a],e===a?t.classList.add("select"):t.classList.remove("select")}save(e,t){return this._wwaSave.save(e,t,this._save_select_id)}load(){return this._wwaSave.load(this._save_select_id)}saveUpdate(){this._save_counter>0&&this._save_counter--}isSaveClose(){return this._save_close}cursor_wait(){this._save_counter=F.CONTROLL_WAIT_FRAME}saveControll(e){if(!(this._save_counter>0||this._isInputDisable)){switch(e){case m.DOWN:this._save_select_id-=2,this.cursor_wait();break;case m.UP:this._save_select_id+=2,this.cursor_wait();break;case m.LEFT:this._save_select_id--,this.cursor_wait();break;case m.RIGHT:this._save_select_id++,this.cursor_wait()}this.setSaveID((this._save_select_id+Y.QUICK_SAVE_MAX)%Y.QUICK_SAVE_MAX)}}get windowName(){return"MessageWindow"}}class ls{constructor(e,t,s){this.id=e,this.imgFileName=t,this.parent=s,this.elem=document.createElement("div"),this.elem.classList.add("est"),this.elem.setAttribute("id","wwa-est-"+e),this.imgElem=document.createElement("div"),this.imgElem.classList.add("est-img-wrapper"),this.imgElem.style.backgroundImage="url("+this.imgFileName.replace("(","\\(").replace(")","\\)")+")",this.statusElem=document.createElement("div"),this.statusElem.classList.add("est-status-wrapper"),this.energyElem=document.createElement("div"),this.energyElem.classList.add("est-energy"),this.energyDispElem=document.createElement("span"),this.energyDispElem.classList.add("est-energy-disp"),this.energyElem.appendChild(this.energyDispElem),this.statusElem.appendChild(this.energyElem),this.strengthElem=document.createElement("div"),this.strengthElem.classList.add("est-strength"),this.strengthDispElem=document.createElement("span"),this.strengthDispElem.classList.add("est-strength-disp"),this.strengthElem.appendChild(this.strengthDispElem),this.statusElem.appendChild(this.strengthElem),this.defenceElem=document.createElement("div"),this.defenceElem.classList.add("est-defence"),this.defenceDispElem=document.createElement("span"),this.defenceDispElem.classList.add("est-defence-disp"),this.defenceElem.appendChild(this.defenceDispElem),this.statusElem.appendChild(this.defenceElem),this.damageElem=document.createElement("div"),this.damageElem.classList.add("est-damage"),this.damageDispElem=document.createElement("span"),this.damageDispElem.classList.add("est-damage-disp"),this.damageElem.appendChild(this.damageDispElem),this.statusElem.appendChild(this.damageElem),this.elem.appendChild(this.imgElem),this.elem.appendChild(this.statusElem)}hide(){this.elem.style.display="none"}show(){this.elem.style.display="block"}setResult(e,t,s){this.imgElem.style.backgroundPosition="-"+e.x+"px -"+e.y+"px",this.energyDispElem.textContent="生命力 "+t.energy,this.strengthDispElem.textContent="攻撃力 "+t.strength,this.defenceDispElem.textContent="防御力 "+t.defence,s.cannotDamageMonster?this.damageDispElem.textContent="攻撃無効":s.noSettled?this.damageDispElem.textContent="勝負がつきません":s.isOverMaxTurn?this.damageDispElem.textContent="長期戦が予想されます":this.damageDispElem.textContent="予測ダメージ "+s.estimatedDamage}}class _s{constructor(e,t,s){var i;this._wwa=e,this._imgFileName=t,this._parent=s,this._element=document.createElement("div"),this._element.setAttribute("id","wwa-battle-estimate"),this._element.style.display="none",this._edes=[];for(var a=0;a<F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;a++)i=new ls(a,this._imgFileName,this._element),this._edes.push(i),this._element.appendChild(i.elem);this._element.addEventListener("click",(()=>{this._wwa.hideBattleEstimateWindow()})),this._parent.appendChild(this._element)}update(e,t,s,i,a){for(let r=0;r<F.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;r++){if(r>=t.length){this._edes[r].hide();continue}const n=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_X),o=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_Y),h=new l(n,o),_=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_ENERGY),u=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_STRENGTH),d=this._wwa.getObjectAttributeById(t[r].partsID,F.ATR_DEFENCE),p=new c(_,u,d,0),m=us(e,t[r],s,i,a);this._edes[r].setResult(h,p,m),this._edes[r].show()}}show(){this._element.style.display="block"}hide(){this._element.style.display="none"}}function us(e,t,s,i,a){const r=t.clone(),n=e.clone();let o=0,h=0,c=0;const l=e.energy;if(a&&n.strength<=r.status.defence&&n.defence>=r.status.strength)return{cannotDamageMonster:!0,estimatedDamage:0};for(;;){h++;const e=s(n,r);if(r.status.energy-=e.damage,0===e.damage?c++:c=0,r.status.energy<=0)return{estimatedDamage:o};if(c>F.FIGHT_DRAW_TURN||e.aborted)return{noSettled:(l<=0||n.energy>0)&&r.status.energy>0,estimatedDamage:o};if(h>2e4)return{isOverMaxTurn:!0,estimatedDamage:0};h++;const t=i(r,n),a=Math.max(t.damage,0);if(0===a?c++:c=0,o+=a,n.energy=Math.max(n.energy-a,0),c>F.FIGHT_DRAW_TURN||t.aborted)return{noSettled:(l<=0||n.energy>0)&&r.status.energy>0,estimatedDamage:o};if(h>2e4)return{isOverMaxTurn:!0,estimatedDamage:0}}}!function(e){e[e.SAVE=0]="SAVE",e[e.LOAD=1]="LOAD"}(hs||(hs={}));class ds{constructor(e,t,s){this._wwa=e,this._parent=t,this._isDisallowLoadOldSave=s,this.COPIED_MESSAGE_DISPLAY_MS=1e3,this._element=document.createElement("div"),this._element.setAttribute("id","wwa-password-window"),this._element.style.display="none",this._descriptionElement=document.createElement("div"),this._descriptionElement.classList.add("wwa-password-description"),this._passwordBoxElement=document.createElement("textarea"),this._passwordBoxElement.setAttribute("cols","50"),this._passwordBoxElement.setAttribute("rows","16"),this._passwordBoxElement.addEventListener("focus",(e=>{this._passwordBoxElement.select()})),this._buttonWrapperElement=document.createElement("div"),this._buttonWrapperElement.classList.add("wwa-password-submit"),this._okButtonElement=document.createElement("button"),this._okButtonElement.textContent="OK",this._okButtonElement.addEventListener("click",(()=>{this._wwa.hidePasswordWindow()})),this._cancelButtonElement=document.createElement("button"),this._cancelButtonElement.textContent="キャンセル",this._cancelButtonElement.addEventListener("click",(()=>{this._wwa.hidePasswordWindow(!0)})),this._copyButtonElement=document.createElement("button"),this._copyButtonElement.textContent="コピー",this._copyButtonElement.addEventListener("click",(async()=>{await navigator.clipboard.writeText(this.password),this._copyButtonElement.textContent="コピーしました",this._copyButtonElement.disabled=!0,setTimeout((()=>{this._copyButtonElement&&(this._copyButtonElement.textContent="コピー",this._copyButtonElement.disabled=!1)}),this.COPIED_MESSAGE_DISPLAY_MS)})),this._buttonWrapperElement.appendChild(this._okButtonElement),this._buttonWrapperElement.appendChild(this._cancelButtonElement),this._buttonWrapperElement.appendChild(this._copyButtonElement),this._mode=hs.LOAD,this._element.appendChild(this._descriptionElement),this._element.appendChild(this._passwordBoxElement),this._element.appendChild(this._buttonWrapperElement),this._parent.appendChild(this._element),this.update()}get mode(){return this._mode}set mode(e){this._mode=e,e===hs.LOAD&&(this.password="")}get password(){return this._passwordBoxElement.value}set password(e){this._passwordBoxElement.value=e}show(e){void 0!==e&&(this.mode=e),this._isVisible=!0,this.update()}hide(){this._isVisible=!1,this.update()}update(){var e="";if(this._mode===hs.LOAD){e=`下のボックスに前回のプレイで取得した\n復帰用パスワードを貼り付けてください。\nJava 版 WWA で取得したパスワードはご利用になれません。\n作成者が ${this._isDisallowLoadOldSave?"マップの内容":"ワールド名 か マップの暗証番号"} を変更した場合は\nそれ以前に取得したパスワードは使えなくなります。`;try{this._passwordBoxElement.removeAttribute("readonly")}catch(e){}this._cancelButtonElement.style.display="inline",this._copyButtonElement.style.display="none"}else e="下記テキストがデータ復帰用のパスワードになっています。\nコピーしてメモ帳などのテキストエディタに貼り付けて\n保存してください。",this._passwordBoxElement.setAttribute("readonly","readonly"),this._cancelButtonElement.style.display="none",this._copyButtonElement.style.display="inline";var t=e.split("\n");this._descriptionElement.textContent="";for(var s=0;s<t.length;s++){var i=document.createElement("span");i.textContent=t[s],this._descriptionElement.appendChild(i),this._descriptionElement.appendChild(document.createElement("br"))}this._isVisible?this._element.style.display="block":this._element.style.display="none"}}function ps(){return"ontouchstart"in window&&"ontouchend"in window&&"ontouchmove"in window}function ms(e,t,s){var i,a=document.createElement("style");a.type="text/css",a.setAttribute("id",F.WWA_STYLE_TAG_ID),(i="head",document.getElementsByTagName(i))[0].appendChild(a),e.innerHTML=function(e,t){return`\n <canvas id="wwa-map" class="wwa-canvas" width="440" height="440">\n このブラウザは、Canvas要素をサポートしていません。\n </canvas>\n <canvas id="wwa-map-sub" class="wwa-canvas" width="440" height="440"></canvas>\n <div id="wwa-sidebar">\n <div class="wide-cell-row" id="disp-energy"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="wide-cell-row" id="disp-strength"><div class="status-icon"></div><div class="status-value-box"> 0 </div></div>\n <div class="wide-cell-row" id="disp-defence"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="wide-cell-row" id="disp-gold"><div class="status-icon"></div><div class="status-value-box">0</div></div>\n <div class="item-cell" id="item0"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item1"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item2"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item3"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item4"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item5"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item6"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item7"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item8"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item9"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item10"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="item-cell" id="item11"><div class="item-click-border"></div><div class="item-disp"></div></div>\n <div class="wide-cell-row" id="cell-load">Password</div><div class="wide-button" id="button-load"></div>\n <div class="wide-cell-row" id="cell-save">Quick Save</div><div class="wide-button" id="button-save"></div>\n <div class="wide-cell-row" id="cell-restart">Restart Game</div><div class="wide-button" id="button-restart"></div>\n <div class="wide-cell-row" id="cell-gotowwa">Goto WWA</div><div class="wide-button" id="button-gotowwa"></div>\n </div>\n <div id="wwa-controller"></div>\n <div id="wwa-fader"></div>\n${e?'\n <div id="wwa-cover">\n <div id="unstable-version-warning"></div>\n <div id="version"></div>\n <div id="progress-message-container">開始しています...</div>\n <div id="progress-bar-bg"></div>\n <div id="progress-bar" class="progress-bar"></div>\n <div id="progress-bar-audio" class="progress-bar"></div>\n <div id="progress-disp">---</div>\n </div>\n ':`\n <div id="wwa-cover">\n <canvas id="progress-panel" width="${F.SCREEN_WIDTH}" height="${F.SCREEN_HEIGHT}"></canvas>\n </div>`}\n${t?'\n <div id="wwa-virtualpad-left">\n <button class="wwa-virtualpad__button" id="wwa-up-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-left-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-right-button"></button>\n <button class="wwa-virtualpad__button" id="wwa-down-button"></button>\n <div class="wwa-virtualpad__hole"></div>\n </div>\n <div id="wwa-virtualpad-right">\n <button class="wwa-virtualpad__button" id="wwa-slow-button">I</button>\n <button class="wwa-virtualpad__button" id="wwa-fast-button">P</button>\n <button class="wwa-virtualpad__button" id="wwa-enter-button">Y</button>\n <button class="wwa-virtualpad__button" id="wwa-esc-button">N</button>\n </div>':""}\n`}(null!==t,s),null!==t&&(me("wwa-cover").style.backgroundImage=`url(${t})`,me("wwa-cover").style.backgroundRepeat="no-repeat",me("wwa-cover").style.backgroundPosition="0 0")}class gs{update(){this.counter>0&&this.counter--}cursor_wait(){this.counter=F.CONTROLL_WAIT_FRAME}allClear(){this.col=0,this.row=0,this.counter=0}controll(e){if(!(this.counter>0))switch(e){case m.DOWN:this.row<gs.ROW_MAX-1&&(this.row++,this.openView(),this.cursor_wait());break;case m.UP:this.row>0&&(this.row--,this.openView(),this.cursor_wait());break;case m.LEFT:this.col>0&&(this.col--,this.openView(),this.cursor_wait());break;case m.RIGHT:this.col<gs.COL_MAX-1&&(this.col++,this.openView(),this.cursor_wait())}}ok(){this.close();var e=null;(e=Ee(gs.CLICK_DOM_QUERY_TABLE[this.row][this.col])).classList.contains("item-click-border")||this.allClear();var t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});return e.dispatchEvent(t)}ng(){this.close()}close(){var e,t,s=null;for(e=0;e<gs.COL_MAX;e++)for(t=0;t<gs.ROW_MAX;t++)(s=me(gs.DOM_ID_TABLE[t][e])).classList.contains("onpress")&&s.classList.remove("onpress")}openView(){this.close();me(gs.DOM_ID_TABLE[this.row][this.col]).classList.add("onpress")}init(){this.allClear(),this.openView()}constructor(){this.allClear()}}gs.ROW_MAX=8,gs.COL_MAX=3,gs.DOM_ID_TABLE=[["item0","item1","item2"],["item3","item4","item5"],["item6","item7","item8"],["item9","item10","item11"],["cell-load","cell-load","cell-load"],["cell-save","cell-save","cell-save"],["cell-restart","cell-restart","cell-restart"],["cell-gotowwa","cell-gotowwa","cell-gotowwa"]],gs.CLICK_DOM_QUERY_TABLE=[["#item0 .item-click-border","#item1 .item-click-border","#item2 .item-click-border"],["#item3 .item-click-border","#item4 .item-click-border","#item5 .item-click-border"],["#item6 .item-click-border","#item7 .item-click-border","#item8 .item-click-border"],["#item9 .item-click-border","#item10 .item-click-border","#item11 .item-click-border"],["#button-load","#button-load","#button-load"],["#button-save","#button-save","#button-save"],["#button-restart","#button-restart","#button-restart"],["#button-gotowwa"," #button-gotowwa","#button-gotowwa"]];var Es=s(705);function ws(e){return`^ /${231*e+8310}P+>A[]`}function fs(e){return(0,Es.MD5)(e).toString()}const{parse:ys,stringify:vs}=JSON,{keys:As}=Object,Ss=String,Ts="string",Is={},Cs="object",Ps=(e,t)=>t,Os=e=>e instanceof Ss?Ss(e):e,Ds=(e,t)=>typeof t===Ts?new Ss(t):t,Ns=(e,t,s,i)=>{const a=[];for(let r=As(s),{length:n}=r,o=0;o<n;o++){const n=r[o],h=s[n];if(h instanceof Ss){const r=e[h];typeof r!==Cs||t.has(r)?s[n]=i.call(s,n,r):(t.add(r),s[n]=Is,a.push({k:n,a:[e,t,r,i]}))}else s[n]!==Is&&(s[n]=i.call(s,n,h))}for(let{length:e}=a,t=0;t<e;t++){const{k:e,a:r}=a[t];s[e]=i.call(s,e,Ns.apply(null,r))}return s},bs=(e,t,s)=>{const i=Ss(t.push(s)-1);return e.set(s,i),i},Ms=(e,t,s)=>{const i=t&&typeof t===Cs?(e,s)=>""===e||-1<t.indexOf(e)?s:void 0:t||Ps,a=new Map,r=[],n=[];let o=+bs(a,r,i.call({"":e},"",e)),h=!o;for(;o<r.length;)h=!0,n[o]=vs(r[o++],c,s);return"["+n.join(",")+"]";function c(e,t){if(h)return h=!h,t;const s=i.call(this,e,t);switch(typeof s){case Cs:if(null===s)return s;case Ts:return a.get(s)||bs(a,r,s)}return s}},xs=e=>ys(Ms(e)),Ls=e=>((e,t)=>{const s=ys(e,Ds).map(Os),i=s[0],a=t||Ps,r=typeof i===Cs&&i?Ns(s,new Set,i,a):i;return a.call({"":r},"",r)})(vs(e));function Rs(e,t=new WeakMap){if("symbol"==typeof e)throw new TypeError("symbol は変換対象外です");if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);if(Array.isArray(e)){const s=[];t.set(e,s);for(const i of e)s.push(Rs(i,t));return s}const s=new Map;t.set(e,s);for(const[i,a]of Object.entries(e)){if("string"!=typeof i)throw new TypeError("文字列以外のキーは変換できません");s.set(i,Rs(a,t))}return s}const Bs=Object.freeze({MAP:"map",MAP_OBJECT:"mapObject",SYSTEM_MESSAGE:"systemMessage",USER_VAR:"userVar",USER_NAMED_VAR:"userNamedVar"}),Us=Object.freeze({mapAttribute:!0,objectAttribute:!0,message:!0});class ks{static compress(e,t={}){var s,i,a=Object.create(null);for(s in e)if(!Us[s]){switch(typeof(i=e[s])){case"number":case"string":case"boolean":if(this._restartData[s]===i&&"worldName"!==s)continue;break;case"object":if(null===i){if(this._restartData[s]===i)continue}else if(void 0===(i=this.compressObject(s,i,this._restartData[s],t)))continue;break;case"undefined":break;case"function":continue}a[s]=i}return a}static compressObject(t,s,i,a={}){var r,n,o,h;switch(t){case Bs.MAP:case Bs.MAP_OBJECT:var c,l,_,u,d,p,m,g,E,w,f,y,v,A;for(d in r=Object.create(null),E=Object.create(null),g=Object.create(null),s)for(u in n=s[d],o=i[d],h=Object.create(null),l=-1,n)(m=n[u])!==o[u]&&(h[u]=m,void 0===E[m]&&(E[m]=Object.create(null)),void 0===(f=E[m])[d]&&(f[d]=[]),(v=f[d]).push(Number(u)));for(y in E)for(d in f=E[y],void 0===g[y]&&(g[y]=Object.create(null)),w=g[y],void 0===r[y]&&(r[y]=[]),l=-1,f)1===(v=f[d]).length?(void 0===w[p=v[0]]&&(w[p]=[]),(A=w[p]).push(Number(d))):(_=(c=Number(d))-l-1,l=c,r[y].push(this.getCompressArray(v),_));for(y in g)for(u in m=Number(y),l=-1,w=g[y])A=w[u],_=(c=Number(u))-l-1,l=c,1===A.length?r[y].push(_,A[0]):r[y].push(_,this.getCompressArray(A));var S=[];for(y in l=-1,r)_=(c=Number(y))-l-1,l=c,S.push(_,r[y]);return this._usingByteFlag&&JSON.stringify(S).length>=this._mapByteLength?this.compressMapAllObject(s,i,this._firstRandomMapObjectUtf8Table[t]):S;case Bs.SYSTEM_MESSAGE:var T;for(t in r=Object.create(null),s)T=s[t],i[t]!==T&&(r[t]=T);break;case Bs.USER_VAR:return this.compressUserVars(s);case Bs.USER_NAMED_VAR:if(!(s instanceof Map))throw new TypeError("USER_NAMED_VAR が正しい形式でないためセーブできません");return{version:2,data:xs(e(s))};default:return s}if(0!==Object.keys(r).length)return r}static compressUserVars(e){return e.map(((e,t)=>[t,e])).filter((([e,t])=>0!==t))}static compressMapAllObject(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f=this._restartData.mapWidth,y=new Uint8Array(this._mapByteLength),v=-1;for(r=0,n=0,h=0,c=0,E=0,d=[],g=Object.create(null),_=[],u=[],a=0;a<f;a++)for(i=0;i<f;i++)(l=e[a][i])!==t[a][i]&&(-1===v&&(v=n),y[n]=y[n]|1<<r,h=n,void 0===g[l]&&(g[l]=new Vs(l,E++)),g[l].count++),8===++r&&(r=0,n++);for(o in g)d[g[o].index]=g[o];for(p in d.sort(this.idSort),m=Object.create(null),d)m[l=d[p].id]=Number(p),_[p]=l;for(a=0;a<f;a++)for(i=0;i<f;i++)(l=e[a][i])!==t[a][i]&&(u[c++]=m[l]);if(s){for(w=y.length,v=-1,h=0,n=0;n<w;n++)y[n]=y[n]&~s[n],0!==y[n]&&(-1===v&&(v=n),h=n);-1===v&&(v=0,h=0)}return[v,y.subarray(v,h+1),_,this.indexListCompress(u,_.length)]}static indexListCompress(e,t){var s,i,a,r,n,o,h=[];for(r=e.length,i=0,s=0;s<r;s++){for(n=e[s],o=0,a=s+1;a<r&&n===e[a];a++)o++,s=a;switch(o){case 0:h[i++]=n;break;case 1:h[i++]=n,h[i++]=n;break;default:h[i++]=n,h[i++]=t+o}}return h}static idSort(e,t){return t.count-e.count}static getCompressArray(e){var t,s,i,a,r,n,o,h,c=[];for(t=-1,r=e.length,n=0,a=0;a<r;a++){for(s=(i=e[a])-t,o=0,h=a;h<r-1&&e[h]+1===e[h+1];)h++,o++;o<this.MIN_LOOP_COUNT?c[n++]=s:(a=h,i+=o,c[n++]=0,c[n++]=s,c[n++]=o-this.MIN_LOOP_COUNT),t=i}return c}static getDecompressArray(e){var t,s,i,a,r,n,o,h=[];for(t=-1,r=e.length,a=0,o=0;a<r;a++)if(0===(s=e[a])){for(n=(i=t+(s=e[++a]))+e[++a]+this.MIN_LOOP_COUNT;i<=n;i++)h[o++]=i;t=n}else i=t+s,h[o++]=i,t=i;return h}static decompress(e){var t,s,i;for(s in t=structuredClone(this._restartData),e){switch(typeof(i=e[s])){case"number":case"string":case"boolean":case"undefined":break;case"object":null!==i&&(i=this.decompressObject(s,i,t[s]));break;case"function":continue}t[s]=i}return[t,{isWorldNameEmpty:void 0===e.worldName}]}static decompressObject(e,t,s,i={}){var a;switch(e){case Bs.MAP:case Bs.MAP_OBJECT:var r,n,o,h,c,l,_,u;a=Object.create(null),n=-1;var d,p,m=t;if(4===(u=m.length)&&"number"==typeof m[0]&&(m[1]instanceof Uint8Array||m[1]instanceof Array)&&m[2]instanceof Array&&m[3]instanceof Array)return this.decompressAllMapObject(m,s,this._firstRandomMapObjectUtf8Table[e]),s;for(_=0;_<u;_+=2)n=r=n+Number(m[_])+1,c=r,a[r]=m[_+1];for(l in a){for(c=Number(l),u=(m=a[l]).length,d=[],p=[],_=0;_<u;_+=2){var g=m[_],E=m[_+1];g instanceof Array&&(g=this.getDecompressArray(g)),E instanceof Array&&(E=this.getDecompressArray(E)),"object"==typeof g?d.push({x:g,y:E}):p.push({x:g,y:E})}var w;for(w in n=-1,d)if(n=r=n+Number(d[w].y)+1,g=d[w].x,h=String(r),g instanceof Array)for(u=(m=g).length,_=0;_<u;_++)o=String(m[_]),s[h][o]=c;else o=String(g),s[h][o]=c;for(w in n=-1,p)if(n=r=n+Number(p[w].x)+1,E=p[w].y,o=String(r),E instanceof Array)for(u=(m=E).length,_=0;_<u;_++)s[h=String(m[_])][o]=c;else s[h=String(E)][o]=c}return s;case Bs.USER_VAR:return this.decompressUserVars(t);case Bs.USER_NAMED_VAR:if(!t)return t;if(Array.isArray(t))return new Map(structuredClone(t).map((([e,t])=>[e,Rs(t)])));if(2!==t.version||"object"!=typeof t.data)throw new TypeError("セーブデータが壊れています");return Rs(Ls(t.data));case Bs.SYSTEM_MESSAGE:default:if(s);else{if(!t)return;s=s instanceof Array?[]:Object.create(null)}for(e in t)s[e]=t[e];return s}}static decompressUserVars(e){return e.reduce(((e,[t,s])=>(e[t]=s,e)),this.generateEmptyUserVars())}static generateEmptyUserVars(){const e=new Array(F.USER_VAR_NUM);for(let t=0;t<F.USER_VAR_NUM;t++)e[t]=0;return e}static decompressAllMapObject(e,t,s){var i,a,r,n,o,h,c,l,_,u,d,p=this._restartData.mapWidth,m=new Uint8Array(this._mapByteLength);d=e[0],n=e[2],a=e[3];var g=e[1];if(m.set(g,d),s)for(E=m.length,_=0;_<E;_++)m[_]=m[_]|s[_];r=[];var E,w,f,y,v,A,S=n.length;for(E=a.length,w=0,f=0;w<E;w++){if((o=a[w])>=S)for(y=o-S,v=0;v<y;v++)r[f++]=A;else r[f++]=o;A=o}for(l=0,_=0,u=0,h=0,E=m.length,_=0;_<E;_++)for(l=0;l<8;l++){if(m[_]&1<<l){if(void 0===(o=r[h++]))return!1;i=n[o],c=u%p,t[u/p|0][c]=i}u++}return!0}static setRestartData(e,t){this._restartData=e,this._mapByteLength=Math.ceil(e.mapWidth*e.mapWidth/8),this._firstRandomMapObjectUtf8Table[Bs.MAP_OBJECT]=this.getChangedUint8Array(t[Bs.MAP_OBJECT],e[Bs.MAP_OBJECT])}static getChangedUint8Array(e,t){var s,i,a,r,n=this._restartData.mapWidth,o=new Uint8Array(this._mapByteLength),h=-1;for(a=0,r=0,i=0;i<n;i++)for(s=0;s<n;s++)e[i][s]!==t[i][s]&&(-1===h&&(h=r),o[r]=o[r]|1<<a),8===++a&&(a=0,r++);return o}static getStartWWAData(e){if(!e)return this._restartData;try{var t=JSON.parse(e)}catch(e){return this._restartData}var s;if(t)try{if([s]=this.decompress(t),s)return s}catch(e){}return this._restartData}static usingByte(e){this._usingByteFlag=e}}ks._usingByteFlag=!1,ks.MIN_LOOP_COUNT=3,ks._restartData=void 0,ks._mapByteLength=0,ks._firstRandomMapObjectUtf8Table=new class{};var Ws=ks;class Vs{constructor(e,t){this.id=0,this.index=0,this.count=0,this.id=e,this.index=t}}class Fs{constructor(e,t){this._id=0,this.flag=!1,this.date=void 0,this.cvs=void 0,this.ctx=void 0,this.quickSaveData=void 0,this._id=e,this._parent=t,this.cvs=document.createElement("canvas"),this.cvs.width=Y.QUICK_SAVE_THUMNAIL_WIDTH,this.cvs.height=Y.QUICK_SAVE_THUMNAIL_HEIGHT,this.ctx=this.cvs.getContext("2d",{alpha:!1})}showQickLoad(){me("cell-load").textContent=G.QUICK_LOAD}save(e,t){return this._statusEnergy=t.statusEnergy,this.ctx.clearRect(0,0,this.cvs.width,this.cvs.height),this.ctx.drawImage(e,0,0,e.width,e.height,0,0,this.cvs.width,this.cvs.height),this.quickSaveData=t,this.flag=!0,this.date=new Date,this.showQickLoad(),!0}getStatusEnergy(){return this.flag?this._statusEnergy:-1}load(){return this.quickSaveData}saveDataSet(e,t,s){try{this.quickSaveData=t,this._statusEnergy=t.statusEnergy,this.date=s,this.flag=!0;var i=document.createElement("img");i.src=e,i.addEventListener("load",(()=>{this.flag=!0,this.ctx.drawImage(i,0,0,i.width,i.height,0,0,this.cvs.width,this.cvs.height)})),this.showQickLoad()}catch(e){}}getDateText(){let e,t,s,i,a,r;return this.date?(e=this.date.getFullYear(),t=this.date.getMonth()+1,s=this.date.getDate(),i=this.date.getHours(),a=this.date.getMinutes(),r=this.date.getSeconds(),e=("000"+e).slice(-4),t=("0"+t).slice(-2),s=("0"+s).slice(-2),i=("0"+i).slice(-2),a=("0"+a).slice(-2),r=("0"+r).slice(-2),e+"/"+t+"/"+s+" "+i+":"+a+":"+r):""}isLastSaveData(){return this===this._parent.getLastSaveData()}}class Ys extends Fs{save(e,t){var s=super.save.apply(this,arguments);return this._parent.dbUpdateSaveData(this._id,e,t,this.date),s}}class Gs extends Array{constructor(){super(),Object.setPrototypeOf(this,Object.create(Gs.prototype))}hasSaveData(){for(var e=0;e<Y.QUICK_SAVE_MAX;e++)if(this[e].flag)return!0;return!1}getLastSaveData(){for(var e,t,s=0;s<Y.QUICK_SAVE_MAX;s++)(t=this[s]).flag&&(e?t.date&&e.date&&t.date.getTime()>e.date.getTime()&&(e=t):e=t);return e}}const Hs=e=>{return"boolean"!=typeof(t=e).isGameOverDisabled?t:!0===t.isGameOverDisabled?{...t,isGameOverDisabled:void 0,gameOverPolicy:"never"}:!1===t.isGameOverDisabled?{...t,isGameOverDisabled:void 0,gameOverPolicy:"default"}:t;var t};class Ks extends Gs{constructor(e,t,s=Ks.prototype){super(),this.IDBTransaction={READ_ONLY:"readonly",READ_WRITE:"readwrite",VERSION_CHANGE:"versionchangetransaction"},this.keyPath=["id","url"],Object.setPrototypeOf(this,Object.create(s));for(var i=0;i<Y.QUICK_SAVE_MAX;i++)this[i]=new Ys(i,this);this.onCheckLoadingSaveData=e,this.onCompleteLoadingSaveData=t,this.createDataBase(),this.selectSaveData()}indexDBOpen(){return indexedDB.open(Y.INDEXEDDB_DB_NAME,201205201)}createDataBase(){try{var e=this.indexDBOpen();e.onupgradeneeded=t=>{var s=e.result,i={keyPath:this.keyPath};s.objectStoreNames.contains(Y.INDEXEDDB_TABLE_NAME)||s.createObjectStore(Y.INDEXEDDB_TABLE_NAME,i).createIndex("url","url",{unique:!1})},e.onsuccess=Ks.doNotAnything,e.onerror=Ks.doNotAnything,e.onblocked=Ks.doNotAnything}catch(e){}}getObjectStore(e){const t=e;try{var s=t.transaction(Y.INDEXEDDB_TABLE_NAME,this.IDBTransaction.READ_WRITE).objectStore(Y.INDEXEDDB_TABLE_NAME)}catch(e){return}return s}makeSaveDataItem(e,t,s,i){return{url:location.href,id:e,hash:qs.checkOriginalMapString,image:t.toDataURL(),data:s,date:i,worldName:qs.worldName,mapDataRevisionKey:qs.mapDataRevisionKey}}getSaveDataResult(e,t){const s=e.index("url"),i=IDBKeyRange.only(location.href),a=s.getAll(i);a.onsuccess=()=>{t(a.result)}}dbUpdateSaveData(e,t,s,i){const a=this.indexDBOpen();a.onupgradeneeded=Ks.doNotAnything,a.onsuccess=()=>{const r=this.getObjectStore(a.result),n=Ws.compress(s),o=this.makeSaveDataItem(e,t,n,i);this.selectDatas[e]=o;const h=r.put(o);h.onsuccess=Ks.doNotAnything,h.onerror=Ks.doNotAnything},a.onerror=Ks.doNotAnything,a.onblocked=Ks.doNotAnything}dbDeleteSaveData(e){const t=this.indexDBOpen();t.onupgradeneeded=Ks.doNotAnything,t.onsuccess=()=>{const s=this.getObjectStore(t.result);e.forEach((e=>{s.delete([e,location.href])}))},t.onerror=Ks.doNotAnything,t.onblocked=Ks.doNotAnything}selectSaveData(){const e=this.indexDBOpen();e.onupgradeneeded=Ks.doNotAnything,e.onsuccess=()=>{const t=this.getObjectStore(e.result);this.selectDatas=[];this.getSaveDataResult(t,(e=>{var t,s,i;let a=[];for(s=e.length,t=0;t<s;t++){var r=e[t];try{i={id:r.id,hash:r.hash,data:r.data,date:r.date,image:r.image,worldName:r.worldName,mapDataRevisionKey:r.mapDataRevisionKey}}catch(e){continue}const s=this.onCheckLoadingSaveData(i.worldName,i.hash,i.mapDataRevisionKey);if(null!==s){a.push({id:i.id,cause:s});continue}if(!this[i.id])continue;const n=Hs(Ws.decompress(i.data)[0]);this[i.id].saveDataSet(i.image,n,i.date)}a.length>0&&this.dbDeleteSaveData(a.map((e=>e.id)));const n=a.map((e=>e.cause)).filter(((e,t,s)=>s.indexOf(e)===t));this.onCompleteLoadingSaveData(n)}))},e.onerror=Ks.doNotAnything,e.onblocked=Ks.doNotAnything}}Ks.doNotAnything=()=>{};var js,Xs=Ks;class $s extends Fs{}class Js extends Gs{constructor(){super(),this._saveNo=0,this._lastAutoSaveMove=0,this._autoInterval=Y.SAVE_INTERVAL_MOVE,Object.setPrototypeOf(this,Object.create(Js.prototype));for(var e=0;e<Y.QUICK_SAVE_MAX;e++)this[e]=new $s(e,this);this._saveNo=0,this._lastAutoSaveMove=0}resumeStart(){this._lastAutoSaveMove=-1}setPlayer(e){this._lastAutoSaveMove=e.getMoveCount()}isAutoSaveFrame(e){if(0===this._autoInterval)return!1;var t=e.getMoveCount();return!(this._lastAutoSaveMove>=t)&&(t%this._autoInterval==0&&(this._lastAutoSaveMove=t,!0))}autoSave(e,t){this[this._saveNo].save(e,t),this._saveNo++,this._saveNo=this._saveNo%Y.QUICK_SAVE_MAX}setAutoSaveInterval(e){e<0?console.warn(`オートセーブの歩数 (${e}) に負の値が設定されています。`):this._autoInterval=0|e}}function Zs(e,t){return(0,Es.MD5)(e+t).toString()}class qs{constructor(e,t,s,i,a){qs.checkOriginalMapString=e.checkOriginalMapString,qs.worldName=t,qs.mapDataRevisionKey=Zs(t,s),this._wwaDBSaveList=new Xs(i,a),this._wwaLogSaveList=new Js,this.selectDBSaveDataList()}resumeStart(){this._wwaLogSaveList.resumeStart()}isAutoSaveFrame(e){return this._wwaLogSaveList.isAutoSaveFrame(e)}autoSave(e,t){this._wwaLogSaveList.autoSave(e,t)}selectDBSaveDataList(){this.list=this._wwaDBSaveList}selectLogSaveDataList(){this.list=this._wwaLogSaveList}save(e,t,s){var i=this.list[s];return!!i&&i.save(e,t)}load(e){var t=this.list[e];return t?t.load():null}hasSaveData(){return this.list.hasSaveData()}setAutoSaveInterval(e){return this._wwaLogSaveList.setAutoSaveInterval(e)}getFirstSaveChoiceCallInfo(e){return e?I.CALL_BY_PASSWORD_LOAD:this._wwaDBSaveList.hasSaveData()?I.CALL_BY_QUICK_LOAD:this._wwaLogSaveList.hasSaveData()?I.CALL_BY_LOG_QUICK_LOAD:I.CALL_BY_PASSWORD_LOAD}getSecondSaveChoiceCallInfo(e){return this.list===this._wwaDBSaveList&&this._wwaLogSaveList.hasSaveData()?I.CALL_BY_LOG_QUICK_LOAD:e?I.CALL_BY_PASSWORD_LOAD:I.NONE}gameStart(e,t){this._wwaLogSaveList.setPlayer(t),this.quickSaveButtonUpdate(e)}quickSaveButtonUpdate(e){e.disableSaveFlag?me("cell-save").textContent=G.EMPTY_SAVE:me("cell-save").textContent=G.QUICK_SAVE}}!function(e){e.UNMATCHED_WORLD_NAME="UNMATCHED_WORLD_NAME",e.UNMATCHED_WORLD_PASS_NUMBER="UNMATCHED_WORLD_PASS_NUMBER",e.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA="DISALLOW_OLD_REVISION_WORLD_SAVE_DATA"}(js||(js={}));class zs{constructor(e,t,s,i){this.id=e,this.fileName=t,this.audioContext=s,this.audioGain=i,this.disposeBufferSource=e=>{try{e.stop(),e.disconnect(this.audioGain),e.buffer=null}catch(e){}e.onended=null},this.audioContext=s,this.audioGain=i,this.audioBuffer=null,this.bufferSources=[],this.isLoaded=!1,this.delayBgmTimeoutId=null,this.load()}async fetchSoundFile(){try{return await fetch(this.fileName)}catch(e){return void console.warn(`サウンド ${this.id} 番の音声ファイルの取得失敗 (fetch)`)}}async getArrayBuffer(e){try{return await e.arrayBuffer()}catch(e){return void console.warn(`サウンド ${this.id} 番の音声ファイルの取得失敗 (arrayBuffer)`)}}async load(e=0){if(e>=10)return console.log(`サウンド ${this.id} 番の音声ファイルの取得失敗 (最大リトライ回数超過)`),void(this.isExceededMaxRetryCount=!0);const t=await this.fetchSoundFile();if(!t)return void this.retry(e);if(0!==t.status&&200!==t.status)return console.warn(`サウンド ${this.id} 番の音声ファイルが見つかりません! HTTPエラー番号: ${t.status}`),void this.cancelLoad();const s=await this.getArrayBuffer(t);s?this.audioContext.decodeAudioData(s,(t=>{if(0===t.length)return console.log(`サウンド ${this.id} 番の音声ファイルのバッファサイズが 0 です `),void this.retry(e);this.setData(t)})):this.retry(e)}retry(e){window.setTimeout((async()=>{await this.load(e+1)}),100)}setData(e){this.audioBuffer=e,this.isLoaded=!0}cancelLoad(){this.audioBuffer=null,this.isLoaded=!0}play(e=0){const t=this.audioContext.createBufferSource();this.bufferSources.push(t),t.buffer=this.audioBuffer,this.isBgm()&&(t.loop=!0),t.connect(this.audioGain);let s=t.duration;(!isFinite(s)||s<0||"number"!=typeof s)&&(s=0),t.onended=()=>{const e=this.bufferSources.indexOf(t);-1!==e&&this.bufferSources.splice(e,1),this.disposeBufferSource(t)},this.delayBgmTimeoutId=window.setTimeout((()=>{this.delayBgmTimeoutId=null,t.start()}),e),this.audioGain.connect(this.audioContext.destination)}pause(){null!==this.delayBgmTimeoutId&&(window.clearTimeout(this.delayBgmTimeoutId),this.delayBgmTimeoutId=null),this.bufferSources.forEach(this.disposeBufferSource),this.bufferSources.length=0}isBgm(){return this.id>=B.BGM_LB}hasData(){return null!==this.audioBuffer}isPlaying(){return this.hasData()||null!==this.delayBgmTimeoutId}isLoading(){return!this.isLoaded}isError(){return this.isExceededMaxRetryCount||this.isLoaded&&null===this.audioBuffer}}const Qs=(e,t)=>{const s=new Array(e);for(let e=0;e<s.length;e++)s[e]=new Array(t);return s};var ei;function ti(e,t){const s=function(e){return e[ei.CHECK]+256*e[ei.CHECK+1]}(e),i=function(e,t){let s=0;if(e[ei.VERSION]>=29){for(let a=2;a<t;a++)s+=(i=e[a],((i%=256)>=128?i-256:i)*(a%8+1));s=s%65536&65535}var i;return s}(e,t);if(s!==i)throw new Error("マップデータが壊れているようです。\n チェックサムの値は"+s+"ですが、実際の和は"+i+"でした。")}!function(e){e[e.CHECK=0]="CHECK",e[e.VERSION=2]="VERSION",e[e.OLD_MAP_COUNT=3]="OLD_MAP_COUNT",e[e.OLD_OBJ_COUNT=4]="OLD_OBJ_COUNT",e[e.OLD_PLAYER_X=5]="OLD_PLAYER_X",e[e.OLD_PLAYER_Y=6]="OLD_PLAYER_Y",e[e.STATUS_ENERGY=10]="STATUS_ENERGY",e[e.STATUS_STRENGTH=12]="STATUS_STRENGTH",e[e.STATUS_DEFENCE=14]="STATUS_DEFENCE",e[e.STATUS_GOLD=16]="STATUS_GOLD",e[e.OLD_GAMEOVER_X=18]="OLD_GAMEOVER_X",e[e.OLD_GAMEOVER_Y=19]="OLD_GAMEOVER_Y",e[e.OLD_ITEMBOX_TOP=20]="OLD_ITEMBOX_TOP",e[e.STATUS_ENERGY_MAX=32]="STATUS_ENERGY_MAX",e[e.MAP_COUNT=34]="MAP_COUNT",e[e.OBJ_COUNT=36]="OBJ_COUNT",e[e.PLAYER_X=38]="PLAYER_X",e[e.PLAYER_Y=40]="PLAYER_Y",e[e.GAMEOVER_X=42]="GAMEOVER_X",e[e.GAMEOVER_Y=44]="GAMEOVER_Y",e[e.MAP_SIZE=46]="MAP_SIZE",e[e.MESSAGE_NUM=48]="MESSAGE_NUM",e[e.ITEMBOX_TOP=60]="ITEMBOX_TOP",e[e.MAPDATA_TOP=90]="MAPDATA_TOP",e[e.OLD_MAPDATA_TOP=100]="OLD_MAPDATA_TOP"}(ei||(ei={}));class si{constructor(e,t,s){this.byteMapData=e,this.eventEmitter=s,ti(e,t),this.wwaData={version:void 0,gameoverX:void 0,gameoverY:void 0,playerX:void 0,playerY:void 0,mapPartsMax:void 0,objPartsMax:void 0,isOldMap:void 0,isOldMove:void 0,statusEnergyMax:void 0,statusEnergy:void 0,statusStrength:void 0,statusDefence:void 0,statusGold:void 0,itemBox:void 0,mapWidth:void 0,messageNum:void 0,map:void 0,mapObject:void 0,mapCompressed:void 0,mapObjectCompressed:void 0,mapAttribute:void 0,objectAttribute:void 0,worldPassword:void 0,message:void 0,worldName:void 0,worldPassNumber:void 0,charCGName:void 0,mapCGName:void 0,systemMessage:void 0,moves:void 0,yesnoImgPosX:void 0,yesnoImgPosY:void 0,playerImgPosX:void 0,playerImgPosY:void 0,clickableItemSignImgPosX:void 0,clickableItemSignImgPosY:void 0,disableSaveFlag:void 0,compatibleForOldMapFlag:void 0,objectNoCollapseDefaultFlag:void 0,delPlayerFlag:void 0,bgm:void 0,effectCoords:void 0,effectWaits:void 0,imgStatusEnergyX:void 0,imgStatusEnergyY:void 0,imgStatusStrengthX:void 0,imgStatusStrengthY:void 0,imgStatusDefenceX:void 0,imgStatusDefenceY:void 0,imgStatusGoldX:void 0,imgStatusGoldY:void 0,imgWideCellX:void 0,imgWideCellY:void 0,imgItemboxX:void 0,imgItemboxY:void 0,imgFrameX:void 0,imgFrameY:void 0,imgBattleEffectX:void 0,imgBattleEffectY:void 0,imgClickX:void 0,imgClickY:void 0,frameColorR:void 0,frameColorG:void 0,frameColorB:void 0,frameOutColorR:void 0,frameOutColorG:void 0,frameOutColorB:void 0,fontColorR:void 0,fontColorG:void 0,fontColorB:void 0,statusColorR:void 0,statusColorG:void 0,statusColorB:void 0,checkOriginalMapString:void 0,checkString:void 0,isItemEffectEnabled:void 0,frameCount:void 0,gamePadButtonItemTable:void 0,userVar:void 0,userNamedVar:void 0,permitChangeGameSpeed:void 0,gameSpeedIndex:void 0,playTime:void 0,isVisibleStatusEnergy:void 0,isVisibleStatusStrength:void 0,isVisibleStatusDefence:void 0,isVisibleStatusGold:void 0,isGameOverDisabled:void 0,gameOverPolicy:"default",bgmDelayDurationMs:void 0,customSystemMessages:{},pictureRegistry:[]}}extractAllData(){var e,t;return this.wwaData.version=this.byteMapData[ei.VERSION],this._extractInitialParameters(),this.wwaData.version>=29?this.currentPosition=ei.MAPDATA_TOP:this.currentPosition=ei.OLD_MAPDATA_TOP,this.wwaData.map=this._getFieldDataFromBits(Pt.MAP,this.wwaData.mapPartsMax).concat(),this.wwaData.mapObject=this._getFieldDataFromBits(Pt.OBJECT,this.wwaData.objPartsMax).concat(),e=this.wwaData.version>29?Ct.MAP_ATR_MAX:Ct.OLD_MAP_ATR_MAX,t=this.wwaData.version>29?Ct.OBJ_ATR_MAX:Ct.OLD_OBJ_ATR_MAX,this.wwaData.mapAttribute=this._getPartsDataFromBits(Pt.MAP,this.wwaData.mapPartsMax,e).concat(),this.wwaData.objectAttribute=this._getPartsDataFromBits(Pt.OBJECT,this.wwaData.objPartsMax,t).concat(),this.wwaData.version<=29&&(this._convertAttributeV2toV3(Pt.MAP),this._convertAttributeV2toV3(Pt.OBJECT)),this._replaceAllRandomObjects(),this.wwaData}_convertAttributeV2toV3(e){var t,s,i;if(e==Pt.MAP)t=this.wwaData.mapPartsMax,s=this.wwaData.mapAttribute,i=Ct.MAP_LOCALGATE;else{if(e!=Pt.OBJECT)throw new Error("謎のパーツ種別が指定されました");t=this.wwaData.objPartsMax,s=this.wwaData.objectAttribute,i=Ct.OBJECT_LOCALGATE}for(var a=0;a<t;a++){for(var r=9;r>=0;r--){var n=255&s[a][20+2*r],o=s[a][20+2*r]>>8,h=255&s[a][20+2*r+1],c=s[a][20+2*r+1]>>8;250===h?h=9e3:h>100&&(h+=9840),250===c?c=9e3:c>100&&(c+=9840),s[a][20+4*r]=n,s[a][20+4*r+3]=o,s[a][20+4*r+1]=h,s[a][20+4*r+2]=c}s[a][Ct.ATR_TYPE]===i&&(s[a][Ct.ATR_JUMP_X]>100&&(s[a][Ct.ATR_JUMP_X]+=9840),s[a][Ct.ATR_JUMP_Y]>100&&(s[a][Ct.ATR_JUMP_Y]+=9840))}}_get1ByteNumber(e){return this.byteMapData[e]}_get2BytesNumber(e){return this.byteMapData[e]+256*this.byteMapData[e+1]}_extractInitialParameters(){this.wwaData.version>29?(this.wwaData.gameoverX=this._get2BytesNumber(ei.GAMEOVER_X),this.wwaData.gameoverY=this._get2BytesNumber(ei.GAMEOVER_Y),this.wwaData.playerX=this._get2BytesNumber(ei.PLAYER_X),this.wwaData.playerY=this._get2BytesNumber(ei.PLAYER_Y),this.wwaData.mapPartsMax=this._get2BytesNumber(ei.MAP_COUNT),this.wwaData.objPartsMax=this._get2BytesNumber(ei.OBJ_COUNT),this.wwaData.isOldMap=!1):(this.wwaData.gameoverX=this._get1ByteNumber(ei.OLD_GAMEOVER_X),this.wwaData.gameoverY=this._get1ByteNumber(ei.OLD_GAMEOVER_Y),this.wwaData.playerX=this._get1ByteNumber(ei.OLD_PLAYER_X),this.wwaData.playerY=this._get1ByteNumber(ei.OLD_PLAYER_Y),this.wwaData.mapPartsMax=this._get1ByteNumber(ei.OLD_MAP_COUNT),this.wwaData.objPartsMax=this._get1ByteNumber(ei.OLD_OBJ_COUNT),this.wwaData.isOldMap=!0),this.wwaData.statusEnergyMax=this._get2BytesNumber(ei.STATUS_ENERGY_MAX),this.wwaData.statusEnergy=this._get2BytesNumber(ei.STATUS_ENERGY),this.wwaData.statusStrength=this._get2BytesNumber(ei.STATUS_STRENGTH),this.wwaData.statusDefence=this._get2BytesNumber(ei.STATUS_DEFENCE),this.wwaData.statusGold=this._get2BytesNumber(ei.STATUS_GOLD),this._extractInitialItemData(),this.wwaData.mapWidth=this._get2BytesNumber(ei.MAP_SIZE),this.wwaData.messageNum=this._get2BytesNumber(ei.MESSAGE_NUM),this.wwaData.version<28?this.wwaData.mapWidth=71:this.wwaData.version<=29&&(this.wwaData.mapWidth=101)}_extractInitialItemData(){const e=this.wwaData.version>29?ei.ITEMBOX_TOP:ei.OLD_ITEMBOX_TOP;this.wwaData.itemBox=new Array(Ct.ITEMBOX_SIZE);for(let t=0;t<Ct.ITEMBOX_SIZE;t++)this.wwaData.itemBox[t]=this._get1ByteNumber(e+t)}_getFieldDataFromBits(e,t){var s,i,a;for(a=Qs(this.wwaData.mapWidth,this.wwaData.mapWidth),s=0;s<this.wwaData.mapWidth;s++)for(i=0;i<this.wwaData.mapWidth;i++)this.wwaData.version>29?(a[s][i]=this._get2BytesNumber(this.currentPosition),this.currentPosition+=2):(a[s][i]=this._get1ByteNumber(this.currentPosition),this.currentPosition+=1),(s*this.wwaData.mapWidth+i)%200==0&&this.emitProgress(s*this.wwaData.mapWidth+i,this.wwaData.mapWidth*this.wwaData.mapWidth,e===Pt.MAP?Ot.MAP_LOAD:Ot.OBJ_LOAD),a[s][i]>=t&&(a[s][i]=0);return this.emitProgress(this.wwaData.mapWidth*this.wwaData.mapWidth,this.wwaData.mapWidth*this.wwaData.mapWidth,e===Pt.MAP?Ot.MAP_LOAD:Ot.OBJ_LOAD),a}_getPartsDataFromBits(e,t,s){var i,a,r;for(r=Qs(t,s),i=0;i<t;i++)for(a=0;a<s;a++)(i*this.wwaData.mapWidth+a)%200==0&&this.emitProgress(i*s+a,t*s,e===Pt.MAP?Ot.MAP_ATTR:Ot.OBJ_ATTR),a!==Ct.ATR_CROP1&&a!==Ct.ATR_CROP2?(r[i][a]=this._get2BytesNumber(this.currentPosition),this.currentPosition+=2):(r[i][a]=0,this.currentPosition+=2);return this.emitProgress(t*s,t*s,e===Pt.MAP?Ot.MAP_ATTR:Ot.OBJ_ATTR),r}_replaceAllRandomObjects(){this.emitProgress(this.wwaData.mapWidth*this.wwaData.mapWidth,this.wwaData.mapWidth*this.wwaData.mapWidth,Ot.RAND_PARTS)}emitProgress(e,t,s){this.eventEmitter.dispatch("progress",{current:e,total:t,stage:s})}}class ii{constructor(e,t,s,i){this.wwaData=e,this.compressedMapData=t,this.startPosition=s,this.eventEmitter=i,this.OLDVER_MESSAGE_MAX=400}load(){const e=this.wwaData;this.currentPos=this.startPosition,e.version>=30&&(e.worldPassword=this.getMessageFromData()),e.version<=29&&(e.messageNum=this.OLDVER_MESSAGE_MAX),e.message=new Array(e.messageNum);for(let t=0;t<e.message.length;t++)e.message[t]=this.getMessageFromData(),t%200==0&&this.eventEmitter.dispatch("progress",{current:t,total:e.message.length,stage:Ot.MESSAGE});for(;e.messageNum<10;)e.message.push(""),e.messageNum++;this.eventEmitter.dispatch("progress",{current:e.message.length,total:e.message.length,stage:Ot.MESSAGE}),e.worldName=this.getMessageFromData(),e.version<=29?e.worldPassword=this.getMessageFromData():this.getMessageFromData(),""===e.worldPassword?e.worldPassNumber=0:e.version>=29?e.worldPassNumber=(parseInt(e.worldPassword)/10-1197)/17-2357:e.worldPassNumber=parseInt(e.worldPassword),e.charCGName=this.getMessageFromData(),e.mapCGName=this.getMessageFromData(),e.systemMessage=new Array(Ct.SYSTEM_MESSAGE_NUM);for(let t=0;t<Ct.SYSTEM_MESSAGE_NUM;t++)e.version>=30?e.systemMessage[t]=this.getMessageFromData():e.systemMessage[t]="";return e.yesnoImgPosX=Ct.IMGPOS_DEFAULT_YESNO_X,e.yesnoImgPosY=Ct.IMGPOS_DEFAULT_YESNO_Y,e.playerImgPosX=Ct.IMGPOS_DEFAULT_PLAYER_X,e.playerImgPosY=Ct.IMGPOS_DEFAULT_PLAYER_Y,e.clickableItemSignImgPosX=Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_X,e.clickableItemSignImgPosY=Ct.IMGPOS_DEFAULT_CLICKABLE_ITEM_SIGN_Y,e.disableSaveFlag=Ct.DEFAULT_DISABLE_SAVE,e.isOldMap=Ct.DEFAULT_OLDMAP,e.isOldMove=e.version<31,e.objectNoCollapseDefaultFlag=Ct.DEFAULT_OBJECT_NO_COLLAPSE,e.delPlayerFlag=!1,e.bgm=0,e.effectCoords=[],e.effectWaits=0,e.imgStatusEnergyX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_ENERGY_ICON_X,e.imgStatusEnergyY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusStrengthX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_STRENGTH_ICON_X,e.imgStatusStrengthY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusDefenceX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_DEFENCE_ICON_X,e.imgStatusDefenceY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgStatusGoldX=Ct.IMGPOS_DEFAULT_STATUS_X+Ct.IMGRELPOS_GOLD_ICON_X,e.imgStatusGoldY=Ct.IMGPOS_DEFAULT_STATUS_Y,e.imgWideCellX=Ct.IMGPOS_DEFAULT_WIDE_CELL_X,e.imgWideCellY=Ct.IMGPOS_DEFAULT_WIDE_CELL_Y,e.imgItemboxX=Ct.IMGPOS_DEFAULT_ITEMBOX_X,e.imgItemboxY=Ct.IMGPOS_DEFAULT_ITEMBOX_Y,e.imgFrameX=Ct.IMGPOS_DEFAULT_FRAME_X,e.imgFrameY=Ct.IMGPOS_DEFAULT_FRAME_Y,e.imgBattleEffectX=Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_X,e.imgBattleEffectY=Ct.IMGPOS_DEFAULT_BATTLE_EFFECT_Y,e.imgClickX=0,e.imgClickY=0,e.frameColorR=Ct.DEFAULT_FRAME_COLOR_R,e.frameColorG=Ct.DEFAULT_FRAME_COLOR_G,e.frameColorB=Ct.DEFAULT_FRAME_COLOR_B,e.frameOutColorR=Ct.DEFAULT_FRAMEOUT_COLOR_R,e.frameOutColorG=Ct.DEFAULT_FRAMEOUT_COLOR_G,e.frameOutColorB=Ct.DEFAULT_FRAMEOUT_COLOR_B,e.fontColorR=Ct.DEFAULT_STR_COLOR_R,e.fontColorG=Ct.DEFAULT_STR_COLOR_G,e.fontColorB=Ct.DEFAULT_STR_COLOR_B,e.statusColorR=Ct.DEFAULT_STATUS_COLOR_R,e.statusColorG=Ct.DEFAULT_STATUS_COLOR_G,e.statusColorB=Ct.DEFAULT_STATUS_COLOR_B,e.moves=Ct.DEFAULT_MOVES,e.gameSpeedIndex=Ct.DEFAULT_SPEED_INDEX,e.permitChangeGameSpeed=!0,e.userVar=Array.from({length:Ct.USER_VAR_NUM}).map((()=>0)),e.userNamedVar=new Map,e.playTime=0,e.isVisibleStatusEnergy=!0,e.isVisibleStatusStrength=!0,e.isVisibleStatusDefence=!0,e.isVisibleStatusGold=!0,e.gameOverPolicy="default",e.bgmDelayDurationMs=0,e.pictureRegistry=[],e}getMessageFromData(){let e="",t=0;for(t=0;t<1500&&(0!=this.compressedMapData[this.currentPos+2*t]||0!=this.compressedMapData[this.currentPos+2*t+1]);t++)e+=String.fromCharCode((this.compressedMapData[this.currentPos+2*t+1]<<8)+this.compressedMapData[this.currentPos+2*t]);return this.currentPos+=2*t+2,e}}class ai{constructor(){}}class ri extends ai{constructor(e){super(),this.uri=e}static async fetch(e){try{return await fetch(e)}catch(t){throw new Error(`マップデータ 「${e}」の読み込みに失敗しました。\n 通信環境の良いところで再度お試しください。\n ローカルテストの場合は、ブラウザが対応していない可能性があります。`)}}static handleError(e,t){const s=`HTTPステータスコードは ${t.status} です。`;switch(t.status){case 200:case 304:return;case 403:throw new Error(`マップデータ「${e}」を読み取る権限がないようです。\n 管理者の方へ: マップデータのパーミッションを確認してください。\n ${s}`);case 404:throw new Error(`マップデータ「${e}」が見つかりませんでした。\n ${s}`);default:throw new Error(`マップデータ「${e}」の読み込みに失敗しました。\n ${s}`)}}async request(){const e=await ri.fetch(this.uri);ri.handleError(this.uri,e);return await e.arrayBuffer()}}var ni=s(699),oi=s.n(ni);class hi extends ai{constructor(e){super(),this.fileName=e}async request(){return new Promise(((e,t)=>{oi().readFile(this.fileName,((s,i)=>{s&&t(s),e(i.buffer)}))}))}}class ci{constructor(e,t){this.fileName=e,this.eventEmitter=t}async requestAndLoadMapData(){const e=(t=this.fileName,"undefined"!=typeof window?new ri(t):new hi(t));var t;try{const t=await e.request();if(!t)return void this.eventEmitter.dispatch("error",{name:"マップデータ取得に失敗しました",message:"mapdata is empty"});const s=this.loadMapData(t);this.eventEmitter.dispatch("mapData",s)}catch(e){const t=e.name||"",s=e.message||"";this.eventEmitter.dispatch("error",{name:t,message:s})}}loadMapData(e){try{const t=new Uint8Array(e),{byteMapData:s,byteMapLength:i,compressedEndPosition:a}=function(e){let t,s,i=new Uint8Array(e.length);for(t=0,s=0;t<e.length&&(0!==e[t]||0!==e[t+1]||0!==e[t+2]);t++){if(i[s++]=e[t],e[t]===e[t+1]){const a=e[t+2];for(let r=0;r<a;r++)i[s++]=e[t];t+=2}if(s+255>=i.length){var a=new Uint8Array(i.length+65e3);a.set(i),i=a}}return console.log("EXTRACT DATA = "+s+" "+t),{byteMapData:i,byteMapLength:s,compressedEndPosition:t+3}}(t),r=new si(s,i,this.eventEmitter).extractAllData();return new ii(r,t,a,this.eventEmitter).load()}catch(e){throw e}}}class li{constructor(e){this.target=null!=e?e:document.createElement("div")}dispatch(e,t){const s=new CustomEvent(e,{detail:t});this.target.dispatchEvent(s)}addListener(e,t){const s=e=>t(e.detail);return this.target.addEventListener(e,s),s}removeListener(e,t){this.target.removeEventListener(e,t)}}var _i={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},ui="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",di={5:ui,"5module":ui+" export import",6:ui+" const class extends export import super"},pi=/^in(stanceof)?$/,mi="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࣇऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-鿼ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-ꟊꟵ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",gi="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿᫀᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",Ei=new RegExp("["+mi+"]"),wi=new RegExp("["+mi+gi+"]");mi=gi=null;var fi=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],yi=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function vi(e,t){for(var s=65536,i=0;i<t.length;i+=2){if((s+=t[i])>e)return!1;if((s+=t[i+1])>=e)return!0}}function Ai(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&Ei.test(String.fromCharCode(e)):!1!==t&&vi(e,fi)))}function Si(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&wi.test(String.fromCharCode(e)):!1!==t&&(vi(e,fi)||vi(e,yi)))))}var Ti=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function Ii(e,t){return new Ti(e,{beforeExpr:!0,binop:t})}var Ci={beforeExpr:!0},Pi={startsExpr:!0},Oi={};function Di(e,t){return void 0===t&&(t={}),t.keyword=e,Oi[e]=new Ti(e,t)}var Ni={num:new Ti("num",Pi),regexp:new Ti("regexp",Pi),string:new Ti("string",Pi),name:new Ti("name",Pi),eof:new Ti("eof"),bracketL:new Ti("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new Ti("]"),braceL:new Ti("{",{beforeExpr:!0,startsExpr:!0}),braceR:new Ti("}"),parenL:new Ti("(",{beforeExpr:!0,startsExpr:!0}),parenR:new Ti(")"),comma:new Ti(",",Ci),semi:new Ti(";",Ci),colon:new Ti(":",Ci),dot:new Ti("."),question:new Ti("?",Ci),questionDot:new Ti("?."),arrow:new Ti("=>",Ci),template:new Ti("template"),invalidTemplate:new Ti("invalidTemplate"),ellipsis:new Ti("...",Ci),backQuote:new Ti("`",Pi),dollarBraceL:new Ti("${",{beforeExpr:!0,startsExpr:!0}),eq:new Ti("=",{beforeExpr:!0,isAssign:!0}),assign:new Ti("_=",{beforeExpr:!0,isAssign:!0}),incDec:new Ti("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new Ti("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Ii("||",1),logicalAND:Ii("&&",2),bitwiseOR:Ii("|",3),bitwiseXOR:Ii("^",4),bitwiseAND:Ii("&",5),equality:Ii("==/!=/===/!==",6),relational:Ii("</>/<=/>=",7),bitShift:Ii("<</>>/>>>",8),plusMin:new Ti("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Ii("%",10),star:Ii("*",10),slash:Ii("/",10),starstar:new Ti("**",{beforeExpr:!0}),coalesce:Ii("??",1),_break:Di("break"),_case:Di("case",Ci),_catch:Di("catch"),_continue:Di("continue"),_debugger:Di("debugger"),_default:Di("default",Ci),_do:Di("do",{isLoop:!0,beforeExpr:!0}),_else:Di("else",Ci),_finally:Di("finally"),_for:Di("for",{isLoop:!0}),_function:Di("function",Pi),_if:Di("if"),_return:Di("return",Ci),_switch:Di("switch"),_throw:Di("throw",Ci),_try:Di("try"),_var:Di("var"),_const:Di("const"),_while:Di("while",{isLoop:!0}),_with:Di("with"),_new:Di("new",{beforeExpr:!0,startsExpr:!0}),_this:Di("this",Pi),_super:Di("super",Pi),_class:Di("class",Pi),_extends:Di("extends",Ci),_export:Di("export"),_import:Di("import",Pi),_null:Di("null",Pi),_true:Di("true",Pi),_false:Di("false",Pi),_in:Di("in",{beforeExpr:!0,binop:7}),_instanceof:Di("instanceof",{beforeExpr:!0,binop:7}),_typeof:Di("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Di("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Di("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},bi=/\r\n?|\n|\u2028|\u2029/,Mi=new RegExp(bi.source,"g");function xi(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var Li=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Ri=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Bi=Object.prototype,Ui=Bi.hasOwnProperty,ki=Bi.toString;function Wi(e,t){return Ui.call(e,t)}var Vi=Array.isArray||function(e){return"[object Array]"===ki.call(e)};function Fi(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var Yi=function(e,t){this.line=e,this.column=t};Yi.prototype.offset=function(e){return new Yi(this.line,this.column+e)};var Gi=function(e,t,s){this.start=t,this.end=s,null!==e.sourceFile&&(this.source=e.sourceFile)};function Hi(e,t){for(var s=1,i=0;;){Mi.lastIndex=i;var a=Mi.exec(e);if(!(a&&a.index<t))return new Yi(s,t-i);++s,i=a.index+a[0].length}}var Ki={ecmaVersion:10,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function ji(e){var t={};for(var s in Ki)t[s]=e&&Wi(e,s)?e[s]:Ki[s];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),Vi(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return Vi(t.onComment)&&(t.onComment=function(e,t){return function(s,i,a,r,n,o){var h={type:s?"Block":"Line",value:i,start:a,end:r};e.locations&&(h.loc=new Gi(this,n,o)),e.ranges&&(h.range=[a,r]),t.push(h)}}(t,t.onComment)),t}function Xi(e,t){return 2|(e?4:0)|(t?8:0)}var $i=function(e,t,s){this.options=e=ji(e),this.sourceFile=e.sourceFile,this.keywords=Fi(di[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var i="";if(!0!==e.allowReserved){for(var a=e.ecmaVersion;!(i=_i[a]);a--);"module"===e.sourceType&&(i+=" await")}this.reservedWords=Fi(i);var r=(i?i+" ":"")+_i.strict;this.reservedWordsStrict=Fi(r),this.reservedWordsStrictBind=Fi(r+" "+_i.strictBind),this.input=String(t),this.containsEsc=!1,s?(this.pos=s,this.lineStart=this.input.lastIndexOf("\n",s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(bi).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=Ni.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},Ji={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};$i.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},Ji.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},Ji.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},Ji.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},Ji.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},Ji.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},Ji.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},$i.prototype.inNonArrowFunction=function(){return(2&this.currentThisScope().flags)>0},$i.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var s=this,i=0;i<e.length;i++)s=e[i](s);return s},$i.parse=function(e,t){return new this(t,e).parse()},$i.parseExpressionAt=function(e,t,s){var i=new this(s,e,t);return i.nextToken(),i.parseExpression()},$i.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties($i.prototype,Ji);var Zi=$i.prototype,qi=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;function zi(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}Zi.strictDirective=function(e){for(;;){Ri.lastIndex=e,e+=Ri.exec(this.input)[0].length;var t=qi.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2])){Ri.lastIndex=e+t[0].length;var s=Ri.exec(this.input),i=s.index+s[0].length,a=this.input.charAt(i);return";"===a||"}"===a||bi.test(s[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}e+=t[0].length,Ri.lastIndex=e,e+=Ri.exec(this.input)[0].length,";"===this.input[e]&&e++}},Zi.eat=function(e){return this.type===e&&(this.next(),!0)},Zi.isContextual=function(e){return this.type===Ni.name&&this.value===e&&!this.containsEsc},Zi.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},Zi.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},Zi.canInsertSemicolon=function(){return this.type===Ni.eof||this.type===Ni.braceR||bi.test(this.input.slice(this.lastTokEnd,this.start))},Zi.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},Zi.semicolon=function(){this.eat(Ni.semi)||this.insertSemicolon()||this.unexpected()},Zi.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},Zi.expect=function(e){this.eat(e)||this.unexpected()},Zi.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},Zi.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var s=t?e.parenthesizedAssign:e.parenthesizedBind;s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},Zi.checkExpressionErrors=function(e,t){if(!e)return!1;var s=e.shorthandAssign,i=e.doubleProto;if(!t)return s>=0||i>=0;s>=0&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},Zi.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},Zi.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var Qi=$i.prototype;Qi.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==Ni.eof;){var s=this.parseStatement(null,!0,t);e.body.push(s)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,"Program")};var ea={kind:"loop"},ta={kind:"switch"};Qi.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;Ri.lastIndex=this.pos;var t=Ri.exec(this.input),s=this.pos+t[0].length,i=this.input.charCodeAt(s);if(91===i)return!0;if(e)return!1;if(123===i)return!0;if(Ai(i,!0)){for(var a=s+1;Si(this.input.charCodeAt(a),!0);)++a;var r=this.input.slice(s,a);if(!pi.test(r))return!0}return!1},Qi.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;Ri.lastIndex=this.pos;var e=Ri.exec(this.input),t=this.pos+e[0].length;return!(bi.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&Si(this.input.charAt(t+8)))},Qi.parseStatement=function(e,t,s){var i,a=this.type,r=this.startNode();switch(this.isLet(e)&&(a=Ni._var,i="let"),a){case Ni._break:case Ni._continue:return this.parseBreakContinueStatement(r,a.keyword);case Ni._debugger:return this.parseDebuggerStatement(r);case Ni._do:return this.parseDoStatement(r);case Ni._for:return this.parseForStatement(r);case Ni._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!e);case Ni._class:return e&&this.unexpected(),this.parseClass(r,!0);case Ni._if:return this.parseIfStatement(r);case Ni._return:return this.parseReturnStatement(r);case Ni._switch:return this.parseSwitchStatement(r);case Ni._throw:return this.parseThrowStatement(r);case Ni._try:return this.parseTryStatement(r);case Ni._const:case Ni._var:return i=i||this.value,e&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case Ni._while:return this.parseWhileStatement(r);case Ni._with:return this.parseWithStatement(r);case Ni.braceL:return this.parseBlock(!0,r);case Ni.semi:return this.parseEmptyStatement(r);case Ni._export:case Ni._import:if(this.options.ecmaVersion>10&&a===Ni._import){Ri.lastIndex=this.pos;var n=Ri.exec(this.input),o=this.pos+n[0].length,h=this.input.charCodeAt(o);if(40===h||46===h)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===Ni._import?this.parseImport(r):this.parseExport(r,s);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!e);var c=this.value,l=this.parseExpression();return a===Ni.name&&"Identifier"===l.type&&this.eat(Ni.colon)?this.parseLabeledStatement(r,c,l,e):this.parseExpressionStatement(r,l)}},Qi.parseBreakContinueStatement=function(e,t){var s="break"===t;this.next(),this.eat(Ni.semi)||this.insertSemicolon()?e.label=null:this.type!==Ni.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==e.label||a.name===e.label.name){if(null!=a.kind&&(s||"loop"===a.kind))break;if(e.label&&s)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,s?"BreakStatement":"ContinueStatement")},Qi.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},Qi.parseDoStatement=function(e){return this.next(),this.labels.push(ea),e.body=this.parseStatement("do"),this.labels.pop(),this.expect(Ni._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(Ni.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},Qi.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(ea),this.enterScope(0),this.expect(Ni.parenL),this.type===Ni.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var s=this.isLet();if(this.type===Ni._var||this.type===Ni._const||s){var i=this.startNode(),a=s?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===Ni._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,i)):(t>-1&&this.unexpected(t),this.parseFor(e,i))}var r=new zi,n=this.parseExpression(!0,r);return this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===Ni._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(n,!1,r),this.checkLVal(n),this.parseForIn(e,n)):(this.checkExpressionErrors(r,!0),t>-1&&this.unexpected(t),this.parseFor(e,n))},Qi.parseFunctionStatement=function(e,t,s){return this.next(),this.parseFunction(e,ia|(s?0:aa),!1,t)},Qi.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(Ni._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},Qi.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(Ni.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},Qi.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(Ni.braceL),this.labels.push(ta),this.enterScope(0);for(var s=!1;this.type!==Ni.braceR;)if(this.type===Ni._case||this.type===Ni._default){var i=this.type===Ni._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(s&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),s=!0,t.test=null),this.expect(Ni.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},Qi.parseThrowStatement=function(e){return this.next(),bi.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var sa=[];Qi.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===Ni._catch){var t=this.startNode();if(this.next(),this.eat(Ni.parenL)){t.param=this.parseBindingAtom();var s="Identifier"===t.param.type;this.enterScope(s?32:0),this.checkLVal(t.param,s?4:2),this.expect(Ni.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(Ni._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},Qi.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},Qi.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(ea),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},Qi.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},Qi.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},Qi.parseLabeledStatement=function(e,t,s,i){for(var a=0,r=this.labels;a<r.length;a+=1){r[a].name===t&&this.raise(s.start,"Label '"+t+"' is already declared")}for(var n=this.type.isLoop?"loop":this.type===Ni._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var h=this.labels[o];if(h.statementStart!==e.start)break;h.statementStart=this.start,h.kind=n}return this.labels.push({name:t,kind:n,statementStart:this.start}),e.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),e.label=s,this.finishNode(e,"LabeledStatement")},Qi.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},Qi.parseBlock=function(e,t,s){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(Ni.braceL),e&&this.enterScope(0);this.type!==Ni.braceR;){var i=this.parseStatement(null);t.body.push(i)}return s&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},Qi.parseFor=function(e,t){return e.init=t,this.expect(Ni.semi),e.test=this.type===Ni.semi?null:this.parseExpression(),this.expect(Ni.semi),e.update=this.type===Ni.parenR?null:this.parseExpression(),this.expect(Ni.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},Qi.parseForIn=function(e,t){var s=this.type===Ni._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!s||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)?this.raise(t.start,(s?"for-in":"for-of")+" loop variable declaration may not have an initializer"):"AssignmentPattern"===t.type&&this.raise(t.start,"Invalid left-hand side in for-loop"),e.left=t,e.right=s?this.parseExpression():this.parseMaybeAssign(),this.expect(Ni.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,s?"ForInStatement":"ForOfStatement")},Qi.parseVar=function(e,t,s){for(e.declarations=[],e.kind=s;;){var i=this.startNode();if(this.parseVarId(i,s),this.eat(Ni.eq)?i.init=this.parseMaybeAssign(t):"const"!==s||this.type===Ni._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===i.id.type||t&&(this.type===Ni._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(Ni.comma))break}return e},Qi.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"var"===t?1:2,!1)};var ia=1,aa=2;Qi.parseFunction=function(e,t,s,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===Ni.star&&t&aa&&this.unexpected(),e.generator=this.eat(Ni.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&ia&&(e.id=4&t&&this.type!==Ni.name?null:this.parseIdent(),!e.id||t&aa||this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var a=this.yieldPos,r=this.awaitPos,n=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Xi(e.async,e.generator)),t&ia||(e.id=this.type===Ni.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,s,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=n,this.finishNode(e,t&ia?"FunctionDeclaration":"FunctionExpression")},Qi.parseFunctionParams=function(e){this.expect(Ni.parenL),e.params=this.parseBindingList(Ni.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Qi.parseClass=function(e,t){this.next();var s=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.startNode(),a=!1;for(i.body=[],this.expect(Ni.braceL);this.type!==Ni.braceR;){var r=this.parseClassElement(null!==e.superClass);r&&(i.body.push(r),"MethodDefinition"===r.type&&"constructor"===r.kind&&(a&&this.raise(r.start,"Duplicate constructor in the same class"),a=!0))}return this.strict=s,this.next(),e.body=this.finishNode(i,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},Qi.parseClassElement=function(e){var t=this;if(this.eat(Ni.semi))return null;var s=this.startNode(),i=function(e,i){void 0===i&&(i=!1);var a=t.start,r=t.startLoc;return!!t.eatContextual(e)&&(!(t.type===Ni.parenL||i&&t.canInsertSemicolon())||(s.key&&t.unexpected(),s.computed=!1,s.key=t.startNodeAt(a,r),s.key.name=e,t.finishNode(s.key,"Identifier"),!1))};s.kind="method",s.static=i("static");var a=this.eat(Ni.star),r=!1;a||(this.options.ecmaVersion>=8&&i("async",!0)?(r=!0,a=this.options.ecmaVersion>=9&&this.eat(Ni.star)):i("get")?s.kind="get":i("set")&&(s.kind="set")),s.key||this.parsePropertyName(s);var n=s.key,o=!1;return s.computed||s.static||!("Identifier"===n.type&&"constructor"===n.name||"Literal"===n.type&&"constructor"===n.value)?s.static&&"Identifier"===n.type&&"prototype"===n.name&&this.raise(n.start,"Classes may not have a static property named prototype"):("method"!==s.kind&&this.raise(n.start,"Constructor can't have get/set modifier"),a&&this.raise(n.start,"Constructor can't be a generator"),r&&this.raise(n.start,"Constructor can't be an async method"),s.kind="constructor",o=e),this.parseClassMethod(s,a,r,o),"get"===s.kind&&0!==s.value.params.length&&this.raiseRecoverable(s.value.start,"getter should have no params"),"set"===s.kind&&1!==s.value.params.length&&this.raiseRecoverable(s.value.start,"setter should have exactly one param"),"set"===s.kind&&"RestElement"===s.value.params[0].type&&this.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params"),s},Qi.parseClassMethod=function(e,t,s,i){return e.value=this.parseMethod(t,s,i),this.finishNode(e,"MethodDefinition")},Qi.parseClassId=function(e,t){this.type===Ni.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},Qi.parseClassSuper=function(e){e.superClass=this.eat(Ni._extends)?this.parseExprSubscripts():null},Qi.parseExport=function(e,t){if(this.next(),this.eat(Ni.star))return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==Ni.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(Ni._default)){var s;if(this.checkExport(t,"default",this.lastTokStart),this.type===Ni._function||(s=this.isAsyncFunction())){var i=this.startNode();this.next(),s&&this.next(),e.declaration=this.parseFunction(i,4|ia,!1,s)}else if(this.type===Ni._class){var a=this.startNode();e.declaration=this.parseClass(a,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==Ni.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var r=0,n=e.specifiers;r<n.length;r+=1){var o=n[r];this.checkUnreserved(o.local),this.checkLocalExport(o.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},Qi.checkExport=function(e,t,s){e&&(Wi(e,t)&&this.raiseRecoverable(s,"Duplicate export '"+t+"'"),e[t]=!0)},Qi.checkPatternExport=function(e,t){var s=t.type;if("Identifier"===s)this.checkExport(e,t.name,t.start);else if("ObjectPattern"===s)for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(e,r)}else if("ArrayPattern"===s)for(var n=0,o=t.elements;n<o.length;n+=1){var h=o[n];h&&this.checkPatternExport(e,h)}else"Property"===s?this.checkPatternExport(e,t.value):"AssignmentPattern"===s?this.checkPatternExport(e,t.left):"RestElement"===s?this.checkPatternExport(e,t.argument):"ParenthesizedExpression"===s&&this.checkPatternExport(e,t.expression)},Qi.checkVariableExport=function(e,t){if(e)for(var s=0,i=t;s<i.length;s+=1){var a=i[s];this.checkPatternExport(e,a.id)}},Qi.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},Qi.parseExportSpecifiers=function(e){var t=[],s=!0;for(this.expect(Ni.braceL);!this.eat(Ni.braceR);){if(s)s=!1;else if(this.expect(Ni.comma),this.afterTrailingComma(Ni.braceR))break;var i=this.startNode();i.local=this.parseIdent(!0),i.exported=this.eatContextual("as")?this.parseIdent(!0):i.local,this.checkExport(e,i.exported.name,i.exported.start),t.push(this.finishNode(i,"ExportSpecifier"))}return t},Qi.parseImport=function(e){return this.next(),this.type===Ni.string?(e.specifiers=sa,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===Ni.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},Qi.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===Ni.name){var s=this.startNode();if(s.local=this.parseIdent(),this.checkLVal(s.local,2),e.push(this.finishNode(s,"ImportDefaultSpecifier")),!this.eat(Ni.comma))return e}if(this.type===Ni.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportNamespaceSpecifier")),e}for(this.expect(Ni.braceL);!this.eat(Ni.braceR);){if(t)t=!1;else if(this.expect(Ni.comma),this.afterTrailingComma(Ni.braceR))break;var a=this.startNode();a.imported=this.parseIdent(!0),this.eatContextual("as")?a.local=this.parseIdent():(this.checkUnreserved(a.imported),a.local=a.imported),this.checkLVal(a.local,2),e.push(this.finishNode(a,"ImportSpecifier"))}return e},Qi.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},Qi.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var ra=$i.prototype;ra.toAssignable=function(e,t,s){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",s&&this.checkPatternErrors(s,!0);for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,t),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==e.kind&&this.raise(e.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(e.value,t);break;case"ArrayExpression":e.type="ArrayPattern",s&&this.checkPatternErrors(s,!0),this.toAssignableList(e.elements,t);break;case"SpreadElement":e.type="RestElement",this.toAssignable(e.argument,t),"AssignmentPattern"===e.argument.type&&this.raise(e.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==e.operator&&this.raise(e.left.end,"Only '=' operator can be used for specifying default value."),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(e.expression,t,s);break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}else s&&this.checkPatternErrors(s,!0);return e},ra.toAssignableList=function(e,t){for(var s=e.length,i=0;i<s;i++){var a=e[i];a&&this.toAssignable(a,t)}if(s){var r=e[s-1];6===this.options.ecmaVersion&&t&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return e},ra.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ra.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==Ni.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},ra.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case Ni.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(Ni.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case Ni.braceL:return this.parseObj(!0)}return this.parseIdent()},ra.parseBindingList=function(e,t,s){for(var i=[],a=!0;!this.eat(e);)if(a?a=!1:this.expect(Ni.comma),t&&this.type===Ni.comma)i.push(null);else{if(s&&this.afterTrailingComma(e))break;if(this.type===Ni.ellipsis){var r=this.parseRestBinding();this.parseBindingListItem(r),i.push(r),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var n=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(n),i.push(n)}return i},ra.parseBindingListItem=function(e){return e},ra.parseMaybeDefault=function(e,t,s){if(s=s||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(Ni.eq))return s;var i=this.startNodeAt(e,t);return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},ra.checkLVal=function(e,t,s){switch(void 0===t&&(t=0),e.type){case"Identifier":2===t&&"let"===e.name&&this.raiseRecoverable(e.start,"let is disallowed as a lexically bound name"),this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),s&&(Wi(s,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),s[e.name]=!0),0!==t&&5!==t&&this.declareName(e.name,t,e.start);break;case"ChainExpression":this.raiseRecoverable(e.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":t&&this.raiseRecoverable(e.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkLVal(r,t,s)}break;case"Property":this.checkLVal(e.value,t,s);break;case"ArrayPattern":for(var n=0,o=e.elements;n<o.length;n+=1){var h=o[n];h&&this.checkLVal(h,t,s)}break;case"AssignmentPattern":this.checkLVal(e.left,t,s);break;case"RestElement":this.checkLVal(e.argument,t,s);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,s);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var na=$i.prototype;na.checkPropClash=function(e,t,s){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var i,a=e.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(t.proto&&(s?s.doubleProto<0&&(s.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),t.proto=!0);else{var n=t[i="$"+i];if(n)("init"===r?this.strict&&n.init||n.get||n.set:n.init||n[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else n=t[i]={init:!1,get:!1,set:!1};n[r]=!0}}},na.parseExpression=function(e,t){var s=this.start,i=this.startLoc,a=this.parseMaybeAssign(e,t);if(this.type===Ni.comma){var r=this.startNodeAt(s,i);for(r.expressions=[a];this.eat(Ni.comma);)r.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(r,"SequenceExpression")}return a},na.parseMaybeAssign=function(e,t,s){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var i=!1,a=-1,r=-1;t?(a=t.parenthesizedAssign,r=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new zi,i=!0);var n=this.start,o=this.startLoc;this.type!==Ni.parenL&&this.type!==Ni.name||(this.potentialArrowAt=this.start);var h=this.parseMaybeConditional(e,t);if(s&&(h=s.call(this,h,n,o)),this.type.isAssign){var c=this.startNodeAt(n,o);return c.operator=this.value,c.left=this.type===Ni.eq?this.toAssignable(h,!1,t):h,i||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=c.left.start&&(t.shorthandAssign=-1),this.checkLVal(h),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return i&&this.checkExpressionErrors(t,!0),a>-1&&(t.parenthesizedAssign=a),r>-1&&(t.trailingComma=r),h},na.parseMaybeConditional=function(e,t){var s=this.start,i=this.startLoc,a=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return a;if(this.eat(Ni.question)){var r=this.startNodeAt(s,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(Ni.colon),r.alternate=this.parseMaybeAssign(e),this.finishNode(r,"ConditionalExpression")}return a},na.parseExprOps=function(e,t){var s=this.start,i=this.startLoc,a=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||a.start===s&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,s,i,-1,e)},na.parseExprOp=function(e,t,s,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==Ni._in)&&r>i){var n=this.type===Ni.logicalOR||this.type===Ni.logicalAND,o=this.type===Ni.coalesce;o&&(r=Ni.logicalAND.binop);var h=this.value;this.next();var c=this.start,l=this.startLoc,_=this.parseExprOp(this.parseMaybeUnary(null,!1),c,l,r,a),u=this.buildBinary(t,s,e,_,h,n||o);return(n&&this.type===Ni.coalesce||o&&(this.type===Ni.logicalOR||this.type===Ni.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(u,t,s,i,a)}return e},na.buildBinary=function(e,t,s,i,a,r){var n=this.startNodeAt(e,t);return n.left=s,n.operator=a,n.right=i,this.finishNode(n,r?"LogicalExpression":"BinaryExpression")},na.parseMaybeUnary=function(e,t){var s,i=this.start,a=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))s=this.parseAwait(),t=!0;else if(this.type.prefix){var r=this.startNode(),n=this.type===Ni.incDec;r.operator=this.value,r.prefix=!0,this.next(),r.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),n?this.checkLVal(r.argument):this.strict&&"delete"===r.operator&&"Identifier"===r.argument.type?this.raiseRecoverable(r.start,"Deleting local variable in strict mode"):t=!0,s=this.finishNode(r,n?"UpdateExpression":"UnaryExpression")}else{if(s=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return s;for(;this.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,a);o.operator=this.value,o.prefix=!1,o.argument=s,this.checkLVal(s),this.next(),s=this.finishNode(o,"UpdateExpression")}}return!t&&this.eat(Ni.starstar)?this.buildBinary(i,a,s,this.parseMaybeUnary(null,!1),"**",!1):s},na.parseExprSubscripts=function(e){var t=this.start,s=this.startLoc,i=this.parseExprAtom(e);if("ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return i;var a=this.parseSubscripts(i,t,s);return e&&"MemberExpression"===a.type&&(e.parenthesizedAssign>=a.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=a.start&&(e.parenthesizedBind=-1)),a},na.parseSubscripts=function(e,t,s,i){for(var a=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start==5&&this.potentialArrowAt===e.start,r=!1;;){var n=this.parseSubscript(e,t,s,i,a,r);if(n.optional&&(r=!0),n===e||"ArrowFunctionExpression"===n.type){if(r){var o=this.startNodeAt(t,s);o.expression=n,n=this.finishNode(o,"ChainExpression")}return n}e=n}},na.parseSubscript=function(e,t,s,i,a,r){var n=this.options.ecmaVersion>=11,o=n&&this.eat(Ni.questionDot);i&&o&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var h=this.eat(Ni.bracketL);if(h||o&&this.type!==Ni.parenL&&this.type!==Ni.backQuote||this.eat(Ni.dot)){var c=this.startNodeAt(t,s);c.object=e,c.property=h?this.parseExpression():this.parseIdent("never"!==this.options.allowReserved),c.computed=!!h,h&&this.expect(Ni.bracketR),n&&(c.optional=o),e=this.finishNode(c,"MemberExpression")}else if(!i&&this.eat(Ni.parenL)){var l=new zi,_=this.yieldPos,u=this.awaitPos,d=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(Ni.parenR,this.options.ecmaVersion>=8,!1,l);if(a&&!o&&!this.canInsertSemicolon()&&this.eat(Ni.arrow))return this.checkPatternErrors(l,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=_,this.awaitPos=u,this.awaitIdentPos=d,this.parseArrowExpression(this.startNodeAt(t,s),p,!0);this.checkExpressionErrors(l,!0),this.yieldPos=_||this.yieldPos,this.awaitPos=u||this.awaitPos,this.awaitIdentPos=d||this.awaitIdentPos;var m=this.startNodeAt(t,s);m.callee=e,m.arguments=p,n&&(m.optional=o),e=this.finishNode(m,"CallExpression")}else if(this.type===Ni.backQuote){(o||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var g=this.startNodeAt(t,s);g.tag=e,g.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(g,"TaggedTemplateExpression")}return e},na.parseExprAtom=function(e){this.type===Ni.slash&&this.readRegexp();var t,s=this.potentialArrowAt===this.start;switch(this.type){case Ni._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),t=this.startNode(),this.next(),this.type!==Ni.parenL||this.allowDirectSuper||this.raise(t.start,"super() call outside constructor of a subclass"),this.type!==Ni.dot&&this.type!==Ni.bracketL&&this.type!==Ni.parenL&&this.unexpected(),this.finishNode(t,"Super");case Ni._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case Ni.name:var i=this.start,a=this.startLoc,r=this.containsEsc,n=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!r&&"async"===n.name&&!this.canInsertSemicolon()&&this.eat(Ni._function))return this.parseFunction(this.startNodeAt(i,a),0,!1,!0);if(s&&!this.canInsertSemicolon()){if(this.eat(Ni.arrow))return this.parseArrowExpression(this.startNodeAt(i,a),[n],!1);if(this.options.ecmaVersion>=8&&"async"===n.name&&this.type===Ni.name&&!r)return n=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(Ni.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,a),[n],!0)}return n;case Ni.regexp:var o=this.value;return(t=this.parseLiteral(o.value)).regex={pattern:o.pattern,flags:o.flags},t;case Ni.num:case Ni.string:return this.parseLiteral(this.value);case Ni._null:case Ni._true:case Ni._false:return(t=this.startNode()).value=this.type===Ni._null?null:this.type===Ni._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case Ni.parenL:var h=this.start,c=this.parseParenAndDistinguishExpression(s);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(e.parenthesizedAssign=h),e.parenthesizedBind<0&&(e.parenthesizedBind=h)),c;case Ni.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(Ni.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case Ni.braceL:return this.parseObj(!1,e);case Ni._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case Ni._class:return this.parseClass(this.startNode(),!1);case Ni._new:return this.parseNew();case Ni.backQuote:return this.parseTemplate();case Ni._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},na.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case Ni.parenL:return this.parseDynamicImport(e);case Ni.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},na.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(Ni.parenR)){var t=this.start;this.eat(Ni.comma)&&this.eat(Ni.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},na.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},na.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},na.parseParenExpression=function(){this.expect(Ni.parenL);var e=this.parseExpression();return this.expect(Ni.parenR),e},na.parseParenAndDistinguishExpression=function(e){var t,s=this.start,i=this.startLoc,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var r,n=this.start,o=this.startLoc,h=[],c=!0,l=!1,_=new zi,u=this.yieldPos,d=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==Ni.parenR;){if(c?c=!1:this.expect(Ni.comma),a&&this.afterTrailingComma(Ni.parenR,!0)){l=!0;break}if(this.type===Ni.ellipsis){r=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}h.push(this.parseMaybeAssign(!1,_,this.parseParenItem))}var p=this.start,m=this.startLoc;if(this.expect(Ni.parenR),e&&!this.canInsertSemicolon()&&this.eat(Ni.arrow))return this.checkPatternErrors(_,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=d,this.parseParenArrowList(s,i,h);h.length&&!l||this.unexpected(this.lastTokStart),r&&this.unexpected(r),this.checkExpressionErrors(_,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=d||this.awaitPos,h.length>1?((t=this.startNodeAt(n,o)).expressions=h,this.finishNodeAt(t,"SequenceExpression",p,m)):t=h[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(s,i);return g.expression=t,this.finishNode(g,"ParenthesizedExpression")}return t},na.parseParenItem=function(e){return e},na.parseParenArrowList=function(e,t,s){return this.parseArrowExpression(this.startNodeAt(e,t),s)};var oa=[];na.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(Ni.dot)){e.meta=t;var s=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),s&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.inNonArrowFunction()||this.raiseRecoverable(e.start,"'new.target' can only be used in functions"),this.finishNode(e,"MetaProperty")}var i=this.start,a=this.startLoc,r=this.type===Ni._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),i,a,!0),r&&"ImportExpression"===e.callee.type&&this.raise(i,"Cannot use new with import()"),this.eat(Ni.parenL)?e.arguments=this.parseExprList(Ni.parenR,this.options.ecmaVersion>=8,!1):e.arguments=oa,this.finishNode(e,"NewExpression")},na.parseTemplateElement=function(e){var t=e.isTagged,s=this.startNode();return this.type===Ni.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),s.tail=this.type===Ni.backQuote,this.finishNode(s,"TemplateElement")},na.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var s=this.startNode();this.next(),s.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(s.quasis=[i];!i.tail;)this.type===Ni.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(Ni.dollarBraceL),s.expressions.push(this.parseExpression()),this.expect(Ni.braceR),s.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(s,"TemplateLiteral")},na.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===Ni.name||this.type===Ni.num||this.type===Ni.string||this.type===Ni.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===Ni.star)&&!bi.test(this.input.slice(this.lastTokEnd,this.start))},na.parseObj=function(e,t){var s=this.startNode(),i=!0,a={};for(s.properties=[],this.next();!this.eat(Ni.braceR);){if(i)i=!1;else if(this.expect(Ni.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(Ni.braceR))break;var r=this.parseProperty(e,t);e||this.checkPropClash(r,a,t),s.properties.push(r)}return this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},na.parseProperty=function(e,t){var s,i,a,r,n=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(Ni.ellipsis))return e?(n.argument=this.parseIdent(!1),this.type===Ni.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(n,"RestElement")):(this.type===Ni.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),n.argument=this.parseMaybeAssign(!1,t),this.type===Ni.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(n,"SpreadElement"));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(e||t)&&(a=this.start,r=this.startLoc),e||(s=this.eat(Ni.star)));var o=this.containsEsc;return this.parsePropertyName(n),!e&&!o&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(n)?(i=!0,s=this.options.ecmaVersion>=9&&this.eat(Ni.star),this.parsePropertyName(n,t)):i=!1,this.parsePropertyValue(n,e,s,i,a,r,t,o),this.finishNode(n,"Property")},na.parsePropertyValue=function(e,t,s,i,a,r,n,o){if((s||i)&&this.type===Ni.colon&&this.unexpected(),this.eat(Ni.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,n),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===Ni.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(s,i);else if(t||o||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===Ni.comma||this.type===Ni.braceR||this.type===Ni.eq)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((s||i)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),e.kind="init",t?e.value=this.parseMaybeDefault(a,r,e.key):this.type===Ni.eq&&n?(n.shorthandAssign<0&&(n.shorthandAssign=this.start),e.value=this.parseMaybeDefault(a,r,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(s||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var h="get"===e.kind?0:1;if(e.value.params.length!==h){var c=e.value.start;"get"===e.kind?this.raiseRecoverable(c,"getter should have no params"):this.raiseRecoverable(c,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},na.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(Ni.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(Ni.bracketR),e.key;e.computed=!1}return e.key=this.type===Ni.num||this.type===Ni.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},na.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},na.parseMethod=function(e,t,s){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,n=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|Xi(t,i.generator)|(s?128:0)),this.expect(Ni.parenL),i.params=this.parseBindingList(Ni.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=n,this.finishNode(i,"FunctionExpression")},na.parseArrowExpression=function(e,t,s){var i=this.yieldPos,a=this.awaitPos,r=this.awaitIdentPos;return this.enterScope(16|Xi(s,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=r,this.finishNode(e,"ArrowFunctionExpression")},na.parseFunctionBody=function(e,t,s){var i=t&&this.type!==Ni.braceL,a=this.strict,r=!1;if(i)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var n=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);a&&!n||(r=this.strictDirective(this.end))&&n&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],r&&(this.strict=!0),this.checkParams(e,!a&&!r&&!t&&!s&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLVal(e.id,5),e.body=this.parseBlock(!1,void 0,r&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitScope()},na.isSimpleParamList=function(e){for(var t=0,s=e;t<s.length;t+=1){if("Identifier"!==s[t].type)return!1}return!0},na.checkParams=function(e,t){for(var s={},i=0,a=e.params;i<a.length;i+=1){var r=a[i];this.checkLVal(r,1,t?null:s)}},na.parseExprList=function(e,t,s,i){for(var a=[],r=!0;!this.eat(e);){if(r)r=!1;else if(this.expect(Ni.comma),t&&this.afterTrailingComma(e))break;var n=void 0;s&&this.type===Ni.comma?n=null:this.type===Ni.ellipsis?(n=this.parseSpread(i),i&&this.type===Ni.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):n=this.parseMaybeAssign(!1,i),a.push(n)}return a},na.checkUnreserved=function(e){var t=e.start,s=e.end,i=e.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(t,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(t,"Cannot use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(t,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,s).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(t,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(t,"The keyword '"+i+"' is reserved"))},na.parseIdent=function(e,t){var s=this.startNode();return this.type===Ni.name?s.name=this.value:this.type.keyword?(s.name=this.type.keyword,"class"!==s.name&&"function"!==s.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(s,"Identifier"),e||(this.checkUnreserved(s),"await"!==s.name||this.awaitIdentPos||(this.awaitIdentPos=s.start)),s},na.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===Ni.semi||this.canInsertSemicolon()||this.type!==Ni.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(Ni.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,"YieldExpression")},na.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!1),this.finishNode(e,"AwaitExpression")};var ha=$i.prototype;ha.raise=function(e,t){var s=Hi(this.input,e);t+=" ("+s.line+":"+s.column+")";var i=new SyntaxError(t);throw i.pos=e,i.loc=s,i.raisedAt=this.pos,i},ha.raiseRecoverable=ha.raise,ha.curPosition=function(){if(this.options.locations)return new Yi(this.curLine,this.pos-this.lineStart)};var ca=$i.prototype,la=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};ca.enterScope=function(e){this.scopeStack.push(new la(e))},ca.exitScope=function(){this.scopeStack.pop()},ca.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},ca.declareName=function(e,t,s){var i=!1;if(2===t){var a=this.currentScope();i=a.lexical.indexOf(e)>-1||a.functions.indexOf(e)>-1||a.var.indexOf(e)>-1,a.lexical.push(e),this.inModule&&1&a.flags&&delete this.undefinedExports[e]}else if(4===t){this.currentScope().lexical.push(e)}else if(3===t){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(e)>-1:r.lexical.indexOf(e)>-1||r.var.indexOf(e)>-1,r.functions.push(e)}else for(var n=this.scopeStack.length-1;n>=0;--n){var o=this.scopeStack[n];if(o.lexical.indexOf(e)>-1&&!(32&o.flags&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){i=!0;break}if(o.var.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e],3&o.flags)break}i&&this.raiseRecoverable(s,"Identifier '"+e+"' has already been declared")},ca.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},ca.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},ca.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},ca.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var _a=function(e,t,s){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new Gi(e,s)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},ua=$i.prototype;function da(e,t,s,i){return e.type=t,e.end=s,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=s),e}ua.startNode=function(){return new _a(this,this.start,this.startLoc)},ua.startNodeAt=function(e,t){return new _a(this,e,t)},ua.finishNode=function(e,t){return da.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},ua.finishNodeAt=function(e,t,s,i){return da.call(this,e,t,s,i)};var pa=function(e,t,s,i,a){this.token=e,this.isExpr=!!t,this.preserveSpace=!!s,this.override=i,this.generator=!!a},ma={b_stat:new pa("{",!1),b_expr:new pa("{",!0),b_tmpl:new pa("${",!1),p_stat:new pa("(",!1),p_expr:new pa("(",!0),q_tmpl:new pa("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new pa("function",!1),f_expr:new pa("function",!0),f_expr_gen:new pa("function",!0,!1,null,!0),f_gen:new pa("function",!1,!1,null,!0)},ga=$i.prototype;ga.initialContext=function(){return[ma.b_stat]},ga.braceIsBlock=function(e){var t=this.curContext();return t===ma.f_expr||t===ma.f_stat||(e!==Ni.colon||t!==ma.b_stat&&t!==ma.b_expr?e===Ni._return||e===Ni.name&&this.exprAllowed?bi.test(this.input.slice(this.lastTokEnd,this.start)):e===Ni._else||e===Ni.semi||e===Ni.eof||e===Ni.parenR||e===Ni.arrow||(e===Ni.braceL?t===ma.b_stat:e!==Ni._var&&e!==Ni._const&&e!==Ni.name&&!this.exprAllowed):!t.isExpr)},ga.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ga.updateContext=function(e){var t,s=this.type;s.keyword&&e===Ni.dot?this.exprAllowed=!1:(t=s.updateContext)?t.call(this,e):this.exprAllowed=s.beforeExpr},Ni.parenR.updateContext=Ni.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===ma.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},Ni.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ma.b_stat:ma.b_expr),this.exprAllowed=!0},Ni.dollarBraceL.updateContext=function(){this.context.push(ma.b_tmpl),this.exprAllowed=!0},Ni.parenL.updateContext=function(e){var t=e===Ni._if||e===Ni._for||e===Ni._with||e===Ni._while;this.context.push(t?ma.p_stat:ma.p_expr),this.exprAllowed=!0},Ni.incDec.updateContext=function(){},Ni._function.updateContext=Ni._class.updateContext=function(e){!e.beforeExpr||e===Ni.semi||e===Ni._else||e===Ni._return&&bi.test(this.input.slice(this.lastTokEnd,this.start))||(e===Ni.colon||e===Ni.braceL)&&this.curContext()===ma.b_stat?this.context.push(ma.f_stat):this.context.push(ma.f_expr),this.exprAllowed=!1},Ni.backQuote.updateContext=function(){this.curContext()===ma.q_tmpl?this.context.pop():this.context.push(ma.q_tmpl),this.exprAllowed=!1},Ni.star.updateContext=function(e){if(e===Ni._function){var t=this.context.length-1;this.context[t]===ma.f_expr?this.context[t]=ma.f_expr_gen:this.context[t]=ma.f_gen}this.exprAllowed=!0},Ni.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==Ni.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var Ea="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",wa=Ea+" Extended_Pictographic",fa={9:Ea,10:wa,11:wa},ya="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",va="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",Aa=va+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",Sa={9:va,10:Aa,11:Aa+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"},Ta={};function Ia(e){var t=Ta[e]={binary:Fi(fa[e]+" "+ya),nonBinary:{General_Category:Fi(ya),Script:Fi(Sa[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}Ia(9),Ia(10),Ia(11);var Ca=$i.prototype,Pa=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=Ta[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Oa(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Da(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function Na(e){return e>=65&&e<=90||e>=97&&e<=122}function ba(e){return Na(e)||95===e}function Ma(e){return ba(e)||xa(e)}function xa(e){return e>=48&&e<=57}function La(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ra(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function Ba(e){return e>=48&&e<=55}Pa.prototype.reset=function(e,t,s){var i=-1!==s.indexOf("u");this.start=0|e,this.source=t+"",this.flags=s,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},Pa.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},Pa.prototype.at=function(e,t){void 0===t&&(t=!1);var s=this.source,i=s.length;if(e>=i)return-1;var a=s.charCodeAt(e);if(!t&&!this.switchU||a<=55295||a>=57344||e+1>=i)return a;var r=s.charCodeAt(e+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},Pa.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var s=this.source,i=s.length;if(e>=i)return i;var a,r=s.charCodeAt(e);return!t&&!this.switchU||r<=55295||r>=57344||e+1>=i||(a=s.charCodeAt(e+1))<56320||a>57343?e+1:e+2},Pa.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},Pa.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Pa.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Pa.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},Ca.validateRegExpFlags=function(e){for(var t=e.validFlags,s=e.flags,i=0;i<s.length;i++){var a=s.charAt(i);-1===t.indexOf(a)&&this.raise(e.start,"Invalid regular expression flag"),s.indexOf(a,i+1)>-1&&this.raise(e.start,"Duplicate regular expression flag")}},Ca.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},Ca.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,s=e.backReferenceNames;t<s.length;t+=1){var i=s[t];-1===e.groupNames.indexOf(i)&&e.raise("Invalid named capture referenced")}},Ca.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},Ca.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},Ca.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise("Invalid quantifier"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},Ca.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var s=!1;if(this.options.ecmaVersion>=9&&(s=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!s,!0}return e.pos=t,!1},Ca.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},Ca.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},Ca.regexp_eatBracedQuantifier=function(e,t){var s=e.pos;if(e.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(a=e.lastIntValue),e.eat(125)))return-1!==a&&a<i&&!t&&e.raise("numbers out of order in {} quantifier"),!0;e.switchU&&!t&&e.raise("Incomplete quantifier"),e.pos=s}return!1},Ca.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},Ca.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},Ca.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}e.pos=t}return!1},Ca.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},Ca.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},Ca.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},Ca.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Da(t)&&(e.lastIntValue=t,e.advance(),!0)},Ca.regexp_eatPatternCharacters=function(e){for(var t=e.pos,s=0;-1!==(s=e.current())&&!Da(s);)e.advance();return e.pos!==t},Ca.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},Ca.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},Ca.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},Ca.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=Oa(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Oa(e.lastIntValue);return!0}return!1},Ca.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,s=this.options.ecmaVersion>=11,i=e.current(s);return e.advance(s),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,s)&&(i=e.lastIntValue),function(e){return Ai(e,!0)||36===e||95===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ca.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,s=this.options.ecmaVersion>=11,i=e.current(s);return e.advance(s),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,s)&&(i=e.lastIntValue),function(e){return Si(e,!0)||36===e||95===e||8204===e||8205===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ca.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},Ca.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var s=e.lastIntValue;if(e.switchU)return s>e.maxBackReference&&(e.maxBackReference=s),!0;if(s<=e.numCapturingParens)return!0;e.pos=t}return!1},Ca.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},Ca.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},Ca.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},Ca.regexp_eatZero=function(e){return 48===e.current()&&!xa(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},Ca.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},Ca.regexp_eatControlLetter=function(e){var t=e.current();return!!Na(t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ca.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var s,i=e.pos,a=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(a&&r>=55296&&r<=56319){var n=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=1024*(r-55296)+(o-56320)+65536,!0}e.pos=n,e.lastIntValue=r}return!0}if(a&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((s=e.lastIntValue)>=0&&s<=1114111))return!0;a&&e.raise("Invalid unicode escape"),e.pos=i}return!1},Ca.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},Ca.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},Ca.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},Ca.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var s=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,s,i),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var a=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,a),!0}return!1},Ca.regexp_validateUnicodePropertyNameAndValue=function(e,t,s){Wi(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(s)||e.raise("Invalid property value")},Ca.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},Ca.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";ba(t=e.current());)e.lastStringValue+=Oa(t),e.advance();return""!==e.lastStringValue},Ca.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Ma(t=e.current());)e.lastStringValue+=Oa(t),e.advance();return""!==e.lastStringValue},Ca.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},Ca.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},Ca.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var s=e.lastIntValue;!e.switchU||-1!==t&&-1!==s||e.raise("Invalid character class"),-1!==t&&-1!==s&&t>s&&e.raise("Range out of order in character class")}}},Ca.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var s=e.current();(99===s||Ba(s))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return 93!==i&&(e.lastIntValue=i,e.advance(),!0)},Ca.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},Ca.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!xa(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ca.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},Ca.regexp_eatDecimalDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;xa(s=e.current());)e.lastIntValue=10*e.lastIntValue+(s-48),e.advance();return e.pos!==t},Ca.regexp_eatHexDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;La(s=e.current());)e.lastIntValue=16*e.lastIntValue+Ra(s),e.advance();return e.pos!==t},Ca.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var s=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*s+e.lastIntValue:e.lastIntValue=8*t+s}else e.lastIntValue=t;return!0}return!1},Ca.regexp_eatOctalDigit=function(e){var t=e.current();return Ba(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},Ca.regexp_eatFixedHexDigits=function(e,t){var s=e.pos;e.lastIntValue=0;for(var i=0;i<t;++i){var a=e.current();if(!La(a))return e.pos=s,!1;e.lastIntValue=16*e.lastIntValue+Ra(a),e.advance()}return!0};var Ua=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new Gi(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},ka=$i.prototype;function Wa(e){return"function"!=typeof BigInt?null:BigInt(e.replace(/_/g,""))}function Va(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}ka.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Ua(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},ka.getToken=function(){return this.next(),new Ua(this)},"undefined"!=typeof Symbol&&(ka[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===Ni.eof,value:t}}}}),ka.curContext=function(){return this.context[this.context.length-1]},ka.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(Ni.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},ka.readToken=function(e){return Ai(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},ka.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},ka.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(Mi.lastIndex=s;(e=Mi.exec(this.input))&&e.index<this.pos;)++this.curLine,this.lineStart=e.index+e[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(s+2,i),s,this.pos,t,this.curPosition())},ka.skipLineComment=function(e){for(var t=this.pos,s=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!xi(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,s,this.curPosition())},ka.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&Li.test(String.fromCharCode(e))))break e;++this.pos}}},ka.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=e,this.value=t,this.updateContext(s)},ka.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(Ni.ellipsis)):(++this.pos,this.finishToken(Ni.dot))},ka.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(Ni.assign,2):this.finishOp(Ni.slash,1)},ka.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),s=1,i=42===e?Ni.star:Ni.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++s,i=Ni.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(Ni.assign,s+1):this.finishOp(i,s)},ka.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(Ni.assign,3);return this.finishOp(124===e?Ni.logicalOR:Ni.logicalAND,2)}return 61===t?this.finishOp(Ni.assign,2):this.finishOp(124===e?Ni.bitwiseOR:Ni.bitwiseAND,1)},ka.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(Ni.assign,2):this.finishOp(Ni.bitwiseXOR,1)},ka.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!bi.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(Ni.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(Ni.assign,2):this.finishOp(Ni.plusMin,1)},ka.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),s=1;return t===e?(s=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(Ni.assign,s+1):this.finishOp(Ni.bitShift,s)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(s=2),this.finishOp(Ni.relational,s)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},ka.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(Ni.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(Ni.arrow)):this.finishOp(61===e?Ni.eq:Ni.prefix,1)},ka.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var s=this.input.charCodeAt(this.pos+2);if(s<48||s>57)return this.finishOp(Ni.questionDot,2)}if(63===t){if(e>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(Ni.assign,3);return this.finishOp(Ni.coalesce,2)}}return this.finishOp(Ni.question,1)},ka.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(Ni.parenL);case 41:return++this.pos,this.finishToken(Ni.parenR);case 59:return++this.pos,this.finishToken(Ni.semi);case 44:return++this.pos,this.finishToken(Ni.comma);case 91:return++this.pos,this.finishToken(Ni.bracketL);case 93:return++this.pos,this.finishToken(Ni.bracketR);case 123:return++this.pos,this.finishToken(Ni.braceL);case 125:return++this.pos,this.finishToken(Ni.braceR);case 58:return++this.pos,this.finishToken(Ni.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(Ni.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(Ni.prefix,1)}this.raise(this.pos,"Unexpected character '"+Va(e)+"'")},ka.finishOp=function(e,t){var s=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,s)},ka.readRegexp=function(){for(var e,t,s=this.pos;;){this.pos>=this.input.length&&this.raise(s,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(bi.test(i)&&this.raise(s,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++this.pos}var a=this.input.slice(s,this.pos);++this.pos;var r=this.pos,n=this.readWord1();this.containsEsc&&this.unexpected(r);var o=this.regexpState||(this.regexpState=new Pa(this));o.reset(s,a,n),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(a,n)}catch(e){}return this.finishToken(Ni.regexp,{pattern:a,flags:n,value:h})},ka.readInt=function(e,t,s){for(var i=this.options.ecmaVersion>=12&&void 0===t,a=s&&48===this.input.charCodeAt(this.pos),r=this.pos,n=0,o=0,h=0,c=null==t?1/0:t;h<c;++h,++this.pos){var l=this.input.charCodeAt(this.pos),_=void 0;if(i&&95===l)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===o&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===h&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),o=l;else{if((_=l>=97?l-97+10:l>=65?l-65+10:l>=48&&l<=57?l-48:1/0)>=e)break;o=l,n=n*e+_}}return i&&95===o&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=t&&this.pos-r!==t?null:n},ka.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var s=this.readInt(e);return null==s&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(s=Wa(this.input.slice(t,this.pos)),++this.pos):Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(Ni.num,s)},ka.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var s=this.pos-t>=2&&48===this.input.charCodeAt(t);s&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!s&&!e&&this.options.ecmaVersion>=11&&110===i){var a=Wa(this.input.slice(t,this.pos));return++this.pos,Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(Ni.num,a)}s&&/[89]/.test(this.input.slice(t,this.pos))&&(s=!1),46!==i||s||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||s||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),Ai(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r,n=(r=this.input.slice(t,this.pos),s?parseInt(r,8):parseFloat(r.replace(/_/g,"")));return this.finishToken(Ni.num,n)},ka.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},ka.readString=function(e){for(var t="",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;92===i?(t+=this.input.slice(s,this.pos),t+=this.readEscapedChar(!1),s=this.pos):(xi(i,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(s,this.pos++),this.finishToken(Ni.string,t)};var Fa={};ka.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Fa)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},ka.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Fa;this.raise(e,t)},ka.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var s=this.input.charCodeAt(this.pos);if(96===s||36===s&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==Ni.template&&this.type!==Ni.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(Ni.template,e)):36===s?(this.pos+=2,this.finishToken(Ni.dollarBraceL)):(++this.pos,this.finishToken(Ni.backQuote));if(92===s)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(xi(s)){switch(e+=this.input.slice(t,this.pos),++this.pos,s){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(s)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},ka.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(Ni.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},ka.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Va(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(e){var s=this.pos-1;return this.invalidStringToken(s,"Invalid escape sequence in template string"),null}default:if(t>=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),"0"===i&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return xi(t)?"":String.fromCharCode(t)}},ka.readHexChar=function(e){var t=this.pos,s=this.readInt(16,e);return null===s&&this.invalidStringToken(t,"Bad character escape sequence"),s},ka.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,s=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(Si(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,e+=this.input.slice(s,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var n=this.readCodePoint();(t?Ai:Si)(n,i)||this.invalidStringToken(r,"Invalid Unicode escape"),e+=Va(n),s=this.pos}t=!1}return e+this.input.slice(s,this.pos)},ka.readWord=function(){var e=this.readWord1(),t=Ni.name;return this.keywords.test(e)&&(t=Oi[e]),this.finishToken(t,e)};function Ya(e){return $i.parse(e,{ecmaVersion:2020})}function Ga(e){return["ArrayOrObject1D","ArrayOrObject2D","ArrayOrObject3DPlus","Literal","Symbol","UnaryOperation","BinaryOperation","Random","CallDefinedFunction","AnyFunction","ConditionalExpression","ArrayExpression","ObjectExpression"].includes(e.type)}function Ha(e){switch(e.type){case"Program":return function(e){if(1!==e.body.length)throw new Error("bodyが1以外の場合評価できません。");return Ha(e.body[0])}(e);case"ExpressionStatement":return function(e){return Ha(e.expression)}(e);case"AssignmentExpression":return function(e){const t=Ha(e.left),s=Ha(e.right);if(!Ga(s))throw new Error("値以外を代入式の右辺に設定できません");switch(e.operator){case"=":case"+=":case"-=":case"*=":case"/=":if("ArrayOrObject2D"===t.type){if("m"===t.name||"o"===t.name)return{type:"PartsAssignment",partsKind:"m"===t.name?"map":"object",destinationX:t.indecies[0],destinationY:t.indecies[1],value:s,operator:e.operator};if("v"===t.name)return{type:"UserVariableAssignment",index:[t.indecies[0],t.indecies[1]],value:s,operator:e.operator};throw new Error("想定していない記号が2次元配列ででてきました")}if("ArrayOrObject1D"===t.type){if("ITEM"===t.name)return{type:"ItemAssignment",itemBoxPosition1to12:t.indecies[0],value:s,operator:e.operator};if("v"===t.name)return{type:"UserVariableAssignment",index:[t.indecies[0]],value:s,operator:e.operator};if("LP"===t.name)return{type:"LoopPointerAssignment",index:t.indecies[0],value:s,operator:e.operator};throw new Error(`1次元配列にて想定していないシンボルが指定されました ${t.name}`)}if("Symbol"===t.type){if("m"===t.name||"o"===t.name||"v"===t.name||"ITEM"===t.name||"X"===t.name||"Y"===t.name||"ID"===t.name||"TYPE"===t.name||"CX"===t.name||"CY"===t.name||"PICTURE"===t.name||"PLAYER_PX"===t.name||"PLAYER_PY"===t.name||"MOVE_SPEED"===t.name||"MOVE_FRAME_TIME"===t.name||"LP"===t.name||"undefined"===t.name)throw new Error("このシンボルには代入できません");if("AT_TOTAL"===t.name)throw new Error('"装備品込みの攻撃力(AT_TOTAL)への代入はできません。"');if("DF_TOTAL"===t.name)throw new Error('"装備品込みの防御力(DF_TOTAL)への代入はできません。"');if("ENEMY_HP"===t.name||"ENEMY_AT"===t.name||"ENEMY_DF"===t.name||"ENEMY_GD"===t.name)throw new Error("敵ステータス (ENEMY_HP, ENEMY_AT, ENEMY_DF, ENEMY_GD) への代入はできません。");return{type:"SpecialParameterAssignment",kind:t.name,value:s,operator:e.operator}}if("Literal"===t.type)throw new Error("数値には代入できません");if("ArrayOrObject3DPlus"===t.type&&"v"===t.name)return{type:"UserVariableAssignment",index:t.indecies,value:s,operator:e.operator};throw new Error("代入できません");default:throw new Error("想定していないオペレーターです")}}(e);case"MemberExpression":return function(e){const t=Ha(e.object),s=Ha(e.property);if("Symbol"===t.type){if(!["v","m","o","ITEM","LP","PICTURE"].includes(t.name))throw new Error("このシンボルは配列にできません");if(Ga(s))return{type:"ArrayOrObject1D",name:t.name,indecies:[s]};throw new Error("WWAでは存在しない構文です")}if("ArrayOrObject1D"===t.type){if("ITEM"===t.name||"PICTURE"===t.name)throw new Error("この配列は2次元以上にはできません。");if(Ga(s))return{type:"ArrayOrObject2D",name:t.name,indecies:[...t.indecies,s]};throw new Error("WWAでは存在しない構文です")}if("ArrayOrObject2D"!==t.type&&"ArrayOrObject3DPlus"!==t.type)throw new Error("WWAでは存在しない構文です");if("m"===t.name||"o"===t.name)throw new Error("この配列は3次元以上にはできません。");if("v"===t.name&&Ga(s))return{type:"ArrayOrObject3DPlus",name:t.name,indecies:[...t.indecies,s]}}(e);case"UnaryExpression":return function(e){const t=Ha(e.argument);if(!["+","-","!"].includes(e.operator))throw new Error("未定義の演算子です :"+e.operator);if(!Ga(t))throw new Error("単項演算子が適用できません");return{type:"UnaryOperation",operator:e.operator,argument:t}}(e);case"BinaryExpression":return function(e){const t=Ha(e.left),s=Ha(e.right);if(!Ga(t)||!Ga(s))throw new Error("左辺または右辺が評価不能です");switch(e.operator){case"+":case"-":case"*":case"/":case"%":case">":case"<":case">=":case"<=":case"==":case"!=":return{type:"BinaryOperation",operator:e.operator,left:t,right:s};default:throw new Error("未定義の演算子です :"+e.operator)}}(e);case"Identifier":return function(e){switch(e.name){case"m":case"o":case"ITEM":case"X":case"Y":case"ID":case"TYPE":case"PX":case"PY":case"CX":case"CY":case"v":case"HP":case"HPMAX":case"AT":case"AT_TOTAL":case"DF":case"DF_TOTAL":case"GD":case"STEP":case"TIME":case"PDIR":case"i":case"j":case"k":case"LOOPLIMIT":case"ITEM_ID":case"ITEM_POS":case"ENEMY_HP":case"ENEMY_AT":case"ENEMY_DF":case"PICTURE":case"PLAYER_PX":case"PLAYER_PY":case"MOVE_SPEED":case"MOVE_FRAME_TIME":case"LP":case"undefined":return{type:"Symbol",name:e.name};default:return{type:"Literal",value:e.name}}}(e);case"Literal":return function(e){return{type:"Literal",value:e.value}}(e);case"CallExpression":return function(e){const t=e.callee.name;switch(t){case"RAND":return function(e){if(e.length<1)throw new Error("RAND関数には引数が必要です。");return{type:"Random",value:Ha(e[0])}}(e.arguments);case"JUMPGATE":return function(e){if(e.length<2)throw new Error("RAND関数には引数が2つ必要です。");const t={x:e[0],y:e[1]};return{type:"Jumpgate",x:Ha(t.x),y:Ha(t.y)}}(e.arguments);case"MSG":case"MESSAGE":return{type:"Msg",value:Ha(e.arguments[0])};case"SOUND":case"SAVE":case"LOG":case"ABLE_CHANGE_SPEED":case"SET_SPEED":case"CHANGE_GAMEOVER_POS":case"DEL_PLAYER":case"RESTART_GAME":case"URL_JUMPGATE":case"HIDE_STATUS":case"PARTS":case"FACE":case"EFFECT":case"CHANGE_PLAYER_IMAGE":case"HAS_ITEM":case"REMOVE_ITEM":case"MOVE":case"PARTS_MOVE":case"IS_PLAYER_WAITING_MESSAGE":case"GET_UNIXTIME":case"GET_DATE_YEAR":case"GET_DATE_MONTH":case"GET_DATE_DAY":case"GET_DATE_HOUR":case"GET_DATE_MINUTES":case"GET_DATE_SECONDS":case"GET_DATE_MILLISECONDS":case"GET_DATE_WEEKDAY":case"CHANGE_SYSMSG":case"PICTURE":case"PICTURE_FROM_PARTS":case"CLEAR_ALL_PICTURES":case"HAS_PICTURE":case"SHOW_USER_DEF_VAR":case"ABS":case"GET_GAMEOVER_POS_X":case"GET_GAMEOVER_POS_Y":case"ABORT_BATTLE":case"EXIT":case"GET_IMG_POS_X":case"GET_IMG_POS_Y":case"LENGTH":case"IS_NUMBER":return function(e,t){return{type:"AnyFunction",functionName:t,value:e.map((e=>Ha(e)))}}(e.arguments,t);default:return{type:"CallDefinedFunction",functionName:t}}}(e);case"IfStatement":return function(e){const t=Ha(e.consequent),s=Ha(e.test);return{type:"IfStatement",consequent:t,test:s,alternate:e.alternate?Ha(e.alternate):void 0}}(e);case"BlockStatement":return function(e){return{type:"BlockStatement",value:e.body.map((e=>Ha(e)))}}(e);case"FunctionDeclaration":return function(e){return{type:"DefinedFunction",functionName:e.id.name,body:Ha(e.body)}}(e);case"ForStatement":return function(e){const t=e.body.body.map((e=>Ha(e)));return{type:"ForStatement",body:t,init:Ha(e.init),test:Ha(e.test),update:Ha(e.update)}}(e);case"BreakStatement":return function(e){return{type:"Break",label:e.label}}(e);case"ReturnStatement":return function(e){return{type:"Return",argument:Ha(e.argument)}}(e);case"ContinueStatement":return function(e){return{type:"Continue",label:e.label}}(e);case"UpdateExpression":return function(e){return{type:"UpdateExpression",operator:e.operator,argument:Ha(e.argument)}}(e);case"LogicalExpression":return function(e){return{type:"LogicalExpression",operator:e.operator,left:Ha(e.left),right:Ha(e.right)}}(e);case"TemplateLiteral":return function(e){return{type:"TemplateLiteral",expressions:e.expressions.map((e=>Ha(e))),quasis:e.quasis.map((e=>Ha(e)))}}(e);case"TemplateElement":return function(e){return{type:"TemplateElement",value:e.value}}(e);case"ConditionalExpression":return function(e){const t=Ha(e.consequent),s=Ha(e.alternate),i=Ha(e.test);return{type:"ConditionalExpression",consequent:t,test:i,alternate:s}}(e);case"Property":return Ka(e);case"ObjectExpression":return function(e){return{type:"ObjectExpression",properties:e.properties.map(Ka)}}(e);case"ArrayExpression":return function(e){return{type:"ArrayExpression",elements:e.elements.map(Ha)}}(e);default:throw console.log(e),new Error("未定義の AST ノードです :"+e.type)}}function Ka(e){const t=Ha(e.key);if("Symbol"===t.type)throw new Error(`Object のキー ${t.name} は予約されているため、使用できません。`);if("Literal"!==t.type)throw new Error(`Object のキーが不正です。 Literal を期待していましたが、実際は ${t.type} でした。`);return{type:"Property",key:t,value:Ha(e.value)}}$i.acorn={Parser:$i,version:"7.4.1",defaultOptions:Ki,Position:Yi,SourceLocation:Gi,getLineInfo:Hi,Node:_a,TokenType:Ti,tokTypes:Ni,keywordTypes:Oi,TokContext:pa,tokContexts:ma,isIdentifierChar:Si,isIdentifierStart:Ai,Token:Ua,isNewLine:xi,lineBreak:bi,lineBreakG:Mi,nonASCIIwhitespace:Li};const ja=[v.OBJECT,v.MAP];const Xa=Object.freeze({"=":(e,t)=>t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"*=":(e,t)=>e*t,"/=":(e,t)=>e/t});class $a{constructor(e){this.wwa=e,this.loop_limit=1e5,this.state={messagePageAdditionalQueue:[]}}setTriggerParts(e,t,s){this.state={...this.state,triggerParts:{id:e,type:t,position:s}}}clearTemporaryState(){this.state={...this.state,triggerParts:void 0,messagePageAdditionalQueue:[]}}setEarnedItem(e,t){this.state={...this.state,earnedItem:{partsId:e,itemPos1To12:t}}}clearEarnedItem(){this.state={...this.state,earnedItem:void 0}}setBattleDamageCalculationMode(e){this.state={...this.state,battleDamageCalculation:{estimatingParams:e}}}clearBattleDamageCalculationMode(){this.state={...this.state,battleDamageCalculation:void 0}}evalWwaNodes(e){return this.evalWwaNode({type:"BlockStatement",value:e})}evalWwaNode(e){if("BlockStatement"!==e.type||!Array.isArray(e.value)||0!==e.value.length)try{return new Ja(this).evalWwaNode(e)}catch(e){if(e instanceof Za||e instanceof qa)return e.value;throw e}}addPageAdditionalItem(e){this.state.messagePageAdditionalQueue.push(e)}pickPageAdditionalQueue(){const e=[...this.state.messagePageAdditionalQueue];return this.state.messagePageAdditionalQueue=[],e}updateLoopLimit(e){this.loop_limit=e}}class Ja{constructor(e){this.generator=e,this.for_id={i:null,j:null,k:null,LP:[],loopCount:0,break_flag:!1,continue_flag:!1}}evalWwaNodes(e){let t;return e.forEach((e=>{t=this.evalWwaNode(e)})),t}evalWwaNode(e){if(!this.for_id.break_flag&&!this.for_id.continue_flag)switch(e.type){case"UnaryOperation":return this.evalUnaryOperation(e);case"BinaryOperation":return this.evalBinaryOperation(e);case"Symbol":return this.evalSymbol(e);case"ArrayOrObject1D":return this.evalArrayOrObject1D(e);case"ArrayOrObject2D":return this.evalArrayOrObject2D(e);case"ArrayOrObject3DPlus":return this.evalArrayOrObject3DPlus(e);case"Literal":return this.evalLiteral(e);case"UserVariableAssignment":return this.evalSetUserVariable(e);case"SpecialParameterAssignment":return this.evalSetSpecialParameter(e);case"Random":return this.evalRandom(e);case"Jumpgate":return this.evalJumpgate(e);case"Msg":return this.evalMessage(e);case"ItemAssignment":return this.itemAssignment(e);case"IfStatement":return this.ifStatement(e);case"BlockStatement":return this.blockStatement(e);case"PartsAssignment":return this.partsAssignment(e);case"ForStatement":return this.forStateMent(e);case"AnyFunction":return this.wrapCallFunction(e,(e=>this.evalAnyFunction(e)));case"CallDefinedFunction":return this.wrapCallFunction(e,(e=>this.callDefinedFunction(e)));case"Break":return this.breakStatement(e);case"Return":throw new Za(this.returnStatement(e));case"Continue":return this.contunueStatment(e);case"UpdateExpression":return this.updateExpression(e);case"LogicalExpression":return this.logicalExpression(e);case"TemplateLiteral":return this.convertTemplateLiteral(e);case"ConditionalExpression":return this.convertConditionalExpression(e);case"Property":return this.property(e);case"ObjectExpression":return this.objectExpression(e);case"ArrayExpression":return this.arrayExpression(e);case"LoopPointerAssignment":return this.convertLoopPointerExpression(e);default:throw console.log(e),new Error("未定義または未実装のノードです")}}wrapCallFunction(e,t){try{return t(e)}catch(e){if(e instanceof Za)return e.value;throw e}}callDefinedFunction(e){const t=this.generator.wwa.getUserScript(e.functionName);if(null===t)throw new Error(`未定義の関数が呼び出されました: ${e.functionName}`);return this.evalWwaNode(t)}updateExpression(e){if("ArrayOrObject1D"!==e.argument.type&&"ArrayOrObject2D"!==e.argument.type&&"Symbol"!==e.argument.type)throw new Error(`node.argument.typeが インクリメント/デクリメントできる対象ではありません。: ${e.argument.type}`);const t=this.evalWwaNode(e.argument),s=(t=>{switch(e.operator){case"++":return t+1;case"--":return t-1;default:throw new Error("想定外のOperatorが渡されました :"+e.operator)}})(t),i={type:"Literal",value:s};switch(e.argument.type){case"ArrayOrObject1D":if("v"===e.argument.name)this.evalSetUserVariable({type:"UserVariableAssignment",index:[e.argument.indecies[0]],value:i});else if("ITEM"===e.argument.name)this.itemAssignment({type:"ItemAssignment",itemBoxPosition1to12:e.argument.indecies[0],value:i});else{if("LP"!==e.argument.name)throw new Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);this.convertLoopPointerExpression({type:"LoopPointerAssignment",index:e.argument.indecies[0],value:i,operator:"="})}break;case"ArrayOrObject2D":{const t={type:"PartsAssignment",destinationX:e.argument.indecies[0],destinationY:e.argument.indecies[1],value:i,operator:"="};if("m"===e.argument.name)this.partsAssignment({...t,partsKind:"map"});else{if("o"!==e.argument.name)throw new Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);this.partsAssignment({...t,partsKind:"object"})}break}case"Symbol":{const t={type:"SpecialParameterAssignment",kind:e.argument.name,value:i};this.evalSetSpecialParameter(t);break}}return t}logicalExpression(e){const t=this.evalWwaNode(e.left),s=this.evalWwaNode(e.right);switch(e.operator){case"||":return t||s;case"&&":return t&&s;default:throw new Error("存在しない論理式です!: "+e.operator)}}convertTemplateLiteral(e){const t=e.expressions.map((e=>this.evalWwaNode(e))),s=e.quasis.map((e=>e.value.cooked));let i="";return s.forEach(((e,s)=>{i+=e,void 0!==t[s]&&(i+=t[s])})),i}contunueStatment(e){this.for_id.continue_flag=!0}breakStatement(e){this.for_id.break_flag=!0}returnStatement(e){return this.evalWwaNode(e.argument)}forStateMent(e){const t=e.init;for(((()=>{if("kind"in t)switch(t.kind){case"i":if(null!==this.for_id.i)throw new Error("iの値が既に外側のforループで使われています。");break;case"j":if(null!==this.for_id.j)throw new Error("jの値が既に外側のforループで使われています。");break;case"k":if(null!==this.for_id.k)throw new Error("kの値が既に外側のforループで使われています。");break;default:throw console.log(e),new Error("予想外の変数がfor文内で使用されました :"+t.kind)}else{if("LoopPointerAssignment"!==t.type)throw console.log(e),new Error("予想外の1次元配列がfor文内で使用されました :"+t);{const e=Number(this.evalWwaNode(t.index));if(Number.isNaN(e))throw new Error(`LPのIndex値はNumberでないといけません。: ${e}`);if(null!==this.for_id.LP[e]&&void 0!==this.for_id.LP[e])throw new Error(`LP[${e}]の値が既に外側のforループで使われています。`)}}this.evalWwaNode(e.init)})());this.evalWwaNode(e.test);this.evalWwaNode(e.update)){if(this.for_id.loopCount++,this.for_id.loopCount>this.generator.loop_limit)throw new Error("処理回数が多すぎます!\n上限値は LOOPLIMIT で変えられます。");if(this.for_id.break_flag)break;if(!this.evalWwaNode(e.test))break;this.evalWwaNodes(e.body),this.for_id.continue_flag=!1}if(this.for_id.break_flag=!1,"kind"in t)switch(t.kind){case"i":this.for_id.i=null;break;case"j":this.for_id.j=null;break;case"k":this.for_id.k=null}else if("LoopPointerAssignment"===t.type){const e=Number(this.evalWwaNode(t.index));this.for_id.LP[e]=null}}_checkArgsLength(e,t){if(t.value.length<e)throw new Error(`関数 ${t.functionName} の引数が不足しています!`)}evalAnyFunction(t){const s=this.generator.wwa.getGameStatus();switch(t.functionName){case"SOUND":{this._checkArgsLength(1,t);const e=this.evalWwaNode(t.value[0]);return this.generator.wwa.playSound(e),e}case"SAVE":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return this.generator.wwa.disableSave(e),e}case"LOG":{this._checkArgsLength(1,t);const s=this.evalWwaNode(t.value[0]);return void console.log(s instanceof Map?e(s):s)}case"ABLE_CHANGE_SPEED":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return this.generator.wwa.speedChangeJudge(e),e}case"SET_SPEED":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return void this.generator.wwa.setPlayerSpeedIndex(e)}case"CHANGE_GAMEOVER_POS":{this._checkArgsLength(2,t);const e={x:Number(this.evalWwaNode(t.value[0])),y:Number(this.evalWwaNode(t.value[1]))};if(e.x<0||e.x>=this.generator.wwa.getMapWidth()||e.y<0||e.y>this.generator.wwa.getMapWidth())throw new Error("マップの範囲外が指定されています!");return void this.generator.wwa.setGameOverPosition(new l(e.x,e.y))}case"DEL_PLAYER":{this._checkArgsLength(1,t);const e=Boolean(this.evalWwaNode(t.value[0]));return void this.generator.wwa.setDelPlayer(e)}case"RESTART_GAME":return void this.generator.wwa.restartGame();case"URL_JUMPGATE":throw new Error("URL_JUMPGATE 関数は調整中のためご利用になれません");case"HIDE_STATUS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Boolean(this.evalWwaNode(t.value[1]));return void this.generator.wwa.hideStatus(e,s)}case"PARTS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1]));let i=t.value[2]?Number(this.evalWwaNode(t.value[2])):0,a=!!t.value[3]&&Boolean(this.evalWwaNode(t.value[3]));if(e<0||s<0)throw new Error("パーツ番号が不正です");if(!ja.includes(i))throw new Error("パーツ種別が不明です");return void this.generator.wwa.replaceParts(e,s,i,a)}case"FACE":{this._checkArgsLength(6,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1])),i=Number(this.evalWwaNode(t.value[2])),a=Number(this.evalWwaNode(t.value[3])),r=Number(this.evalWwaNode(t.value[4])),n=Number(this.evalWwaNode(t.value[5]));if(e<0||s<0||i<0||a<0||r<0||n<0)throw new Error("各引数は0以上の整数でなければなりません。");return void this.generator.addPageAdditionalItem({type:"face",data:{face:new u(new l(e,s),new l(i,a),new l(r,n))}})}case"EFFECT":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));if(e<0)throw new Error("待ち時間は0以上の整数でなければなりません。");if(0===e)return void this.generator.wwa.stopEffect();const s=[];for(let e=1;e<t.value.length;e+=2){const i=Number(this.evalWwaNode(t.value[e]));if(i<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");if(e+1===t.value.length)throw new Error("画像のパーツ座標指定で、Y座標が指定されていません。");const a=Number(this.evalWwaNode(t.value[e+1]));if(a<0)throw new Error("画像のパーツ座標指定は0以上の整数でなければなりません。");s.push(new l(i,a))}return void this.generator.wwa.setEffect(e,s)}case"CHANGE_PLAYER_IMAGE":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1])),i=new l(e,s);return void this.generator.wwa.setPlayerImgCoord(i)}case"HAS_ITEM":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return s.itemBox.includes(e)}case"REMOVE_ITEM":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),i=!!t.value[1]&&1===this.evalWwaNode(t.value[1]);let a=0;for(let t=0;t<s.itemBox.length;t++)if(e===s.itemBox[t]&&(this.generator.wwa.setPlayerGetItem(t+1,0),a++,!i))return a;return a}case"MOVE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));if(e<=0||e>9)throw Error("MOVEの移動先は2/4/6/8で指定してください!");return this.generator.wwa.movePlayer(e),this.generator.wwa.movePlayer(e),0}case"PARTS_MOVE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return this.generator.wwa.setMoveMacroWaitingToPlayer(e),0}case"IS_PLAYER_WAITING_MESSAGE":return this.generator.wwa.isPlayerWaitingMessage();case"GET_UNIXTIME":return Math.floor((new Date).getTime()/1e3);case"GET_DATE_YEAR":return(new Date).getFullYear();case"GET_DATE_MONTH":return(new Date).getMonth()+1;case"GET_DATE_DAY":return(new Date).getDate();case"GET_DATE_HOUR":return(new Date).getHours();case"GET_DATE_MINUTES":return(new Date).getMinutes();case"GET_DATE_SECONDS":return(new Date).getSeconds();case"GET_DATE_MILLISECONDS":return(new Date).getMilliseconds();case"GET_DATE_WEEKDAY":return(new Date).getDay();case"SHOW_USER_DEF_VAR":return void console.log(this.generator.wwa.getAllUserNameVar());case"CHANGE_SYSMSG":{this._checkArgsLength(1,t);const e=this.evalWwaNode(t.value[0]),s=t.value.length>=2?this.evalWwaNode(t.value[1]):void 0,i=this.resolveSystemMessageKeyFromMacroArg(e);if(!i)throw new Error("このIDのシステムメッセージは未定義です。");if("number"==typeof s||"string"==typeof s||"boolean"==typeof s)this.generator.wwa.overwriteSystemMessage(i,String(s));else{if(null!=s)throw new Error("この値は文字列に変換できないため、システムメッセージを表示できません。");this.generator.wwa.overwriteSystemMessage(i,void 0)}break}case"PICTURE":{this._checkArgsLength(1,t);const s=Number(this.evalWwaNode(t.value[0])),i=t.value.length>=2?this.evalWwaNode(t.value[1]):void 0;if(void 0===i)return void this.generator.wwa.deletePictureRegistry(s);if(i instanceof Map)this.generator.wwa.setPictureRegistryFromObject(s,e(i));else{if("string"!=typeof i)throw new Error("ピクチャのプロパティ定義は文字列あるいはオブジェクトである必要があります。");this.generator.wwa.setPictureRegistryFromRawText(s,i)}break}case"PICTURE_FROM_PARTS":{this._checkArgsLength(2,t);const e=Number(this.evalWwaNode(t.value[0])),s=Number(this.evalWwaNode(t.value[1]));if(0===s)return void this.generator.wwa.deletePictureRegistry(e);const i=t.value.length>=3?Number(this.evalWwaNode(t.value[2])):v.OBJECT;if(!ja.includes(i))throw new Error("パーツ種別が不明です");const a=this.generator.wwa.getGameStatus();this.generator.wwa.setPictureRegistry(e,s,i,a.playerCoord);break}case"CLEAR_ALL_PICTURES":this.generator.wwa.clearAllPictures();break;case"HAS_PICTURE":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return s.wwaData.pictureRegistry.some((t=>t.layerNumber===e))}case"ABS":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0]));return Math.abs(e)}case"GET_GAMEOVER_POS_X":return this.generator.wwa.getGemeOverPosition().x;case"GET_GAMEOVER_POS_Y":return this.generator.wwa.getGemeOverPosition().y;case"ABORT_BATTLE":throw this.generator.state.battleDamageCalculation&&(this.generator.state.battleDamageCalculation.aborted=!0),new qa("ABORT_BATTLE");case"EXIT":throw new qa("EXIT",this.evalWwaNode(t.value[0]));case"GET_IMG_POS_X":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),s=0===(void 0!==t.value[1]?Number(this.evalWwaNode(t.value[1])):0)?v.OBJECT:v.MAP;if(s===v.OBJECT){const s=void 0===t.value[2]||0===Number(this.evalWwaNode(t.value[2])),i=this.generator.wwa.getObjectInfo(e),a=s?i[F.ATR_X]:i[F.ATR_X2];return Math.floor(a/F.CHIP_SIZE)}if(s===v.MAP){const t=this.generator.wwa.getMapInfo(e)[F.ATR_X];return Math.floor(t/F.CHIP_SIZE)}throw new Error("GET_IMG_POS_X: 指定したIDのパーツのTypeが異常です。")}case"GET_IMG_POS_Y":{this._checkArgsLength(1,t);const e=Number(this.evalWwaNode(t.value[0])),s=0===(void 0!==t.value[1]?Number(this.evalWwaNode(t.value[1])):0)?v.OBJECT:v.MAP;if(s===v.OBJECT){const s=void 0===t.value[2]||0===Number(this.evalWwaNode(t.value[2])),i=this.generator.wwa.getObjectInfo(e),a=s?i[F.ATR_Y]:i[F.ATR_Y2];return Math.floor(a/F.CHIP_SIZE)}if(s===v.MAP){const t=this.generator.wwa.getMapInfo(e)[F.ATR_Y];return Math.floor(t/F.CHIP_SIZE)}throw new Error("GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。")}case"LENGTH":this._checkArgsLength(1,t);return function(e){switch(typeof e){case"object":if(null===e)break;return Array.isArray(e)?e.length:Object.keys(e).length;case"string":return e.length}throw new Error("LENGTH: 対応できない値が指定されています。")}(this.evalWwaNode(t.value[0]));case"IS_NUMBER":this._checkArgsLength(1,t);return"number"==typeof this.evalWwaNode(t.value[0]);default:throw new Error("未定義の関数が指定されました: "+t.functionName)}}resolveSystemMessageKeyFromMacroArg(e){return"string"==typeof e?n(e)?e:void 0:"number"==typeof e?o(e):void 0}partsAssignment(e){const t=this.generator.wwa.getGameStatus(),s=this.evalWwaNode(e.destinationX),i=this.evalWwaNode(e.destinationY);if("number"!=typeof s||"number"!=typeof i)throw new Error(`座標は数値で指定してください (${s}, ${i})`);new _(this.generator.wwa,s,i);const a="map"===e.partsKind?v.MAP:v.OBJECT,r=this.resolveParts(a,s,i),n=this.evalWwaNode(e.value);switch(e.operator){case"=":case"+=":case"-=":case"*=":case"/=":{const o=0|Xa[e.operator](r,n);if(o<0)throw new Error(`負値のパーツ番号 ${o} は代入できません`);this.generator.wwa.appearPartsEval(t.playerCoord,`${s}`,`${i}`,o,a);break}default:throw new Error(`演算子 ${e.operator} は partsAssignment では使えません`)}}resolveParts(e,t,s){const i=this.generator.wwa.getGameStatus();switch(e){case v.MAP:return i.wwaData.map[s][t];case v.OBJECT:return i.wwaData.mapObject[s][t];default:throw new Error("存在しないPartsTypeです",e)}}blockStatement(e){return this.evalWwaNodes(e.value)}ifStatement(e){return this.evalWwaNode(e.test)?this.evalWwaNode(e.consequent):e.alternate?this.evalWwaNode(e.alternate):void 0}convertConditionalExpression(e){const t=this.evalWwaNode(e.test)?e.consequent:e.alternate;return this.evalWwaNode(t)}property(e){const t=this.evalWwaNode(e.key);if(!pe(t))throw new Error(`オブジェクトのキーはプリミティブ値でなければなりません。: ${t}`);return[String(this.evalWwaNode(e.key)),this.evalWwaNode(e.value)]}objectExpression(e){const t=e.properties.map((e=>this.evalWwaNode(e)));return new Map(t)}arrayExpression(e){return e.elements.map((e=>this.evalWwaNode(e)))}convertLoopPointerExpression(e){const t=this.evalWwaNode(e.value),s=this.evalWwaNode(e.index);return e.operator,this.for_id.LP[s]=t,0}itemAssignment(e){const t=this.evalWwaNode(e.itemBoxPosition1to12);if("number"!=typeof t||t<0||t>12)throw new Error("ITEMの添字に想定外の値が入っています。0以上12以下の添字を指定してください。: "+t);const s=this.evalWwaNode(e.value);switch(e.operator){case"=":this.generator.wwa.setPlayerGetItem(t,0|s);break;case"+=":case"-=":case"*=":case"/=":{if(0===t)throw new Error("複合代入では ITEM[0] への操作はできません");const i=this.generator.wwa.getGameStatus().itemBox[t-1],a=0|Xa[e.operator](i,s);if(a<0)throw new Error(`負値のパーツ番号 ${a} は代入できません`);this.generator.wwa.setPlayerGetItem(t,a);break}default:throw new Error(`演算子 ${e.operator} は itemAssignment では使えません`)}}evalMessage(e){const t=this.evalWwaNode(e.value),s=this.generator.pickPageAdditionalQueue();this.generator.wwa.handleMsgFunction({message:String(t),additionalItems:s})}evalJumpgate(e){const t=this.evalWwaNode(e.x),s=this.evalWwaNode(e.y);if(isNaN(t)||isNaN(s))throw new Error(`飛び先の値が数値になっていません。 x=${t} / y=${s}`);this.generator.wwa.forcedJumpGate(t,s)}evalRandom(e){const t=this.evalWwaNode(e.value);return Math.floor(Math.random()*t)}evalSetSpecialParameter(e){const t=this.evalWwaNode(e.value);if(!this.generator.wwa||isNaN(t))return t;const s=this.evalSymbol({type:"Symbol",name:e.kind});if(Array.isArray(s))throw new Error(`配列Objectに対して直接代入は出来ません: ${s}`);const i=(()=>{switch(e.operator){case"+=":return s+t;case"-=":return s-t;case"*=":return s*t;case"/=":return s/t;default:return t}})();switch(e.kind){case"PX":return this.generator.wwa.jumpSpecifiedXPos(i),i;case"PY":return this.generator.wwa.jumpSpecifiedYPos(i),i;case"AT":return this.generator.wwa.setPlayerStatus(L.STRENGTH,i,!1),i;case"DF":return this.generator.wwa.setPlayerStatus(L.DEFENCE,i,!1),i;case"GD":return this.generator.wwa.setPlayerStatus(L.GOLD,i,!1),i;case"HP":return this.generator.wwa.setPlayerStatus(L.ENERGY,i,!1),i;case"HPMAX":return this.generator.wwa.setPlayerEnergyMax(i),i;case"i":return this.for_id.i=this.evalWwaNode(e.value),this.for_id.i;case"j":return this.for_id.j=this.evalWwaNode(e.value),this.for_id.j;case"k":return this.for_id.k=this.evalWwaNode(e.value),this.for_id.k;case"LOOPLIMIT":{const t=this.evalWwaNode(e.value);return this.generator.updateLoopLimit(t),t}default:return void console.error("未実装の要素です: "+e.kind)}}evalSetUserVariable(e){if(!(e.index.length>1)){const t=this.evalWwaNode(e.value);if(!this.generator.wwa)return t;const s=this.evalWwaNode(e.index[0]);return this.generator.wwa.setUserVar(s,t,e.operator),t}{const t=this.evalWwaNode(e.value),s=e.index.map((e=>this.evalWwaNode(e)));this.generator.wwa.setUserVarIndecies(s,t,e.operator)}}evalUnaryOperation(e){switch(e.operator){case"+":return this.evalWwaNode(e.argument);case"-":return-this.evalWwaNode(e.argument);case"!":return!this.evalWwaNode(e.argument);default:throw new Error("存在しない単項演算子です")}}evalBinaryOperation(e){const t=this.evalWwaNode(e.left),s=this.evalWwaNode(e.right);switch(e.operator){case"+":return t+s;case"-":return t-s;case"*":return t*s;case"/":return 0===s?0:Math.floor(t/s);case"%":return 0===s?0:t%s;case">":return t>s;case">=":return t>=s;case"<":return t<s;case"<=":return t<=s;case"==":return t==s;case"!=":return t!=s;default:throw new Error("存在しない単項演算子です")}}evalSymbol(e){var t,s,i,a,r,n,o,h,c,l,_,u,d,p,m,g,E,w,f,y,v,A,S,T,I,C,P,O,D,N,b,M,x,L,R,B;const U=this.generator.wwa.getGameStatus(),W=this.generator.wwa.getEnemyStatus();switch(e.name){case"X":return null!==(s=null===(t=this.generator.state.triggerParts)||void 0===t?void 0:t.position.x)&&void 0!==s?s:U.playerCoord.x;case"Y":return null!==(a=null===(i=this.generator.state.triggerParts)||void 0===i?void 0:i.position.y)&&void 0!==a?a:U.playerCoord.y;case"ID":return null!==(n=null===(r=this.generator.state.triggerParts)||void 0===r?void 0:r.id)&&void 0!==n?n:-1;case"TYPE":return null!==(h=null===(o=this.generator.state.triggerParts)||void 0===o?void 0:o.type)&&void 0!==h?h:-1;case"PX":return U.playerCoord.x;case"PY":return U.playerCoord.y;case"CX":return U.cameraCoord.x;case"CY":return U.cameraCoord.y;case"AT":return U.bareStatus.strength;case"AT_TOTAL":return null!==(_=null===(l=null===(c=this.generator.state.battleDamageCalculation)||void 0===c?void 0:c.estimatingParams)||void 0===l?void 0:l.playerStatus.strength)&&void 0!==_?_:U.totalStatus.strength;case"DF":return U.bareStatus.defence;case"DF_TOTAL":return null!==(p=null===(d=null===(u=this.generator.state.battleDamageCalculation)||void 0===u?void 0:u.estimatingParams)||void 0===d?void 0:d.playerStatus.defence)&&void 0!==p?p:U.totalStatus.defence;case"GD":return null!==(E=null===(g=null===(m=this.generator.state.battleDamageCalculation)||void 0===m?void 0:m.estimatingParams)||void 0===g?void 0:g.playerStatus.gold)&&void 0!==E?E:U.totalStatus.gold;case"HP":return null!==(y=null===(f=null===(w=this.generator.state.battleDamageCalculation)||void 0===w?void 0:w.estimatingParams)||void 0===f?void 0:f.playerStatus.energy)&&void 0!==y?y:U.totalStatus.energy;case"HPMAX":return U.energyMax;case"STEP":return U.moveCount;case"TIME":return U.playTime;case"PDIR":return U.playerDirection;case"i":return this.for_id.i;case"j":return this.for_id.j;case"k":return this.for_id.k;case"LOOPLIMIT":return this.generator.loop_limit;case"ITEM_ID":return null!==(A=null===(v=this.generator.state.earnedItem)||void 0===v?void 0:v.partsId)&&void 0!==A?A:-1;case"ITEM_POS":return null!==(T=null===(S=this.generator.state.earnedItem)||void 0===S?void 0:S.itemPos1To12)&&void 0!==T?T:-1;case"ENEMY_HP":return null!==(P=null===(C=null===(I=this.generator.state.battleDamageCalculation)||void 0===I?void 0:I.estimatingParams)||void 0===C?void 0:C.enemyStatus.energy)&&void 0!==P?P:"number"==typeof W?-1:W.energy;case"ENEMY_AT":return null!==(N=null===(D=null===(O=this.generator.state.battleDamageCalculation)||void 0===O?void 0:O.estimatingParams)||void 0===D?void 0:D.enemyStatus.strength)&&void 0!==N?N:"number"==typeof W?-1:W.strength;case"ENEMY_DF":return null!==(x=null===(M=null===(b=this.generator.state.battleDamageCalculation)||void 0===b?void 0:b.estimatingParams)||void 0===M?void 0:M.enemyStatus.defence)&&void 0!==x?x:"number"==typeof W?-1:W.defence;case"ENEMY_GD":return null!==(B=null===(R=null===(L=this.generator.state.battleDamageCalculation)||void 0===L?void 0:L.estimatingParams)||void 0===R?void 0:R.enemyStatus.gold)&&void 0!==B?B:"number"==typeof W?-1:W.gold;case"PICTURE":throw new Error("この機能はまだ実装されていません!");case"PLAYER_PX":return G=U.playerCoord.x,H=U.cameraCoord.x,(G-H)*F.CHIP_SIZE;case"PLAYER_PY":return V=U.playerCoord.y,Y=U.cameraCoord.y,(V-Y)*F.CHIP_SIZE;case"MOVE_SPEED":return k[U.gameSpeedIndex];case"MOVE_FRAME_TIME":return F.CHIP_SIZE/k[U.gameSpeedIndex];case"LP":return this.for_id.LP;case"undefined":return;default:throw new Error("このシンボルは取得できません")}var V,Y,G,H}evalArrayOrObject1D(e){const t=this.evalWwaNode(e.indecies[0]);if("number"!=typeof t){if("v"===e.name)return this.generator.wwa.getUserNameVar(t);throw new Error("このシンボルは取得できません")}const s=this.generator.wwa.getGameStatus();switch(e.name){case"v":return this.generator.wwa.getUserVar(t);case"ITEM":if(t<1||t>12)throw new Error("ITEMの添字に想定外の値が入っています。1以上12以下の添字を指定してください。: "+t);return s.itemBox[t-1];case"PICTURE":throw new Error("この機能はまだ実装されていません!");case"LP":return this.for_id.LP[t];default:throw new Error("このシンボルは取得できません")}}evalArrayOrObject2D(e){switch(e.name){case"m":case"o":const t=this.evalWwaNode(e.indecies[0]),s=this.evalWwaNode(e.indecies[1]);if("number"!=typeof t||"number"!=typeof s)throw new Error(`座標は数値で指定してください (${t}, ${s})`);new _(this.generator.wwa,t,s);const i="o"===e.name?v.OBJECT:v.MAP;return this.generator.wwa.getPartsID(new l(t,s),i);case"v":{const t=e.indecies[0].value,s=this.generator.wwa.getUserNameVar(t);if(null===s||!Array.isArray(s)&&"object"!=typeof s&&"string"!=typeof s)throw new Error(`指定したユーザー定義変数: v["${t}"] は配列・オブジェクト・文字列ではありません`);return Ie(s,this.evalWwaNode(e.indecies[1]))}default:throw new Error("このシンボルは取得できません")}}evalArrayOrObject3DPlus(e){const t=e.indecies.map((e=>this.evalWwaNode(e))),s=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce(((e,t)=>Ie(e,t)),s)}evalLiteral(e){return e.value}}class Za{constructor(e){this.value=e}}class qa{constructor(e,t){this.reason=e,this.value=t}}const za="user-variable-label";const Qa="user-variable-card";function er({index:e,value:t}){const s=document.createElement("div");return s.classList.add(Qa),function(e){return"object"!=typeof e}(t)&&s.classList.add("user-variable-card--is-trimmed"),s.dataset.varIndex=String(e),s.appendChild(function(e){const t=document.createElement("div");t.classList.add("index"),t.textContent=String(e),"string"==typeof e&&t.setAttribute("title",e);return t.appendChild(function(){const e=document.createElement("div");return e.textContent="-",e.setAttribute("aria-hidden","true"),e.classList.add(za),e}()),t}(e)),s.appendChild(function(e){const t=document.createElement("div");t.classList.add("value"),"string"==typeof e&&t.setAttribute("title",Te(e));return tr(t,e),t}(t)),s}function tr(e,t){e.textContent=void 0===t?"-":Te(t)}const sr="user-variable-list";function ir({index:e,value:t}){const s=document.createElement("li");return s.appendChild(er({index:e,value:t})),s}function ar(e,{index:t,value:s}){e.appendChild(ir({index:t,value:s}))}const rr="information";function nr(e,t,s=!1){e.textContent=`${s?"【エラー】":""}${t}`}function or({heading:e,contentVisibilityToggleButton:t,information:s}){const i=document.createElement("header");return i.appendChild(function({heading:e,contentVisibilityToggleButton:t}){const s=document.createElement("div");s.classList.add("heading-area");const i=document.createElement("h2");i.textContent=e.text,s.appendChild(i);const a=document.createElement("button");a.classList.add("content-visibility-toggle-button"),hr(a,!0),t.onClick&&a.addEventListener("click",t.onClick.bind(a));return s.appendChild(a),s}({heading:e,contentVisibilityToggleButton:t})),s&&i.appendChild(function(){const e=document.createElement("p");return e.classList.add(rr),nr(e,"強調されている番号にカーソルを乗せると説明が表示されます。"),e}()),i}function hr(e,t){e.textContent=t?"▲隠す":"▼表示"}const cr="user-variable-list-section";function lr({kind:e}){const t=document.createElement("section");t.classList.add(cr),t.dataset.kind=e;const s=function({kind:e}){const t=document.createElement("ul");return t.classList.add(sr),"numbered"===e&&Array.from({length:F.USER_VAR_NUM}).map(((e,t)=>ir({index:t}))).forEach((e=>t.appendChild(e))),t}({kind:e}),i=or({heading:{text:"named"===e?"名前つき変数一覧":"変数一覧"},information:"numbered"===e?{}:void 0,contentVisibilityToggleButton:{onClick:e=>{const t=i.querySelector(`.${rr}`);"true"===s.getAttribute("aria-hidden")?function(e,t,s){e.removeAttribute("aria-hidden"),t instanceof HTMLElement&&t.removeAttribute("aria-hidden");s instanceof HTMLElement&&hr(s,!0)}(s,t,e.target):function(e,t,s){e.setAttribute("aria-hidden","true"),t instanceof HTMLElement&&t.setAttribute("aria-hidden","true");s instanceof HTMLElement&&hr(s,!1)}(s,t,e.target)}}});return t.appendChild(i),t.appendChild(s),t}function _r(e,t){e instanceof HTMLElement&&Array.from({length:F.USER_VAR_NUM}).map(((s,i)=>{const a=function(e,t){return e.querySelector(`${mr(t)} > .value`)}(e,i);a instanceof HTMLElement&&tr(a,t[i])}))}function ur(e,t){e&&Array.from({length:F.USER_VAR_NUM}).map(((s,i)=>{const a=t[i];if(!a)return;const r=function(e,t){return e.querySelector(`${mr(t)} > .index`)}(e,i);if(!(r instanceof HTMLElement))return;const n=r.querySelector(`.${za}`);n instanceof HTMLElement&&(function(e,t){e.textContent=t}(n,a),function(e,t){e.dataset.labelledVarIndex="true",e.addEventListener("mouseover",(()=>t.removeAttribute("aria-hidden"))),e.addEventListener("mouseleave",(()=>t.setAttribute("aria-hidden","true")))}(r,n))}))}function dr(e,t,s=!1){if(!e)return;const i=function(e){return e.querySelector(`${pr} > header > .${rr}`)}(e);i instanceof HTMLElement&&nr(i,t,s)}const pr=`.${cr}[data-kind="numbered"]`;function mr(e){return`${pr} > .${sr} > li > .${Qa}[data-var-index="${CSS.escape(String(e))}"]`}function gr(e,t){if(!(e instanceof HTMLElement))return;const s=function(e){return new Set([...e.querySelectorAll(wr)].map((e=>e instanceof HTMLElement?e.dataset.varIndex:void 0)).filter(Boolean))}(e),i=yr(e);if(i instanceof HTMLElement){for(const[a,r]of t){const t=Ar(e,a);s.delete(a),t instanceof HTMLElement?tr(t,r):ar(i,{index:a,value:r})}for(const t of s){const s=vr(e,t).parentElement;s instanceof HTMLLIElement&&yr(e).removeChild(s)}}}const Er=`.${cr}[data-kind="named"]`,wr=`${Er} > .${sr} > li > .${Qa}`;function fr(e){return`${wr}[data-var-index="${CSS.escape(e)}"]`}function yr(e){return e.querySelector(`${Er} > .${sr}`)}function vr(e,t){return e.querySelector(fr(t))}function Ar(e,t){return e.querySelector(`${fr(t)} > .value`)}let Sr;function Tr(e,t,s){var i=new H;return i.current=e,i.total=t,i.stage=s,i}class Ir{constructor(e={mapdata:"",urlGateEnable:!1,titleImg:void 0,audioDir:"./audio/",classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDumpElm:void 0,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:"./script/script_file_list.json"}){let t;this._useSuspend=!1,this._useLookingAround=!0,this._isDisallowLoadOldSave=!1,this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._windowCloseWaitingJumpGateRequest=void 0,this._debugConsoleElement=void 0,this.audioExtension="",this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this.userDefinedFunctions={},this.convertWwaNodes=e=>function(e){if("Program"===e.type)return e.body.map((e=>Ha(e)));return[Ha(e)]}(Ya(e)),this.mainCaller=()=>this._main(),this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(z.KEY_ESC)||this._keyStore.checkHitKey(z.KEY_SHIFT)||this._keyStore.checkHitKey(z.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new li(me("wwa-wrapper")),window.addEventListener("click",(e=>{this._isActive=!1})),me("wwa-wrapper").addEventListener("click",(e=>{e.stopPropagation(),this._isActive=!0})),this._isActive=!0,void 0===e.titleImg?(this._hasTitleImg=!1,this._cvsCover=me("progress-panel"),t=this._cvsCover.getContext("2d"),t.fillStyle="rgb(0, 0, 0)"):this._hasTitleImg=!0;try{this._hasTitleImg?(me("unstable-version-warning").textContent="この WWA Wing は [不安定版] です。",me("version").textContent="WWA Wing Ver.4.1.0-unstable.based-on.3.12.19.p.3"):this._setLoadingMessage(t,0)}catch(e){}this._dumpElement=e.varDumpElm;const s=window.AudioContext||window.webkitAudioContext;s&&(this.audioContext=new s,this.audioGain=this.audioContext.createGain(),this.audioGain.gain.setValueAtTime(1,this.audioContext.currentTime));const i=new Audio;if("no"!==i.canPlayType("audio/mpeg")&&""!==i.canPlayType("audio/mpeg")?this.audioExtension="mp3":this.audioExtension="m4a",this._isURLGateEnable=e.urlGateEnable,this._isClassicModeEnable=e.classicModeEnable,this._mainCallCounter=0,this._animationCounter=0,this._statusPressCounter=new c(0,0,0,0),e.audioDir?"/"!==e.audioDir[e.audioDir.length-1]&&(e.audioDir+="/"):e.audioDir="./audio/",this._audioDirectory=e.audioDir,this._bottomButtonType=e.useGoToWwa?p.GOTO_WWA:p.BATTLE_REPORT,this._userVarNameList=[],this.evalCalcWwaNodeGenerator=new $a(this),this.userDevice=new b,!!location.href.match(/^file/))if(this.userDevice.device===S.GAME){if(this.userDevice.os===A.NINTENDO)F.BATTLE_INTERVAL_FRAME_NUM=5;this._bottomButtonType=p.GAME_END}else alert("【警告】直接HTMLファイルを開いているようです。\nこのプログラムは正常に動作しない可能性があります。\nマップデータの確認を行う場合には同梱の「wwa-server.exe」をご利用ください。\n"+(this.userDevice.browser===T.FIREFOX?"Firefoxの場合も、バージョン68以降はローカルのHTMLファイルを直接開いた場合、通常起動できないことを確認しております。":""));switch(this.userDevice.device){case S.VR:case S.GAME:this._usePassword=!1;break;default:this._usePassword=!0}switch(me("cell-save").textContent=G.QUICK_SAVE,this._usePassword?me("cell-load").textContent=G.PASSWORD:me("cell-load").textContent=G.EMPTY_LOAD,this._bottomButtonType){case p.GOTO_WWA:me("cell-gotowwa").textContent=G.GOTO_WWA;break;case p.BATTLE_REPORT:me("cell-gotowwa").textContent=G.BATTLE_REPORT;break;case p.GAME_END:me("cell-gotowwa").textContent=G.GAME_END}const r=performance.now();console.log("WWA のロード処理を開始します"),Promise.all([new Promise((async s=>{const i=performance.now();console.log(`(A-1) マップデータ ${e.mapdata} のロードを開始します`);const a=new li,r=t=>{a.removeListener("mapData",r),a.removeListener("progress",n),a.removeListener("error",o),console.log(`(A-1) マップデータ ${e.mapdata} のロードが完了しました (${performance.now()-i}ms)`),s(t)},n=e=>this._setProgressBar(e),o=e=>{throw this._setErrorMessage("下記のエラーが発生しました。: \n"+e.message,t),new Error("MapData Load Error: "+e.message)};a.addListener("mapData",r),a.addListener("progress",n),a.addListener("error",o),await new ci(e.mapdata,a).requestAndLoadMapData()})).then((t=>{const s=performance.now();console.log("(A-2) マップデータからリスタートデータの作成を開始します"),t.isItemEffectEnabled=e.itemEffectEnable;const i=e.mapdata.split("/");i.pop(),i.push(t.mapCGName),t.mapCGName=i.join("/");const a={wwaData:t,restartData:structuredClone(t),checkOriginalMapString:this._generateMapDataHash(t)};return console.log(`(A-2) マップデータからのリスタートデータの作成が完了しました (${performance.now()-s}ms)`),a})).then((e=>new Promise((s=>{const i=performance.now();console.log(`(A-3) マップ画像 ${e.wwaData.mapCGName} のロードを開始します`);const a=new Image;a.src=e.wwaData.mapCGName,a.decode().then((()=>{console.log(`(A-3) マップ画像 ${e.wwaData.mapCGName} のロードが完了しました (${performance.now()-i}ms)`),s(e)})).catch((()=>{throw this._setErrorMessage("画像ファイル「"+e.wwaData.mapCGName+"」が見つかりませんでした。\n管理者の方へ: データがアップロードされているか、\nパーミッションを確かめてください。",t),new Error("Map CG Image Load Error")}))})))),new Promise((async t=>{var s;if(this._canDisplayUserVars=e.displayUserVars,!this._canDisplayUserVars)return console.log("(B) ユーザー変数の表示機能は無効化されています"),void t();const i=performance.now();console.log(`(B) ユーザー変数名一覧のロードおよび初期化を開始します (名前一覧ファイル: ${null!==(s=e.userVarNamesFile)&&void 0!==s?s:"未指定"})`),this._inlineUserVarViewer={topUserVarIndex:{named:0,numbered:0},isVisible:!1,kind:"numbered"};const a=await(e.userVarNamesFile?Rt(e.userVarNamesFile):{kind:"noFileSpecified",errorMessage:"data-wwa-user-var-names-file 属性に、変数の説明を記したファイル名を書くことで、その説明を表示できます。詳しくはマニュアルをご覧ください。"});switch(this.setUserVarStatus(a,e.userVarNamesFile),a.kind){case"data":console.log(`(B) ユーザー変数名一覧のロードおよび初期化が完了しました (${performance.now()-i}ms)`);break;case"noFileSpecified":console.log(`(B) ユーザー変数名一覧のロードはスキップされました (${performance.now()-i}ms)`);break;default:console.warn(`(B) ユーザー変数名一覧のロード中にエラーが発生しました (${performance.now()-i}ms)`),console.warn("(B) "+a.errorMessage)}t()})),new Promise((async t=>{var s;const i=performance.now(),a=null!==(s=e.userDefinedScriptsFile)&&void 0!==s?s:"./script/script_file_list.json";console.log(`(C) 外部 WWA Script のロード・解析を開始します (リストファイル: ${a})`);const r=await Rt(a);if("data"===(null==r?void 0:r.kind)&&Array.isArray(r.data)){console.log("(C) これらの外部 WWA Script がロードされます:",r.data);const e=r.data.map((e=>(async e=>{try{const t=await fetch(e);return 200===t.status||304===t.status?{kind:"data",data:await new Response(t.body).text(),fileName:e}:{kind:"httpError",errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`,fileName:e}}catch(t){return{kind:"otherError",errorMessage:t.message,fileName:e}}})(e)));(await Promise.allSettled(e)).forEach((e=>{if("fulfilled"!==e.status)return alert(`(C) 外部スクリプト ${e.reason.fileName} のロード中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${e.reason.message}`),void console.error(e.reason.message);switch(e.value.kind){case"data":try{this.setUserScript(e.value)}catch(t){alert(`外部スクリプト ${e.value.fileName} の解析中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${t instanceof Error?t.message:String(t)}`),console.error(`(C) 外部スクリプト ${e.value.fileName} の解析中にエラーが発生しました。`,t)}return;case"httpError":return void console.warn(`(C) 外部スクリプト ${e.value.fileName} が見つからなかったか、その他のHTTPエラーが発生しました。`,e.value.errorMessage);case"otherError":return alert(`外部スクリプト ${e.value.fileName} のロード中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${e.value.errorMessage}`),void console.error(`(C) 外部スクリプト ${e.value.fileName} のロード中にエラーが発生しました。`,e.value.errorMessage);default:return alert("外部スクリプトの解析中に予期せぬエラーが発生しました"),void console.error(`(C) 外部スクリプト ${e.value.fileName} の解析中に予期せぬエラーが発生しました`,e.value)}}))}else console.log(`(C) 外部 WWA Script のリスト ${a} が見つからなかったか、内容が不正だったため、外部スクリプトはロードされませんでした。`);console.log(`(C) 外部 WWA Script のロード・解析が完了しました (${performance.now()-i}ms)`),t()}))]).then((([{wwaData:e,restartData:t,checkOriginalMapString:s}])=>{this._wwaData=e,this._restartData=t,this.checkOriginalMapString=s,console.log(`WWAのロード処理が完了しました。(${performance.now()-r}ms)`)})).then((()=>{var s;try{this._hasTitleImg?me("version").textContent+=" (Map data Ver. "+Math.floor(this._wwaData.version/10)+"."+ +this._wwaData.version%10+")":this._setLoadingMessage(t,1)}catch(e){}this.initCSSRule(),this._setProgressBar(Tr(0,4,K.GAME_INIT)),this._setLoadingMessage(t,2);const i=this._wwaData.mapCGName.replace("(","\\(").replace(")","\\)"),r=e=>{e.style.backgroundImage="url("+i+")"};Array.prototype.forEach.call(we("div.item-cell"),(e=>{e.style.backgroundPosition=`-${this._wwaData.imgItemboxX*F.CHIP_SIZE}px -${this._wwaData.imgItemboxY*F.CHIP_SIZE}px`,e.style.backgroundImage="url("+i+")"})),Array.prototype.forEach.call(we("div.wide-cell-row"),(e=>{e.style.backgroundPosition="-160px -120px",e.style.backgroundImage="url("+i+")"})),Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(e=>{e.style.backgroundImage="url('"+F.ITEM_BORDER_IMG_DATA_URL+"')",e.style.backgroundPosition="0 0",e.style.display="none",e.style.cursor="pointer"})),Array.prototype.forEach.call(we(".item-cell>.item-disp"),r),Array.prototype.forEach.call(we("div.wide-cell-row>.status-icon"),r),this.setStatusIconCoord(R.ENERGY,new l(this._wwaData.imgStatusEnergyX,this._wwaData.imgStatusEnergyY)),this.setStatusIconCoord(R.STRENGTH,new l(this._wwaData.imgStatusStrengthX,this._wwaData.imgStatusStrengthY)),this.setStatusIconCoord(R.DEFENCE,new l(this._wwaData.imgStatusDefenceX,this._wwaData.imgStatusDefenceY)),this.setStatusIconCoord(R.GOLD,new l(this._wwaData.imgStatusGoldX,this._wwaData.imgStatusGoldY)),this._setProgressBar(Tr(1,4,K.GAME_INIT)),this._setLoadingMessage(t,3),this._mapIDTableCreate(),this._replaceAllRandomObjects(),this._cvs=me("wwa-map");var n=this._cvs.getContext("2d",{alpha:!1});n.fillStyle="rgba( 255, 255, 255, 0.5)",n.fillRect(0,0,440,440);var o=new _(this,this._wwaData.playerX,this._wwaData.playerY);this._camera=new Wt(o),this._itemMenu=new gs;var h=new c(this._wwaData.statusEnergy,this._wwaData.statusStrength,this._wwaData.statusDefence,this._wwaData.statusGold);this._player=new Gt(this,o,this._camera,h,this._wwaData.statusEnergyMax,this._wwaData.moves,this._wwaData.gameSpeedIndex),this._userVar={numbered:Array.from({length:F.USER_VAR_NUM}).map((()=>0)),named:new Map},this._objectMovingDataManager=new jt(this,this._player),this._camera.setPlayer(this._player),this._keyStore=new re,this._mouseStore=new ne,e.virtualPadEnable?(this._virtualPadButtonElements={BUTTON_ENTER:me("wwa-enter-button"),BUTTON_ESC:me("wwa-esc-button"),BUTTON_FAST:me("wwa-fast-button"),BUTTON_SLOW:me("wwa-slow-button"),BUTTON_LEFT:me("wwa-left-button"),BUTTON_UP:me("wwa-up-button"),BUTTON_RIGHT:me("wwa-right-button"),BUTTON_DOWN:me("wwa-down-button")},this._virtualPadStore=new ue(this._virtualPadButtonElements,ps(),me("wwa-virtualpad-right"),me("wwa-virtualpad-left"),this._setVirtualPadTouch.bind(this),this._setVirtualPadLeave.bind(this)),function(e,t){if(null===e)return;const s=document.createElement("button");s.classList.add("wwa-virtualpad-toggle-button"),s.textContent="仮想パッド表示切り替え",s.addEventListener("click",t),e.appendChild(s)}(e.virtualPadControllerElm,(()=>{this._virtualPadStore.toggleVisible()}))):(this._virtualPadButtonElements=null,this._virtualPadStore=new ue({})),this._debugConsoleElement=function(e){if(null===e)return;const t=document.createElement("section");t.setAttribute("id","wwa-debug-console");const s=document.createElement("textarea");s.setAttribute("rows","10"),s.setAttribute("cols","60"),s.textContent='v["money"] = 100;\nv["name"] = "ヤツロウ";\nMSG(v["name"]+"「俺の所持金は"+v["money"]+"ゴールドだ」");\nfor(LP[0]=0; LP[0]<2; LP[0]++) {\n LOG(LP);\n}';const i=e=>e.stopPropagation();s.addEventListener("keydown",i),s.addEventListener("keypress",i),s.addEventListener("keyup",i),s.classList.add("console-text-area"),t.appendChild(s);const a=document.createElement("button");return a.classList.add("script-running-button"),a.textContent="実行(X)",t.appendChild(a),e.appendChild(t),t}(me("wwa-debug-console-area")),null===(s=this._debugConsoleElement)||void 0===s||s.querySelector(".script-running-button").addEventListener("click",(()=>{this._debugEvalString()})),this._gamePadStore=new oe,this._pages=[],this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._yesNoChoiceCallInfo=I.NONE,this._prevFrameEventExected=!1,this._isLastPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._shouldSetNextPage=!1,this._passwordLoadExecInNextFrame=!1,this._pageExecuting=!1,this._messageWindow=new cs(this,50,180,340,0,this._wwaData.mapCGName,!1,!0,!1,me("wwa-wrapper")),this._scoreWindow=new ns(this,new l(50,50),!1,me("wwa-wrapper")),this._wwaSave=new qs(Sr,Sr._wwaData.worldName,Sr._wwaData.worldPassNumber,this._checkSaveDataCompatibility.bind(this),(e=>{if(e.length>0){let t="これまでに保存されていたセーブデータは、下記の理由により消えたものがあります。";e.forEach((e=>{switch(e){case js.UNMATCHED_WORLD_NAME:t+="\n・制作者によるマップデータのワールド名の変更";break;case js.UNMATCHED_WORLD_PASS_NUMBER:t+="\n・制作者によるマップデータの暗証番号の変更";break;case js.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:t+="\n・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)"}})),alert(t)}})),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Ws.setRestartData(this._restartData,this._wwaData),this.clearFaces();const u=me("wwa-wrapper").getAttribute("data-wwa-resume-savedata");if("string"==typeof u&&(this._useSuspend=!0,u)){var d=Ws.getStartWWAData(u);this._restartData!==d&&(this._applyQuickLoad(d),this._wwaSave.resumeStart())}const p=me("wwa-wrapper").getAttribute("data-wwa-autosave");null!==p&&this._wwaSave.setAutoSaveInterval(0|Number(p));const g=me("wwa-wrapper").getAttribute("data-wwa-looking-around");if(this._useLookingAround=!(g&&g.match(/false/i)),this._setProgressBar(Tr(2,4,K.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener("keydown",(e=>{if(this._isActive){if(this.userDevice.os===A.NINTENDO)return e.preventDefault(),void e.stopPropagation();this._keyStore.setPressInfo(e.keyCode),e.keyCode!==z.KEY_F5?this._player.isWaitingMessage()?e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_SPACE||e.preventDefault():this._player.isWaitingPasswordWindow()||e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_1&&e.keyCode!==z.KEY_2&&e.keyCode!==z.KEY_3&&e.keyCode!==z.KEY_A&&e.keyCode!==z.KEY_C&&e.keyCode!==z.KEY_D&&e.keyCode!==z.KEY_E&&e.keyCode!==z.KEY_M&&e.keyCode!==z.KEY_N&&e.keyCode!==z.KEY_Q&&e.keyCode!==z.KEY_S&&e.keyCode!==z.KEY_W&&e.keyCode!==z.KEY_X&&e.keyCode!==z.KEY_Y&&e.keyCode!==z.KEY_Z&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_F1&&e.keyCode!==z.KEY_F2&&e.keyCode!==z.KEY_F3&&e.keyCode!==z.KEY_F4&&e.keyCode!==z.KEY_F6&&e.keyCode!==z.KEY_F7&&e.keyCode!==z.KEY_F8&&e.keyCode!==z.KEY_F12&&e.keyCode!==z.KEY_SPACE||e.preventDefault():e.preventDefault()}})),window.addEventListener("keyup",(e=>{if(this._isActive){if(this.userDevice.os===A.NINTENDO)return e.preventDefault(),void e.stopPropagation();this._keyStore.setReleaseInfo(e.keyCode),e.keyCode===z.KEY_F5?e.preventDefault():e.keyCode!==z.KEY_DOWN&&e.keyCode!==z.KEY_LEFT&&e.keyCode!==z.KEY_RIGHT&&e.keyCode!==z.KEY_UP&&e.keyCode!==z.KEY_SHIFT&&e.keyCode!==z.KEY_ENTER&&e.keyCode!==z.KEY_1&&e.keyCode!==z.KEY_2&&e.keyCode!==z.KEY_3&&e.keyCode!==z.KEY_A&&e.keyCode!==z.KEY_C&&e.keyCode!==z.KEY_D&&e.keyCode!==z.KEY_E&&e.keyCode!==z.KEY_M&&e.keyCode!==z.KEY_N&&e.keyCode!==z.KEY_Q&&e.keyCode!==z.KEY_S&&e.keyCode!==z.KEY_W&&e.keyCode!==z.KEY_X&&e.keyCode!==z.KEY_Y&&e.keyCode!==z.KEY_Z&&e.keyCode!==z.KEY_ESC&&e.keyCode!==z.KEY_F1&&e.keyCode!==z.KEY_F3&&e.keyCode!==z.KEY_F4&&e.keyCode!==z.KEY_F6&&e.keyCode!==z.KEY_F7&&e.keyCode!==z.KEY_F8&&e.keyCode!==z.KEY_F9&&e.keyCode!==z.KEY_F12&&e.keyCode!==z.KEY_SPACE||this._player.isWaitingMessage()||this._player.isWaitingPasswordWindow()||e.preventDefault()}})),window.addEventListener("blur",(e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()})),window.addEventListener("contextmenu",(e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()})),window.addEventListener("help",(e=>{this._isActive&&e.preventDefault()})),this._mouseControllerElement=me("wwa-controller"),this._mouseControllerElement.addEventListener("mousedown",(e=>{if(this._isActive&&1===e.which){if(this._mouseStore.getMouseState()!==Q.NONE)return void e.preventDefault();const t=fe(e.clientX,e.clientY),s=this._player.getDrawingCenterPosition(),i=t.substract(s),a=Math.abs(i.x),r=Math.abs(i.y);let n,o=!1;if(a<F.CHIP_SIZE&&r<F.CHIP_SIZE){switch(s.x/F.CHIP_SIZE|0){case 0:o=!0,n=m.LEFT;break;case F.H_PARTS_NUM_IN_WINDOW-1:o=!0,n=m.RIGHT}switch(s.y/F.CHIP_SIZE|0){case 0:o=!0,n=m.UP;break;case F.V_PARTS_NUM_IN_WINDOW-1:o=!0,n=m.DOWN}}o||(i.y>0&&r>a?n=m.DOWN:i.y<0&&r>a?n=m.UP:i.x>0&&r<a?n=m.RIGHT:i.x<0&&r<a&&(n=m.LEFT)),this._mouseStore.setPressInfo(n,0)}})),this._mouseControllerElement.addEventListener("mouseleave",(e=>{this._mouseStore.clear()})),this._mouseControllerElement.addEventListener("mouseup",(e=>{this._isActive&&1===e.which&&(this._mouseStore.setReleaseInfo(),e.preventDefault())})),window.TouchEvent){if(this.audioContext){let e=()=>{this.audioContext.createBufferSource().start(0),this._mouseControllerElement.removeEventListener("touchstart",e),e=null};this._mouseControllerElement.addEventListener("touchstart",e)}this._mouseControllerElement.addEventListener("touchstart",(e=>{if(!this._isActive)return;if(this._mouseStore.getMouseState()!==Q.NONE)return void e.preventDefault();const t=e.changedTouches,s=t.length;for(let e=0;e<s;e++){const s=t[e],i=fe(s.clientX,s.clientY),a=this._player.getDrawingCenterPosition(),r=i.substract(a),n=Math.abs(r.x),o=Math.abs(r.y);let h,c=!1;if(n<F.CHIP_SIZE&&o<F.CHIP_SIZE){switch(a.x/F.CHIP_SIZE|0){case 0:c=!0,h=m.LEFT;break;case F.H_PARTS_NUM_IN_WINDOW-1:c=!0,h=m.RIGHT}switch(a.y/F.CHIP_SIZE|0){case 0:c=!0,h=m.UP;break;case F.V_PARTS_NUM_IN_WINDOW-1:c=!0,h=m.DOWN}}c||(r.y>0&&o>n?h=m.DOWN:r.y<0&&o>n?h=m.UP:r.x>0&&o<n?h=m.RIGHT:r.x<0&&o<n&&(h=m.LEFT)),this._mouseStore.setPressInfo(h,s.identifier)}e.cancelable&&e.preventDefault()}));const e=e=>{if(this._isActive)for(let t=0;t<e.changedTouches.length;t++)if(this._mouseStore.getTouchID()===e.changedTouches[t].identifier){this._mouseStore.setReleaseInfo(),e.preventDefault();break}};this._mouseControllerElement.addEventListener("touchend",e),this._mouseControllerElement.addEventListener("touchcancel",e)}me("button-load").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.QUICK_LOAD)})),me("button-save").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.QUICK_SAVE)})),me("button-restart").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.RESTART_GAME)})),me("button-gotowwa").addEventListener("click",(()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(C.GOTO_WWA,!1,!1)})),Array.prototype.forEach.call(we(".wide-cell-row"),(e=>{e.addEventListener("click",(()=>{this._displayHelp()}))})),this._frameCoord=new l(F.IMGPOS_DEFAULT_FRAME_X,F.IMGPOS_DEFAULT_YESNO_Y),this._battleEffectCoord=new l(F.IMGPOS_DEFAULT_BATTLE_EFFECT_X,F.IMGPOS_DEFAULT_BATTLE_EFFECT_Y),this._battleEstimateWindow=new _s(this,this._wwaData.mapCGName,me("wwa-wrapper")),this._passwordWindow=new ds(this,me("wwa-wrapper"),e.disallowLoadOldSave),this._monsterWindow=new rs(this,new l(50,180),340,60,!1,me("wwa-wrapper"),this._wwaData.mapCGName),this._setProgressBar(Tr(3,4,K.GAME_INIT)),this._isLoadedSound=!1,this._temporaryInputDisable=!1,this._paintSkipByDoorOpen=!1,this._clearFacesInNextFrame=!1,this._useConsole=!1,this._playTimeCalculator=new he,this.wwaCustomEvent("wwa_startup"),this._cgManager=new kt(n,this._wwaData.mapCGName,this._frameCoord,this,e.pictureImageNamesFile,(()=>{this._isSkippedSoundMessage=!0;const s=()=>{switch(this.userDevice.device){case S.PC:this.registerSystemMessagePage("ゲームを開始します。\n画面をクリックしてください。",!1);break;case S.SP:this.registerSystemMessagePage("ゲームを開始します。\n画面にふれてください。",!1)}},i=this.resolveSystemMessage(a.CONFIRM_LOAD_SOUND);if("ON"===i)return this._isLoadedSound=!0,s(),this._setLoadingMessage(t,K.AUDIO),this.loadSound(),void window.requestAnimationFrame(this.soundCheckCaller);if("OFF"===i)return this._isLoadedSound=!1,s(),void this.openGameWindow();if(this._isSkippedSoundMessage=!1,this._hasTitleImg||t.clearRect(0,0,F.SCREEN_WIDTH,F.SCREEN_HEIGHT),this._usePassword){let s=i;e.displayUserVars&&(s+='\n\n※変数表示が有効になっています。\n公開前に必ずHTMLファイル内の\n data-wwa-display-user-vars="true" \nを消してください。'),this._messageWindow.setMessage(s),this._messageWindow.show(),this._setProgressBar(Tr(4,4,K.GAME_INIT));var r=setInterval((()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===w.UNSELECTED&&(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this._yesNoJudgeInNextFrame=w.YES:(this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&(this._yesNoJudgeInNextFrame=w.NO)),this._yesNoJudgeInNextFrame===w.YES?(clearInterval(r),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout((()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,K.AUDIO),this.loadSound(),window.requestAnimationFrame(this.soundCheckCaller)}),F.YESNO_PRESS_DISP_FRAME_NUM*F.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===w.NO&&(clearInterval(r),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout((()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()}),F.YESNO_PRESS_DISP_FRAME_NUM*F.DEFAULT_FRAME_INTERVAL))}),F.DEFAULT_FRAME_INTERVAL)}else clearInterval(r),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=w.UNSELECTED,this._yesNoJudgeInNextFrame=w.UNSELECTED,this._isLoadedSound=!0,this.loadSound(),window.requestAnimationFrame(this.soundCheckCaller)})),console.log("WWA_START"),this.wwaCustomEvent("wwa_start");const E=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_WWA_START;if(E)try{this.evalCalcWwaNodeGenerator.evalWwaNode(E)}catch(e){alert(`CALL_WWA_START でエラーが発生しました。\n\n詳細:\n${e.message}`),console.error(e.message)}}))}setEvalCalcWwaNodeEarnedItem(e,t){this.evalCalcWwaNodeGenerator.setEarnedItem(e,t)}clearEvalCalcWwaNodeEarnedItem(){this.evalCalcWwaNodeGenerator.clearEarnedItem()}callGetItemUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callGetItemFullUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM_FULL;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUseItemUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_USE_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callJumpGateUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_JUMPGATE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUserDefinedBattleDamageFunction(e,t){const s=this.getUserDefinedDamageFunctionNode(e);if(s){this.evalCalcWwaNodeGenerator.setBattleDamageCalculationMode(t);try{const t=this.evalCalcWwaNodeGenerator.evalWwaNode(s),i=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),i?{damage:0,aborted:i}:"number"==typeof t?{damage:this.toAssignableValue(t),aborted:i}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${t})。このターンのダメージは無効になります。`),{damage:0,aborted:i})}catch(t){return console.warn(`${e} のダメージ計算中にエラーが発生しました。このターンのダメージは無効になります。`),console.warn(t),{damage:0,hasError:!0}}}}getUserDefinedDamageFunctionNode(e){var t;return null===(t=this.userDefinedFunctions)||void 0===t?void 0:t[{playerToEnemy:"CALC_PLAYER_TO_ENEMY_DAMAGE",enemyToPlayer:"CALC_ENEMY_TO_PLAYER_DAMAGE"}[e]]}callMoveUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callCameraMoveUserDefineFunction(){const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CAMERA_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}getUserScript(e){return this.userDefinedFunctions&&this.userDefinedFunctions[e]||null}setUserScript(e){if("data"!==e.kind)return void console.error(e);this.convertWwaNodes(e.data).forEach((e=>{if("DefinedFunction"===e.type&&this.userDefinedFunctions){const t=e.functionName;this.userDefinedFunctions[t]=e.body}}))}callUserScript(e){const t=this.getUserScript(e);t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}setUserVarStatus(e,t){if(e)if("noFileSpecified"!==e.kind){if("data"!==e.kind)return this._userVarNameListRequestError=e,void dr(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);if(!e.data||"object"!=typeof e.data)return this._userVarNameListRequestError={kind:"notObject",errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},void dr(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);this._userVarNameList=this.convertUserVariableNameListToArray(e.data),ur(this._dumpElement,this._userVarNameList)}else dr(this._dumpElement,e.errorMessage,!1)}convertUserVariableNameListToArray(e){const t=new Array(F.USER_VAR_NUM);for(let e=0;e<F.USER_VAR_NUM;e++)t[e]=void 0;return Object.keys(e).forEach((s=>{const i=parseInt(s,10);"string"!=typeof e[s]||"string"!=typeof s||isNaN(i)||i<0||i>=F.USER_VAR_NUM||(t[i]=e[s])})),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=F.LOAD_STAGE_MAX_EXCEPT_AUDIO?(me("progress-message-container").textContent=e.stage===F.LOAD_STAGE_MAX_EXCEPT_AUDIO?"World Name: "+this._wwaData.worldName:ie[e.stage],me("progress-bar").style.width=(1*e.stage+e.current/e.total*1)/(F.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*F.MAP_WINDOW_WIDTH+"px",me("progress-disp").textContent=((1*e.stage+e.current/e.total*1)/(F.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+"%"):(this._usePassword?me("progress-message-container").textContent="効果音/BGMを読み込んでいます。(スペースキーでスキップ)":me("progress-message-container").textContent="ゲームデータを読み込んでいます。",me("progress-bar-audio").style.width=e.current*F.MAP_WINDOW_WIDTH/e.total+"px",me("progress-disp").textContent=(e.current/e.total*100).toFixed(2)+"%"))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=X.TITLE+"px "+F.LOADING_FONT,e.fillText(ae[0],j.TITLE_X,j.TITLE_Y),e.font=X.FOOTER+"px "+F.LOADING_FONT,e.fillText("WWA Wing Ver.4.1.0-unstable.based-on.3.12.19.p.3",j.FOOTER_X,j.COPYRIGHT_Y);else if(t<=ae.length)e.font=X.LOADING+"px "+F.LOADING_FONT,t>=2&&(e.clearRect(j.LOADING_X,j.LOADING_Y+j.LINE*(t-3),F.SCREEN_WIDTH-j.LOADING_X,j.LINE),e.fillText(ae[t-1]+" Complete!",j.LOADING_X,j.LOADING_Y+j.LINE*(t-2))),t<ae.length&&e.fillText(ae[t],j.LOADING_X,j.LOADING_Y+j.LINE*(t-1)),1==t&&(e.font=X.FOOTER+"px "+F.LOADING_FONT,e.fillText("World Name "+this._wwaData.worldName,j.FOOTER_X,j.WORLD_Y),e.fillText(" (Map data Ver. "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10+")",j.FOOTER_X,j.WORLD_Y+j.LINE));else{var s;s=this._isSkippedSoundMessage?j.LOADING_Y+j.LINE*(ae.length-1):j.FOOTER_Y,t<=K.AUDIO?e.fillText("Now Sound data Loading .....",j.LOADING_X,s):(e.clearRect(j.LOADING_X,s-j.LINE,F.SCREEN_WIDTH-j.LOADING_X,j.LINE),e.fillText("Now Sound data Loading ..... Complete!",j.LOADING_X,s))}}_setErrorMessage(e,t){this._hasTitleImg?alert(e):(t.clearRect(0,0,F.SCREEN_WIDTH,F.SCREEN_HEIGHT),t.font=X.ERRROR+"px "+F.LOADING_FONT,e.split("\n").forEach((function(e,s){t.fillText(e,j.ERROR_X,j.ERROR_Y+j.LINE*s)})))}createSoundInstance(e){if(0===e||e===B.NO_SOUND||this.sounds[e])return;const t=`${this._audioDirectory}${e}.${this.audioExtension}`;this.sounds[e]=new zs(e,t,this.audioContext,this.audioGain)}loadSound(){this.sounds=new Array(F.SOUND_MAX+1),this.createSoundInstance(B.DECISION),this.createSoundInstance(B.ATTACK);for(let e=1;e<this._wwaData.mapPartsMax;e++){const t=this._wwaData.mapAttribute[e][F.ATR_SOUND];this.createSoundInstance(t)}for(let e=1;e<this._wwaData.objPartsMax;e++){if(this._wwaData.objectAttribute[e][F.ATR_TYPE]===F.OBJECT_RANDOM)continue;const t=this._wwaData.objectAttribute[e][F.ATR_SOUND];this.createSoundInstance(t)}this._wwaData.message.forEach((e=>e.split("\n").forEach((e=>{const t=e.match(/^\$sound=(\d+)/);if(!t||t.length<2)return;const s=parseInt(t[1],10);!isNaN(s)&&0<s&&s<B.NO_SOUND&&this.createSoundInstance(s)})))),this._wwaData.bgm=0,this._soundLoadSkipFlag=!1}checkAllSoundLoaded(){let e=0,t=0;if(!this._hasTitleImg)var s=this._cvsCover.getContext("2d");this._keyStore.update(),this._keyStore.getKeyState(z.KEY_SPACE)===q.KEYDOWN&&(this._soundLoadSkipFlag=!0);for(let s=1;s<=F.SOUND_MAX;s++){const i=this.sounds[s];void 0===i||i.isError()||(t++,i.hasData()&&e++)}if(e<t&&!this._soundLoadSkipFlag)return this._setProgressBar(Tr(e,t,K.AUDIO)),void window.requestAnimationFrame(this.soundCheckCaller);this._setProgressBar(Tr(F.SOUND_MAX,F.SOUND_MAX,K.AUDIO)),this._setLoadingMessage(s,K.FINISH),this.openGameWindow()}_setSoundLoadedCheckTimer(e){const t=this.sounds[e];t.isError()||(this.soundLoadedCheckTimer=window.setInterval((()=>{this._wwaData.bgm===e?t.hasData()?(t.play(this._wwaData.bgmDelayDurationMs),this._wwaData.bgm=e,this._clearSoundLoadedCheckTimer()):t.isError()&&this._clearSoundLoadedCheckTimer():this._clearSoundLoadedCheckTimer()}),100))}_clearSoundLoadedCheckTimer(){this.soundLoadedCheckTimer&&(clearInterval(this.soundLoadedCheckTimer),this.soundLoadedCheckTimer=void 0)}playSound(e,t){if(!this._isLoadedSound)return void(e===B.NO_SOUND?this._wwaData.bgm=0:e>=B.BGM_LB&&(this._wwaData.bgm=e));if(e<0||e>=F.SOUND_MAX)return void console.warn("サウンド番号が範囲外です。");if(e>=B.BGM_LB&&this._wwaData.bgm===e)return;if((e===B.NO_SOUND||e>=B.BGM_LB)&&0!==this._wwaData.bgm&&(this.sounds[this._wwaData.bgm].isPlaying()&&this.sounds[this._wwaData.bgm].pause(),this._wwaData.bgm=0),0===e||e===B.NO_SOUND)return;this.sounds[e].hasData()?e>=B.BGM_LB?(this.sounds[e].play(null!=t?t:this._wwaData.bgmDelayDurationMs),this._wwaData.bgm=e):this.sounds[e].play():e>=B.BGM_LB&&(this._wwaData.bgm=e,this._setSoundLoadedCheckTimer(e))}openGameWindow(){var e=this._player.getPosition();me("wwa-cover").style.opacity="0",0!==this.getObjectIdByPosition(e)&&this._player.setPartsAppearedFlag();var t=me("wwa-wrapper").getAttribute("data-wwa-resume-savedata");if("string"==typeof t&&(this._useSuspend=!0,t)){var s=Ws.getStartWWAData(t);this._restartData!==s&&(this._applyQuickLoad(s),this._wwaSave.resumeStart())}setTimeout((()=>{me("wwa-wrapper").removeChild(me("wwa-cover")),this._main()}),F.SPLASH_SCREEN_DISP_MILLS)}onselectitem(e){if(this._player.canUseItem(e)){me("item"+(e-1)).classList.add("onpress"),this.playSound(B.DECISION);const i=this.resolveSystemMessage(a.CONFIRM_USE_ITEM);if("BLANK"===i){this._player.readyToUseItem(e);var t=this._player.useItem(),s=this.getObjectAttributeById(t,F.ATR_STRING);this.registerPageByMessage(this.getMessageById(s),{showChoice:!1,isSystemMessage:!1,triggerParts:{id:t,type:v.OBJECT,position:this._player.getPosition().getPartsCoord()}})}else this.registerPageByMessage(i,{showChoice:!0,isSystemMessage:!0}),this._yesNoChoiceCallInfo=I.CALL_BY_ITEM_USE,this._yesNoUseItemPos=e;return!0}return!1}onselectbutton(e,t=!1,s=!1){var i=me(x[e]);if(this.playSound(B.DECISION),this._itemMenu.close(),i.classList.add("onpress"),e===C.QUICK_LOAD)switch(this._yesNoChoiceCallInfo=this._wwaSave.getFirstSaveChoiceCallInfo(t),this._yesNoChoiceCallInfo){case I.CALL_BY_QUICK_LOAD:case I.CALL_BY_LOG_QUICK_LOAD:var a,r="";switch(this._yesNoChoiceCallInfo){case I.CALL_BY_QUICK_LOAD:r="読み込むデータを選んでください。",this._wwaSave.selectDBSaveDataList();break;case I.CALL_BY_LOG_QUICK_LOAD:r="読み込むオートセーブを選んでください。",this._wwaSave.selectLogSaveDataList()}switch(a=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._messageWindow.createSaveDom(),a){case I.CALL_BY_LOG_QUICK_LOAD:this.registerSystemMessagePage(r+"\n→Noでオートセーブ復帰画面に移ります。",!0);break;case I.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage(r+"\n→Noでデータ復帰用パスワードの\n 入力選択ができます。",!0);break;case I.NONE:this.registerSystemMessagePage(r,!0)}break;case I.CALL_BY_PASSWORD_LOAD:this.onpasswordloadcalled()}else if(e===C.QUICK_SAVE)this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):(this._wwaSave.selectDBSaveDataList(),this._messageWindow.createSaveDom(),this._usePassword?(this.registerSystemMessagePage("データの一時保存先を選んでください。\n→Noでデータ復帰用パスワードの\n 表示選択ができます。",!0),this._yesNoChoiceCallInfo=I.CALL_BY_QUICK_SAVE):(this.registerSystemMessagePage("データの一時保存先を選んでください。",!0),this._yesNoChoiceCallInfo=I.CALL_BY_QUICK_SAVE));else if(e===C.RESTART_GAME)this.registerSystemMessagePage("初めからスタートしなおしますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_RESTART_GAME;else if(e===C.GOTO_WWA)if(s)this._bottomButtonType!==p.GOTO_WWA&&me(x[C.GOTO_WWA]).classList.remove("onpress"),this.registerSystemMessagePage("WWAの公式サイトを開きますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_GOTO_WWA;else switch(this._bottomButtonType){case p.GOTO_WWA:this._yesNoChoiceCallInfo=I.CALL_BY_GOTO_WWA,this.registerSystemMessagePage("WWAの公式サイトを開きますか?",!0);break;case p.GAME_END:this._yesNoChoiceCallInfo=I.CALL_BY_END_GAME,this.registerSystemMessagePage("WWAゲームを終了しますか?",!0);break;case p.BATTLE_REPORT:this.launchBattleEstimateWindow()}}onpasswordloadcalled(){this._usePassword?(me(x[C.QUICK_LOAD]).classList.add("onpress"),this.registerSystemMessagePage("データ復帰用のパスワードを入力しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_PASSWORD_LOAD):this.registerSystemMessagePage("セーブデータがありません。")}onpasswordsavecalled(){me(x[C.QUICK_SAVE]).classList.add("onpress"),this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):this._useSuspend?(this.registerSystemMessagePage("ゲームを中断しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_SUSPEND):this._usePassword&&(this.registerSystemMessagePage("データ復帰用のパスワードを表示しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_PASSWORD_SAVE)}onpasssuspendsavecalled(){me(x[C.QUICK_SAVE]).classList.add("onpress"),this._wwaData.disableSaveFlag?this.registerSystemMessagePage("ここではセーブ機能は\n使用できません。"):(this.registerSystemMessagePage("ゲームを中断しますか?",!0),this._yesNoChoiceCallInfo=I.CALL_BY_SUSPEND)}onitemmenucalled(){this.registerSystemMessagePage("右のメニューを選択してください。"),this._messageWindow.setItemMenuChoice(!0),this.playSound(B.DECISION),this._itemMenu.openView()}onchangespeed(e){if(!this._wwaData.permitChangeGameSpeed)return void this.registerSystemMessagePageByKey(a.GAME_SPEED_CHANGE_DISABLED);switch(e){case P.UP:this._player.speedUp();break;case P.DOWN:this._player.speedDown()}const t=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CHANGE_SPEED;t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t),this.registerSystemMessagePageByKey(a.GAME_SPEED_CHANGED)}isBattleSpeedIndexForQuickBattle(e){return F.QUICK_BATTLE_SPEED_INDECIES.some((t=>t===e))}_main(){var e;this._temporaryInputDisable=!1,this._stopUpdateByLoadFlag=!1,this._keyStore.update(),this._mouseStore.update(),this._virtualPadStore.update(),this._gamePadStore.update();const t=this._reservedPartsAppearances.length>0;if(this._reservedPartsAppearances.forEach((e=>this.appearParts(e))),this._reservedPartsAppearances=[],this._waitFrame-- >0)return t&&this._drawAll(),void window.requestAnimationFrame(this.mainCaller);if(this._waitFrame=0,void 0!==this._yesNoJudgeInNextFrame&&(this._yesNoJudge=this._yesNoJudgeInNextFrame,this._yesNoJudgeInNextFrame=void 0),this._clearFacesInNextFrame&&(this.clearFaces(),this._clearFacesInNextFrame=!1),this._pageExecuting=!0,this._pages.length>0&&this._shouldSetNextPage)for(this._shouldSetNextPage=!1;this._pages.length>0;){const e=this._pages.shift(),t=$t.executeNodes(e.firstNode,e.triggerParts);if(!0===t.isError){this._isLastPage=!1;break}void 0!==this._reservedMoveMacroTurn&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0);const s=t.messages.filter((e=>!e.isEmpty())),i=Boolean(e.scoreOption);i&&0===s.length&&s.push(this._createSimpleMessage("スコアを表示します。",e.triggerParts)),e.additionalItems&&e.additionalItems.forEach((e=>{if("face"===e.type)this.addFace(e.data.face)}));if(s.length>0){const t=s.map((e=>e.generatePrintableMessage())).join("\n");this._messageWindow.setMessage(t),this._messageWindow.setYesNoChoice(e.showChoice),this._messageWindow.setPositionByPlayerPosition(0!==this._faces.length,i,e.isSystemMessage,this._player.getPosition(),this._camera.getPosition()),i&&(this._lastScoreOptions=e.scoreOption,this.updateScore(e.scoreOption),this._scoreWindow.show()),this._player.setMessageWaiting(),this._isLastPage=e.isLastPage,this._shouldSetNextPage=!1;break}if(0===this._pages.length){if(this._hideMessageWindow().newPageGenerated)continue;if(this._dispatchWindowClosedTimeRequests().newPageGenerated)continue;this.clearFaces();break}}if(this._pageExecuting=!1,this._reservedJumpDestination&&(this._player.jumpTo(this._reservedJumpDestination),this._reservedJumpDestination=void 0),this._player.mainFrameCount(),this._player.isControllable()){if(this._wwaData.disableSaveFlag||this._wwaSave.isAutoSaveFrame(this._player)&&this._quickSave(I.CALL_BY_LOG_QUICK_SAVE),this._player.isDelayFrame())this._player.updateDelayFrame();else{const e=this._player.getDir(),t=[NaN,NaN,z.KEY_DOWN,NaN,z.KEY_LEFT,NaN,z.KEY_RIGHT,NaN,z.KEY_UP,NaN][e];this._actionGamePadButtonItemMacro()||(this._keyStore.getKeyStateForControllPlayer(z.KEY_LEFT)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_UP)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_RIGHT)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(z.KEY_DOWN)===q.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.LEFT)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.UP)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.RIGHT)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(m.DOWN)===Q.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(t)?this._checkTurnKeyPressed()?this._player.setDir(e):(this._player.controll(e),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_LEFT)?this._checkTurnKeyPressed()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_UP)?this._checkTurnKeyPressed()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_RIGHT)?this._checkTurnKeyPressed()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(z.KEY_DOWN)?this._checkTurnKeyPressed()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.LEFT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.UP)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.RIGHT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(m.DOWN)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)?this._gamePadStore.buttonPressed(te.BUTTON_INDEX_B)?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_LEFT")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.LEFT):(this._player.controll(m.LEFT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_UP")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.UP):(this._player.controll(m.UP),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_RIGHT")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.RIGHT):(this._player.controll(m.RIGHT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton("BUTTON_DOWN")?this._virtualPadStore.checkTouchingButton("BUTTON_ESC")?this._player.setDir(m.DOWN):(this._player.controll(m.DOWN),this._objectMovingDataManager.update()):this._keyStore.getKeyState(z.KEY_1)===q.KEYDOWN?this.onselectitem(1):this._keyStore.getKeyState(z.KEY_2)===q.KEYDOWN?this.onselectitem(2):this._keyStore.getKeyState(z.KEY_3)===q.KEYDOWN?this.onselectitem(3):this._keyStore.getKeyState(z.KEY_Q)===q.KEYDOWN?this.onselectitem(4):this._keyStore.getKeyState(z.KEY_W)===q.KEYDOWN?this.onselectitem(5):this._keyStore.getKeyState(z.KEY_E)===q.KEYDOWN?this.onselectitem(6):this._keyStore.getKeyState(z.KEY_A)===q.KEYDOWN?this.onselectitem(7):this._keyStore.getKeyState(z.KEY_S)===q.KEYDOWN?this.onselectitem(8):this._keyStore.getKeyState(z.KEY_D)===q.KEYDOWN?this.onselectitem(9):this._keyStore.getKeyState(z.KEY_Z)===q.KEYDOWN?this.onselectitem(10):this._keyStore.getKeyState(z.KEY_X)===q.KEYDOWN?this.onselectitem(11):this._keyStore.getKeyState(z.KEY_C)===q.KEYDOWN?this.onselectitem(12):this._keyStore.getKeyState(z.KEY_I)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_MINUS)||this._virtualPadStore.checkTouchButton("BUTTON_SLOW")?this.onchangespeed(P.DOWN):this._keyStore.getKeyState(z.KEY_P)===q.KEYDOWN||this._keyStore.checkHitKey(z.KEY_F2)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_PLUS)||this._virtualPadStore.checkTouchButton("BUTTON_FAST")?this.onchangespeed(P.UP):this._keyStore.getKeyState(z.KEY_F1)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_M)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this.launchBattleEstimateWindow():this._keyStore.checkHitKey(z.KEY_F3)?(this.playSound(B.DECISION),this.onselectbutton(C.QUICK_LOAD,!0)):this._keyStore.checkHitKey(z.KEY_F4)?(this.playSound(B.DECISION),this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled()):this._keyStore.checkHitKey(z.KEY_F5)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_ZR)?this.onselectbutton(C.QUICK_LOAD):this._keyStore.checkHitKey(z.KEY_F6)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_ZL)?this.onselectbutton(C.QUICK_SAVE):this._keyStore.checkHitKey(z.KEY_F7)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_R)?this.onselectbutton(C.RESTART_GAME):this._keyStore.checkHitKey(z.KEY_F8)?this.onselectbutton(C.GOTO_WWA,!1,!0):this._keyStore.checkHitKey(z.KEY_F9)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_X)||this._virtualPadStore.checkTouchButton("BUTTON_ESC")?(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onitemmenucalled():this._keyStore.checkHitKey(z.KEY_V)?this._displayUserVars():this._keyStore.checkHitKey(z.KEY_X)?this._debugConsoleElement&&this._debugEvalString():(this._keyStore.checkHitKey(z.KEY_F12)||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_Y))&&this._displayHelp());[{key:z.KEY_A,func:"CALL_PUSH_A"},{key:z.KEY_B,func:"CALL_PUSH_B"},{key:z.KEY_C,func:"CALL_PUSH_C"},{key:z.KEY_D,func:"CALL_PUSH_D"},{key:z.KEY_E,func:"CALL_PUSH_E"},{key:z.KEY_F,func:"CALL_PUSH_F"},{key:z.KEY_G,func:"CALL_PUSH_G"},{key:z.KEY_H,func:"CALL_PUSH_H"},{key:z.KEY_I,func:"CALL_PUSH_I"},{key:z.KEY_J,func:"CALL_PUSH_J"},{key:z.KEY_K,func:"CALL_PUSH_K"},{key:z.KEY_L,func:"CALL_PUSH_L"},{key:z.KEY_M,func:"CALL_PUSH_M"},{key:z.KEY_N,func:"CALL_PUSH_N"},{key:z.KEY_O,func:"CALL_PUSH_O"},{key:z.KEY_P,func:"CALL_PUSH_P"},{key:z.KEY_Q,func:"CALL_PUSH_Q"},{key:z.KEY_R,func:"CALL_PUSH_R"},{key:z.KEY_S,func:"CALL_PUSH_S"},{key:z.KEY_T,func:"CALL_PUSH_T"},{key:z.KEY_U,func:"CALL_PUSH_U"},{key:z.KEY_V,func:"CALL_PUSH_V"},{key:z.KEY_W,func:"CALL_PUSH_W"},{key:z.KEY_X,func:"CALL_PUSH_X"},{key:z.KEY_Y,func:"CALL_PUSH_Y"},{key:z.KEY_Z,func:"CALL_PUSH_Z"},{key:z.KEY_ENTER,func:"CALL_PUSH_ENTER"},{key:z.KEY_ESC,func:"CALL_PUSH_ESC"},{key:z.KEY_SPACE,func:"CALL_PUSH_SPACE"},{key:z.KEY_LEFT,func:"CALL_PUSH_LEFT"},{key:z.KEY_RIGHT,func:"CALL_PUSH_RIGHT"},{key:z.KEY_UP,func:"CALL_PUSH_UP"},{key:z.KEY_DOWN,func:"CALL_PUSH_DOWN"}].forEach((e=>{if(this._keyStore.checkHitKey(e.key)){const t=this.userDefinedFunctions&&this.userDefinedFunctions[e.func];t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}}))}this._keyStore.memorizeKeyStateOnControllableFrame(),this._mouseStore.memorizeMouseStateOnControllableFrame()}else if(this._player.isJumped())this._camera.isResetting()||this._player.processAfterJump();else if(this._player.isMoving())this._player.move(),this._objectMovingDataManager.update(),this._player.getPosition().isJustPosition()&&this._dispatchPlayerAndObjectsStopTimeRequests();else if(this._player.isWaitingMessage()){if(this._messageWindow.isVisible()||this._messageWindow.show(),this._messageWindow.isYesNoChoice())this._messageWindow.isSaveChoice()&&(this._messageWindow.saveUpdate(),this._messageWindow.isSaveClose()||(this._keyStore.checkHitKey(z.KEY_LEFT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchButton("BUTTON_LEFT")?this._messageWindow.saveControll(m.LEFT):this._keyStore.checkHitKey(z.KEY_UP)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchButton("BUTTON_UP")?this._messageWindow.saveControll(m.UP):this._keyStore.checkHitKey(z.KEY_RIGHT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchButton("BUTTON_RIGHT")?this._messageWindow.saveControll(m.RIGHT):(this._keyStore.checkHitKey(z.KEY_DOWN)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchButton("BUTTON_DOWN"))&&this._messageWindow.saveControll(m.DOWN))),this._messageWindow.isInputDisable()||(this._yesNoJudge===w.UNSELECTED&&(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")?this._yesNoJudge=w.YES:(this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&(this._yesNoJudge=w.NO)),(this._yesNoJudge===w.YES||this._yesNoJudge===w.NO)&&(this.playSound(B.DECISION),this._yesNoDispCounter=F.YESNO_PRESS_DISP_FRAME_NUM,this._messageWindow.setInputDisable(),this._messageWindow.update()));else if(this._messageWindow.isItemMenuChoice()){if(this._itemMenu.update(),this._keyStore.checkHitKey(z.KEY_LEFT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchingButton("BUTTON_LEFT")?this._itemMenu.controll(m.LEFT):this._keyStore.checkHitKey(z.KEY_UP)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchingButton("BUTTON_UP")?this._itemMenu.controll(m.UP):this._keyStore.checkHitKey(z.KEY_RIGHT)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchingButton("BUTTON_RIGHT")?this._itemMenu.controll(m.RIGHT):(this._keyStore.checkHitKey(z.KEY_DOWN)||this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchingButton("BUTTON_DOWN"))&&this._itemMenu.controll(m.DOWN),this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_Y)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER"))this._setNextPage(),this._messageWindow.setItemMenuChoice(!1),this._itemMenu.ok();else if(this._mouseStore.checkClickMouse(m.LEFT)||this._mouseStore.checkClickMouse(m.UP)||this._mouseStore.checkClickMouse(m.RIGHT)||this._mouseStore.checkClickMouse(m.DOWN)||this._keyStore.getKeyState(z.KEY_N)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_ESC)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ESC")){for(var s=0;s<x.length;s++){(n=me(x[s])).classList.contains("onpress")&&n.classList.remove("onpress")}this._itemMenu.ng(),this._setNextPage(),this.playSound(B.DECISION),this._messageWindow.setItemMenuChoice(!1)}}else{var i=this._keyStore.getKeyStateForMessageCheck(z.KEY_ENTER),a=this._keyStore.getKeyStateForMessageCheck(z.KEY_SPACE),r=this._keyStore.getKeyStateForMessageCheck(z.KEY_ESC);if(i===q.KEYDOWN||i===q.KEYPRESS_MESSAGECHANGE||a===q.KEYDOWN||a===q.KEYPRESS_MESSAGECHANGE||r===q.KEYDOWN||r===q.KEYPRESS_MESSAGECHANGE||this._mouseStore.getMouseState()===Q.MOUSEDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")||this._virtualPadStore.checkTouchButton("BUTTON_ESC")){for(s=0;s<x.length;s++){var n;(n=me(x[s])).classList.contains("onpress")&&n.classList.remove("onpress")}this._setNextPage()}}if(null===(e=this._inlineUserVarViewer)||void 0===e?void 0:e.isVisible){const e=this._inlineUserVarViewer.kind;let t=!1;const s="named"===e?this._userVar.named.size:F.USER_VAR_NUM;this._keyStore.getKeyState(z.KEY_DOWN)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]++,t=!0),this._keyStore.getKeyState(z.KEY_UP)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]--,t=!0),this._keyStore.getKeyState(z.KEY_RIGHT)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]+=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(z.KEY_LEFT)===q.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]-=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(z.KEY_V)===q.KEYDOWN&&("named"===this._inlineUserVarViewer.kind?this._inlineUserVarViewer.kind="numbered":"numbered"===this._inlineUserVarViewer.kind&&(this._inlineUserVarViewer.kind="named"),t=!0),this._inlineUserVarViewer.topUserVarIndex[e]<0&&(this._inlineUserVarViewer.topUserVarIndex[e]+=s),this._inlineUserVarViewer.topUserVarIndex[e]>s&&(this._inlineUserVarViewer.topUserVarIndex[e]-=s),t&&(this._setNextPage(),this._inlineUserVarViewer.isVisible=!0,this._displayUserVars())}}else this._player.isWaitingEstimateWindow()?(this._keyStore.getKeyState(z.KEY_ENTER)===q.KEYDOWN||this._keyStore.getKeyState(z.KEY_SPACE)===q.KEYDOWN||this._gamePadStore.buttonTrigger(te.BUTTON_INDEX_A,te.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton("BUTTON_ENTER")||this._virtualPadStore.checkTouchButton("BUTTON_ESC"))&&this.hideBattleEstimateWindow():this._player.isFighting()?(this._player.fight(),this._monsterWindow.update(this._monster)):this._player.isWaitingMoveMacro()&&(this._player.isMoveObjectAutoExecTime()&&(this.moveObjects(!1),this._player.resetMoveObjectAutoExecTimer()),this._objectMovingDataManager.update());if(this.updatePicturesAnimation(),this._cgManager.picture.updateFrameTimerValue(),this._prevFrameEventExected=!1,this._player.getPosition().isJustPosition()&&this._camera.getPosition().isScreenTopPosition()){if(!this._shouldTreatWillMessageDisplay(this._pages)&&!this._player.isPausing()){this._player.isPartsAppearedTime()&&this._player.clearPartsAppearedFlag(),this._replaceRandomObjectsInScreen();var o=this.checkMap();o||this.checkObject(),this._prevFrameEventExected=o}this._player.isWaitingMessage()&&this._messageWindow.isYesNoChoice()&&this._yesNoJudge!==w.UNSELECTED&&!this._player.isWaitingMoveMacro()&&!this._player.isFighting()&&this._execChoiceWindowRunningEvent()}this._passwordLoadExecInNextFrame&&(this._stopUpdateByLoadFlag=!0,this._loadType=O.PASSWORD,this._player.clearPasswordWindowWaiting(),this._passwordLoadExecInNextFrame=!1),this._drawAll(),this._mainCallCounter++,this._mainCallCounter%=1e9,this._player.isWaitingMessage()&&this._isClassicModeEnable||(this._animationCounter=(this._animationCounter+1)%(2*F.ANIMATION_REP_HALF_FRAME),0!==this._animationCounter&&this._animationCounter!==F.ANIMATION_REP_HALF_FRAME+1||this.updateAllPicturesCache()),this._camera.isResetting()&&this._camera.advanceTransitionStepNum(),this._player.isWaitingMessage()||(this._player.decrementLookingAroundTimer(),this._statusPressCounter.energy>0&&0==--this._statusPressCounter.energy&&me("disp-energy").classList.remove("onpress"),this._statusPressCounter.strength>0&&0==--this._statusPressCounter.strength&&me("disp-strength").classList.remove("onpress"),this._statusPressCounter.defence>0&&0==--this._statusPressCounter.defence&&me("disp-defence").classList.remove("onpress"),this._statusPressCounter.gold>0&&0==--this._statusPressCounter.gold&&me("disp-gold").classList.remove("onpress")),this._player.isWaitingMoveMacro()&&(this._player.decrementMoveObjectAutoExecTimer(),this._player.isWaitingMoveMacro()||this._dispatchPlayerAndObjectsStopTimeRequests()),this._stopUpdateByLoadFlag?this._fadeout((()=>{if(this._loadType===O.QUICK_LOAD){this._quickLoad(),this.wwaCustomEvent("wwa_quickload");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_QUICKLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===O.RESTART_GAME){this.restartGame(),this.wwaCustomEvent("wwa_restert");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_RESTART;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===O.PASSWORD){this._applyQuickLoad(this._passwordSaveExtractData),this._passwordSaveExtractData=void 0,this.wwaCustomEvent("wwa_passwordload");const e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_PASSWORDLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}setTimeout(this.mainCaller,F.DEFAULT_FRAME_INTERVAL,this)})):window.requestAnimationFrame(this.mainCaller),function({dumpElement:e,namedUserVar:t,userVar:s}){t&&gr(e,t),s&&_r(e,s)}({dumpElement:this._dumpElement,userVar:this._userVar.numbered,namedUserVar:this._userVar.named});const h=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_FRAME;h&&this.evalCalcWwaNodeGenerator.evalWwaNode(h)}vibration(e){this._gamePadStore.vibration(e)}_isMainAnimation(){return this._animationCounter>F.ANIMATION_REP_HALF_FRAME}_drawAll(){var e,t,s=this._camera.getPosition().getPartsCoord(),i=this._camera.getPosition().getOffsetCoord(),a=F.MAP_WINDOW_HEIGHT,r=this._player.getPosition().getPartsCoord();if(this._paintSkipByDoorOpen)this._paintSkipByDoorOpen=!1;else{if(this._cgManager.clearCanvas(0,0,F.MAP_WINDOW_WIDTH,F.MAP_WINDOW_HEIGHT),this._cgManager.drawBase(0,0,F.MAP_WINDOW_WIDTH,F.MAP_WINDOW_HEIGHT),this._camera.isResetting()){if(null!==this._camera.getPreviousPosition())var n=this._camera.getPreviousPosition().getPartsCoord(),o=this._camera.getPreviousPosition().getOffsetCoord();a=this._camera.getTransitionStepNum()*F.CHIP_SIZE}var h=!1;if(a!==this._cgManager.mapCacheYLimit&&(this._cgManager.mapCacheYLimit=a,h=!0),s.x===this._cgManager.cpPartsLog.x&&s.y===this._cgManager.cpPartsLog.y||(this._cgManager.cpPartsLog.x=s.x,this._cgManager.cpPartsLog.y=s.y,h=!0),h&&(this._cgManager.clearBackCanvas(),this._cgManager.clearObjectCanvases()),this._camera.isResetting()&&(this._drawMap(n,o,a,!0),this._drawPlayer(n,o,a,!0),this._drawObjects(n,o,a,!0),this._camera.isFinalStep()))var c=255,l=setInterval((()=>{var e=me("wwa-fader");if((c-=3*F.FADEOUT_SPEED)<=0)return clearInterval(l),e.style.backgroundColor="transparent",e.removeAttribute("style"),void(e.style.display="none");e.style.opacity=c/255+""}),20);this._drawMap(s,i,a,!1,h),this._drawPlayer(s,i,a),this._drawObjects(s,i,a,!1,h),this._player.isFighting()&&!this._player.isBattleStartFrame()&&(e=this._player.isTurn()?this._monster.position.x:r.x,t=this._player.isTurn()?this._monster.position.y:r.y,this._cgManager.drawCanvas(this._battleEffectCoord.x,this._battleEffectCoord.y,F.CHIP_SIZE*(e-s.x)-i.x,F.CHIP_SIZE*(t-s.y)-i.y)),this._drawEffect(),this._drawPictures(),this._drawFaces(),this._drawFrame()}}_drawMap(e,t,s,i=!1,a=!1){if(void 0!==e){var r,n=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),h=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW);if(r=0,i)for(var l=n;l<=o;l++)for(var _=h;_<=c;_++){var u=this._wwaData.map[_][l],d=this._wwaData.mapAttribute[u][F.ATR_X]/F.CHIP_SIZE,p=this._wwaData.mapAttribute[u][F.ATR_Y]/F.CHIP_SIZE,m=F.CHIP_SIZE*(l-e.x)-t.x,g=F.CHIP_SIZE*(_-e.y)-t.y;this._cgManager.copyBackCanvasWithLowerYLimit(d,p,m,g,s)}else{for(l=n;l<=o;l++)for(_=h;_<=c;_++){u=this._wwaData.map[_][l];this._cgManager.mapCache[r]!==u&&(this._cgManager.mapCache[r]=u,a=!0),r++}if(a){this._cgManager.clearBackCanvasWithLowerYLimit(s);for(l=n;l<=o;l++)for(_=h;_<=c;_++){u=this._wwaData.map[_][l],d=this._wwaData.mapAttribute[u][F.ATR_X]/F.CHIP_SIZE,p=this._wwaData.mapAttribute[u][F.ATR_Y]/F.CHIP_SIZE,m=F.CHIP_SIZE*(l-e.x)-t.x,g=F.CHIP_SIZE*(_-e.y)-t.y;this._cgManager.copyBackCanvasWithUpperYLimit(d,p,m,g,s)}}this._cgManager.drawBackCanvas()}}}_drawPlayer(e,t,s,i=!1){if(void 0===e||this._wwaData.delPlayerFlag)return;const a=this._player.getPosition().getPartsCoord(),r=this._player.getPosition().getOffsetCoord(),n=[NaN,NaN,2,NaN,4,NaN,6,NaN,0,NaN][this._player.getDir()],o=(a.x-e.x)*F.CHIP_SIZE+r.x-t.x,h=(a.y-e.y)*F.CHIP_SIZE+r.y-t.y;let c;if(this._useLookingAround&&this._player.isLookingAround()&&!this._player.isWaitingMessage()){const e=[2,3,4,5,0,1,6,7];c=this._wwaData.playerImgPosX+e[Math.floor(this._mainCallCounter%64/8)]}else c=this._player.isMovingImage()?this._wwaData.playerImgPosX+n+1:this._wwaData.playerImgPosX+n;i?this._cgManager.drawCanvasWithLowerYLimit(c,this._wwaData.playerImgPosY,o,h,s):this._cgManager.drawCanvasWithUpperYLimit(c,this._wwaData.playerImgPosY,o,h,s)}_drawObjects(e,t,s,i=!1,a=!1){if(void 0!==e){var r,n,o,h,c,_,u,p,m,g,E,w,f,y,v=Math.max(0,e.x-1),A=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),S=Math.max(0,e.y-1),T=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW),I=0,C=this._isMainAnimation(),P=this._player.isFighting()&&this._player.isTurn()&&this._player.getPosition().getPartsCoord().equals(this._monster.position);if(i)for(g=v;g<=A;g++)for(E=S;E<=T;E++)P&&new l(g,E).equals(this._monster.position)||(w=this._wwaData.mapObject[E][g],r=new l(0,0),this._wwaData.objectAttribute[w][F.ATR_MOVE]!==D.STATIC&&null!==(m=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new l(g,E)))&&(r=m),c=F.CHIP_SIZE*(g-e.x)+r.x-t.x,_=F.CHIP_SIZE*(E-e.y)+r.y-t.y,n=C||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,u=this._wwaData.objectAttribute[w][F.ATR_TYPE],p=this._wwaData.objectAttribute[w][F.ATR_NUMBER],0===w||this._checkNoDrawObject(new l(g,E),u,p)||this._cgManager.copyObjectCanvasWithLowerYLimit(C?1:0,o,h,c,_,s));else{var O,N,b,M,x,L=[],R=[];for(g=v;g<=A;g++)for(E=S;E<=T;E++)f=w=this._wwaData.mapObject[E][g],u=this._wwaData.objectAttribute[w][F.ATR_TYPE],p=this._wwaData.objectAttribute[w][F.ATR_NUMBER],this._checkNoDrawObject(new l(g,E),u,p)&&(f=0),N=this._wwaData.objectAttribute[w][F.ATR_MOVE]===D.STATIC,0!==f&&(b=!(!P||!new l(g,E).equals(this._monster.position)),N?R.push(new d(w,g,E,N,b)):(L.push(new d(w,g,E,N,b)),f=0),b&&(f=0)),this._cgManager.mapObjectCache[I]!==f&&(this._cgManager.mapObjectCache[I]=f,a=!0),I++;for(a&&(this._cgManager.clearObjectCanvasesWithLowerYLimit(s),Array.prototype.push.apply(L,R)),x=L.length,M=0;M<x;M++)if(g=(O=L[M]).x,E=O.y,w=O.partsIDObj,N=O.isStatic,b=O.isFighting,c=F.CHIP_SIZE*(g-e.x)-t.x,_=F.CHIP_SIZE*(E-e.y)-t.y,N){if(b)continue;for(y=0;y<2;y++)n=!!y||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,this._cgManager.copyObjectCanvasWithUpperYLimit(y,o,h,c,_,s)}else null!==(m=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new l(g,E)))&&(c+=m.x,_+=m.y),n=C||0===this._wwaData.objectAttribute[w][F.ATR_X2]&&0===this._wwaData.objectAttribute[w][F.ATR_Y2],o=this._wwaData.objectAttribute[w][n?F.ATR_X:F.ATR_X2]/F.CHIP_SIZE,h=this._wwaData.objectAttribute[w][n?F.ATR_Y:F.ATR_Y2]/F.CHIP_SIZE,this._cgManager.drawCanvasWithUpperYLimit(o,h,c,_,s);this._cgManager.drawObjectCanvas(C?1:0)}}}_drawEffect(){if(0!==this._wwaData.effectCoords.length&&0!==this._wwaData.effectWaits){var e=Math.floor(this._mainCallCounter%(this._wwaData.effectCoords.length*this._wwaData.effectWaits)/this._wwaData.effectWaits);this._cgManager.drawEffect(e)}}_drawFaces(){for(var e=0;e<this._faces.length;e++)this._cgManager.drawCanvasWithSize(this._faces[e].srcPos.x,this._faces[e].srcPos.y,this._faces[e].srcSize.x,this._faces[e].srcSize.y,this._faces[e].destPos.x,this._faces[e].destPos.y)}_drawFrame(){this._cgManager.drawFrame()}_drawPictures(){this._cgManager.drawPictures()}_checkNoDrawObject(e,t,s){var i=this._player.getPosition(),a=i.getPartsCoord();return!(!i.isJustPosition()||a.x!==e.x||a.y!==e.y||this._wwaData.objectNoCollapseDefaultFlag)&&(t===F.OBJECT_DOOR&&0===s||(t===F.OBJECT_STATUS||t===F.OBJECT_MESSAGE||t===F.OBJECT_ITEM||t===F.OBJECT_SELL||t===F.OBJECT_BUY||t===F.OBJECT_SELL||t===F.OBJECT_LOCALGATE))}getMapWidth(){if(void 0===this._wwaData)throw new Error("マップデータがロードされていません");return this._wwaData.mapWidth}getMapIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.map[t.y][t.x]}getObjectIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.mapObject[t.y][t.x]}getMapTypeByPosition(e){var t=e.getPartsCoord(),s=this._wwaData.map[t.y][t.x];return this._wwaData.mapAttribute[s][F.ATR_TYPE]}getObjectTypeByPosition(e){var t=e.getPartsCoord(),s=this._wwaData.mapObject[t.y][t.x];return this._wwaData.objectAttribute[s][F.ATR_TYPE]}getMapAttributeByPosition(e,t){var s=e.getPartsCoord(),i=this._wwaData.map[s.y][s.x];return this._wwaData.mapAttribute[i][t]}isCurrentPosMapPartsIncludingMessage(e){return 0!==this.getMapAttributeByPosition(e,F.ATR_STRING)}getObjectAttributeByPosition(e,t){var s=e.getPartsCoord(),i=this._wwaData.mapObject[s.y][s.x];return this._wwaData.objectAttribute[i][t]}getMapAttributeById(e,t){return this._wwaData.mapAttribute[e][t]}getObjectAttributeById(e,t){return this._wwaData.objectAttribute[e][t]}getObjectCropXById(e){return this._wwaData.objectAttribute[e][F.ATR_X]}getObjectCropYById(e){return this._wwaData.objectAttribute[e][F.ATR_Y]}getMessageById(e){return this._wwaData.message[e]}getSystemMessageById(e){return this._wwaData.systemMessage[e]}getMapInfo(e){return this._wwaData.mapAttribute[e]}checkMap(e){var t=this._player.getPosition().getPartsCoord();e=null!=e?e:t;var s=this._wwaData.map[e.y][e.x];var i=this.getMapInfo(s)[F.ATR_TYPE],a=e.x===t.x&&e.y===t.y,r=!1;return(!a||this._player.getLastExecPartsIDOnSamePosition(v.MAP)!==s)&&(i===F.MAP_STREET?r=this._execMapStreetEvent(e,s,i):i===F.MAP_WALL?r=this._execMapWallEvent(e,s,i):i===F.MAP_LOCALGATE?r=this._execMapLocalGateEvent(e,s,i):i===F.MAP_URLGATE&&(r=this._execMapUrlGateEvent(e,s,i)),a&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(v.MAP,s),r)}getObjectInfo(e){return this._wwaData.objectAttribute[e]}checkObject(e){var t=this._player.getPosition().getPartsCoord();e=null!=e?e:t;var s=this._wwaData.mapObject[e.y][e.x];var i=this.getObjectInfo(s)[F.ATR_TYPE],a=e.x===t.x&&e.y===t.y;a&&this._player.getLastExecPartsIDOnSamePosition(v.OBJECT)===s||(i===F.OBJECT_NORMAL?this._execObjectNormalEvent(e,s,i):i===F.OBJECT_MESSAGE?this._execObjectMessageEvent(e,s,i):i===F.OBJECT_MONSTER?this._execObjectMonsterEvent(e,s,i):i===F.OBJECT_ITEM?this._execObjectItemEvent(e,s,i):i===F.OBJECT_DOOR?this._execObjectDoorEvent(e,s,i):i===F.OBJECT_STATUS?this._execObjectStatusEvent(e,s,i):i===F.OBJECT_BUY?this._execObjectBuyEvent(e,s,i):i===F.OBJECT_SELL?this._execObjectSellEvent(e,s,i):i===F.OBJECT_URLGATE?this._execObjectUrlGateEvent(e,s,i):i===F.OBJECT_SCORE?this._execObjectScoreEvent(e,s,i):i===F.OBJECT_SELECT?this._execObjectYesNoChoiceEvent(e,s,i):i===F.OBJECT_LOCALGATE&&this._execObjectLocalGateEvent(e,s,i),a&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(v.OBJECT,s))}_execMapStreetEvent(e,t,s){var i=this._wwaData.mapAttribute[t][F.ATR_ITEM];if(0!==i&&!this._player.hasItem(i))return!1;this.reserveAppearPartsInNextFrame(e,f.MAP,t);const a=this._wwaData.mapAttribute[t][F.ATR_STRING],r=this._wwaData.message[a],n=this._wwaData.mapAttribute[t][F.ATR_NUMBER];return this._waitFrame+=n*F.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.registerPageByMessage(r,{triggerParts:{id:t,type:v.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),0!==a&&this._shouldTreatWillMessageDisplay(this._pages)||0!==n}_shouldTreatWillMessageDisplay(e){return e.reduce(((e,t)=>e||!is(t.firstNode)),!1)}_execMapWallEvent(e,t,s){var i=this.getObjectIdByPosition(e.convertIntoPosition(this)),a=this.getObjectAttributeById(i,F.ATR_TYPE);if(0===i||a===F.OBJECT_NORMAL||a===F.OBJECT_DOOR&&(!this._player.hasItem(this.getObjectAttributeById(i,F.ATR_ITEM))||this.getObjectAttributeById(a,F.ATR_MODE)===F.PASSABLE_OBJECT)){this.reserveAppearPartsInNextFrame(e,f.MAP,t);var r=this._wwaData.mapAttribute[t][F.ATR_STRING],n=this._wwaData.message[r];return this.registerPageByMessage(n,{triggerParts:{id:t,type:v.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),!1}return!1}_execMapLocalGateEvent(e,t,s){var i=this._player.getPosition().getPartsCoord(),a=this._wwaData.mapAttribute[t][F.ATR_JUMP_X],r=this._wwaData.mapAttribute[t][F.ATR_JUMP_Y];return a>F.RELATIVE_COORD_LOWER&&(a=e.x+a-F.RELATIVE_COORD_BIAS),r>F.RELATIVE_COORD_LOWER&&(r=e.y+r-F.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,f.MAP,t),0<=a&&0<=r&&a<this._wwaData.mapWidth&&r<this._wwaData.mapWidth&&(a!==i.x||r!==i.y)&&(this.reserveJumpInNextFrame(new _(this,a,r,0,0)),this.playSound(this._wwaData.mapAttribute[t][F.ATR_SOUND]),!0)}_execMapUrlGateEvent(e,t,s){var i=this._wwaData.mapAttribute[t][F.ATR_STRING];if(!this._isURLGateEnable)return!0;const r=this.resolveSystemMessage(a.CONFIRM_ENTER_URL_GATE);if("BLANK"!==r)return this.registerSystemMessagePage(r,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_MAP_PARTS,this._yesNoURL=this._wwaData.message[i].split(/\s/g)[0],!0;location.href=ye(this._wwaData.message[i].split(/\s/g)[0])}_execObjectNormalEvent(e,t,s){}_execObjectMessageEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord(),n=this._wwaData.objectAttribute[t][F.ATR_SOUND];e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{triggerParts:{id:t,type:v.OBJECT,position:e}}),this._waitFrame+=this._wwaData.objectAttribute[t][F.ATR_NUMBER]*F.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this.playSound(n)}_execObjectStatusEvent(e,t,s){var i=new c(this._wwaData.objectAttribute[t][F.ATR_ENERGY],this._wwaData.objectAttribute[t][F.ATR_STRENGTH],this._wwaData.objectAttribute[t][F.ATR_DEFENCE],this._wwaData.objectAttribute[t][F.ATR_GOLD]),a=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[a],n=this._player.getStatusWithoutEquipments();if(i.strength>F.STATUS_MINUS_BORDER&&n.strength<i.strength-F.STATUS_MINUS_BORDER||i.defence>F.STATUS_MINUS_BORDER&&n.defence<i.defence-F.STATUS_MINUS_BORDER||i.gold>F.STATUS_MINUS_BORDER&&n.gold<i.gold-F.STATUS_MINUS_BORDER)return this.setPartsOnPosition(v.OBJECT,0,e),this._keyStore.allClear(),void this._mouseStore.clear();i.energy=i.energy>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.energy:i.energy,i.strength=i.strength>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.strength:i.strength,i.defence=i.defence>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.defence:i.defence,i.gold=i.gold>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-i.gold:i.gold,this._player.addStatusAll(i),this.setStatusChangedEffect(i),this._player.isDead()&&0!==this._wwaData.objectAttribute[t][F.ATR_ENERGY]&&this.shouldApplyGameOver({isCalledByMacro:!1})?this.gameover():(this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.setPartsOnPosition(v.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]))}_execObjectMonsterEvent(e,t,s){this._monster=this._createMonster(t,e,(()=>{this._monster=void 0,this._monsterWindow.hide(),this._dispatchWindowClosedTimeRequests()})),this._player.startBattleWith(this._monster)}_execObjectBuyEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectSellEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectItemEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[i];try{var n=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),o=(e.x-n.x)*F.CHIP_SIZE,h=(e.y-n.y)*F.CHIP_SIZE;this._player.addItem(t,this._wwaData.objectAttribute[t][F.ATR_NUMBER],!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new l(o,h),itemBoxBackgroundImageCoord:new l(this._wwaData.imgItemboxX*F.CHIP_SIZE,this._wwaData.imgItemboxY*F.CHIP_SIZE)}:void 0),this.setPartsOnPosition(v.OBJECT,0,e),0!==this._wwaData.objectAttribute[t][F.ATR_MODE]||(this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t))}catch(e){this.registerSystemMessagePageByKey(a.ITEM_BOX_FULL)}this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectDoorEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_ITEM],a=this._wwaData.objectAttribute[t][F.ATR_STRING],r=this._wwaData.message[a];this._player.hasItem(i)&&(0===this._wwaData.objectAttribute[t][F.ATR_MODE]&&this._player.removeItemByPartsID(i),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]),this.registerPageByMessage(r,{triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this.setPartsOnPosition(v.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),this._paintSkipByDoorOpen=!0)}_execObjectYesNoChoiceEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING],a=this._wwaData.message[i],r=this._player.getPosition().getPartsCoord();e.x!==r.x||e.y!==r.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e),this.registerPageByMessage(a,{showChoice:!0,triggerParts:{id:t,type:v.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}_execObjectLocalGateEvent(e,t,s){var i=this._player.getPosition().getPartsCoord();e.x!==i.x||e.y!==i.y||this._wwaData.objectNoCollapseDefaultFlag||this.setPartsOnPosition(v.OBJECT,0,e);var a=this._wwaData.objectAttribute[t][F.ATR_JUMP_X],r=this._wwaData.objectAttribute[t][F.ATR_JUMP_Y];a>F.RELATIVE_COORD_LOWER&&(a=i.x+a-F.RELATIVE_COORD_BIAS),r>F.RELATIVE_COORD_LOWER&&(r=i.y+r-F.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,f.OBJECT,t),0<=a&&0<=r&&a<this._wwaData.mapWidth&&r<this._wwaData.mapWidth&&(a!==i.x||r!==i.y)&&(this.reserveJumpInNextFrame(new _(this,a,r,0,0)),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND]))}_execObjectUrlGateEvent(e,t,s){var i=this._wwaData.objectAttribute[t][F.ATR_STRING];if(!this._isURLGateEnable)return;const r=this.resolveSystemMessage(a.CONFIRM_ENTER_URL_GATE);"BLANK"!==r?(this.registerSystemMessagePage(r,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=I.CALL_BY_OBJECT_PARTS,this._yesNoURL=this._wwaData.message[i].split(/\s/g)[0]):location.href=ye(this._wwaData.message[i].split(/\s/g)[0])}_execObjectScoreEvent(e,t,s){const i=this._wwaData.objectAttribute[t][F.ATR_STRING];this.registerPageByMessage(this._wwaData.message[i],{triggerParts:{id:t,type:v.OBJECT,position:e},scoreOption:{rates:{energy:this._wwaData.objectAttribute[t][F.ATR_ENERGY],strength:this._wwaData.objectAttribute[t][F.ATR_STRENGTH],defence:this._wwaData.objectAttribute[t][F.ATR_DEFENCE],gold:this._wwaData.objectAttribute[t][F.ATR_GOLD]}}}),this.playSound(this._wwaData.objectAttribute[t][F.ATR_SOUND])}updateScore(e){const t=e||this._lastScoreOptions;if(!t)return;const s=this._player.getStatus().calculateScore(t);this._scoreWindow.update(s)}_execChoiceWindowObjectSellEvent(){if(!this._player.hasGold(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD]))return this.registerSystemMessagePageByKey(a.NO_MONEY),{};if(0!==this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM]){const e=this._yesNoChoicePartsCoord,t=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),s=(e.x-t.x)*F.CHIP_SIZE,i=(e.y-t.y)*F.CHIP_SIZE,r=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM],n=this._wwaData.objectAttribute[r][F.ATR_NUMBER];try{this._player.addItem(r,n,!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new l(s,i),itemBoxBackgroundImageCoord:new l(this._wwaData.imgItemboxX*F.CHIP_SIZE,this._wwaData.imgItemboxY*F.CHIP_SIZE)}:void 0)}catch(e){return this.registerSystemMessagePageByKey(a.ITEM_BOX_FULL),{}}}const e=new c(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ENERGY],this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_STRENGTH],this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_DEFENCE],-this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD]);return e.energy=e.energy>F.STATUS_MINUS_BORDER?F.STATUS_MINUS_BORDER-e.energy:e.energy,this.setStatusChangedEffect(e),this._player.addStatusAll(e),this._player.isDead()&&0!==this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ENERGY]&&this.shouldApplyGameOver({isCalledByMacro:!1})?(this.gameover(),{isGameOver:!0}):(this.appearParts({pos:this._yesNoChoicePartsCoord,triggerType:f.OBJECT,triggerPartsId:this._yesNoChoicePartsID}),{})}_execChoiceWindowRunningEvent(){var e,t;if(0==--this._yesNoDispCounter)if(this._yesNoJudge===w.YES){if(this._yesNoChoiceCallInfo===I.CALL_BY_MAP_PARTS)(e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.MAP_URLGATE&&(location.href=ye(this._yesNoURL));else if(this._yesNoChoiceCallInfo===I.CALL_BY_OBJECT_PARTS)if((e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.OBJECT_BUY)this._player.hasItem(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM])?(this._player.removeItemByPartsID(this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_ITEM]),t=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_GOLD],this._player.earnGold(t),this.setStatusChangedEffect(new c(0,0,0,t)),this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.OBJECT,this._yesNoChoicePartsID)):this.registerSystemMessagePageByKey(a.NO_ITEM);else if(e===F.OBJECT_SELL){const{isGameOver:e}=this._execChoiceWindowObjectSellEvent();if(e)return}else e===F.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.CHOICE_YES,this._yesNoChoicePartsID):e===F.OBJECT_URLGATE&&(location.href=ye(this._yesNoURL));else this._yesNoChoiceCallInfo===I.CALL_BY_ITEM_USE?this._player.readyToUseItem(this._yesNoUseItemPos):this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===I.CALL_BY_LOG_QUICK_LOAD?(this._messageWindow.deleteSaveDom(),me(x[C.QUICK_LOAD]).classList.remove("onpress"),this._messageWindow.load()&&(this._stopUpdateByLoadFlag=!0,this._loadType=O.QUICK_LOAD)):this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_SAVE?(this._messageWindow.deleteSaveDom(),me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._quickSave(I.CALL_BY_QUICK_SAVE)):this._yesNoChoiceCallInfo===I.CALL_BY_RESTART_GAME?(me(x[C.RESTART_GAME]).classList.remove("onpress"),this._stopUpdateByLoadFlag=!0,this._loadType=O.RESTART_GAME):this._yesNoChoiceCallInfo===I.CALL_BY_END_GAME?(window.history.back(-1),me(x[C.GOTO_WWA]).classList.remove("onpress")):this._yesNoChoiceCallInfo===I.CALL_BY_GOTO_WWA?(location.href=ye(F.WWA_HOME),me(x[C.GOTO_WWA]).classList.remove("onpress")):this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_LOAD?(me(x[C.QUICK_LOAD]).classList.remove("onpress"),this._player.setPasswordWindowWating(),this._passwordWindow.show(hs.LOAD)):this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_SAVE?(me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._player.setPasswordWindowWating(),this._passwordWindow.password=this._quickSave(I.CALL_BY_PASSWORD_SAVE),this._passwordWindow.show(hs.SAVE)):this._yesNoChoiceCallInfo===I.CALL_BY_SUSPEND&&(me(x[C.QUICK_SAVE]).classList.remove("onpress"),this._quickSave(I.CALL_BY_SUSPEND));this._yesNoJudge=w.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._messageWindow.setYesNoChoice(!1)}else if(this._yesNoJudge===w.NO){if(this._yesNoChoiceCallInfo===I.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][F.ATR_TYPE],F.MAP_URLGATE;else if(this._yesNoChoiceCallInfo===I.CALL_BY_OBJECT_PARTS)(e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][F.ATR_TYPE])===F.OBJECT_BUY||e===F.OBJECT_SELL||(e===F.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,f.CHOICE_NO,this._yesNoChoicePartsID):F.OBJECT_URLGATE);else if(this._yesNoChoiceCallInfo===I.CALL_BY_ITEM_USE){me("item"+(this._yesNoUseItemPos-1)).classList.remove("onpress")}else if(this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===I.CALL_BY_LOG_QUICK_LOAD)switch(this._messageWindow.deleteSaveDom(),this._yesNoChoiceCallInfo=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._yesNoChoiceCallInfo){case I.NONE:me(x[C.QUICK_LOAD]).classList.remove("onpress");break;case I.CALL_BY_PASSWORD_LOAD:return this._yesNoJudge=w.UNSELECTED,void this.onpasswordloadcalled();case I.CALL_BY_LOG_QUICK_LOAD:this._wwaSave.selectLogSaveDataList(),this._messageWindow.createSaveDom();var s=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword);switch(this._yesNoJudge=w.UNSELECTED,s){case I.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage("読み込むオートセーブを選んでください。\n→Noでデータ復帰用パスワードの\n 入力選択ができます。",!0);break;case I.NONE:this.registerSystemMessagePage("読み込むオートセーブを選んでください。",!0)}return}else if(this._yesNoChoiceCallInfo===I.CALL_BY_QUICK_SAVE){if(this._messageWindow.deleteSaveDom(),this._usePassword||this._useSuspend)return this._yesNoJudge=w.UNSELECTED,void(this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled());me(x[C.QUICK_SAVE]).classList.remove("onpress")}else if(this._yesNoChoiceCallInfo===I.CALL_BY_RESTART_GAME)me(x[C.RESTART_GAME]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_END_GAME)me(x[C.GOTO_WWA]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_GOTO_WWA)me(x[C.GOTO_WWA]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_LOAD)me(x[C.QUICK_LOAD]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_PASSWORD_SAVE)me(x[C.QUICK_SAVE]).classList.remove("onpress");else if(this._yesNoChoiceCallInfo===I.CALL_BY_SUSPEND){if(this._usePassword)return this._yesNoJudge=w.UNSELECTED,void this.onpasswordsavecalled();me(x[C.QUICK_SAVE]).classList.remove("onpress")}this._yesNoJudge=w.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._messageWindow.setYesNoChoice(!1)}}_dispatchWindowClosedTimeRequests(){if(this._windowCloseWaitingJumpGateRequest&&this.forcedJumpGate(this._windowCloseWaitingJumpGateRequest.x,this._windowCloseWaitingJumpGateRequest.y),this._windowCloseWaitingMessageDisplayRequests.length>0){const e=this._windowCloseWaitingMessageDisplayRequests.shift();return this.registerPageByMessage(e.message,{additionalItems:e.additionalItems}),{newPageGenerated:!0}}return{newPageGenerated:!1}}_dispatchPlayerAndObjectsStopTimeRequests(){this._playerAndObjectsStopWaitingGameSpeedChangeRequest&&(this.setPlayerSpeedIndex(this._playerAndObjectsStopWaitingGameSpeedChangeRequest.speedIndex),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0),this._playerAndObjectsStopWaitingMessageDisplayRequests.length>0&&(this.registerPageByMessage(this._playerAndObjectsStopWaitingMessageDisplayRequests.map((e=>e.message)).join("<p>"),{additionalItems:this._playerAndObjectsStopWaitingMessageDisplayRequests.map((e=>e.additionalItems)).flat()}),this._playerAndObjectsStopWaitingMessageDisplayRequests=[])}_clearAllRequests(){this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingJumpGateRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[]}reserveMessageDisplayWhenShouldOpen(e){this._player.isWaitingMessage()||this._player.isFighting()||this._player.isWaitingPasswordWindow()||this._player.isWaitingEstimateWindow()?this._windowCloseWaitingMessageDisplayRequests.push(e):this._player.isMoving()||this._player.isWaitingMoveMacro()?this._playerAndObjectsStopWaitingMessageDisplayRequests.push(e):this.registerPageByMessage(e.message,{additionalItems:e.additionalItems})}handleMsgFunction(e){this._pageExecuting?this._windowCloseWaitingMessageDisplayRequests.push(e):this.reserveMessageDisplayWhenShouldOpen(e)}registerSystemMessagePage(e,t=!1){this.registerPageByMessage(e,{showChoice:t,isSystemMessage:!0})}registerSystemMessagePageByKey(e){const t=this.resolveSystemMessage(e);"BLANK"!==t&&this.registerPageByMessage(t,{isSystemMessage:!0})}_createSimpleMessage(e,t){return new Zt(e,(()=>this.generateTokenValues(t)),((e,t)=>this._execEvalString(e,t)))}registerPageByMessage(e,{showChoice:t=!1,isSystemMessage:s=!1,triggerParts:i={id:0,type:v.OBJECT,position:new l(0,0)},scoreOption:a,additionalItems:r=[]}={}){const n=ts(e,{triggerParts:i,isSystemMessage:s,showChoice:t,scoreOption:a,additionalItems:r},(e=>function(e,t,s){var i;let a=s.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\=(.*)$/);if((null===a||3!==a.length)&&(a=s.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)/),null===a||2!==a.length))throw new Error("マクロではありません");const r=`$${a[1].toLowerCase()}`,n="$if"===r&&s.match(/,/)?M.LEGACY_IF:U[r],o=Boolean(n!==M.SHOW_STR&&n!==M.SHOW_STR2),h=(null!==(i=a[2])&&void 0!==i?i:"").split(",").map((e=>o?e.trim():e));return new Xt(e,t,void 0===n?M.UNDEFINED:n,h)}(this,i,e)),((e,t)=>this._execEvalString(e,t)),(e=>this.generateTokenValues(e)));this._pages=this._pages.concat(n),this._shouldSetNextPage=!0}appearParts({pos:e,triggerType:t,triggerPartsId:s}){var i,a,r,n,o,h,c=t===f.CHOICE_NO?F.APPERANCE_PARTS_MIN_INDEX_NO:F.APPERANCE_PARTS_MIN_INDEX,u=t===f.CHOICE_YES?F.APPERANCE_PARTS_MAX_INDEX_YES:F.APPERANCE_PARTS_MAX_INDEX;for(t===f.MAP?(s=0===s?this._wwaData.map[e.y][e.x]:s,i=v.MAP):(s=0===s?this._wwaData.mapObject[e.y][e.x]:s,i=v.OBJECT),h=c;h<=u;h++){var d=F.ATR_APPERANCE_BASE+h*F.REL_ATR_APPERANCE_UNIT_LENGTH,p=d+F.REL_ATR_APPERANCE_ID,m=d+F.REL_ATR_APPERANCE_X,g=d+F.REL_ATR_APPERANCE_Y,E=d+F.REL_ATR_APPERANCE_TYPE;if(a=i===v.MAP?this._wwaData.mapAttribute[s][p]:this._wwaData.objectAttribute[s][p],r=i===v.MAP?this._wwaData.mapAttribute[s][E]:this._wwaData.objectAttribute[s][E],n=i===v.MAP?this._wwaData.mapAttribute[s][m]:this._wwaData.objectAttribute[s][m],o=i===v.MAP?this._wwaData.mapAttribute[s][g]:this._wwaData.objectAttribute[s][g],n===F.PLAYER_COORD?(n=this._player.getPosition().getPartsCoord().x,this._player.resetEventExecutionInfo()):n>F.RELATIVE_COORD_LOWER&&(n=e.x+n-F.RELATIVE_COORD_BIAS),o===F.PLAYER_COORD?(o=this._player.getPosition().getPartsCoord().y,this._player.resetEventExecutionInfo()):o>F.RELATIVE_COORD_LOWER&&(o=e.y+o-F.RELATIVE_COORD_BIAS),0!==n||0!==o)try{if(new _(this,n,o,0,0),r===v.MAP){if(a>=this._wwaData.mapPartsMax)throw new Error("背景パーツの範囲外IDが指定されました");var w=new l(n,o);this.setPartsOnPosition(v.MAP,a,w)}else{if(a>=this._wwaData.objPartsMax)throw new Error("物体パーツの範囲外IDが指定されました");w=new l(n,o);this.setPartsOnPosition(v.OBJECT,a,w),this._replaceRandomObject(new l(n,o)),n===this._player.getPosition().getPartsCoord().x&&o===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch(e){}}}reserveAppearPartsInNextFrame(e,t,s=0){this._reservedPartsAppearances.push({pos:e,triggerType:t,triggerPartsId:s})}reserveJumpInNextFrame(e){this._reservedJumpDestination=e}appearPartsByDirection(e,t,s){var i=this._player.getPosition().getPartsCoord(),a=this._player.getDir(),r=g[a],n=E[a];this.appearPartsEval(i,(r>=0?"+":"-")+Math.abs(r)*e,(n>=0?"+":"-")+Math.abs(n)*e,t,s)}appearPartsEval(e,t,s,i,a){var r,n,o=this._player.getPosition().getPartsCoord();if("P"===t||"p"===t)r=o.x;else if("+"===t[0])r=e.x+parseInt(t.substr(1));else if("-"===t[0])r=e.x-parseInt(t.substr(1));else if(r=parseInt(t),isNaN(r))throw new Error("座標として解釈できない文字が含まれています。");if("P"===s||"p"===s)n=o.y;else if("+"===s[0])n=e.y+parseInt(s.substr(1));else if("-"===s[0])n=e.y-parseInt(s.substr(1));else if(n=parseInt(s),isNaN(n))throw new Error("座標として解釈できない文字が含まれています。");try{new _(this,r,n,0,0);if(a===v.MAP){if(i>=this._wwaData.mapPartsMax)throw new Error("背景パーツの範囲外IDが指定されました");var h=new l(r,n);this.setPartsOnPosition(v.MAP,i,h)}else{if(i>=this._wwaData.objPartsMax)throw new Error("物体パーツの範囲外IDが指定されました");h=new l(r,n);this.setPartsOnPosition(v.OBJECT,i,h),this._replaceRandomObject(new l(r,n)),r===this._player.getPosition().getPartsCoord().x&&n===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch(e){}}getPartsID(e,t){if(e.x<0||e.y<0)throw new Error("想定外の座標が指定されました");return t===v.MAP?this._wwaData.map[e.y][e.x]:this._wwaData.mapObject[e.y][e.x]}_replaceRandomObject(e){var t,s,i=this._wwaData.mapObject[e.y][e.x];if(this._wwaData.objectAttribute[i][F.ATR_TYPE]===F.OBJECT_RANDOM){for(var a=0;a<F.RANDOM_ITERATION_MAX;a++){if(s=Math.floor(10*Math.random()),(t=this._wwaData.objectAttribute[i][F.ATR_RANDOM_BASE+s])>=this._wwaData.objPartsMax){t=0;break}if(this._wwaData.objectAttribute[t][F.ATR_TYPE]!==F.OBJECT_RANDOM)break;i=t}this.setPartsOnPosition(v.OBJECT,t,e)}}_replaceRandomObjectsInScreen(){for(var e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x-1),s=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW),i=Math.max(0,e.y-1),a=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW),r=t;r<=s;r++)for(var n=i;n<=a;n++)this._replaceRandomObject(new l(r,n))}_replaceAllRandomObjects(){for(var e=0;e<this._wwaData.mapWidth;e++)for(var t=0;t<this._wwaData.mapWidth;t++)this._replaceRandomObject(new l(e,t))}gameover(){var e=this._wwaData.gameoverX,t=this._wwaData.gameoverY;this._yesNoJudge=w.UNSELECTED,this._pages=[],this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=I.NONE,this._player.clearMessageWaiting(),this._messageWindow.clear(),this._messageWindow.setYesNoChoice(!1),this._waitFrame=0,this._temporaryInputDisable=!0,this._shouldSetNextPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._clearAllRequests(),this._player.jumpTo(new _(this,e,t,0,0));const s=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GAMEOVER;s&&this.evalCalcWwaNodeGenerator.evalWwaNode(s)}setYesNoInput(e){this._yesNoJudgeInNextFrame=e}getYesNoState(){return void 0!==this._yesNoJudgeInNextFrame?this._yesNoJudgeInNextFrame:this._yesNoJudge}setStatusChangedEffect(e){this._wwaData.isItemEffectEnabled&&(0!==e.strength&&(me("disp-strength").classList.add("onpress"),this._statusPressCounter.strength=F.STATUS_CHANGED_EFFECT_FRAME_NUM),0!==e.defence&&(me("disp-defence").classList.add("onpress"),this._statusPressCounter.defence=F.STATUS_CHANGED_EFFECT_FRAME_NUM),e instanceof c&&(0!==e.energy&&(me("disp-energy").classList.add("onpress"),this._statusPressCounter.energy=F.STATUS_CHANGED_EFFECT_FRAME_NUM),0!==e.gold&&(me("disp-gold").classList.add("onpress"),this._statusPressCounter.gold=F.STATUS_CHANGED_EFFECT_FRAME_NUM)))}setPartsOnPosition(e,t,s){var i,a,r=s.y<<Z.BITSHIFT|s.x;e===v.MAP?(i=this._wwaData.map[s.y][s.x],t=this.loadMapPartsID(t),i=this.loadMapPartsID(i),this._wwaData.map[s.y][s.x]=t,-1!==(a=this._mapIDTable[i].indexOf(r))&&this._mapIDTable[i].splice(a,1),-1===(a=this._mapIDTable[t].indexOf(r))&&this._mapIDTable[t].push(r)):(i=this._wwaData.mapObject[s.y][s.x],t=this.loadMapPartsObjectID(t),i=this.loadMapPartsObjectID(i),this._wwaData.mapObject[s.y][s.x]=t,-1!==(a=this._mapObjectIDTable[i].indexOf(r))&&this._mapObjectIDTable[i].splice(a,1),-1===(a=this._mapObjectIDTable[t].indexOf(r))&&this._mapObjectIDTable[t].push(r))}_countSamePartsLength(e,t){var s;for(s=t+1;s<e.length&&e[s]===e[s-1];s++);return s-t}_compressMap(e){for(var t=[],s=0;s<e.length;s++){t[s]=[];for(var i=0;i<e[s].length;){var a=this._countSamePartsLength(e[s],i);t[s].push([e[s][i],a]),i+=a}}return t}_decompressMap(e){for(var t=[],s=0;s<e.length;s++){t[s]=[];for(var i=0;i<e[s].length;i++)for(var a=e[s][i][1],r=0;r<a;r++)t[s].push(e[s][i][0])}return t}_generateMapDataHash(e){var t="A",s=0,i=0,a=0;for(a=0;a<e.map.length;a++){for(i=0;i<e.map[a].length;)s=this._countSamePartsLength(e.map[a],i),t+=e.map[a][i]+"|"+s+"/",i+=s;for(i=0;i<e.mapObject[a].length;)s=this._countSamePartsLength(e.mapObject[a],i),t+=e.mapObject[a][i]+"|"+s+"/",i+=s}for(var r=0;r<e.mapAttribute.length;r++)for(var n=0;n<e.mapAttribute[r].length;n++)t+=e.mapAttribute[r][n]+"/";for(var o=0;o<e.objectAttribute.length;o++)for(var h=0;h<e.objectAttribute[o].length;h++)t+=e.objectAttribute[o][h]+"/";return fs(t+="Z")}_generateSaveDataHash(e){var t=this._generateMapDataHash(e),s=[];for(var i in e)"map"!==i&&"mapObject"!==i&&"mapCompressed"!==i&&"mapObjectCompressed"!==i&&"mapAttribute"!==i&&"objectAttribute"!==i&&"checkString"!==i&&s.push(i);s.sort();for(var a=0;a<s.length;a++)t+=ve(e[s[a]]);return fs(t)}compressSystem(){return Ws}_quickSave(e){var t,s;const i=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_SAVE;i&&this.evalCalcWwaNodeGenerator.evalWwaNode(i);var a,r,n=structuredClone(this._wwaData),o=this._player.getPosition().getPartsCoord(),h=this._player.getStatusWithoutEquipments();switch(n.itemBox=this._player.getCopyOfItemBox(),n.playerX=o.x,n.playerY=o.y,n.statusEnergyMax=this._player.getEnergyMax(),n.statusEnergy=h.energy,n.statusStrength=h.strength,n.statusDefence=h.defence,n.statusGold=h.gold,n.moves=this._player.getMoveCount(),n.frameCount=this._player.getFrameCount(),n.gameSpeedIndex=this._player.getSpeedIndex(),n.playTime=null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0,n.userVar=this._userVar.numbered.slice(),n.userNamedVar=structuredClone(this._userVar.named),e){case I.CALL_BY_LOG_QUICK_SAVE:case I.CALL_BY_QUICK_SAVE:case I.CALL_BY_SUSPEND:break;case I.CALL_BY_PASSWORD_SAVE:n.checkOriginalMapString=this.checkOriginalMapString,n.checkString=this._generateSaveDataHash(n)}switch(n.message=void 0,n.mapAttribute=void 0,n.objectAttribute=void 0,e){case I.CALL_BY_QUICK_SAVE:return this._messageWindow.save(this._cvs,n),this.wwaCustomEvent("wwa_quicksave",{data:n}),"";case I.CALL_BY_PASSWORD_SAVE:const e=Ws.compress(n,{isPassword:!0});e.isCompress=1;const t=JSON.stringify(e);return this.wwaCustomEvent("wwa_passwordsave",{data:n,compress:e}),a=t,r=this._wwaData.worldPassNumber,console.warn(Es.enc.Utf8.parse(a)),Es.AES.encrypt(Es.enc.Utf8.parse(a),ws(r)).toString();case I.CALL_BY_SUSPEND:this.wwaCustomEvent("wwa_suspend",{data:n,compress:Ws.compress(n)});break;case I.CALL_BY_LOG_QUICK_SAVE:this.wwaCustomEvent("wwa_autosave",{data:n}),this._wwaSave.autoSave(this._cvs,n)}}wwaCustomEvent(e,t={}){this.wwaCustomEventEmitter.dispatch(e,t)}_decodePassword(e){let t,s="";try{i=e,a=this._wwaData.worldPassNumber,s=Es.AES.decrypt(i,ws(a)).toString(Es.enc.Utf8)}catch(e){t=e}var i,a,r;if(!s){console.warn("新方式でのパスワード暗号化解除失敗:",t);try{s=function(e,t,s){return Es.AES.decrypt(e,function(e,t){return`^ /${231*e+8310+t}P+>A[]`}(t,s)).toString(Es.enc.Utf8)}(e,this._wwaData.worldPassNumber,this.checkOriginalMapString)}catch(e){t=e}}if(!s){console.warn("旧方式でのパスワード暗号化解除失敗:",t);const e=t&&t.message?t.message:"";throw new Error("パスワード取得時からワールド制作者によってマップの暗証番号が変更されたか、\nパスワードが壊れているために正常にセーブデータが復元できませんでした。\n"+e)}try{r=JSON.parse(s)}catch(e){throw new Error("マップデータ以外のものが暗号化されたか、マップデータに何かが不足しているようです。\nJSON PARSE FAILED")}if(r.isCompress){delete r.isCompress;const[e,t]=Ws.decompress(r);return[Hs(e),t]}return[r,{isWorldNameEmpty:!1}]}_quickLoad(e=!1,t=null,s=!0){if(!e&&void 0===this._wwaSave.hasSaveData()&&null===t)throw new Error("セーブデータがありません。");let i,a=!1;if(null!==t){const e=this._decodePassword(t);i=e[0],a=e[1].isWorldNameEmpty}else i=structuredClone(e?this._restartData:this._messageWindow.load());if(i.message=structuredClone(this._restartData.message),i.mapAttribute=structuredClone(this._restartData.mapAttribute),i.objectAttribute=structuredClone(this._restartData.objectAttribute),void 0===i.map&&(i.map=this._decompressMap(i.mapCompressed)),void 0===i.mapObject&&(i.mapObject=this._decompressMap(i.mapObjectCompressed)),delete i.mapCompressed,delete i.mapObjectCompressed,null!==t){if(!a&&i.worldName!==this._wwaData.worldName)throw console.error("Invalid title",`(password)=${i.worldName} (current map)=${this._wwaData.worldName}`),new Error("前回パスワード取得時から、制作者によってワールド名が変更されたためロードできませんでした。\n予めご了承ください。");const e=this.checkOriginalMapString;if(this._isDisallowLoadOldSave&&i.checkOriginalMapString!==e)throw console.error("Invalid hash",`(password)=${i.checkOriginalMapString} (current map)=${e}`),new Error("前回パスワード取得時から、制作者によってマップが変更されたためロードできませんでした。\n(マップデータ制作者の設定により、内容が変更されると以前のパスワードは利用できなくなります。)\n予めご了承ください。");console.log("Valid Password!")}return s&&this._applyQuickLoad(i),i}_applyQuickLoad(e){this._userVar.named=e.userNamedVar,this._userVar.numbered=e.userVar,this._player.setEnergyMax(e.statusEnergyMax),this._player.setEnergy(e.statusEnergy),this._player.setStrength(e.statusStrength),this._player.setDefence(e.statusDefence),this._player.setGold(e.statusGold),this._player.setMoveCount(e.moves),this._player.setFrameCount(e.frameCount),this._player.clearItemBox();for(var t=0;t<e.itemBox.length;t++)this._player.addItem(e.itemBox[t],t+1,!0);this._player.systemJumpTo(new _(this,e.playerX,e.playerY,0,0)),0===e.bgm?this.playSound(B.NO_SOUND):this.playSound(e.bgm,e.bgmDelayDurationMs),this.setImgClick(new l(e.imgClickX,e.imgClickY)),0!==this.getObjectIdByPosition(this._player.getPosition())&&this._player.setPartsAppearedFlag(),this._clearAllRequests(),this._playTimeCalculator=new he(e.playTime),this._wwaData=e,this._mapIDTableCreate(),this._replaceAllRandomObjects(),this.setStatusIconCoord(R.ENERGY,new l(e.imgStatusEnergyX,e.imgStatusEnergyY)),this.setStatusIconCoord(R.STRENGTH,new l(e.imgStatusStrengthX,e.imgStatusStrengthY)),this.setStatusIconCoord(R.DEFENCE,new l(e.imgStatusDefenceX,e.imgStatusDefenceY)),this.setStatusIconCoord(R.GOLD,new l(e.imgStatusGoldX,e.imgStatusGoldY)),this.setWideCellCoord(new l(e.imgWideCellX,e.imgWideCellY)),this.setItemboxBackgroundPosition({x:e.imgItemboxX,y:e.imgItemboxY}),this.setFrameCoord(new l(e.imgFrameX,e.imgFrameY)),this.setPlayerSpeedIndex(e.gameSpeedIndex),this.updateCSSRule(),this.updateEffect(),this._cgManager.restorePictures(this._wwaData.pictureRegistry),this.updateAllPicturesCache(),this._player.updateStatusValueBox(),this._wwaSave.quickSaveButtonUpdate(this._wwaData)}_mapIDTableCreate(){var e;for(this._mapIDTable=[],this._mapObjectIDTable=[],e=0;e<this._wwaData.mapPartsMax;e++)this._mapIDTable[e]=[];for(e=0;e<this._wwaData.objPartsMax;e++)this._mapObjectIDTable[e]=[];for(var t=0;t<this._wwaData.mapWidth;t++)for(var s=0;s<this._wwaData.mapWidth;s++){var i=s<<Z.BITSHIFT|t;e=this._wwaData.map[s][t],this._mapIDTable[e]instanceof Array||(this._mapIDTable[e]=[]),this._mapIDTable[e].push(i),e=this._wwaData.mapObject[s][t],this._mapObjectIDTable[e]instanceof Array||(this._mapObjectIDTable[e]=[]),this._mapObjectIDTable[e].push(i)}}restartGame(){this._quickLoad(!0)}_fadeout(e){var t=0,s=F.MAP_WINDOW_WIDTH,i=F.FADEOUT_SPEED,a=me("wwa-fader");a.style.display="block";var r=setInterval((()=>{if(t+=i,(s-=2*i)<=0||2*t>F.MAP_WINDOW_WIDTH)return a.removeAttribute("style"),a.style.display="block",a.style.borderWidth="0",a.style.width=F.MAP_WINDOW_WIDTH+"px",a.style.height=F.MAP_WINDOW_HEIGHT+"px",a.style.backgroundColor="#808080",clearInterval(r),void e();a.style.width=s+"px",a.style.height=s+"px",a.style.borderWidth=t+"px"}),20)}moveObjects(e){var t,s,i,a=this._camera.getPosition(),r=(this._player.getPosition(),a.getPartsCoord(),a.getPartsCoord().x),n=a.getPartsCoord().y;if(this.getMapAttributeByPosition(this._player.getPosition(),F.ATR_TYPE)!==F.MAP_LOCALGATE&&this.getObjectAttributeByPosition(this._player.getPosition(),F.ATR_TYPE)!==F.OBJECT_LOCALGATE){for(t=new Array(F.V_PARTS_NUM_IN_WINDOW+2),this.hoge=new Array(F.V_PARTS_NUM_IN_WINDOW+2),i=-1;i<=F.V_PARTS_NUM_IN_WINDOW;i++)for(t[i+1]=new Array(F.H_PARTS_NUM_IN_WINDOW+2),this.hoge[i+1]=new Array(F.H_PARTS_NUM_IN_WINDOW+2),s=-1;s<=F.H_PARTS_NUM_IN_WINDOW;s++)if(n+i<0||n+i>=this._wwaData.mapWidth||r+s<0||r+s>=this._wwaData.mapWidth)t[i+1][s+1]=0,this.hoge[i+1][s+1]=0;else{try{var o=(h=new _(this,r+s,n+i,0,0)).getPartsCoord()}catch(e){t[i+1][s+1]=0,this.hoge[i+1][s+1]=0;continue}this._wwaData.mapObject[o.y][o.x];t[i+1][s+1]=this._wwaData.mapObject[o.y][o.x],this.hoge[i+1][s+1]=-this._wwaData.mapObject[o.y][o.x]}for(s=-1;s<=F.H_PARTS_NUM_IN_WINDOW;s++)if(!(r+s<0||r+s>=this._wwaData.mapWidth))for(i=-1;i<=F.V_PARTS_NUM_IN_WINDOW;i++)if(!(n+i<0||n+i>=this._wwaData.mapWidth)){try{var h;o=(h=new _(this,r+s,n+i,0,0)).getPartsCoord()}catch(e){continue}var c=this._wwaData.mapObject[o.y][o.x];if(0!==c&&this._wwaData.objectAttribute[c][F.ATR_MOVE]!==D.STATIC&&this._wwaData.objectAttribute[c][F.ATR_TYPE]!==F.OBJECT_LOCALGATE&&this._wwaData.objectAttribute[c][F.ATR_TYPE]!==F.OBJECT_RANDOM&&(this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.CHASE_PLAYER||this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.RUN_OUT||this._wwaData.objectAttribute[c][F.ATR_MOVE]===D.HANG_AROUND)){var u=this._wwaData.objectAttribute[c][F.ATR_MOVE];if(u!==D.HANG_AROUND){var d,p=this._getCandidateCoord(e,h,u),m=new l(p.x,o.y),g=new l(o.x,p.y),E=null;if(this._objectCanMoveTo(e,p,t))this._setObjectsInNextFrame(o,p,r,n,t,c);else{var w=this._getSecondCandidateMoveMode(e,o,p,m,g,this._wwaData.objectAttribute[c][F.ATR_TYPE]===F.OBJECT_MONSTER,t);w===N.MODE_X?this._setObjectsInNextFrame(o,m,r,n,t,c):w===N.MODE_Y?this._setObjectsInNextFrame(o,g,r,n,t,c):null===(E=this._getThirdCandidate(e,h,p,u,t))||this._wwaData.isOldMove?(d=this._getRandomMoveCoord(e,h,t),this._setObjectsInNextFrame(o,d,r,n,t,c)):this._setObjectsInNextFrame(o,E,r,n,t,c)}}else d=this._getRandomMoveCoord(e,h,t),this._setObjectsInNextFrame(o,d,r,n,t,c)}}}}_getCandidateCoord(e,t,s){var i=t.getPartsCoord();this._player.getPosition().getOffsetCoord(),this._player.getPosition().getPartsCoord();try{var a=e?this._player.getPosition().getNextJustPosition().getPartsCoord():this._player.getPosition().getPartsCoord()}catch(e){throw new Error("予期せぬ方向への移動のようです。")}var r=i.clone(),n=0,o=0;return s===D.CHASE_PLAYER?(n=i.x>a.x?-1:i.x<a.x?1:0,o=i.y>a.y?-1:i.y<a.y?1:0):s===D.RUN_OUT&&(n=i.x>a.x?1:i.x<a.x?-1:0,o=i.y>a.y?1:i.y<a.y?-1:0),r.x+=n,r.y+=o,r.x=Math.min(this._wwaData.mapWidth-1,Math.max(0,r.x)),r.y=Math.min(this._wwaData.mapWidth-1,Math.max(0,r.y)),r}_getSecondCandidateMoveMode(e,t,s,i,a,r,n){return!e||(this._player.getDir()!==m.UP&&this._player.getDir()!==m.DOWN||!r)&&(this._player.getDir()!==m.LEFT&&this._player.getDir()!==m.RIGHT||r)?this._objectCanMoveTo(e,i,n)?N.MODE_X:this._objectCanMoveTo(e,a,n)?N.MODE_Y:N.UNDECIDED:this._objectCanMoveTo(e,a,n)?N.MODE_Y:this._objectCanMoveTo(e,i,n)?N.MODE_X:N.UNDECIDED}_getThirdCandidate(e,t,s,i,a){var r,n=i===D.CHASE_PLAYER?1:i===D.RUN_OUT?-1:0,o=e?this._player.getPosition().getNextJustPosition().getPartsCoord():this._player.getPosition().getPartsCoord(),h=t.getPartsCoord();if(o.x!==h.x){if(r=new l(s.x,h.y+1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(s.x,h.y-1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x,h.y+1*n),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x,h.y-1*n),this._objectCanMoveTo(e,r,a))return r}if(o.y!==h.y){if(r=new l(h.x+1*n,s.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x-1*n,s.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x+1*n,h.y),this._objectCanMoveTo(e,r,a))return r;if(r=new l(h.x-1*n,h.y),this._objectCanMoveTo(e,r,a))return r}return null}_getRandomMoveCoord(e,t,s){const i=t.getPartsCoord(),a=i.clone(),r=this._wwaData.isOldMove?F.RANDOM_MOVE_ITERATION_NUM_BEFORE_V31:F.RANDOM_MOVE_ITERATION_NUM;for(let t=0;t<r;t++){const t=[-1,1,0,0,-1,-1,1,1],r=[0,0,1,-1,1,-1,1,-1],n=Math.floor(Math.random()*t.length);if(a.x=i.x+t[n],a.y=i.y+r[n],this._objectCanMoveTo(e,a,s))return a}return i}isPrevFrameEventExecuted(){return this._prevFrameEventExected}_objectCanMoveTo(e,t,s){if(t.x<0||t.y<0||this._wwaData.mapWidth<=t.x||this._wwaData.mapWidth<=t.y)return!1;var i=this._wwaData.map[t.y][t.x],a=this._wwaData.mapObject[t.y][t.x],r=this._wwaData.mapAttribute[i][F.ATR_TYPE],n=this._camera.getPosition(),o=n.getPartsCoord().x,h=n.getPartsCoord().y;if(0===i&&!this.isOldMap()||r===F.MAP_WALL)return!1;var c=t.x-o+1,l=t.y-h+1;if(0<=c&&0<=l&&c<s.length&&l<s.length){if(0!==s[l][c])return!1}else if(0!==a)return!1;if(e){if(this._player.getPosition().getNextJustPosition().getPartsCoord().equals(t))return!1}else if(this._player.getPosition().getPartsCoord().equals(t))return!1;return!0}_setObjectsInNextFrame(e,t,s,i,a,r){var n=t.x-s+1,o=t.y-i+1;0<=t.x&&t.x<=this._wwaData.mapWidth&&0<=t.y&&t.y<=this._wwaData.mapWidth&&(0<=n&&n<a.length&&0<=o&&o<a.length&&(a[e.y-i+1][e.x-s+1]=0,a[t.y-i+1][t.x-s+1]=r,this.hoge[t.y-i+1][t.x-s+1]=r),this._objectMovingDataManager.add(r,e.convertIntoPosition(this),t.convertIntoPosition(this),e.getDirectionTo(t)))}launchBattleEstimateWindow(){const e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x),s=Math.min(this._wwaData.mapWidth-1,e.x+F.H_PARTS_NUM_IN_WINDOW-1),i=Math.max(0,e.y),a=Math.min(this._wwaData.mapWidth-1,e.y+F.V_PARTS_NUM_IN_WINDOW-1),r=[];this.playSound(B.DECISION);for(let e=t;e<=s;e++)for(let t=i;t<=a;t++){const s=this._wwaData.mapObject[t][e];this._wwaData.objectAttribute[s][F.ATR_TYPE]!==F.OBJECT_MONSTER||r.find((e=>e.partsID===s))||r.push(this._createMonster(s,new l(e,t)))}if(this._bottomButtonType===p.BATTLE_REPORT&&me(x[C.GOTO_WWA]).classList.add("onpress"),0===r.length)return me(x[C.GOTO_WWA]).classList.remove("onpress"),this.hideBattleEstimateWindow(),!1;this._battleEstimateWindow.update(this._player.getStatus(),r,((e,t)=>this._player.calcBattleResultForPlayerTurn(e,t.status,!0)),((e,t)=>this._player.calcBattleResultForEnemyTurn(e.status,t,!0)),this.isUsingDefaultDamageCalcFunction()),this._battleEstimateWindow.show(),this._player.setEstimateWindowWating();const n=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_BATTLE_REPORT;return n&&this.evalCalcWwaNodeGenerator.evalWwaNode(n),!0}isUsingDefaultDamageCalcFunction(){return void 0===this.getUserDefinedDamageFunctionNode("enemyToPlayer")&&void 0===this.getUserDefinedDamageFunctionNode("playerToEnemy")}_createMonster(e,t,s){return new Ht(e,t,new l(this._wwaData.objectAttribute[e][F.ATR_X],this._wwaData.objectAttribute[e][F.ATR_Y]),new c(this._wwaData.objectAttribute[e][F.ATR_ENERGY],this._wwaData.objectAttribute[e][F.ATR_STRENGTH],this._wwaData.objectAttribute[e][F.ATR_DEFENCE],this._wwaData.objectAttribute[e][F.ATR_GOLD]),this._wwaData.message[this._wwaData.objectAttribute[e][F.ATR_STRING]],this._wwaData.objectAttribute[e][F.ATR_ITEM],s)}hideBattleEstimateWindow(){this._battleEstimateWindow.hide(),this._player.clearEstimateWindowWaiting(),me(x[C.GOTO_WWA]).classList.remove("onpress"),this._dispatchWindowClosedTimeRequests()}hidePasswordWindow(e=!1){if(this._passwordWindow.hide(),e||this._passwordWindow.mode===hs.SAVE)return this._player.clearPasswordWindowWaiting(),void this._dispatchWindowClosedTimeRequests();try{var t=this._quickLoad(!1,this._passwordWindow.password,!1)}catch(e){return this._player.clearPasswordWindowWaiting(),this._dispatchWindowClosedTimeRequests(),void alert("セーブデータの復元に失敗しました。\nエラー詳細:\n"+e.message)}this._passwordLoadExecInNextFrame=!0,this._passwordSaveExtractData=t}_displayUserVars(){if(!this._canDisplayUserVars||!this._inlineUserVarViewer)return;let e="";if(this._inlineUserVarViewer.isVisible=!0,this._player.isControllable()){const t=[...this._userVar.named];if("named"===this._inlineUserVarViewer.kind)if(e="名前つき変数一覧\n",0===t.length)e+="名前つき変数はありません\n";else if(t.length<=F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM)e+=t.map((([e,t])=>`${e}: ${Te(t)}`)).join("\n"),e+="\n";else for(let s=0;s<F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM;s++){let i=(this._inlineUserVarViewer.topUserVarIndex[this._inlineUserVarViewer.kind]+s)%t.length;e+=`${t[i][0]}: ${Te(t[i][1],!0)}\n`}else if("numbered"===this._inlineUserVarViewer.kind){e="変数一覧\n",this._userVarNameListRequestError&&("noFileSpecified"===this._userVarNameListRequestError.kind?e+=this._userVarNameListRequestError.errorMessage+"\n":(e+="【変数名取得失敗】\n",e+=" すべての変数を名無しとしています。\n",e+=` エラー詳細: ${this._userVarNameListRequestError.errorMessage}\n`));for(let t=0;t<F.INLINE_USER_VAR_VIEWER_DISPLAY_NUM;t++){let s=(this._inlineUserVarViewer.topUserVarIndex[this._inlineUserVarViewer.kind]+t)%F.USER_VAR_NUM;e+=`${`変数 ${s}: ${this._userVarNameList&&this._userVarNameList[s]?this._userVarNameList[s]:"名無し"}`}: ${Te(this._userVar.numbered[s],!0)}\n`}}e+="\n操作方法\n",e+="上キー:1つ戻す 下キー:1つ進める\n",e+="左キー:10個戻す 右キー:10個進める\n",e+="Vキー: 名前付き変数/通常変数の切り替え",this.registerSystemMessagePage(e)}}_displayHelp(){var e;if(this._player.isControllable()){const s=null===(e=this._playTimeCalculator)||void 0===e?void 0:e.calculatePlayTimeFormat();var t="";switch(this.userDevice.device){case S.GAME:switch(this.userDevice.os){case A.NINTENDO:t=" 【操作方法】\nA:Yes,戦闘結果予測の表示\nB:No\nX:メニュー\nY:このリストの表示\nR:初めからスタート\nZL:データの一時保存\nZR:一時保存データの読み込み\n+: 移動速度を上げる\n-: 移動速度を落とす\n WWA Wing バージョン:4.1.0-unstable.based-on.3.12.19.p.3\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;case A.PLAY_STATION:t=" 【操作方法】\n〇:Yes,戦闘結果予測の表示\n×:No\n△:メニュー\n□:このリストの表示\nR1:初めからスタート\nL2:データの一時保存\nR2:一時保存データの読み込み\nOPTIONS: 移動速度を上げる\nSHARE: 移動速度を落とす\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.19.p.3\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;case A.XBOX:t=" 【操作方法】\nB:Yes,戦闘結果予測の表示\nA:No\nY:メニュー\nX:このリストの表示\nRB:初めからスタート\nLT:データの一時保存\nRT:一時保存データの読み込み\nMENU: 移動速度を上げる\nWINDOW: 移動速度を落とす\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.19.p.3\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;default:return}break;case S.SP:case S.VR:return;case S.PC:t=" 【操作方法】\nF1、M:戦闘結果予測の表示\nF3:復帰用パスワード入力\nF4:復帰用パスワード表示\nF5:一時保存データの読み込み\nF6:データの一時保存\nF7:初めからスタート\nF8:WWA公式ページにリンク\nF12:このリストの表示\nキーボードの「123、QWE、ASD、ZXC」は右のアイテムボックスに対応。\n「Enter、Y」はYes,\n「Esc、N」はNoに対応。\n   I: 移動速度を落とす/\nF2、P: 移動速度を上げる\n  現在の移動回数:"+this._player.getMoveCount()+"\n"+(s?"  プレイ時間:"+s+"\n":"")+" WWA Wing バージョン:4.1.0-unstable.based-on.3.12.19.p.3\n マップデータ バージョン: "+Math.floor(this._wwaData.version/10)+"."+this._wwaData.version%10;break;default:return}t&&this.registerSystemMessagePage(t)}}_setNextPage(){if(this._clearFacesInNextFrame=!0,this._scoreWindow.isVisible()&&this._scoreWindow.hide(),this._isLastPage&&void 0!==this._reservedMoveMacroTurn&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0),0===this._pages.length){const{newPageGenerated:e}=this._hideMessageWindow();e||(this.clearFaces(),this._dispatchWindowClosedTimeRequests())}else this._shouldSetNextPage=!0;this._inlineUserVarViewer&&(this._inlineUserVarViewer.isVisible=!1)}_hideMessageWindow(){const e=this._player.isReadyToUseItem()?this._player.useItem():0,t=this.getObjectAttributeById(e,F.ATR_STRING);return 0===t?(this._messageWindow.isVisible()&&(this._player.setDelayFrame(),this._messageWindow.hide(),this._keyStore.allClear(),this._mouseStore.clear()),this._player.clearMessageWaiting(),{newPageGenerated:!1}):(this.registerPageByMessage(this.getMessageById(t),{triggerParts:{id:e,type:v.OBJECT,position:this._player.getPosition().getPartsCoord()}}),{newPageGenerated:0!==this._pages.length})}getPlayerPositon(){return this._player.getPosition()}loadMapPartsObjectID(e){return(e|=0)<0||e>=this._wwaData.objPartsMax?0:e}loadMapPartsID(e){return(e|=0)<0||e>=this._wwaData.mapPartsMax?0:e}replaceParts(e,t,s=v.OBJECT,i=!1){var a,r,n,o,h,c,l,_,u=this._camera.getPosition().getPartsCoord(),d=i?Math.max(0,u.x):0,p=i?Math.min(this._wwaData.mapWidth-1,u.x+F.H_PARTS_NUM_IN_WINDOW-1):this._wwaData.mapWidth-1,m=i?Math.max(0,u.y):0,g=i?Math.min(this._wwaData.mapWidth-1,u.y+F.V_PARTS_NUM_IN_WINDOW)-1:this._wwaData.mapWidth-1;if(i=0!==d||p!==this._wwaData.mapWidth-1||0!==m||g!==this._wwaData.mapWidth-1,s===v.OBJECT)if(e=this.loadMapPartsObjectID(e),t=this.loadMapPartsObjectID(t),o=this._mapObjectIDTable[e].concat(),(l=this._mapObjectIDTable[e]).length=0,_=this._mapObjectIDTable[t],r=o.length,i)for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,d<=h&&h<=p&&m<=c&&c<=g?(this._wwaData.mapObject[c][h]=t,_.push(a)):l.push(a);else{for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,this._wwaData.mapObject[c][h]=t;Array.prototype.push.apply(_,o)}else if(e=this.loadMapPartsID(e),t=this.loadMapPartsID(t),o=this._mapIDTable[e].concat(),(l=this._mapIDTable[e]).length=0,_=this._mapIDTable[t],r=o.length,i)for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,d<=h&&h<=p&&m<=c&&c<=g?(this._wwaData.map[c][h]=t,_.push(a)):l.push(a);else{for(n=0;n<r;n++)h=(a=o[n])&Z.BITMASK,c=a>>>Z.BITSHIFT&Z.BITMASK,this._wwaData.map[c][h]=t;Array.prototype.push.apply(_,o)}}getYesNoImgCoord(){return new l(this._wwaData.yesnoImgPosX,this._wwaData.yesnoImgPosY)}setYesNoImgCoord(e){return this._wwaData.yesnoImgPosX=e.x,this._wwaData.yesnoImgPosY=e.y,e}getPlayerImgCoord(){return new l(this._wwaData.playerImgPosX,this._wwaData.playerImgPosY)}setPlayerImgCoord(e){return this._wwaData.playerImgPosX=e.x,this._wwaData.playerImgPosY=e.y,e}setPlayerEnergyMax(e){return this._player.setEnergyMax(this.toValidStatusValue(e))}getMapPartsNum(){return this._wwaData.mapPartsMax}getObjectPartsNum(){return this._wwaData.objPartsMax}setMoveMacroWaitingToPlayer(e){this._reservedMoveMacroTurn=e}disableSave(e){return this._wwaData.disableSaveFlag=e,this._wwaSave.quickSaveButtonUpdate(this._wwaData),e}isOldMap(){return this._wwaData.isOldMap}setOldMap(e){return this._wwaData.isOldMap=e}setObjectNotCollapseOnPartsOnPlayer(e){return this._wwaData.objectNoCollapseDefaultFlag=e}setGameOverPosition(e){if(e.x<0||e.x>=this.getMapWidth()||e.y<0||e.y>=this.getMapWidth())throw new Error("マップの範囲外が指定されています!");return this._wwaData.gameoverX=e.x,this._wwaData.gameoverY=e.y,e}getGemeOverPosition(){return new l(this._wwaData.gameoverX,this._wwaData.gameoverY)}toValidStatusValue(e){return this.isNotNumberTypeOrNaN(e)||e<0?0:Math.floor(e)}setPlayerStatus(e,t,s){if(e===L.ENERGY){if(this._player.setEnergy(this.toValidStatusValue(t)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:s}))return this.gameover(),{isGameOver:!0}}else if(e===L.STRENGTH)this._player.setStrength(this.toValidStatusValue(t));else if(e===L.DEFENCE)this._player.setDefence(this.toValidStatusValue(t));else if(e===L.GOLD)this._player.setGold(this.toValidStatusValue(t));else{if(e!==L.MOVES)throw new Error("未定義のステータスタイプです");this._player.setMoveCount(this.toValidStatusValue(t))}return{}}setDelPlayer(e){return this._wwaData.delPlayerFlag=e}setPlayerGetItem(e,t){try{this._player.addItem(t,e,!0)}catch(e){}}setStatusIconCoord(e,t){const s=t.x*F.CHIP_SIZE,i=t.y*F.CHIP_SIZE,a=e=>{Ee(`${e}>.status-icon`).style.backgroundPosition=`-${s}px -${i}px`};switch(e){case R.ENERGY:this._wwaData.imgStatusEnergyX=t.x,this._wwaData.imgStatusEnergyY=t.y,a("#disp-energy");break;case R.STRENGTH:this._wwaData.imgStatusStrengthX=t.x,this._wwaData.imgStatusStrengthY=t.y,a("#disp-strength");break;case R.DEFENCE:this._wwaData.imgStatusDefenceX=t.x,this._wwaData.imgStatusDefenceY=t.y,a("#disp-defence");break;case R.GOLD:this._wwaData.imgStatusGoldX=t.x,this._wwaData.imgStatusGoldY=t.y,a("#disp-gold");break;default:throw new Error("種別が不正です。")}return t.clone()}setWideCellCoord(e){this._wwaData.imgWideCellX=e.x,this._wwaData.imgWideCellY=e.y;const t=e.x*F.CHIP_SIZE,s=e.y*F.CHIP_SIZE;return Array.prototype.forEach.call(we("div.wide-cell-row"),(e=>{e.style.backgroundPosition="-"+t+"px -"+s+"px"})),e.clone()}setFrameCoord(e){return this._wwaData.imgFrameX=e.x,this._wwaData.imgFrameY=e.y,this._cgManager.setFrameImage(e),e.clone()}setBattleEffectCoord(e){return this._battleEffectCoord=e.clone()}canInput(){return!this._temporaryInputDisable&&!this._cgManager.picture.isWaiting()}setEffect(e,t){this._wwaData.effectWaits=e,this._wwaData.effectCoords=t,this.updateEffect()}stopEffect(){this._wwaData.effectCoords=[],this.updateEffect()}updateEffect(){this._cgManager.updateEffects(this._wwaData.effectCoords)}updateAllPicturesCache(){this._cgManager.updateAllPicturesCache(this._isMainAnimation())}updatePicturesAnimation(){this._player.isPausing()||this._cgManager.updatePicturesAnimation(this._isMainAnimation())}setImgClick(e){if(this._wwaData.imgClickX=e.x,this._wwaData.imgClickY=e.y,e.equals(new l(0,0)))Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(e=>{e.style.backgroundImage="url('"+F.ITEM_BORDER_IMG_DATA_URL+"')",e.style.backgroundPosition="0 0"}));else{var t=this._wwaData.mapCGName.replace("(","\\(").replace(")","\\)");Array.prototype.forEach.call(we(".item-cell>.item-click-border"),(s=>{s.style.backgroundImage="url('"+t+"')",s.style.backgroundPosition="-"+e.x*F.CHIP_SIZE+"px -"+e.y*F.CHIP_SIZE+"px"}))}}addFace(e){this._faces.push(e),this._messageWindow.setPositionByPlayerPosition(0!==this._faces.length,this._scoreWindow.isVisible(),!1,this._player.getPosition(),this._camera.getPosition())}clearFaces(){this._faces=[]}updateItemEffectEnabled(e){this._wwaData.isItemEffectEnabled=e}setOldMove(e){this._wwaData.isOldMove=e}setGameOverPolicy(e){switch(e){case 0:return void(this._wwaData.gameOverPolicy="default");case 1:return void(this._wwaData.gameOverPolicy="never");case 2:return void(this._wwaData.gameOverPolicy="except-macro");default:return}}setBgmDelay(e){this._wwaData.bgmDelayDurationMs=e}setPictureRegistry(t,s,i,a,r){var n,o,h,c,l;const _=i===v.OBJECT?this._wwaData.objectAttribute[s]:i===v.MAP?this._wwaData.mapAttribute[s]:null;if(null===_)throw new Error("対応していないパーツ番号です。");const u=this.getMessageById(_[F.ATR_STRING]);if(!u)throw i===v.OBJECT?new Error(`物体パーツ ${s} 番に対応したテキストが見つかりませんでした。`):new Error(`背景パーツ ${s} 番に対応したテキストが見つかりませんでした。`);const d=this._returnEvalString("("+u+")"),p=this._cgManager.picture.registerPictureFromRawRegistry({layerNumber:t,imgPosX:(null!==(n=_[F.ATR_X])&&void 0!==n?n:0)/F.CHIP_SIZE,imgPosX2:(null!==(o=_[F.ATR_X2])&&void 0!==o?o:0)/F.CHIP_SIZE,imgPosY:(null!==(h=_[F.ATR_Y])&&void 0!==h?h:0)/F.CHIP_SIZE,imgPosY2:(null!==(c=_[F.ATR_Y2])&&void 0!==c?c:0)/F.CHIP_SIZE,triggerPartsX:a.x,triggerPartsY:a.y,soundNumber:null!==(l=_[F.ATR_SOUND])&&void 0!==l?l:0,properties:e(d)},s,i,r);this._wwaData.pictureRegistry=p,this.updateAllPicturesCache()}setPictureRegistryFromRawText(e,t){const s=this._cgManager.picture.registerPictureFromRawText(e,t);this._wwaData.pictureRegistry=s,this.updateAllPicturesCache()}setPictureRegistryFromObject(e,t){const s=this._cgManager.picture.registerPictureFromObject(e,t);this._wwaData.pictureRegistry=s,this.updateAllPicturesCache()}deletePictureRegistry(e){const t=this._cgManager.picture.deletePicture(e);this._wwaData.pictureRegistry=t}clearAllPictures(){this._cgManager.picture.clearAllPictures(),this._wwaData.pictureRegistry=[]}initCSSRule(){this._styleElm=me(F.WWA_STYLE_TAG_ID),this._sheet=this._styleElm.sheet,this.updateCSSRule()}updateCSSRule(){if(void 0===this._stylePos)this._stylePos=new Array(2);else if(void 0!==this._sheet.addRule)for(var e=0;e<this._stylePos.length;e++)this._sheet.removeRule(this._stylePos[this._styleElm[e]]);else for(e=0;e<this._stylePos.length;e++)this._sheet.deleteRule(this._stylePos[this._styleElm[e]]);const t="div.wwa-message-window, div#wwa-text-message-window, div#wwa-battle-estimate, div#wwa-password-window",s=this._isClassicModeEnable?1:.9,i=`\nbackground-color: rgba(${this._wwaData.frameColorR}, ${this._wwaData.frameColorG}, ${this._wwaData.frameColorB}, ${s});\nborder-color: rgba(${this._wwaData.frameOutColorR}, ${this._wwaData.frameOutColorG}, ${this._wwaData.frameOutColorB}, 1);\ncolor: rgba(${this._wwaData.fontColorR}, ${this._wwaData.fontColorG}, ${this._wwaData.fontColorB}, 1);\nwhite-space: pre-wrap;\n`,a="div#wwa-sidebar",r=`\ncolor: rgba(${this._wwaData.statusColorR}, ${this._wwaData.statusColorG}, ${this._wwaData.statusColorB},1);\nfont-weight: bold;\n`;void 0!==this._sheet.addRule?(this._stylePos[J.MESSAGE_WINDOW]=this._sheet.addRule(t,i),this._stylePos[J.SIDEBAR]=this._sheet.addRule(a,r)):(this._stylePos[J.MESSAGE_WINDOW]=this._sheet.insertRule(`${t} { ${i} }`,0),this._stylePos[J.SIDEBAR]=this._sheet.insertRule(`${a} { ${r} }`,1))}changeStyleRule(e,t,s,i){e===$.COLOR_FRAME?(this._wwaData.frameColorR=t,this._wwaData.frameColorG=s,this._wwaData.frameColorB=i):e===$.COLOR_FRAMEOUT?(this._wwaData.frameOutColorR=t,this._wwaData.frameOutColorG=s,this._wwaData.frameOutColorB=i):e===$.COLOR_STR?(this._wwaData.fontColorR=t,this._wwaData.fontColorG=s,this._wwaData.fontColorB=i):e===$.COLOR_STATUS_STR&&(this._wwaData.statusColorR=t,this._wwaData.statusColorG=s,this._wwaData.statusColorB=i),this.updateCSSRule()}showMonsterWindow(){this._monsterWindow.show()}isClassicMode(){return this._isClassicModeEnable}isConsoleOutputMode(){return this._useConsole}forcedJumpGate(e,t){this._player.isWaitingMessage()?this._windowCloseWaitingJumpGateRequest={x:e,y:t}:(this._windowCloseWaitingJumpGateRequest=void 0,this._player.jumpTo(new _(this,e,t,0,0)))}setUserVarIndecies(e,t,s="="){const i=this._userVar.named.get(e[0]),a=e.length-1,r=e.slice(1,a).reduce(((e,t)=>Ie(e,t)),i);let n=t;const o=e[a];if(!(e.length>1))throw new Error(`indeciesの引数が足りていません: ${e}`);switch(s){case"=":n=t;break;case"+=":n=Ie(r,o)+t;break;case"-=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)-t;break;case"*=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)*t;break;case"/=":if("number"!=typeof t)throw new TypeError(`その演算子は利用できません: ${s}`);n=Ie(r,o)/t;break;default:throw new TypeError(`その演算子は利用できません: ${s}`)}if(Array.isArray(r)){if("number"!=typeof o)throw new TypeError(`配列の添字に数字以外は使えません: ${e[a]}`);r[o]=n}else if("object"==typeof r&&null!==r){Ce(r,String(o),n)}else{if("string"==typeof r)throw new TypeError(`文字列 "${r}" の特定の文字を直接書き換えることはできません`);Ce(r,o,n)}this._userVar.named.set(e[0],i)}setUserVar(e,t,s){const i=(e,t)=>{if("number"==typeof e){if("number"!=typeof t)throw new TypeError("数字index変数への数値以外の代入は今のところできません。あらかじめご了承ください。");this._userVar.numbered[e]="number"==typeof t?this.toAssignableValue(t):t}else this._userVar.named.set(e,t)},a=(e=>"number"==typeof e?this._userVar.numbered[e]:this._userVar.named.get(e))(e);if("number"==typeof t)switch(s){case"+=":if("number"==typeof a)i(e,a+t);else{if("string"!=typeof a)throw new TypeError("boolean に number は足せません");i(e,String(a)+t)}break;case"-=":if("number"!=typeof a)throw new TypeError("string/boolean から number は引けません");i(e,a-t);break;case"*=":if("number"!=typeof a)throw new TypeError("string/boolean に number はかけられません");i(e,a*t);break;case"/=":if("number"!=typeof a)throw new TypeError("string/boolean は number で割れません");i(e,a/t);break;default:i(e,t)}else if("string"==typeof t)switch(s){case"+=":i(e,a+t);break;case"=":i(e,t);break;default:throw new TypeError("文字列を -=, *=, /= で複合代入することはできません")}else switch(s){case"+=":if("string"!=typeof a)throw new TypeError("number/boolean に boolean を足せません");i(e,a+t);break;case"=":i(e,t);break;default:throw new TypeError("booleanを -=, *=, /= で複合代入することはできません")}this._messageWindow.update()}toAssignableValue(e){const t=e>0?Math.floor(e):Math.ceil(e),s=Math.max(Math.min(t,F.USER_VAR_NUM_MAX_VALUE),F.USET_VAR_NUM_MIN_VALUE);return this.isNotNumberTypeOrNaN(s)?0:s}isValidUserVarIndex(e){return"number"==typeof e&&e>=0&&e<F.USER_VAR_NUM&&(0|e)===e}isNotNumberTypeOrNaN(e){return"number"!=typeof e||e!=e}getUserVar(e){return this._userVar.numbered[e]}getUserNameVar(e){return this._userVar.named.get(e.toString())}getAllUserNameVar(){return e(this._userVar.named)}recUserPosition(e,t){var s=this._player.getPosition().getPartsCoord();this.setUserVar(e,s.x),this.setUserVar(t,s.y)}jumpRecUserPosition(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.forcedJumpGate(s,i)}jumpSpecifiedXPos(e){const t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(e,t.y)}jumpSpecifiedYPos(e){const t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(t.x,e)}outputUserVar(e){console.log("Var["+e+"] = "+this._userVar.numbered[e])}setUserVarHP(e){this.setUserVar(e,this._player.getStatus().energy)}setUserVarHPMAX(e){this.setUserVar(e,this._player.getEnergyMax())}setUserVarAT(e,t){switch(t){case"bare":return void this.setUserVar(e,this._player.getStatusWithoutEquipments().strength);case"equipment":return void this.setUserVar(e,this._player.getStatusOfEquipments().strength);default:return void this.setUserVar(e,this._player.getStatus().strength)}}setUserVarDF(e,t){switch(t){case"bare":return void this.setUserVar(e,this._player.getStatusWithoutEquipments().defence);case"equipment":return void this.setUserVar(e,this._player.getStatusOfEquipments().defence);default:return void this.setUserVar(e,this._player.getStatus().defence)}}setUserVarMONEY(e){this.setUserVar(e,this._player.getStatus().gold)}setHPUserVar(e,t){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const s=this._userVar.numbered[e];if(Se(s,`v[${e}]`))return this._player.setEnergy(this.toValidStatusValue(s)),this._player.updateStatusValueBox(),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:t})?(this.gameover(),{isGameOver:!0}):{}}setHPMAXUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setEnergyMax(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setATUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setStrength(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setDFUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setDefence(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setMONEYUserVar(e){if(!this.isValidUserVarIndex(e))throw new Error("ユーザ変数の添字が範囲外です。");const t=this._userVar.numbered[e];Se(t,`v[${e}]`)&&(this._player.setGold(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setUserVarStep(e){this.setUserVar(e,this._player.getMoveCount())}setUserVarVal(e,t){this.setUserVar(e,t)}setUserValOtherUserVal(e,t){this.setUserVar(e,this._userVar.numbered[t])}setUserValAdd(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];"boolean"!=typeof s&&"boolean"!=typeof i&&this.setUserVar(e,s+i)}setUserValSub(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,s-i)}setUserValMul(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,s*i)}setUserValDiv(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,0===i?0:s/i)}setUserValMod(e,t){const s=this._userVar.numbered[e],i=this._userVar.numbered[t];Se(s,`v[${e}]`)&&Se(i,`v[${t}]`)&&this.setUserVar(e,0===i?0:s%i)}setUserValRandNum(e,t,s){this.setUserVar(e,Math.floor(Math.random()*this.toAssignableValue(t))+s)}speedChangeJudge(e){this._wwaData.permitChangeGameSpeed=e}execSetMacro(e="",t){const s=function(e,t){const s=dt(e),i=s.match(et);if(null!==i){const e=pt(i[2],t),s=pt(i[4],t);return ut(_t(i[3],e,s),i[1])}const a=s.match(tt);if(null!==a){const e=pt(a[1],t),s=pt(a[3],t);return ut(_t(a[2],e,s),a[1])}throw new Error("setMacroのフォーマットを満たしていません: "+e)}(e,this.generateTokenValues(t.triggerParts)),{assignee:i,rawValue:a}=s;switch(i){case"energy":if(this._player.setEnergy(this.toValidStatusValue(a)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:!0}))return this._player.updateStatusValueBox(),this.gameover(),{isGameOver:!0};break;case"energyMax":this._player.setEnergyMax(this.toValidStatusValue(a));break;case"strength":this._player.setStrength(this.toValidStatusValue(a));break;case"defence":this._player.setDefence(this.toValidStatusValue(a));break;case"gold":this._player.setGold(this.toValidStatusValue(a));break;case"moveCount":this._player.setMoveCount(this.toValidStatusValue(a));break;case"variable":if(isNaN(s.index)||!this.isValidUserVarIndex(s.index))throw new Error("ユーザ変数の添字が範囲外です。");this.setUserVar(s.index,this.toAssignableValue(a));break;case"map":this.appearPartsEval(t.triggerParts.position,`${s.x}`,`${s.y}`,s.rawValue,v.MAP);break;case"mapObject":this.appearPartsEval(t.triggerParts.position,`${s.x}`,`${s.y}`,s.rawValue,v.OBJECT);break;case"item":this.setPlayerGetItem(s.boxIndex1to12,a);break;case"playerDirection":this._player.setDir(a)}return this._player.updateStatusValueBox(),{}}generateTokenValues(e){var t,s;return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),itemBox:this._player.getCopyOfItemBox(),partsId:null==e?void 0:e.id,partsType:null==e?void 0:e.type,partsPosition:null==e?void 0:e.position,map:this._wwaData.map,mapObject:this._wwaData.mapObject}}userVarUserIf(e,t){if(void 0===t[5])throw new Error("$if の引数不足 str="+t);const s=parseInt(t[0],10),i=parseInt(t[2],10);if(!this.isValidUserVarIndex(s)||!this.isValidUserVarIndex(i))throw new Error("判定対象のユーザ変数の添字が範囲外です!");const a=this._userVar.numbered[s],r=t[1],n=this._userVar.numbered[i];if(!Se(a,`v[${s}]`)||!Se(n,`v[${i}]`))return;const o=e=>parseInt(e,10)?v.MAP:v.OBJECT;if(this.compareUserVar(a,r,n)){const s=parseInt(t[3],10),i=t[4],a=t[5],r=o(t[6]);return void this.appearPartsEval(e,i,a,s,r)}if(void 0===t[9])return;const h=parseInt(t[7],10),c=t[8],l=t[9],_=o(t[10]);this.appearPartsEval(e,c,l,h,_)}compareUserVar(e,t,s){switch(t){case"==":return e===s;case"!=":return e!==s;case">=":return e>=s;case">":return e>s;case"<=":return e<=s;case"<":return e<s;default:throw new Error(`未定義の演算子です: ${t}`)}}setPlayerSpeedIndex(e){if(e<F.MIN_SPEED_INDEX||F.MAX_SPEED_INDEX<e)throw new Error("#set_speed の引数が異常です:"+e);this._player.isMoving()?this._playerAndObjectsStopWaitingGameSpeedChangeRequest={speedIndex:e}:(this._wwaData.gameSpeedIndex=this._player.setSpeedIndex(e),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0)}setUserVarPlayTime(e){var t,s;this.setUserVar(e,null!==(s=null===(t=this._playTimeCalculator)||void 0===t?void 0:t.calculateTimeMs())&&void 0!==s?s:0)}hideStatus(e,t){if(e<0||e>V.length)throw new Error("隠すパラメータは0から3の間で指定してください。");this._changeStatusVisibility(V[e],!t),this._player.updateStatusValueBox()}varMap(e,t,s,i,a){if(!this.isValidUserVarIndex(i))throw new Error("対象のユーザ変数の添字が範囲外です");const r=this._userVar.numbered[i];if("number"!=typeof r)throw new Error("数値でないパーツ番号は指定できません");if(r<0)throw new Error("負のパーツ番号は指定できません");if(a===v.OBJECT&&r>=this.getObjectPartsNum())throw new Error("物体パーツ番号の最大値を超えるパーツ番号が指定されました");if(a===v.MAP&&r>=this.getMapPartsNum())throw new Error("背景パーツ番号の最大値を超えるパーツ番号が指定されました");this.appearPartsEval(e,t,s,r,a)}setItemboxBackgroundPosition(e){this._wwaData.imgItemboxX=e.x,this._wwaData.imgItemboxY=e.y,Array.prototype.forEach.call(we("div.item-cell"),(t=>{t.style.backgroundPosition=`-${e.x*F.CHIP_SIZE}px -${e.y*F.CHIP_SIZE}px`}))}_getVirtualPadButton(e){if(!ce.includes(e))throw new ReferenceError(`WWAの仮想パッド ${e} は存在しません。`);return this._virtualPadButtonElements[e]}_setVirtualPadTouch(e){this._getVirtualPadButton(e).classList.add("wwa-virtualpad__button--pressed")}_setVirtualPadLeave(e){this._getVirtualPadButton(e).classList.remove("wwa-virtualpad__button--pressed")}_actionGamePadButtonItemMacro(){if(!this._wwaData.gamePadButtonItemTable)return!1;var e,t,s,i;for(e=this._wwaData.gamePadButtonItemTable.length,t=0;t<e;t++)if(s=this._wwaData.gamePadButtonItemTable[t]){switch(i=!1,t){case te.BUTTON_CROSS_KEY_LEFT:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_LEFT)&&(i=!0);break;case te.BUTTON_CROSS_KEY_RIGHT:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_RIGHT)&&(i=!0);break;case te.BUTTON_CROSS_KEY_UP:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_UP)&&(i=!0);break;case te.BUTTON_CROSS_KEY_DOWN:this._gamePadStore.crossPressed(te.BUTTON_CROSS_KEY_DOWN)&&(i=!0)}if(this._gamePadStore.buttonTrigger(t)&&(i=!0),i&&this.onselectitem(s))return!0}return!1}setGamePadButtonItemTable(e,t){var s,i;if(!this._wwaData.gamePadButtonItemTable)for(i in this._wwaData.gamePadButtonItemTable=[],te)s=i,this._wwaData.gamePadButtonItemTable[s]=0;this._wwaData.gamePadButtonItemTable.length>e&&(this._wwaData.gamePadButtonItemTable[e]=t)}_checkSaveDataCompatibility(e,t,s){return void 0!==e&&e!==this._wwaData.worldName?js.UNMATCHED_WORLD_NAME:s&&s!==Zs(this._wwaData.worldName,this._wwaData.worldPassNumber)?js.UNMATCHED_WORLD_PASS_NUMBER:this._isDisallowLoadOldSave&&t!==this.checkOriginalMapString?js.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:null}isVisibleStatus(e){switch(e){case"energy":return this._wwaData.isVisibleStatusEnergy;case"strength":return this._wwaData.isVisibleStatusStrength;case"defence":return this._wwaData.isVisibleStatusDefence;case"gold":return this._wwaData.isVisibleStatusGold;default:throw new Error("存在しないステータスが与えられました")}}_changeStatusVisibility(e,t){switch(e){case"energy":return void(this._wwaData.isVisibleStatusEnergy=t);case"strength":return void(this._wwaData.isVisibleStatusStrength=t);case"defence":return void(this._wwaData.isVisibleStatusDefence=t);case"gold":return void(this._wwaData.isVisibleStatusGold=t);default:throw new Error("存在しないステータスが与えられました")}}shouldApplyGameOver({isCalledByMacro:e}){return e?"default"===this._wwaData.gameOverPolicy:"default"===this._wwaData.gameOverPolicy||"except-macro"===this._wwaData.gameOverPolicy}getEnemyStatus(){return this._monster?this._monster.status:-1}setEnemyStatus(e){if(!this._monster)throw new Error("敵が存在しません");this._monster.setStatus(e)}getGameStatus(){var e,t;return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:null!==(t=null===(e=this._playTimeCalculator)||void 0===e?void 0:e.calculateTimeMs())&&void 0!==t?t:0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),cameraCoord:this._camera.getPosition().getPartsCoord(),itemBox:this._player.getCopyOfItemBox(),gameSpeedIndex:this._player.getSpeedIndex(),wwaData:this._wwaData}}_debugEvalString(){if(this._player.isControllable())try{const e=this._debugConsoleElement.querySelector(".console-text-area");if(!(e instanceof HTMLTextAreaElement))throw new Error("要素 #wwa-debug-console > .console-text-area が textarea 要素でありません");this._execEvalString(e.value)}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message)}}_execEvalString(e,t){try{const s=this.convertWwaNodes(e);t&&this.evalCalcWwaNodeGenerator.setTriggerParts(t.id,t.type,t.position),this.evalCalcWwaNodeGenerator.evalWwaNodes(s),this.evalCalcWwaNodeGenerator.clearTemporaryState()}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message)}}_returnEvalString(e){try{const t=Ha(Ya("("+e+")"));return this.evalCalcWwaNodeGenerator.evalWwaNode(t)}catch(e){console.error(e),this.registerSystemMessagePage("解析中にエラーが発生しました :\n"+e.message,!1)}}movePlayer(e){this._player.controll(e)}isPlayerWaitingMessage(){return this._player.isWaitingMessage()}_loadSystemMessage(e){if(this._wwaData.customSystemMessages[e])return this._wwaData.customSystemMessages[e];const t=r[e];if(t.mapdataParams)switch(t.mapdataParams.messageArea){case"message":{const e=this._wwaData.message[t.mapdataParams.index];return""===e?t.defaultText:e}case"systemMessage":{const e=this._wwaData.systemMessage[t.mapdataParams.index];return""===e?t.defaultText:e}default:throw new Error("システムエラー: システムメッセージの設定がおかしいようです")}return t.defaultText}resolveSystemMessage(e){const t=this._loadSystemMessage(e);switch(e){case a.ITEM_SELECT_TUTORIAL:return t.replaceAll("%HOW_TO_USE_ITEM%",(()=>{switch(this.userDevice.device){case S.PC:return"右のボックスを選択する";case S.VR:return"右のボックスをクリックする";case S.SP:return"右のボックスをタップする";case S.GAME:switch(this.userDevice.os){case A.NINTENDO:return"Xボタンを押すか、右のボックスをタップする";case A.PLAY_STATION:return"△ボタンを押す";case A.XBOX:return"Yボタンを押す";default:return"右のボックスを選択する"}default:return"右のボックスを選択する"}})());case a.GAME_SPEED_CHANGED:{const e=this._player.getSpeedIndex();return t.replaceAll("%GAME_SPEED_NAME%",W[e]).replaceAll("%HIGH_SPEED_MESSAGE%",this.isBattleSpeedIndexForQuickBattle(e)?"戦闘も速くなります。\n":"").replaceAll("%MAX_SPEED_INDEX%",String(F.MAX_SPEED_INDEX+1)).replaceAll("%GAME_SPEED_INDEX%",String(e+1)).replaceAll("%SPEED_UP_BUTTON%",this.userDevice.os===A.NINTENDO?"+ボタン":"Pキー").replaceAll("%SPEED_DOWN_BUTTON%",this.userDevice.os===A.NINTENDO?"-ボタン":"Iキー")}default:return t}}overwriteSystemMessage(e,t){this._wwaData.customSystemMessages[e]=t}}var Cr=!1;function Pr(){if(navigator.userAgent.match(/(?:msie|trident)/i)||navigator.userAgent.match(/edge/i))return void alert("このゲームをプレイするには、Google Chrome や Mozilla Firefox などの最新のブラウザでこのページを開いてください。\nご利用の環境のサポートは、既に終了しています。");Array.prototype.forEach.call(we("a.wwa-copyright"),(e=>{e.addEventListener("click",(()=>{Cr=!0}))})),window.addEventListener("beforeunload",(e=>{var t="このページを離れますか?";if(Cr)return Cr=!1,e.returnValue=t,t}));const e=me("wwa-wrapper").getAttribute("data-wwa-title-img"),t=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-enable"),s=null!==t&&null!==t.match(/^true$/i);ms(me("wwa-wrapper"),e,s);var i=me("wwa-wrapper").getAttribute("data-wwa-mapdata"),a=me("wwa-wrapper").getAttribute("data-wwa-audio-dir"),r=me("wwa-wrapper").getAttribute("data-wwa-var-dump-elm"),n=null,o="true"===me("wwa-wrapper").getAttribute("data-wwa-display-user-vars"),h=me("wwa-wrapper").getAttribute("data-wwa-user-var-names-file");me("wwa-wrapper").hasAttribute("data-wwa-var-dump-elm")&&o&&(n=function(e){const t=ge(e);return t instanceof HTMLElement?(t.classList.add("wwa-vardump-wrapper"),t.appendChild(lr({kind:"named"})),t.appendChild(lr({kind:"numbered"})),t):null}(r));var c=!0;me("wwa-wrapper").getAttribute("data-wwa-urlgate-enable").match(/^false$/i)&&(c=!1);var l=me("wwa-wrapper").getAttribute("data-wwa-classic-mode-enable"),_=!1;null!==l&&l.match(/^true$/i)&&(_=!0);var u=!0,d=me("wwa-wrapper").getAttribute("data-wwa-item-effect-enable");null!==d&&d.match(/^false$/i)&&(u=!1);let p=!1;const m=me("wwa-wrapper").getAttribute("data-wwa-use-go-to-wwa");null!==m&&m.match(/^true$/i)&&(p=!0);const g=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-viewport-fit-enable");ps()&&null!==g&&g.match(/^true$/i)&&(!function(){const e=document.getElementsByTagName("head")[0];let t=document.createElement("meta");t.setAttribute("name","viewport"),e.appendChild(t),de()}(),window.addEventListener("resize",de));const E=me("wwa-wrapper").getAttribute("data-wwa-virtualpad-controller-elm"),w=s&&E?Ee(E):null,f=me("wwa-wrapper").getAttribute("data-wwa-picture-image-names-file"),y=(()=>{const e=me("wwa-wrapper").getAttribute("data-wwa-disallow-load-old-save");return!(null===e||!e.match(/^true$/i))})(),v=me("wwa-wrapper").getAttribute("data-wwa-user-defined-scripts-file");Sr=new Ir({mapdata:i,urlGateEnable:c,titleImg:null!=e?e:void 0,audioDir:a,classicModeEnable:_,itemEffectEnable:u,useGoToWwa:p,disallowLoadOldSave:y,varDumpElm:n,userVarNamesFile:h,displayUserVars:o,virtualPadEnable:s,virtualPadControllerElm:w,userDefinedScriptsFile:v,pictureImageNamesFile:f})}"complete"===document.readyState?setTimeout(Pr):window.addEventListener("load",(function(){setTimeout(Pr)}))}()}();