0;if(q){s=c[a+16>>2]|0;t=0;do{g[d+(t<<2)>>2]=+g[s+(t<<2)>>2]+r;t=t+1|0}while((t|0)!=(i|0));t=c[a+8>>2]|0;r=+g[o+496>>2]-e;if(q){q=c[a+20>>2]|0;o=a+32|0;s=a+36|0;u=a+28|0;v=0;while(1){w=c[q+(v<<2)>>2]|0;x=v;e=+g[b+(v<<2)>>2];a:while(1){y=x;while(1){z=y+1|0;if((z|0)>=(i|0)){A=0;break a}if((c[q+(z<<2)>>2]|0)!=(w|0)){A=1;break a}p=+g[b+(z<<2)>>2];if(p>e){x=z;e=p;continue a}else y=z}}if(e+6.0>+g[d+(y<<2)>>2]?(x=w>>c[o>>2],B=c[s>>2]|0,C=~~((r+e+-30.0)*.10000000149011612),D=(C|0)>0?C:0,C=c[(c[t+(((x|0)>0?((x|0)<16?x:16):0)<<2)>>2]|0)+(((D|0)<7?D:7)<<2)>>2]|0,D=C+8|0,x=~~+g[C+4>>2],p=+g[C>>2],C=~~p,(C|0)<(x|0)):0){E=C;C=~~((p+-16.0)*+(B|0)-+(B>>1|0)+ +((c[q+(y<<2)>>2]|0)-(c[u>>2]|0)|0));do{if((C|0)>0?(p=+g[D+(E<<2)>>2]+e,F=m+(C<<2)|0,+g[F>>2]>2]=p;C=C+B|0;E=E+1|0}while((E|0)<(x|0)&(C|0)<(k|0))}if(A)v=z;else{G=s;break}}}else H=7}else H=7;if((H|0)==7)G=a+36|0;H=c[G>>2]|0;Sb(m,H,k);k=c[a>>2]|0;b:do if((k|0)>1){G=c[a+20>>2]|0;s=c[G>>2]|0;z=c[a+28>>2]|0;v=(c[n>>2]|0)+32|0;A=s;u=1;y=0;q=s-(H>>1)-z|0;while(1){r=+g[m+(q<<2)>>2];s=((c[G+(u<<2)>>2]|0)+A>>1)-z|0;e=+g[v>>2];p=r>e?e:r;c:do if((q|0)<(s|0)){t=q;r=p;while(1){o=t+1|0;d:do if(r==-9999.0){I=+g[m+(o<<2)>>2];J=o}else{b=o;while(1){e=+g[m+(b<<2)>>2];if(e>-9999.0&e=(k|0)|(A|0)>(s|0))M=y;else{t=y;while(1){o=d+(t<<2)|0;if(+g[o>>2]>2]=K;o=t+1|0;if((o|0)>=(k|0)){M=o;break e}if((c[G+(o<<2)>>2]|0)>(s|0)){M=o;break}else t=o}}while(0);s=M+1|0;if((s|0)>=(k|0)){N=M;break b}A=c[G+(M<<2)>>2]|0;u=s;y=M;q=L}}else N=0;while(0);K=+g[m+((c[j>>2]|0)+-1<<2)>>2];if((N|0)<(k|0))O=N;else{l=h;return}do{N=d+(O<<2)|0;if(+g[N>>2]>2]=K;O=O+1|0}while((O|0)!=(k|0));l=h;return}function Jb(a,b,d,e,f,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0;j=c[a>>2]|0;k=c[a+4>>2]|0;l=+g[k+12+(e<<2)>>2];if((j|0)<=0)return;m=c[(c[a+12>>2]|0)+(e<<2)>>2]|0;n=k+108|0;o=+g[a+48>>2];p=o*.005;q=o*.0003;if((e|0)==1)r=0;else{e=0;do{o=+g[m+(e<<2)>>2]+ +g[b+(e<<2)>>2];s=+g[n>>2];t=o>s?s:o;o=+g[d+(e<<2)>>2]+l;g[f+(e<<2)>>2]=t>2]+ +g[b+(r<<2)>>2];o=+g[n>>2];s=t>o?o:t;t=+g[d+(r<<2)>>2]+l;g[f+(r<<2)>>2]=s>2];s=t+17.200000762939453;if(t>-17.200000762939453){t=1.0-p*s;if(t<0.0)u=9.999999747378752e-05;else u=t}else u=1.0-q*s;e=h+(r<<2)|0;g[e>>2]=+g[e>>2]*u;r=r+1|0}while((r|0)!=(j|0));return}function Kb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0.0,ja=0,ka=0,la=0,ma=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0.0,db=0.0,eb=0,fb=0,gb=0.0,hb=0,ib=0,jb=0,kb=0;f=l;l=l+4912|0;h=f+1328|0;i=f+1064|0;j=f+804|0;k=f+544|0;m=f+284|0;n=f+24|0;o=f+20|0;p=f+16|0;q=f+12|0;r=f+8|0;s=f+4|0;t=f;u=c[b+1296>>2]|0;v=c[b+1288>>2]|0;w=c[b+1284>>2]|0;x=(w|0)>0;if(x){y=0;do{c[i+(y<<2)>>2]=-200;y=y+1|0}while((y|0)!=(w|0));if(x){y=0;do{c[j+(y<<2)>>2]=-200;y=y+1|0}while((y|0)!=(w|0));if(x){id(k|0,0,w<<2|0)|0;y=0;do{c[m+(y<<2)>>2]=1;y=y+1|0}while((y|0)!=(w|0));if(x){id(n|0,-1,w<<2|0)|0;x=w+-1|0;if((w|0)==1){z=0;l=f;return z|0}y=v+-1|0;A=u+1112|0;B=c[b>>2]|0;C=0;D=0;while(1){E=C;C=C+1|0;F=B;B=c[b+(C<<2)>>2]|0;G=h+(E*56|0)+8|0;H=G;I=H+48|0;do{c[H>>2]=0;H=H+4|0}while((H|0)<(I|0));c[h+(E*56|0)>>2]=F;c[h+(E*56|0)+4>>2]=B;J=(B|0)<(v|0)?B:y;if((J|0)<(F|0)){K=0;L=0;M=0;N=0;O=0;P=0;Q=0;S=0;T=0;U=0;V=0;W=0}else{X=F;Y=0;Z=0;_=0;$=0;aa=0;ba=0;ca=0;da=0;ea=0;fa=0;ga=0;ha=0;while(1){ia=+g[e+(X<<2)>>2];ja=~~(ia*7.314285755157471+1023.5);ka=(ja|0)>1023;la=(ja|0)>0;ma=ka?1023:la?ja:0;do if(ma){oa=R(X,X)|0;pa=R(ja,ja)|0;qa=ka?1046529:la?pa:0;pa=R(ma,X)|0;if(!(+g[A>>2]+ +g[d+(X<<2)>>2]>=ia)){ra=Y;sa=Z+1|0;ta=_;ua=oa+$|0;va=aa;wa=X+ba|0;xa=ca;ya=pa+da|0;za=ea;Aa=qa+fa|0;Ba=ga;Ca=ma+ha|0;break}else{ra=Y+1|0;sa=Z;ta=oa+_|0;ua=$;va=X+aa|0;wa=ba;xa=pa+ca|0;ya=da;za=qa+ea|0;Aa=fa;Ba=ma+ga|0;Ca=ha;break}}else{ra=Y;sa=Z;ta=_;ua=$;va=aa;wa=ba;xa=ca;ya=da;za=ea;Aa=fa;Ba=ga;Ca=ha}while(0);if((X|0)<(J|0)){X=X+1|0;Y=ra;Z=sa;_=ta;$=ua;aa=va;ba=wa;ca=xa;da=ya;ea=za;fa=Aa;ga=Ba;ha=Ca}else{K=ra;L=sa;M=ta;N=ua;O=va;P=wa;Q=xa;S=ya;T=za;U=Aa;V=Ba;W=Ca;break}}}c[G>>2]=O;c[h+(E*56|0)+12>>2]=V;c[h+(E*56|0)+16>>2]=M;c[h+(E*56|0)+20>>2]=T;c[h+(E*56|0)+24>>2]=Q;c[h+(E*56|0)+28>>2]=K;c[h+(E*56|0)+32>>2]=P;c[h+(E*56|0)+36>>2]=W;c[h+(E*56|0)+40>>2]=N;c[h+(E*56|0)+44>>2]=U;c[h+(E*56|0)+48>>2]=S;c[h+(E*56|0)+52>>2]=L;ha=K+D|0;if((C|0)==(x|0)){Da=ha;break}else D=ha}}else Ea=9}else Ea=9}else Ea=9}else Ea=9;if((Ea|0)==9){if(w|0){z=0;l=f;return z|0}D=h+8|0;H=D;I=H+48|0;do{c[H>>2]=0;H=H+4|0}while((H|0)<(I|0));c[h>>2]=0;c[h+4>>2]=v;if((v|0)<1){Fa=0;Ga=0;Ha=0;Ia=0;Ja=0;Ka=0;La=0;Ma=0;Na=0;Oa=0;Pa=0;Qa=0}else{H=u+1112|0;I=0;x=0;C=0;K=0;L=0;S=0;U=0;N=0;W=0;P=0;Q=0;T=0;M=0;while(1){ia=+g[e+(I<<2)>>2];V=~~(ia*7.314285755157471+1023.5);O=(V|0)>1023;Ca=(V|0)>0;Ba=O?1023:Ca?V:0;do if(Ba){Aa=R(I,I)|0;za=R(V,V)|0;ya=O?1046529:Ca?za:0;za=R(Ba,I)|0;if(!(+g[H>>2]+ +g[d+(I<<2)>>2]>=ia)){Ra=x;Sa=C+1|0;Ta=K;Va=Aa+L|0;Wa=S;Xa=I+U|0;Ya=N;Za=za+W|0;_a=P;$a=ya+Q|0;ab=T;bb=Ba+M|0;break}else{Ra=x+1|0;Sa=C;Ta=Aa+K|0;Va=L;Wa=I+S|0;Xa=U;Ya=za+N|0;Za=W;_a=ya+P|0;$a=Q;ab=Ba+T|0;bb=M;break}}else{Ra=x;Sa=C;Ta=K;Va=L;Wa=S;Xa=U;Ya=N;Za=W;_a=P;$a=Q;ab=T;bb=M}while(0);I=I+1|0;if((I|0)==(v|0)){Fa=Ra;Ga=Sa;Ha=Ta;Ia=Va;Ja=Wa;Ka=Xa;La=Ya;Ma=Za;Na=_a;Oa=$a;Pa=ab;Qa=bb;break}else{x=Ra;C=Sa;K=Ta;L=Va;S=Wa;U=Xa;N=Ya;W=Za;P=_a;Q=$a;T=ab;M=bb}}}c[D>>2]=Ja;c[h+12>>2]=Pa;c[h+16>>2]=Ha;c[h+20>>2]=Na;c[h+24>>2]=La;c[h+28>>2]=Fa;c[h+32>>2]=Ka;c[h+36>>2]=Qa;c[h+40>>2]=Ia;c[h+44>>2]=Oa;c[h+48>>2]=Ma;c[h+52>>2]=Ga;Da=Fa}if(!Da){z=0;l=f;return z|0}c[o>>2]=-200;c[p>>2]=-200;Rb(h,w+-1|0,o,p,u)|0;Da=c[o>>2]|0;c[i>>2]=Da;c[j>>2]=Da;o=c[p>>2]|0;p=j+4|0;c[p>>2]=o;Fa=i+4|0;c[Fa>>2]=o;Ga=(w|0)>2;do if(Ga){Ma=u+1112|0;Oa=u+1096|0;Ia=u+1100|0;Qa=u+1104|0;Ka=2;a:while(1){La=c[b+520+(Ka<<2)>>2]|0;Na=c[k+(La<<2)>>2]|0;Ha=c[m+(La<<2)>>2]|0;Pa=n+(Na<<2)|0;b:do if((c[Pa>>2]|0)!=(Ha|0)){Ja=c[b+520+(Na<<2)>>2]|0;D=c[b+520+(Ha<<2)>>2]|0;c[Pa>>2]=Ha;bb=c[u+836+(Na<<2)>>2]|0;M=c[u+836+(Ha<<2)>>2]|0;ab=c[i+(Na<<2)>>2]|0;T=j+(Na<<2)|0;$a=c[T>>2]|0;Q=(ab|0)<0?$a:($a|0)<0?ab:$a+ab>>1;ab=i+(Ha<<2)|0;$a=c[ab>>2]|0;_a=c[j+(Ha<<2)>>2]|0;P=($a|0)<0?_a:(_a|0)<0?$a:_a+$a>>1;if((Q|0)==-1|(P|0)==-1){Ea=32;break a}$a=P-Q|0;_a=M-bb|0;Za=($a|0)/(_a|0)|0;W=$a>>31|1;ia=+g[e+(bb<<2)>>2];Ya=~~(ia*7.314285755157471+1023.5);N=(Ya|0)>1023?1023:(Ya|0)>0?Ya:0;Ya=R(Za,_a)|0;Xa=(($a|0)>-1?$a:0-$a|0)-((Ya|0)>-1?Ya:0-Ya|0)|0;Ya=Q-N|0;$a=R(Ya,Ya)|0;cb=+g[Ma>>2];if(cb+ +g[d+(bb<<2)>>2]>=ia){ia=+(Q|0);db=+(N|0);if(!(+g[Oa>>2]+ia>2]>db):0)Ea=36}else Ea=36;c:do if((Ea|0)==36){Ea=0;N=bb+1|0;if((N|0)<(M|0)){Ya=0;U=N;N=$a;Wa=1;S=Q;while(1){Va=Ya+Xa|0;L=(Va|0)<(_a|0);Ya=Va-(L?0:_a)|0;S=S+Za+(L?0:W)|0;db=+g[e+(U<<2)>>2];L=~~(db*7.314285755157471+1023.5);Va=(L|0)>1023?1023:(L|0)>0?L:0;L=S-Va|0;Ta=(R(L,L)|0)+N|0;L=Wa+1|0;if(Va|0?+g[d+(U<<2)>>2]+cb>=db:0){db=+(S|0);ia=+(Va|0);if(+g[Oa>>2]+db>2]>ia)break c}U=U+1|0;if((U|0)>=(M|0)){eb=Ta;fb=L;break}else{N=Ta;Wa=L}}}else{eb=$a;fb=1}ia=+g[Oa>>2];db=+(fb|0);gb=+g[Qa>>2];if((!(ia*ia/db>gb)?(ia=+g[Ia>>2],!(ia*ia/db>gb)):0)?+((eb|0)/(fb|0)|0|0)>gb:0)break;c[i+(Ka<<2)>>2]=-200;c[j+(Ka<<2)>>2]=-200;break b}while(0);c[q>>2]=-200;c[r>>2]=-200;c[s>>2]=-200;c[t>>2]=-200;$a=Rb(h+(Ja*56|0)|0,La-Ja|0,q,r,u)|0;M=Rb(h+(La*56|0)|0,D-La|0,s,t,u)|0;W=($a|0)!=0;if(W){c[q>>2]=Q;c[r>>2]=c[s>>2]}if((M|0)!=0?(c[s>>2]=c[r>>2],c[t>>2]=P,W):0){c[i+(Ka<<2)>>2]=-200;c[j+(Ka<<2)>>2]=-200}else Ea=49;d:do if((Ea|0)==49){Ea=0;W=c[q>>2]|0;c[T>>2]=W;if(!Na)c[i>>2]=W;W=c[r>>2]|0;c[i+(Ka<<2)>>2]=W;M=c[s>>2]|0;c[j+(Ka<<2)>>2]=M;$a=c[t>>2]|0;c[ab>>2]=$a;if((Ha|0)==1)c[p>>2]=$a;if((M&W|0)>-1){e:do if((La|0)>0){W=La;do{M=W;W=W+-1|0;$a=m+(W<<2)|0;if((c[$a>>2]|0)!=(Ha|0))break e;c[$a>>2]=Ka}while((M|0)>1)}while(0);W=La+1|0;if((W|0)<(w|0)){M=W;do{W=k+(M<<2)|0;if((c[W>>2]|0)!=(Na|0))break d;c[W>>2]=Ka;M=M+1|0}while((M|0)<(w|0))}}}while(0)}while(0);Ka=Ka+1|0;if((Ka|0)>=(w|0)){Ea=63;break}}if((Ea|0)==32)na(1);else if((Ea|0)==63){hb=c[i>>2]|0;ib=c[j>>2]|0;jb=c[Fa>>2]|0;kb=c[p>>2]|0;break}}else{hb=Da;ib=Da;jb=o;kb=o}while(0);o=Ua(a,w<<2)|0;c[o>>2]=(hb|0)<0?ib:(ib|0)<0?hb:ib+hb>>1;c[o+4>>2]=(jb|0)<0?kb:(kb|0)<0?jb:kb+jb>>1;if(Ga){Ga=2;do{jb=Ga+-2|0;kb=c[b+1032+(jb<<2)>>2]|0;hb=c[b+780+(jb<<2)>>2]|0;jb=c[u+836+(kb<<2)>>2]|0;ib=c[o+(kb<<2)>>2]&32767;kb=(c[o+(hb<<2)>>2]&32767)-ib|0;a=(R((kb|0)>-1?kb:0-kb|0,(c[u+836+(Ga<<2)>>2]|0)-jb|0)|0)/((c[u+836+(hb<<2)>>2]|0)-jb|0)|0;jb=((kb|0)<0?0-a|0:a)+ib|0;ib=c[i+(Ga<<2)>>2]|0;a=c[j+(Ga<<2)>>2]|0;kb=(ib|0)<0?a:(a|0)<0?ib:a+ib>>1;c[o+(Ga<<2)>>2]=(kb|0)<0|(jb|0)==(kb|0)?jb|32768:kb;Ga=Ga+1|0}while((Ga|0)!=(w|0))}z=o;l=f;return z|0}function Lb(a){a=a|0;return (c[(c[(c[a+64>>2]|0)+104>>2]|0)+80>>2]|0)!=0|0}function Mb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[b+1284>>2]|0;if(!((d|0)!=0&(e|0)!=0)){h=0;return h|0}b=Ua(a,g<<2)|0;if((g|0)<=0){h=b;return h|0}a=65536-f|0;i=0;do{j=d+(i<<2)|0;k=R(c[j>>2]&32767,a)|0;l=e+(i<<2)|0;m=k+32768+(R(c[l>>2]&32767,f)|0)>>16;k=b+(i<<2)|0;c[k>>2]=m;if(c[j>>2]&32768|0?c[l>>2]&32768|0:0)c[k>>2]=m|32768;i=i+1|0}while((i|0)!=(g|0));h=b;return h|0}function Nb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;g=l;l=l+336|0;h=g+64|0;i=g+32|0;j=g;k=c[d+1296>>2]|0;m=d+1284|0;n=c[m>>2]|0;o=c[(c[(c[b+64>>2]|0)+4>>2]|0)+28>>2]|0;p=c[o+2848>>2]|0;if(!e){Ga(a,0,1);id(f|0,0,((c[b+36>>2]|0)/2|0)<<2|0)|0;q=0;l=g;return q|0}a:do if((n|0)>0){r=k+832|0;s=0;while(1){t=e+(s<<2)|0;u=c[t>>2]|0;v=u&32767;switch(c[r>>2]|0){case 1:{w=v>>>2;break}case 2:{w=v>>>3;break}case 3:{w=(v>>>0)/12|0;break}case 4:{w=v>>>4;break}default:w=v}c[t>>2]=u&32768|w;s=s+1|0;if((s|0)==(n|0))break a}}while(0);c[h>>2]=c[e>>2];w=h+4|0;c[w>>2]=c[e+4>>2];s=d+1292|0;if((n|0)>2){r=2;do{u=r+-2|0;t=c[d+1032+(u<<2)>>2]|0;v=c[d+780+(u<<2)>>2]|0;u=c[k+836+(t<<2)>>2]|0;x=e+(t<<2)|0;t=e+(v<<2)|0;y=c[x>>2]&32767;z=(c[t>>2]&32767)-y|0;A=(R((z|0)>-1?z:0-z|0,(c[k+836+(r<<2)>>2]|0)-u|0)|0)/((c[k+836+(v<<2)>>2]|0)-u|0)|0;u=((z|0)<0?0-A|0:A)+y|0;A=e+(r<<2)|0;z=c[A>>2]|0;if((z&32768|0)!=0|(z|0)==(u|0)){c[A>>2]=u|32768;c[h+(r<<2)>>2]=0}else{A=(c[s>>2]|0)-u|0;v=(A|0)<(u|0)?A:u;A=z-u|0;do if((A|0)<0)if((A|0)<(0-v|0)){B=v+~A|0;break}else{B=~(A<<1);break}else if((v|0)>(A|0)){B=A<<1;break}else{B=v+A|0;break}while(0);c[h+(r<<2)>>2]=B;c[x>>2]=y;c[t>>2]=c[t>>2]&32767}r=r+1|0}while((r|0)!=(n|0))}Ga(a,1,1);n=d+1308|0;c[n>>2]=(c[n>>2]|0)+1;n=(c[s>>2]|0)+-1|0;r=(n|0)==0;if(!r){B=0;A=n;do{B=B+1|0;A=A>>>1}while((A|0)!=0);A=d+1304|0;c[A>>2]=(c[A>>2]|0)+(B<<1);B=c[h>>2]|0;if(r){C=B;D=A;E=0}else{r=0;v=n;while(1){n=r+1|0;v=v>>>1;if(!v){C=B;D=A;E=n;break}else r=n}}}else{C=c[h>>2]|0;D=d+1304|0;E=0}Ga(a,C,E);E=c[w>>2]|0;w=(c[s>>2]|0)+-1|0;if(!w)F=0;else{s=0;C=w;while(1){w=s+1|0;C=C>>>1;if(!C){F=w;break}else s=w}}Ga(a,E,F);if((c[k>>2]|0)>0){F=d+1300|0;E=0;s=2;while(1){C=c[k+4+(E<<2)>>2]|0;w=c[k+128+(C<<2)>>2]|0;r=c[k+192+(C<<2)>>2]|0;A=1<>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;c[i+20>>2]=0;c[i+24>>2]=0;c[i+28>>2]=0;if(r|0){B=(r|0)==31;if(!B){v=0;do{n=c[k+320+(C<<5)+(v<<2)>>2]|0;if((n|0)<0)G=1;else G=c[(c[o+1824+(n<<2)>>2]|0)+4>>2]|0;c[j+(v<<2)>>2]=G;v=v+1|0}while((v|0)<(A|0))}b:do if((w|0)>0){if(B){v=0;t=0;y=0;while(1){x=c[i+(y<<2)>>2]<>2]|0;v=0;while(1){if((t|0)<(c[j+(v<<2)>>2]|0)){L=38;break}y=v+1|0;if((y|0)<(A|0))v=y;else{L=39;break}}if((L|0)==38){L=0;c[i+(K<<2)>>2]=v;M=v}else if((L|0)==39){L=0;M=c[i+(K<<2)>>2]|0}t=M<>2]|0)*56|0)|0,H,a)|0;c[F>>2]=(c[F>>2]|0)+r}if((w|0)>0){r=0;do{A=c[k+320+(C<<5)+(c[i+(r<<2)>>2]<<2)>>2]|0;if((A|0)>-1?(B=c[h+(r+s<<2)>>2]|0,(B|0)<(c[p+(A*56|0)+4>>2]|0)):0){t=sb(p+(A*56|0)|0,B,a)|0;c[D>>2]=(c[D>>2]|0)+t}r=r+1|0}while((r|0)!=(w|0))}E=E+1|0;if((E|0)>=(c[k>>2]|0))break;else s=w+s|0}}s=k+832|0;E=R(c[s>>2]|0,c[e>>2]|0)|0;D=(c[o+(c[b+28>>2]<<2)>>2]|0)/2|0;o=c[m>>2]|0;if((o|0)>1){a=o;o=0;p=1;h=0;i=E;while(1){F=c[d+260+(p<<2)>>2]|0;H=c[e+(F<<2)>>2]|0;if((H&32767|0)==(H|0)){J=R(c[s>>2]|0,H)|0;H=c[k+836+(F<<2)>>2]|0;F=J-i|0;I=H-h|0;K=(F|0)/(I|0)|0;M=F>>31|1;j=R(K,I)|0;G=((F|0)>-1?F:0-F|0)-((j|0)>-1?j:0-j|0)|0;j=(D|0)>(H|0)?H:D;if((j|0)>(h|0)){N=0;O=h;P=i;L=56}else{Q=0;S=h;T=i}while(1){if((L|0)==56){L=0;c[f+(O<<2)>>2]=P;Q=N;S=O;T=P}F=S+1|0;if((F|0)>=(j|0))break;r=Q+G|0;C=(r|0)<(I|0);N=r-(C?0:I)|0;O=F;P=T+K+(C?0:M)|0;L=56}U=c[m>>2]|0;V=H;W=H;X=J}else{U=a;V=o;W=h;X=i}p=p+1|0;if((p|0)>=(U|0)){Y=V;Z=X;break}else{a=U;o=V;h=W;i=X}}}else{Y=0;Z=E}E=b+36|0;if((Y|0)<((c[E>>2]|0)/2|0|0))_=Y;else{q=1;l=g;return q|0}do{c[f+(_<<2)>>2]=Z;_=_+1|0}while((_|0)<((c[E>>2]|0)/2|0|0));q=1;l=g;return q|0}function Ob(a,b,d,e,f,i,j,k,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0,Q=0.0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0.0,ka=0.0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;n=l;o=c[d>>2]|0;p=d+4|0;d=c[p>>2]|0;if(!(c[d+500>>2]|0))q=16;else q=c[d+508>>2]|0;r=c[b+132+((c[d>>2]|0)*60|0)+(a<<2)>>2]|0;s=+h[8+(c[b+252+(a<<2)>>2]<<3)>>3];d=m<<2;t=l;l=l+((1*d|0)+15&-16)|0;u=l;l=l+((1*d|0)+15&-16)|0;v=l;l=l+((1*d|0)+15&-16)|0;w=l;l=l+((1*d|0)+15&-16)|0;x=l;l=l+((1*d|0)+15&-16)|0;y=e+1156|0;z=+h[((o|0)>1e3?80:8)+(c[b+312+(a<<2)>>2]<<3)>>3];a=R(d,q)|0;b=l;l=l+((1*a|0)+15&-16)|0;c[t>>2]=b;A=l;l=l+((1*a|0)+15&-16)|0;c[u>>2]=A;B=l;l=l+((1*a|0)+15&-16)|0;c[v>>2]=B;C=l;l=l+((1*a|0)+15&-16)|0;c[w>>2]=C;if((m|0)>1?(c[t+4>>2]=b+(q<<2),c[u+4>>2]=A+(q<<2),c[v+4>>2]=B+(q<<2),c[w+4>>2]=C+(q<<2),(m|0)!=2):0){C=2;do{B=c[u>>2]|0;A=c[v>>2]|0;b=c[w>>2]|0;D=R(C,q)|0;c[t+(C<<2)>>2]=(c[t>>2]|0)+(D<<2);c[u+(C<<2)>>2]=B+(D<<2);c[v+(C<<2)>>2]=A+(D<<2);c[w+(C<<2)>>2]=b+(D<<2);C=C+1|0}while((C|0)!=(m|0))}C=c[y>>2]|0;if((o|0)>0){D=(m|0)>0;b=c[w>>2]|0;A=0;do{B=o-A|0;F=(q|0)>(B|0)?B:q;md(x|0,j|0,d|0)|0;id(b|0,0,a|0)|0;if(D){B=(F|0)>0;G=r-A|0;H=0;do{I=(c[i+(H<<2)>>2]|0)+(A<<2)|0;if(!(c[x+(H<<2)>>2]|0)){if(B){J=c[v+(H<<2)>>2]|0;K=c[t+(H<<2)>>2]|0;L=c[u+(H<<2)>>2]|0;M=c[w+(H<<2)>>2]|0;N=0;do{g[J+(N<<2)>>2]=1.000000013351432e-10;g[K+(N<<2)>>2]=0.0;g[L+(N<<2)>>2]=0.0;c[M+(N<<2)>>2]=0;c[I+(N<<2)>>2]=0;N=N+1|0}while((N|0)<(F|0))}}else{N=c[v+(H<<2)>>2]|0;if(B){M=0;do{c[N+(M<<2)>>2]=c[476+(c[I+(M<<2)>>2]<<2)>>2];M=M+1|0}while((M|0)<(F|0));M=c[f+(H<<2)>>2]|0;L=M+(A<<2)|0;K=c[w+(H<<2)>>2]|0;if(B){J=0;do{O=+E(+(+g[L+(J<<2)>>2]));c[K+(J<<2)>>2]=!(O/+g[N+(J<<2)>>2]<((J|0)>=(G|0)?z:s))&1;J=J+1|0}while((J|0)!=(F|0));J=c[t+(H<<2)>>2]|0;K=c[u+(H<<2)>>2]|0;if(B){L=0;do{P=M+(L+A<<2)|0;O=+g[P>>2];Q=O*O;S=J+(L<<2)|0;g[S>>2]=Q;g[K+(L<<2)>>2]=Q;if(+g[P>>2]<0.0)g[S>>2]=-+g[S>>2];S=N+(L<<2)|0;Q=+g[S>>2];g[S>>2]=Q*Q;L=L+1|0}while((L|0)<(F|0));T=J;U=K}else{T=J;U=K}}else V=20}else V=20;if((V|0)==20){V=0;T=c[t+(H<<2)>>2]|0;U=c[u+(H<<2)>>2]|0}+Pb(c[p>>2]|0,r,T,U,N,0,A,F,I)}H=H+1|0}while((H|0)!=(m|0))}H=c[y>>2]|0;if((H|0)>0){B=(F|0)>0;G=k-A|0;L=r-A|0;M=H;S=0;while(1){P=c[e+1160+(S<<2)>>2]|0;W=c[e+2184+(S<<2)>>2]|0;X=(c[i+(P<<2)>>2]|0)+(A<<2)|0;Y=(c[i+(W<<2)>>2]|0)+(A<<2)|0;Z=c[t+(P<<2)>>2]|0;_=c[t+(W<<2)>>2]|0;$=c[u+(P<<2)>>2]|0;aa=c[u+(W<<2)>>2]|0;ba=c[v+(P<<2)>>2]|0;ca=c[v+(W<<2)>>2]|0;da=c[w+(P<<2)>>2]|0;ea=c[w+(W<<2)>>2]|0;fa=x+(P<<2)|0;P=x+(W<<2)|0;if((c[fa>>2]|0)==0?(c[P>>2]|0)==0:0)ga=M;else{c[P>>2]=1;c[fa>>2]=1;if(B){fa=0;do{do if((fa|0)<(G|0)){P=da+(fa<<2)|0;W=_+(fa<<2)|0;Q=+g[W>>2];ha=Z+(fa<<2)|0;O=+g[ha>>2];ia=ea+(fa<<2)|0;if((c[P>>2]|0)==0?(c[ia>>2]|0)==0:0){ja=O+Q;if((fa|0)<(L|0)){g[ha>>2]=ja;g[$+(fa<<2)>>2]=+E(+ja)}else{ka=+E(+Q)+ +E(+O);g[$+(fa<<2)>>2]=ka;g[ha>>2]=ja<0.0?-ka:ka}g[aa+(fa<<2)>>2]=0.0;g[W>>2]=0.0;c[ia>>2]=1;c[Y+(fa<<2)>>2]=0;break}g[ha>>2]=+E(+Q)+ +E(+O);ha=$+(fa<<2)|0;g[ha>>2]=+g[aa+(fa<<2)>>2]+ +g[ha>>2];c[ia>>2]=1;c[P>>2]=1;P=X+(fa<<2)|0;ia=c[P>>2]|0;ha=Y+(fa<<2)|0;W=c[ha>>2]|0;if((((ia|0)>-1?ia:0-ia|0)|0)>(((W|0)>-1?W:0-W|0)|0)){la=(ia|0)>0?ia-W|0:W-ia|0;ma=ha}else{c[ha>>2]=(W|0)>0?ia-W|0:W-ia|0;la=W;ma=P}c[ma>>2]=la;W=c[ha>>2]|0;ia=c[P>>2]|0;if((W|0)>=(((ia|0)>-1?ia:0-ia|0)<<1|0)){c[ha>>2]=0-W;c[P>>2]=0-(c[P>>2]|0)}}while(0);P=ba+(fa<<2)|0;W=ca+(fa<<2)|0;O=+g[W>>2]+ +g[P>>2];g[W>>2]=O;g[P>>2]=O;fa=fa+1|0}while((fa|0)<(F|0))}+Pb(c[p>>2]|0,r,Z,$,ba,da,A,F,X);ga=c[y>>2]|0}S=S+1|0;if((S|0)>=(ga|0)){na=ga;break}else M=ga}}else na=H;A=A+q|0}while((o|0)>(A|0));oa=na}else oa=C;if((oa|0)>0){pa=oa;qa=0}else{l=n;return}while(1){oa=j+(c[e+1160+(qa<<2)>>2]<<2)|0;C=e+2184+(qa<<2)|0;if((c[oa>>2]|0)==0?(c[j+(c[C>>2]<<2)>>2]|0)==0:0)ra=pa;else{c[oa>>2]=1;c[j+(c[C>>2]<<2)>>2]=1;ra=c[y>>2]|0}qa=qa+1|0;if((qa|0)>=(ra|0))break;else pa=ra}l=n;return}function Pb(a,b,d,e,f,i,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;i=i|0;k=k|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0,E=0.0,G=0,H=0.0,I=0.0,J=0;o=l;p=l;l=l+((1*(m<<2)|0)+15&-16)|0;if(!(c[a+500>>2]|0))q=m;else q=(c[a+504>>2]|0)-k|0;r=(q|0)>(m|0)?m:q;a:do if((r|0)>0){if(!i){q=0;while(1){s=+g[d+(q<<2)>>2]<0.0;t=+Zc(+F(+(+g[e+(q<<2)>>2]/+g[f+(q<<2)>>2])));c[n+(q<<2)>>2]=~~(s?-t:t);q=q+1|0;if((q|0)>=(r|0)){u=r;break a}}}else v=0;do{if(!(c[i+(v<<2)>>2]|0)){q=+g[d+(v<<2)>>2]<0.0;t=+Zc(+F(+(+g[e+(v<<2)>>2]/+g[f+(v<<2)>>2])));c[n+(v<<2)>>2]=~~(q?-t:t)}v=v+1|0}while((v|0)<(r|0));u=r}else u=0;while(0);if((u|0)>=(m|0)){w=0.0;l=o;return +w}r=b-k|0;if(!i){t=0.0;k=0;b=u;while(1){v=e+(b<<2)|0;x=+g[f+(b<<2)>>2];y=+g[v>>2]/x;if(y<.25){c[p+(k<<2)>>2]=v;z=y+t;A=k+1|0}else{q=+g[d+(b<<2)>>2]<0.0;B=+Zc(+F(+y));s=~~(q?-B:B);c[n+(b<<2)>>2]=s;g[v>>2]=+(R(s,s)|0)*x;z=t;A=k}b=b+1|0;if((b|0)==(m|0)){C=z;D=A;break}else{t=z;k=A}}}else{z=0.0;A=0;k=u;while(1){do if(!(c[i+(k<<2)>>2]|0)){u=e+(k<<2)|0;t=+g[f+(k<<2)>>2];x=+g[u>>2]/t;if(!(x<.25)|(k|0)<(r|0)){b=+g[d+(k<<2)>>2]<0.0;B=+Zc(+F(+x));s=~~(b?-B:B);c[n+(k<<2)>>2]=s;g[u>>2]=+(R(s,s)|0)*t;E=z;G=A;break}else{c[p+(A<<2)>>2]=u;E=x+z;G=A+1|0;break}}else{E=z;G=A}while(0);k=k+1|0;if((k|0)==(m|0)){C=E;D=G;break}else{z=E;A=G}}}if(!D){w=C;l=o;return +w}Pc(p,D,4,12);if((D|0)<=0){w=C;l=o;return +w}G=e;E=+h[a+512>>3];z=C;a=0;while(1){e=c[p+(a<<2)>>2]|0;A=e-G>>2;if(!(z>=E)){H=0.0;I=z;J=0}else{H=+g[f+(A<<2)>>2];I=z+-1.0;J=~~(c[j>>2]=c[d+(A<<2)>>2]&-2147483648|1065353216,+g[j>>2])}c[n+(A<<2)>>2]=J;g[e>>2]=H;a=a+1|0;if((a|0)==(D|0)){w=I;break}else z=I}l=o;return +w}function Qb(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;d=+g[c[a>>2]>>2];e=+g[c[b>>2]>>2];return (de&1)|0}function Rb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0,S=0,T=0;h=c[a>>2]|0;i=c[a+((b+-1|0)*56|0)+4>>2]|0;if((b|0)>0){j=+g[f+1108>>2];k=0.0;f=0;l=0.0;m=0.0;n=0.0;o=0.0;while(1){p=c[a+(f*56|0)+52>>2]|0;q=c[a+(f*56|0)+28>>2]|0;r=+(q+p|0)*j/+(q+1|0)+1.0;s=+(c[a+(f*56|0)+32>>2]|0)+m+r*+(c[a+(f*56|0)+8>>2]|0);t=+(c[a+(f*56|0)+36>>2]|0)+o+ +(c[a+(f*56|0)+12>>2]|0)*r;u=+(c[a+(f*56|0)+40>>2]|0)+l+ +(c[a+(f*56|0)+16>>2]|0)*r;v=+(c[a+(f*56|0)+48>>2]|0)+n+ +(c[a+(f*56|0)+24>>2]|0)*r;w=+(p|0)+k+r*+(q|0);f=f+1|0;if((f|0)==(b|0)){x=w;y=u;z=s;A=v;B=t;break}else{k=w;l=u;m=s;n=v;o=t}}}else{x=0.0;y=0.0;z=0.0;A=0.0;B=0.0}b=c[d>>2]|0;if((b|0)>-1){C=x+1.0;D=y+ +(R(h,h)|0);E=z+ +(h|0);F=+(R(b,h)|0)+A;G=+(b|0)+B}else{C=x;D=y;E=z;F=A;G=B}b=c[e>>2]|0;if((b|0)>-1){H=C+1.0;I=D+ +(R(i,i)|0);J=E+ +(i|0);K=+(R(b,i)|0)+F;L=+(b|0)+G}else{H=C;I=D;J=E;K=F;L=G}G=I*H-J*J;if(G>0.0){F=(L*I-J*K)/G;I=(K*H-J*L)/G;c[d>>2]=~~+Zc(I*+(h|0)+F);h=~~+Zc(I*+(i|0)+F);c[e>>2]=h;i=c[d>>2]|0;if((i|0)>1023){c[d>>2]=1023;M=c[e>>2]|0;N=1023}else{M=h;N=i}if((M|0)>1023){c[e>>2]=1023;O=c[d>>2]|0;P=1023}else{O=N;P=M}if((O|0)<0){c[d>>2]=0;Q=c[e>>2]|0}else Q=P;if((Q|0)<0)S=0;else{T=0;return T|0}}else{c[d>>2]=0;S=1}c[e>>2]=0;T=S;return T|0}function Sb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0;e=l;f=d<<2;h=l;l=l+((1*f|0)+15&-16)|0;i=l;l=l+((1*f|0)+15&-16)|0;if((d|0)>0){j=0;k=0}else{l=e;return}do{if((k|0)<2){c[h+(k<<2)>>2]=j;c[i+(k<<2)>>2]=c[a+(j<<2)>>2];m=k}else{n=+g[a+(j<<2)>>2];f=k;while(1){o=f+-1|0;p=+g[i+(o<<2)>>2];if(n1?(j|0)<((c[h+(o<<2)>>2]|0)+b|0):0))break;q=f+-2|0;if(!(p<=+g[i+(q<<2)>>2]))break;if((j|0)<((c[h+(q<<2)>>2]|0)+b|0))f=o;else break}c[h+(f<<2)>>2]=j;g[i+(f<<2)>>2]=n;m=f}k=m+1|0;j=j+1|0}while((j|0)!=(d|0));if((m|0)<=-1){l=e;return}j=b+1|0;b=0;o=0;while(1){if((b|0)<(m|0)?(q=b+1|0,+g[i+(q<<2)>>2]>+g[i+(b<<2)>>2]):0)r=c[h+(q<<2)>>2]|0;else r=j+(c[h+(b<<2)>>2]|0)|0;q=(r|0)>(d|0)?d:r;if((o|0)<(q|0)){s=c[i+(b<<2)>>2]|0;t=o;do{c[a+(t<<2)>>2]=s;t=t+1|0}while((t|0)<(q|0));u=q}else u=o;b=b+1|0;if((b|0)==(k|0))break;else o=u}l=e;return}function Tb(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0.0,F=0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0,Y=0.0;i=l;j=a<<2;k=l;l=l+((1*j|0)+15&-16)|0;m=l;l=l+((1*j|0)+15&-16)|0;n=l;l=l+((1*j|0)+15&-16)|0;o=l;l=l+((1*j|0)+15&-16)|0;p=l;l=l+((1*j|0)+15&-16)|0;q=+g[d>>2]+f;r=q<1.0?1.0:q;q=r*r*.5;s=q*r;g[k>>2]=q;g[m>>2]=q;g[n>>2]=0.0;g[o>>2]=s;g[p>>2]=0.0;if((a|0)>1){j=1;r=q;t=q;q=0.0;u=0.0;v=s;s=1.0;while(1){w=+g[d+(j<<2)>>2]+f;x=w<1.0?1.0:w;w=x*x;r=w+r;y=w*s;t=y+t;q=y*s+q;v=w*x+v;u=y*x+u;g[k+(j<<2)>>2]=r;g[m+(j<<2)>>2]=t;g[n+(j<<2)>>2]=q;g[o+(j<<2)>>2]=v;g[p+(j<<2)>>2]=u;j=j+1|0;if((j|0)==(a|0))break;else s=s+1.0}}j=c[b>>2]|0;d=j>>16;if((d|0)>-1){z=j;A=0.0;B=0.0;C=1.0;D=0;E=0.0}else{F=j;j=0;G=d;s=0.0;while(1){d=F&65535;H=0-G|0;u=+g[k+(H<<2)>>2]+ +g[k+(d<<2)>>2];v=+g[m+(d<<2)>>2]-+g[m+(H<<2)>>2];q=+g[n+(H<<2)>>2]+ +g[n+(d<<2)>>2];t=+g[o+(H<<2)>>2]+ +g[o+(d<<2)>>2];r=+g[p+(d<<2)>>2]-+g[p+(H<<2)>>2];x=t*q-r*v;y=r*u-t*v;t=q*u-v*v;v=(y*s+x)/t;g[e+(j<<2)>>2]=(v<0.0?0.0:v)-f;H=j+1|0;v=s+1.0;d=c[b+(H<<2)>>2]|0;G=d>>16;if((G|0)>-1){z=d;A=x;B=y;C=t;D=H;E=v;break}else{F=d;j=H;s=v}}}j=z&65535;if((j|0)<(a|0)){F=j;j=D;G=z;s=E;while(1){z=G>>16;v=+g[k+(F<<2)>>2]-+g[k+(z<<2)>>2];t=+g[m+(F<<2)>>2]-+g[m+(z<<2)>>2];y=+g[n+(F<<2)>>2]-+g[n+(z<<2)>>2];x=+g[o+(F<<2)>>2]-+g[o+(z<<2)>>2];u=+g[p+(F<<2)>>2]-+g[p+(z<<2)>>2];q=x*y-u*t;r=u*v-x*t;x=y*v-t*t;t=(r*s+q)/x;g[e+(j<<2)>>2]=(t<0.0?0.0:t)-f;z=j+1|0;t=s+1.0;G=c[b+(z<<2)>>2]|0;F=G&65535;if((F|0)>=(a|0)){I=q;J=r;K=x;L=z;M=t;break}else{j=z;s=t}}}else{I=A;J=B;K=C;L=D;M=E}if((L|0)<(a|0)){D=L;E=M;while(1){M=(E*J+I)/K;g[e+(D<<2)>>2]=(M<0.0?0.0:M)-f;D=D+1|0;if((D|0)==(a|0))break;else E=E+1.0}}if((h|0)<1){l=i;return}D=h>>>1;L=D-h|0;if((L|0)>-1){N=I;O=J;P=K;Q=0;R=0.0}else{j=h-D|0;F=D;G=0;b=L;K=0.0;while(1){L=0-b|0;J=+g[k+(L<<2)>>2]+ +g[k+(F<<2)>>2];I=+g[m+(F<<2)>>2]-+g[m+(L<<2)>>2];E=+g[n+(L<<2)>>2]+ +g[n+(F<<2)>>2];M=+g[o+(L<<2)>>2]+ +g[o+(F<<2)>>2];C=+g[p+(F<<2)>>2]-+g[p+(L<<2)>>2];B=M*E-C*I;A=C*J-M*I;M=E*J-I*I;I=(A*K+B)/M-f;L=e+(G<<2)|0;if(I<+g[L>>2])g[L>>2]=I;G=G+1|0;I=K+1.0;L=G+D|0;if((G|0)==(j|0)){N=B;O=A;P=M;Q=j;R=I;break}else{F=L;b=L-h|0;K=I}}}b=Q+D|0;if((b|0)<(a|0)){F=a-D|0;j=b;b=Q;K=R;while(1){G=j-h|0;I=+g[k+(j<<2)>>2]-+g[k+(G<<2)>>2];M=+g[m+(j<<2)>>2]-+g[m+(G<<2)>>2];A=+g[n+(j<<2)>>2]-+g[n+(G<<2)>>2];B=+g[o+(j<<2)>>2]-+g[o+(G<<2)>>2];J=+g[p+(j<<2)>>2]-+g[p+(G<<2)>>2];E=B*A-J*M;C=J*I-B*M;B=A*I-M*M;M=(C*K+E)/B-f;G=e+(b<<2)|0;if(M<+g[G>>2])g[G>>2]=M;G=b+1|0;M=K+1.0;if((G|0)==(F|0)){S=E;T=C;U=B;V=F;W=M;break}else{j=G+D|0;b=G;K=M}}}else{S=N;T=O;U=P;V=Q;W=R}if((V|0)<(a|0)){X=V;Y=W}else{l=i;return}while(1){W=(Y*T+S)/U-f;V=e+(X<<2)|0;if(W<+g[V>>2])g[V>>2]=W;X=X+1|0;if((X|0)==(a|0))break;else Y=Y+1.0}l=i;return}function Ub(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0;i=R(b,a)|0;j=i<<1;k=(b|0)>0;if(k){l=(a<<2)+-1|0;m=a<<1;n=0;o=i;p=i*3|0;q=0;r=j;while(1){s=c+(o<<2)|0;t=c+(p<<2)|0;u=+g[t>>2]+ +g[s>>2];v=c+(q<<2)|0;w=c+(r<<2)|0;x=+g[w>>2]+ +g[v>>2];y=q<<2;g[d+(y<<2)>>2]=x+u;g[d+(l+y<<2)>>2]=x-u;z=y+m|0;g[d+(z+-1<<2)>>2]=+g[v>>2]-+g[w>>2];g[d+(z<<2)>>2]=+g[t>>2]-+g[s>>2];n=n+1|0;if((n|0)==(b|0))break;else{o=o+a|0;p=p+a|0;q=q+a|0;r=r+a|0}}}if((a|0)<2)return;if((a|0)!=2){if(k){r=a<<1;q=0;p=0;while(1){o=p<<2;n=2;m=p;l=o;s=o+r|0;do{o=m;m=m+2|0;t=l;l=l+2|0;z=s;s=s+-2|0;w=m+i|0;v=n+-2|0;u=+g[e+(v<<2)>>2];x=+g[c+(w+-1<<2)>>2];y=n+-1|0;A=+g[e+(y<<2)>>2];B=+g[c+(w<<2)>>2];C=B*A+x*u;D=B*u-A*x;E=w+i|0;x=+g[f+(v<<2)>>2];A=+g[c+(E+-1<<2)>>2];u=+g[f+(y<<2)>>2];B=+g[c+(E<<2)>>2];F=B*u+A*x;G=B*x-u*A;w=E+i|0;A=+g[h+(v<<2)>>2];u=+g[c+(w+-1<<2)>>2];x=+g[h+(y<<2)>>2];B=+g[c+(w<<2)>>2];H=B*x+u*A;I=B*A-x*u;u=H+C;x=H-C;C=I+D;H=D-I;I=+g[c+(m<<2)>>2];D=I+G;A=I-G;G=+g[c+(o+1<<2)>>2];I=G+F;B=G-F;g[d+((t|1)<<2)>>2]=u+I;g[d+(l<<2)>>2]=C+D;g[d+(z+-3<<2)>>2]=B-H;g[d+(s<<2)>>2]=x-A;z=l+r|0;g[d+(z+-1<<2)>>2]=H+B;g[d+(z<<2)>>2]=x+A;z=s+r|0;g[d+(z+-1<<2)>>2]=I-u;g[d+(z<<2)>>2]=C-D;n=n+2|0}while((n|0)<(a|0));q=q+1|0;if((q|0)==(b|0))break;else p=p+a|0}}if(a&1|0)return}p=a+-1+i|0;q=a<<2;r=a<<1;if(!k)return;k=0;h=p;f=p+j|0;j=a;p=a;while(1){D=+g[c+(h<<2)>>2];C=+g[c+(f<<2)>>2];u=(C+D)*-.7071067690849304;I=(D-C)*.7071067690849304;e=c+(p+-1<<2)|0;g[d+(j+-1<<2)>>2]=I+ +g[e>>2];n=j+r|0;g[d+(n+-1<<2)>>2]=+g[e>>2]-I;e=c+(h+i<<2)|0;g[d+(j<<2)>>2]=u-+g[e>>2];g[d+(n<<2)>>2]=+g[e>>2]+u;k=k+1|0;if((k|0)==(b|0))break;else{h=h+a|0;f=f+a|0;j=j+q|0;p=p+a|0}}return}function Vb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;h=R(b,a)|0;i=a<<1;j=(b|0)>0;if(j){k=i+-1|0;l=0;m=0;n=h;while(1){o=d+(m<<2)|0;p=d+(n<<2)|0;q=m<<1;g[e+(q<<2)>>2]=+g[p>>2]+ +g[o>>2];g[e+(k+q<<2)>>2]=+g[o>>2]-+g[p>>2];l=l+1|0;if((l|0)==(b|0))break;else{m=m+a|0;n=n+a|0}}}if((a|0)<2)return;if((a|0)!=2){if(j){n=0;m=0;l=h;while(1){k=m<<1;p=2;o=l;q=k+i|0;r=m;s=k;do{k=o;o=o+2|0;t=q;q=q+-2|0;u=r;r=r+2|0;v=s;s=s+2|0;w=+g[f+(p+-2<<2)>>2];x=+g[d+(k+1<<2)>>2];y=+g[f+(p+-1<<2)>>2];z=+g[d+(o<<2)>>2];A=z*y+x*w;B=z*w-y*x;k=d+(r<<2)|0;g[e+(s<<2)>>2]=B+ +g[k>>2];g[e+(q<<2)>>2]=B-+g[k>>2];k=d+(u+1<<2)|0;g[e+((v|1)<<2)>>2]=+g[k>>2]+A;g[e+(t+-3<<2)>>2]=+g[k>>2]-A;p=p+2|0}while((p|0)<(a|0));n=n+1|0;if((n|0)==(b|0))break;else{m=m+a|0;l=l+a|0}}}if(((a|0)%2|0|0)==1)return}l=a+-1|0;if(!j)return;j=0;m=a;n=h+l|0;h=l;while(1){g[e+(m<<2)>>2]=-+g[d+(n<<2)>>2];c[e+(m+-1<<2)>>2]=c[d+(h<<2)>>2];j=j+1|0;if((j|0)==(b|0))break;else{m=m+i|0;n=n+a|0;h=h+a|0}}return}function Wb(a,b,d,e,f,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0.0,S=0.0;m=6.2831854820251465/+(b|0);n=+H(+m);o=+I(+m);p=b+1>>1;q=a+-1>>1;r=R(d,a)|0;s=R(b,a)|0;t=(a|0)==1;do if(!t){if((e|0)>0){u=0;do{c[k+(u<<2)>>2]=c[i+(u<<2)>>2];u=u+1|0}while((u|0)!=(e|0))}u=(b|0)>1;if(u&(d|0)>0){v=1;w=0;do{w=w+r|0;x=0;y=w;while(1){c[j+(y<<2)>>2]=c[h+(y<<2)>>2];x=x+1|0;if((x|0)==(d|0))break;else y=y+a|0}v=v+1|0}while((v|0)!=(b|0))}v=0-a|0;if((q|0)>(d|0)){if(u){w=(d|0)>0;y=(a|0)>2;x=v;z=1;A=0;do{A=A+r|0;x=x+a|0;if(w?(B=x+-1|0,y):0){C=0;D=A-a|0;do{D=D+a|0;E=2;F=B;G=D;do{J=F;F=F+2|0;K=l+(J+1<<2)|0;J=G+1|0;G=G+2|0;L=h+(J<<2)|0;M=l+(F<<2)|0;N=h+(G<<2)|0;g[j+(J<<2)>>2]=+g[N>>2]*+g[M>>2]+ +g[L>>2]*+g[K>>2];g[j+(G<<2)>>2]=+g[N>>2]*+g[K>>2]-+g[L>>2]*+g[M>>2];E=E+2|0}while((E|0)<(a|0));C=C+1|0}while((C|0)!=(d|0))}z=z+1|0}while((z|0)!=(b|0))}}else if(u){z=(a|0)<3|(d|0)<1;A=v;y=1;x=0;do{A=A+a|0;x=x+r|0;if(!z){w=2;C=A+-1|0;D=x;do{B=C;C=C+2|0;D=D+2|0;E=l+(B+1<<2)|0;B=l+(C<<2)|0;G=0;F=D;while(1){M=F+-1|0;L=h+(M<<2)|0;K=h+(F<<2)|0;g[j+(M<<2)>>2]=+g[K>>2]*+g[B>>2]+ +g[L>>2]*+g[E>>2];g[j+(F<<2)>>2]=+g[K>>2]*+g[E>>2]-+g[L>>2]*+g[B>>2];G=G+1|0;if((G|0)==(d|0))break;else F=F+a|0}w=w+2|0}while((w|0)<(a|0))}y=y+1|0}while((y|0)!=(b|0))}y=R(r,b)|0;x=(p|0)>1;if((q|0)<(d|0)){if(!x)break;A=(a|0)<3|(d|0)<1;z=1;v=0;u=y;do{v=v+r|0;u=u-r|0;if(!A){w=2;D=v;C=u;do{D=D+2|0;C=C+2|0;F=0;G=D-a|0;B=C-a|0;do{G=G+a|0;B=B+a|0;E=G+-1|0;L=j+(E<<2)|0;K=B+-1|0;M=j+(K<<2)|0;g[h+(E<<2)>>2]=+g[M>>2]+ +g[L>>2];E=j+(G<<2)|0;N=j+(B<<2)|0;g[h+(K<<2)>>2]=+g[E>>2]-+g[N>>2];g[h+(G<<2)>>2]=+g[N>>2]+ +g[E>>2];g[h+(B<<2)>>2]=+g[M>>2]-+g[L>>2];F=F+1|0}while((F|0)!=(d|0));w=w+2|0}while((w|0)<(a|0))}z=z+1|0}while((z|0)!=(p|0))}else{if(!x)break;z=(d|0)<1|(a|0)<3;u=1;v=0;A=y;do{v=v+r|0;A=A-r|0;if(!z){w=0;C=v;D=A;while(1){F=2;B=C;G=D;do{L=B;B=B+2|0;M=L+1|0;L=j+(M<<2)|0;E=G+1|0;G=G+2|0;N=j+(E<<2)|0;g[h+(M<<2)>>2]=+g[N>>2]+ +g[L>>2];M=j+(B<<2)|0;K=j+(G<<2)|0;g[h+(E<<2)>>2]=+g[M>>2]-+g[K>>2];g[h+(B<<2)>>2]=+g[K>>2]+ +g[M>>2];g[h+(G<<2)>>2]=+g[N>>2]-+g[L>>2];F=F+2|0}while((F|0)<(a|0));w=w+1|0;if((w|0)==(d|0))break;else{C=C+a|0;D=D+a|0}}}u=u+1|0}while((u|0)!=(p|0))}}while(0);l=(e|0)>0;if(l){u=0;do{c[i+(u<<2)>>2]=c[k+(u<<2)>>2];u=u+1|0}while((u|0)!=(e|0))}u=R(e,b)|0;A=(p|0)>1;do if(A){if((d|0)>0){v=1;z=0;y=u;do{z=z+r|0;y=y-r|0;x=0;D=z-a|0;C=y-a|0;do{D=D+a|0;C=C+a|0;w=j+(D<<2)|0;F=j+(C<<2)|0;g[h+(D<<2)>>2]=+g[F>>2]+ +g[w>>2];g[h+(C<<2)>>2]=+g[F>>2]-+g[w>>2];x=x+1|0}while((x|0)!=(d|0));v=v+1|0}while((v|0)!=(p|0));if(!A)break}v=R(b+-1|0,e)|0;y=(p|0)==2|l^1;m=0.0;O=1.0;z=1;x=0;C=u;do{x=x+e|0;C=C-e|0;P=O;O=O*n-m*o;m=P*o+m*n;if(l){D=0;w=x;F=C;G=v;B=e;while(1){g[k+(w<<2)>>2]=+g[i+(B<<2)>>2]*O+ +g[i+(D<<2)>>2];g[k+(F<<2)>>2]=+g[i+(G<<2)>>2]*m;D=D+1|0;if((D|0)==(e|0))break;else{w=w+1|0;F=F+1|0;G=G+1|0;B=B+1|0}}}if(!y){P=m;Q=O;B=2;G=e;F=v;do{G=G+e|0;F=F-e|0;S=Q;Q=Q*O-P*m;P=S*m+P*O;w=0;D=x;L=C;N=G;M=F;while(1){K=k+(D<<2)|0;g[K>>2]=+g[K>>2]+ +g[i+(N<<2)>>2]*Q;K=k+(L<<2)|0;g[K>>2]=+g[K>>2]+ +g[i+(M<<2)>>2]*P;w=w+1|0;if((w|0)==(e|0))break;else{D=D+1|0;L=L+1|0;N=N+1|0;M=M+1|0}}B=B+1|0}while((B|0)<(p|0))}z=z+1|0}while((z|0)!=(p|0));if(A&l){z=1;C=0;do{C=C+e|0;x=0;v=C;while(1){y=k+(x<<2)|0;g[y>>2]=+g[y>>2]+ +g[i+(v<<2)>>2];x=x+1|0;if((x|0)==(e|0))break;else v=v+1|0}z=z+1|0}while((z|0)!=(p|0))}}while(0);if((a|0)<(d|0)){if((a|0)>0&(d|0)>0){e=0;do{i=0;k=e;l=e;while(1){c[f+(l<<2)>>2]=c[j+(k<<2)>>2];i=i+1|0;if((i|0)==(d|0))break;else{k=k+a|0;l=l+s|0}}e=e+1|0}while((e|0)!=(a|0))}}else if((d|0)>0&(a|0)>0){e=0;l=0;k=0;while(1){i=0;u=l;h=k;while(1){c[f+(h<<2)>>2]=c[j+(u<<2)>>2];i=i+1|0;if((i|0)==(a|0))break;else{u=u+1|0;h=h+1|0}}e=e+1|0;if((e|0)==(d|0))break;else{l=l+a|0;k=k+s|0}}}k=a<<1;l=R(r,b)|0;if(A&(d|0)>0){b=1;e=0;h=0;u=l;do{e=e+k|0;h=h+r|0;u=u-r|0;i=0;z=e;C=h;v=u;while(1){c[f+(z+-1<<2)>>2]=c[j+(C<<2)>>2];c[f+(z<<2)>>2]=c[j+(v<<2)>>2];i=i+1|0;if((i|0)==(d|0))break;else{z=z+s|0;C=C+a|0;v=v+a|0}}b=b+1|0}while((b|0)!=(p|0))}if(t)return;t=0-a|0;if((q|0)>=(d|0)){if(!A)return;q=(d|0)<1|(a|0)<3;b=1;u=t;h=0;e=0;v=l;do{u=u+k|0;h=h+k|0;e=e+r|0;v=v-r|0;if(!q){C=0;z=u;i=h;x=e;y=v;while(1){B=2;do{F=B+x|0;G=j+(F+-1<<2)|0;M=B+y|0;N=j+(M+-1<<2)|0;L=B+i|0;g[f+(L+-1<<2)>>2]=+g[N>>2]+ +g[G>>2];D=a-B+z|0;g[f+(D+-1<<2)>>2]=+g[G>>2]-+g[N>>2];N=j+(F<<2)|0;F=j+(M<<2)|0;g[f+(L<<2)>>2]=+g[F>>2]+ +g[N>>2];g[f+(D<<2)>>2]=+g[F>>2]-+g[N>>2];B=B+2|0}while((B|0)<(a|0));C=C+1|0;if((C|0)==(d|0))break;else{z=z+s|0;i=i+s|0;x=x+a|0;y=y+a|0}}}b=b+1|0}while((b|0)!=(p|0));return}if(!A)return;A=(a|0)>2;b=(d|0)>0;v=1;e=t;t=0;h=0;u=l;do{e=e+k|0;t=t+k|0;h=h+r|0;u=u-r|0;if(A?(l=e+a|0,b):0){q=2;do{y=0;x=l-q|0;i=q+t|0;z=q+h|0;C=q+u|0;while(1){B=j+(z+-1<<2)|0;N=j+(C+-1<<2)|0;g[f+(i+-1<<2)>>2]=+g[N>>2]+ +g[B>>2];g[f+(x+-1<<2)>>2]=+g[B>>2]-+g[N>>2];N=j+(z<<2)|0;B=j+(C<<2)|0;g[f+(i<<2)>>2]=+g[B>>2]+ +g[N>>2];g[f+(x<<2)>>2]=+g[B>>2]-+g[N>>2];y=y+1|0;if((y|0)==(d|0))break;else{x=x+s|0;i=i+s|0;z=z+a|0;C=C+a|0}}q=q+2|0}while((q|0)<(a|0))}v=v+1|0}while((v|0)!=(p|0));return}function Xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0,s=0;d=(b|0)/4|0;e=$c(d<<2)|0;f=$c(d+b<<2)|0;h=b>>1;i=+(b|0);j=~~+Zc(+P(+i)*1.4426950408889634);c[a+4>>2]=j;c[a>>2]=b;c[a+8>>2]=f;c[a+12>>2]=e;if((b|0)<=3){k=4.0/i;l=a+16|0;g[l>>2]=k;return}m=3.141592653589793/+(b|0);n=3.141592653589793/+(b<<1|0);o=0;do{p=+(o<<2|0)*m;q=o<<1;g[f+(q<<2)>>2]=+H(+p);r=q|1;g[f+(r<<2)>>2]=-+I(+p);p=+(r|0)*n;r=q+h|0;g[f+(r<<2)>>2]=+H(+p);g[f+(r+1<<2)>>2]=+I(+p);o=o+1|0}while((o|0)<(d|0));d=(b|0)/8|0;o=(b|0)>7;if(!o){k=4.0/i;l=a+16|0;g[l>>2]=k;return}n=3.141592653589793/+(b|0);h=0;do{m=+(h<<2|2|0)*n;r=(h<<1)+b|0;g[f+(r<<2)>>2]=+H(+m)*.5;g[f+(r+1<<2)>>2]=+I(+m)*-.5;h=h+1|0}while((h|0)<(d|0));h=(1<>2]=k;return}do{o=0;j=0;b=f;do{o=((b&s|0)==0?0:1<>j}while((b|0)!=0);b=s<<1;c[e+(b<<2)>>2]=(h&~o)+-1;c[e+((b|1)<<2)>>2]=o;s=s+1|0}while((s|0)<(d|0));k=4.0/i;l=a+16|0;g[l>>2]=k;return}function Yb(a){a=a|0;var b=0;if(!a)return;b=c[a+8>>2]|0;if(b|0)ad(b);b=c[a+12>>2]|0;if(b|0)ad(b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;return}function Zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,J=0.0,K=0.0,L=0.0;c[a>>2]=b;d=bd(b*3|0,4)|0;c[a+4>>2]=d;e=bd(32,4)|0;c[a+8>>2]=e;if((b|0)==1)return;a=d+(b<<2)|0;d=e+8|0;f=-1;h=0;i=b;j=0;a:while(1){k=f+1|0;if((k|0)<4)l=c[34176+(k<<2)>>2]|0;else l=j+2|0;if((l|0)==2){m=h;n=i}else{o=h;p=i;while(1){q=p;p=(p|0)/(l|0)|0;if((q|0)!=(R(p,l)|0)){f=k;h=o;i=q;j=l;continue a}r=o+1|0;c[e+(o+2<<2)>>2]=l;if((p|0)==1){s=9;break a}else o=r}}while(1){p=m+1|0;q=n;n=(n|0)/2|0;if((q|0)!=(n<<1|0)){f=k;h=m;i=q;j=l;continue a}c[e+(m+2<<2)>>2]=2;t=(m|0)==0;if(!t){if((m|0)>=1){u=1;do{v=p-u|0;c[e+(v+2<<2)>>2]=c[e+(v+1<<2)>>2];u=u+1|0}while((u|0)!=(p|0))}c[d>>2]=2}if((q&-2|0)==2){w=t;x=p;y=m;break a}else m=p}}if((s|0)==9){w=(o|0)==0;x=r;y=o}c[e>>2]=b;c[e+4>>2]=x;z=6.2831854820251465/+(b|0);if((y|0)>0&(w^1)){A=0;B=0;C=1}else return;while(1){w=c[e+(B+2<<2)>>2]|0;x=C;C=R(w,C)|0;o=(b|0)/(C|0)|0;r=w+-1|0;do if((w|0)>1){s=R(o,r)|0;if((o|0)>2){D=A;E=0;F=0}else{G=s+A|0;break}while(1){F=F+x|0;J=+(F|0)*z;K=0.0;m=D;d=2;while(1){K=K+1.0;L=J*K;g[a+(m<<2)>>2]=+H(+L);g[a+(m+1<<2)>>2]=+I(+L);d=d+2|0;if((d|0)>=(o|0))break;else m=m+2|0}E=E+1|0;if((E|0)==(r|0))break;else D=D+o|0}G=s+A|0}else G=A;while(0);B=B+1|0;if((B|0)==(y|0))break;else A=G}return}function _b(a){a=a|0;var b=0;if(!a)return;b=c[a+4>>2]|0;if(b|0)ad(b);b=c[a+8>>2]|0;if(b|0)ad(b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function $b(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=b;e=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[b+64>>2]=a;c[b+76>>2]=0;c[b+68>>2]=0;if(!(c[a>>2]|0))return 0;a=bd(1,72)|0;c[b+104>>2]=a;g[a+4>>2]=-9999.0;d=b+4|0;b=a+12|0;a=0;do{if((a|0)==7)f=d;else f=bd(1,20)|0;c[b+(a<<2)>>2]=f;Fa(f);a=a+1|0}while((a|0)!=15);return 0}function ac(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+84|0;d=c[b>>2]|0;if(d|0){e=d;do{d=e;e=c[e+4>>2]|0;ad(c[d>>2]|0);ad(d)}while((e|0)!=0)}e=a+80|0;d=c[e>>2]|0;if(!d){f=a+72|0;c[f>>2]=0;c[b>>2]=0;return}g=a+68|0;h=a+76|0;c[g>>2]=cd(c[g>>2]|0,(c[h>>2]|0)+d|0)|0;c[h>>2]=(c[h>>2]|0)+(c[e>>2]|0);c[e>>2]=0;f=a+72|0;c[f>>2]=0;c[b>>2]=0;return}function bc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=c[a+104>>2]|0;d=a+84|0;e=c[d>>2]|0;if(e|0){f=e;do{e=f;f=c[f+4>>2]|0;ad(c[e>>2]|0);ad(e)}while((f|0)!=0)}f=a+80|0;e=c[f>>2]|0;g=a+68|0;h=c[g>>2]|0;if(!e)i=h;else{j=a+76|0;k=cd(h,(c[j>>2]|0)+e|0)|0;c[g>>2]=k;c[j>>2]=(c[j>>2]|0)+(c[f>>2]|0);c[f>>2]=0;i=k}c[a+72>>2]=0;c[d>>2]=0;if(i|0)ad(i);if(!b){l=a;m=l+112|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));return 0}i=b+12|0;d=0;while(1){k=i+(d<<2)|0;Ha(c[k>>2]|0);if((d|0)==7){d=8;continue}ad(c[k>>2]|0);d=d+1|0;if((d|0)==15)break}ad(b);l=a;m=l+112|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));return 0}function cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=c[b+28>>2]|0;if(!e){f=1;return f|0}g=c[e+3656>>2]|0;h=a;i=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));h=bd(1,136)|0;c[a+104>>2]=h;c[a+4>>2]=b;i=c[e+8>>2]|0;j=i+-1|0;if((i|0)==0|(j|0)==0)k=0;else{i=0;l=j;while(1){j=i+1|0;l=l>>>1;if(!l){k=j;break}else i=j}}c[h+44>>2]=k;k=bd(1,4)|0;i=h+12|0;c[i>>2]=k;l=bd(1,4)|0;j=h+16|0;c[j>>2]=l;c[k>>2]=bd(1,20)|0;c[l>>2]=bd(1,20)|0;Xb(c[c[i>>2]>>2]|0,c[e>>2]>>g);i=e+4|0;Xb(c[c[j>>2]>>2]|0,c[i>>2]>>g);g=c[e>>2]|0;j=g+-1|0;if((g|0)==0|(j|0)==0)m=0;else{l=0;k=j;while(1){j=l+1|0;k=k>>>1;if(!k){m=j;break}else l=j}}c[h+4>>2]=m+-6;m=c[i>>2]|0;l=m+-1|0;if((m|0)==0|(l|0)==0)n=0;else{m=0;k=l;while(1){l=m+1|0;k=k>>>1;if(!k){n=l;break}else m=l}}c[h+8>>2]=n+-6;a:do if(!d){n=e+2848|0;if((c[n>>2]|0)==0?(m=e+24|0,c[n>>2]=bd(c[m>>2]|0,56)|0,k=c[m>>2]|0,(k|0)>0):0){l=k;k=0;while(1){j=e+1824+(k<<2)|0;o=c[j>>2]|0;if(!o){p=l;break}if(fc((c[n>>2]|0)+(k*56|0)|0,o)|0){q=23;break}gc(c[j>>2]|0);c[j>>2]=0;k=k+1|0;l=c[m>>2]|0;if((k|0)>=(l|0))break a}if((q|0)==23)p=c[m>>2]|0;if((p|0)>0){l=p;k=0;while(1){n=e+1824+(k<<2)|0;j=c[n>>2]|0;if(!j)r=l;else{gc(j);c[n>>2]=0;r=c[m>>2]|0}k=k+1|0;if((k|0)>=(r|0))break;else l=r}}hc(a);f=-1;return f|0}}else{Zb(h+20|0,g);Zb(h+32|0,c[i>>2]|0);l=e+2848|0;if(((c[l>>2]|0)==0?(k=e+24|0,m=bd(c[k>>2]|0,56)|0,c[l>>2]=m,(c[k>>2]|0)>0):0)?(dc(m,c[e+1824>>2]|0)|0,(c[k>>2]|0)>1):0){m=1;do{dc((c[l>>2]|0)+(m*56|0)|0,c[e+1824+(m<<2)>>2]|0)|0;m=m+1|0}while((m|0)<(c[k>>2]|0))}k=e+28|0;m=bd(c[k>>2]|0,52)|0;l=h+56|0;c[l>>2]=m;b:do if((c[k>>2]|0)>0){n=e+2868|0;j=b+8|0;o=m;s=0;while(1){t=c[e+2852+(s<<2)>>2]|0;ec(o+(s*52|0)|0,t,n,(c[e+(c[t>>2]<<2)>>2]|0)/2|0,c[j>>2]|0);t=s+1|0;if((t|0)>=(c[k>>2]|0))break b;o=c[l>>2]|0;s=t}}while(0);c[a>>2]=1}while(0);g=c[i>>2]|0;c[a+16>>2]=g;r=c[b+4>>2]|0;b=r<<2;p=$c(b)|0;q=a+8|0;c[q>>2]=p;c[a+12>>2]=$c(b)|0;if((r|0)>0?(c[p>>2]=bd(g,4)|0,(r|0)!=1):0){p=1;do{b=c[q>>2]|0;c[b+(p<<2)>>2]=bd(g,4)|0;p=p+1|0}while((p|0)<(r|0))}c[a+36>>2]=0;c[a+40>>2]=0;r=(c[i>>2]|0)/2|0;c[a+48>>2]=r;c[a+20>>2]=r;r=e+16|0;i=h+48|0;c[i>>2]=bd(c[r>>2]|0,4)|0;p=e+20|0;g=h+52|0;c[g>>2]=bd(c[p>>2]|0,4)|0;if((c[r>>2]|0)>0){h=0;do{q=wa[c[(c[456+(c[e+800+(h<<2)>>2]<<2)>>2]|0)+8>>2]&15](a,c[e+1056+(h<<2)>>2]|0)|0;c[(c[i>>2]|0)+(h<<2)>>2]=q;h=h+1|0}while((h|0)<(c[r>>2]|0))}if((c[p>>2]|0)>0)u=0;else{f=0;return f|0}do{r=wa[c[(c[464+(c[e+1312+(u<<2)>>2]<<2)>>2]|0)+8>>2]&15](a,c[e+1568+(u<<2)>>2]|0)|0;c[(c[g>>2]|0)+(u<<2)>>2]=r;u=u+1|0}while((u|0)<(c[p>>2]|0));f=0;return f|0}
+function dc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0.0;d=a+16|0;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[a+12>>2]=b;d=b+4|0;e=c[d>>2]|0;c[a+4>>2]=e;c[a+8>>2]=e;c[a>>2]=c[b>>2];c[a+20>>2]=mc(c[b+8>>2]|0,e,0)|0;e=c[d>>2]|0;d=c[b>>2]|0;if((d|0)<=0)while(1){}f=~~+D(+(+G(+(+(e|0)),+(1.0/+(d|0)))));while(1){g=f+1|0;h=1;i=1;j=0;do{h=R(h,f)|0;i=R(i,g)|0;j=j+1|0}while((j|0)!=(d|0));if((i|0)>(e|0)&(h|0)<=(e|0))break;else f=((h|0)>(e|0)?-1:1)+f|0}c[a+44>>2]=f;f=c[b+16>>2]|0;k=+(f&2097151|0);c[a+48>>2]=~~+_c(+Yc((f|0)<0?-k:k,(f>>>21&1023)+-788|0));f=c[b+20>>2]|0;k=+(f&2097151|0);c[a+52>>2]=~~+_c(+Yc((f|0)<0?-k:k,(f>>>21&1023)+-788|0));return 0}function ec(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0.0;h=a+8|0;c[h>>2]=0;c[h+4>>2]=0;h=c[d>>2]|0;c[a+36>>2]=h;d=~~(+Zc(+P(+(+(h|0)*8.0))*1.4426950408889634)+-1.0);i=a+32|0;c[i>>2]=d;j=+(f|0);k=+(e|0);l=+(1<>2]=d;c[a+40>>2]=1-d+~~(l*(+P(+((+(e|0)+.25)*j*.5/k))*1.4426950216293335+-5.965784072875977)+.5);d=e<<2;h=$c(d)|0;c[a+16>>2]=h;m=$c(d)|0;c[a+20>>2]=m;n=$c(d)|0;c[a+24>>2]=n;o=a+4|0;c[o>>2]=b;c[a>>2]=e;c[a+44>>2]=f;p=a+48|0;g[p>>2]=1.0;if((f|0)>=26e3)if((f|0)>=38e3){if((f|0)>46e3){q=1.274999976158142;r=4}}else{q=.9399999976158142;r=4}else{q=0.0;r=4}if((r|0)==4)g[p>>2]=q;q=k*2.0;j=+(f|0);p=0;s=0;a:while(1){t=(s|0)<(e|0);u=p;while(1){v=u;while(1){if((v|0)>=87)break a;w=v+1|0;x=~~+Zc(q*+O(+(+(w|0)*.08664337545633316+2.7488713472395148))/j);if((x|0)>(s|0))break;else v=w}if(t)break;else u=w}l=+g[34192+(v<<2)>>2];y=(+g[34192+(w<<2)>>2]-l)/+(x-s|0);z=l;u=s;while(1){g[h+(u<<2)>>2]=z+100.0;t=u+1|0;if((t|0)<(x|0)&(t|0)<(e|0)){z=z+y;u=t}else{p=w;s=t;continue a}}}if((s|0)<(e|0)){w=c[h+((s<<2)+-4)>>2]|0;p=s;do{c[h+(p<<2)>>2]=w;p=p+1|0}while((p|0)!=(e|0))}p=(e|0)>0;if(p){w=(f|0)/(e<<1|0)|0;f=c[b+120>>2]|0;h=b+124|0;s=b+116|0;x=b+112|0;v=1;u=0;t=-99;while(1){A=R(w,u)|0;y=+(A|0);z=+M(+(+(R(A,A)|0)*1.8499999754340024e-08))*2.240000009536743+ +M(+(y*7.399999885819852e-04))*13.100000381469727+y*9.999999747378752e-05;b:do if((f+t|0)<(u|0)){y=z-+g[x>>2];A=t;while(1){B=R(A,w)|0;l=+(B|0);if(!(+M(+(l*7.399999885819852e-04))*13.100000381469727+l*9.999999747378752e-05+ +M(+(+(R(B,B)|0)*1.8499999754340024e-08))*2.240000009536743(e|0))D=v;else{A=(c[h>>2]|0)+u|0;B=v;while(1){if((B|0)>=(A|0)?(E=R(B,w)|0,y=+(E|0),l=+M(+(y*7.399999885819852e-04))*13.100000381469727+y*9.999999747378752e-05+ +M(+(+(R(E,E)|0)*1.8499999754340024e-08))*2.240000009536743,!(l<+g[s>>2]+z)):0){D=B;break c}E=B+1|0;if((B|0)<(e|0))B=E;else{D=E;break}}}while(0);c[n+(u<<2)>>2]=(C<<16)+-65537+D;u=u+1|0;if((u|0)==(e|0))break;else{v=D;t=C}}if(p){z=j*.5;l=+(1<<(c[i>>2]|0)+1|0);i=0;do{c[m+(i<<2)>>2]=~~(l*(+P(+(z*(+(i|0)+.25)/k))*1.4426950216293335+-5.965784072875977)+.5);i=i+1|0}while((i|0)!=(e|0));F=z}else r=19}else r=19;if((r|0)==19)F=j*.5;c[a+8>>2]=pc(b+36|0,F/k,e,+g[b+24>>2],+g[b+28>>2])|0;b=$c(12)|0;r=a+12|0;c[r>>2]=b;c[b>>2]=$c(d)|0;c[b+4>>2]=$c(d)|0;b=$c(d)|0;c[(c[r>>2]|0)+8>>2]=b;if(!p)return;p=c[o>>2]|0;o=c[r>>2]|0;r=c[o>>2]|0;b=c[o+4>>2]|0;d=c[o+8>>2]|0;o=0;do{k=+P(+((+(o|0)+.5)*j/q))*2.885390043258667+-11.931568145751953;F=k<0.0?0.0:k;k=F>=16.0?16.0:F;a=~~k;F=k-+(a|0);k=1.0-F;i=a+1|0;g[r+(o<<2)>>2]=+g[p+132+(i<<2)>>2]*F+ +g[p+132+(a<<2)>>2]*k;g[b+(o<<2)>>2]=+g[p+200+(i<<2)>>2]*F+ +g[p+200+(a<<2)>>2]*k;g[d+(o<<2)>>2]=+g[p+268+(i<<2)>>2]*F+ +g[p+268+(a<<2)>>2]*k;o=o+1|0}while((o|0)!=(e|0));return}function fc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;e=l;f=b;g=f+56|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));h=d+4|0;i=c[h>>2]|0;if((i|0)>0){j=c[d+8>>2]|0;k=0;m=0;while(1){n=((c[j+(k<<2)>>2]|0)>0&1)+m|0;k=k+1|0;if((k|0)>=(i|0)){o=n;break}else m=n}}else o=0;c[b+4>>2]=i;m=b+8|0;c[m>>2]=o;c[b>>2]=c[d>>2];if((o|0)<=0){p=0;l=e;return p|0}k=d+8|0;j=mc(c[k>>2]|0,i,o)|0;i=o<<2;n=l;l=l+((1*i|0)+15&-16)|0;if(!j){q=c[b+16>>2]|0;if(q|0)ad(q);q=c[b+20>>2]|0;if(q|0)ad(q);q=c[b+24>>2]|0;if(q|0)ad(q);q=c[b+28>>2]|0;if(q|0)ad(q);q=c[b+32>>2]|0;if(q|0)ad(q);f=b;g=f+56|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));p=-1;l=e;return p|0}else r=0;do{f=j+(r<<2)|0;g=kd(c[f>>2]|0)|0;q=g>>>4&252645135|g<<4&-252645136;g=q>>>2&858993459|q<<2&-858993460;c[f>>2]=g>>>1&1431655765|g<<1&-1431655766;c[n+(r<<2)>>2]=f;r=r+1|0}while((r|0)!=(o|0));Pc(n,o,4,13);r=l;l=l+((1*i|0)+15&-16)|0;f=$c(i)|0;g=b+20|0;c[g>>2]=f;q=j;s=0;do{c[r+((c[n+(s<<2)>>2]|0)-q>>2<<2)>>2]=s;s=s+1|0}while((s|0)!=(o|0));t=0;do{c[f+(c[r+(t<<2)>>2]<<2)>>2]=c[j+(t<<2)>>2];t=t+1|0}while((t|0)!=(o|0));ad(j);c[b+16>>2]=oc(d,o,r)|0;o=$c(i)|0;c[b+24>>2]=o;i=c[h>>2]|0;d=(i|0)>0;if(d){j=c[k>>2]|0;t=0;f=0;while(1){if((c[j+(t<<2)>>2]|0)>0){c[o+(c[r+(f<<2)>>2]<<2)>>2]=t;u=f+1|0}else u=f;t=t+1|0;if((t|0)>=(i|0))break;else f=u}f=b+28|0;c[f>>2]=$c(u)|0;if(d){d=i;i=0;u=0;while(1){t=c[(c[k>>2]|0)+(i<<2)>>2]|0;if((t|0)>0){a[(c[f>>2]|0)+(c[r+(u<<2)>>2]|0)>>0]=t;v=c[h>>2]|0;w=u+1|0}else{v=d;w=u}i=i+1|0;if((i|0)>=(v|0)){x=f;y=w;break}else{d=v;u=w}}}else{x=f;y=0}}else{f=b+28|0;c[f>>2]=$c(0)|0;x=f;y=0}f=c[m>>2]|0;if(!f)z=-4;else{m=0;w=f;while(1){w=w>>>1;if(!w)break;else m=m+1|0}z=m+-3|0}m=b+36|0;w=(z|0)>5?z:5;z=(w|0)<8?w:8;c[m>>2]=z;w=1<>2]=f;u=b+40|0;c[u>>2]=0;a:do if((y|0)>0){b=c[x>>2]|0;v=0;d=z;i=0;while(1){h=b+i|0;r=a[h>>0]|0;k=r<<24>>24;if((v|0)<(k|0)){c[u>>2]=k;A=a[h>>0]|0}else A=r;r=A<<24>>24;if((d|0)>=(r|0)?(k=kd(c[(c[g>>2]|0)+(i<<2)>>2]|0)|0,t=k>>>4&252645135|k<<4&-252645136,k=t>>>2&858993459|t<<2&-858993460,t=k>>>1&1431655765|k<<1&-1431655766,(d-r|0)!=31):0){k=i+1|0;o=r;r=0;do{c[f+((t|r<>2]=k;r=r+1|0;j=c[m>>2]|0;o=a[h>>0]|0}while((r|0)<(1<>2]|0;d=B;i=o}}else C=z;while(0);z=-2<<31-C;B=C;C=0;u=0;A=0;while(1){x=u<<32-B;i=kd(x|0)|0;d=i>>>4&252645135|i<<4&-252645136;i=d>>>2&858993459|d<<2&-858993460;d=f+((i>>>1&1431655765|i<<1&-1431655766)<<2)|0;if(!(c[d>>2]|0)){i=A;while(1){v=i+1|0;if((v|0)>=(y|0))break;if((c[(c[g>>2]|0)+(v<<2)>>2]|0)>>>0>x>>>0)break;else i=v}b:do if((y|0)>(C|0)){v=c[g>>2]|0;b=C;while(1){if(x>>>0<(c[v+(b<<2)>>2]&z)>>>0){D=b;break b}o=b+1|0;if((y|0)>(o|0))b=o;else{D=o;break}}}else D=C;while(0);x=y-D|0;c[d>>2]=(i>>>0<32767?i:32767)<<15|(x>>>0<32767?x:32767)|-2147483648;E=D;F=i}else{E=C;F=A}x=u+1|0;if((x|0)>=(w|0)){p=0;break}B=c[m>>2]|0;C=E;u=x;A=F}l=e;return p|0}function gc(a){a=a|0;var b=0;if(!(c[a+36>>2]|0))return;b=c[a+32>>2]|0;if(b|0)ad(b);b=c[a+8>>2]|0;if(b|0)ad(b);ad(a);return}function hc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!a)return;b=c[a+4>>2]|0;d=(b|0)!=0;if(d)e=c[b+28>>2]|0;else e=0;f=c[a+104>>2]|0;g=(f|0)!=0;if(g){h=c[f>>2]|0;if(h|0){ic(h);ad(c[f>>2]|0)}h=f+12|0;i=c[h>>2]|0;if(i|0){Yb(c[i>>2]|0);ad(c[c[h>>2]>>2]|0);ad(c[h>>2]|0)}h=f+16|0;i=c[h>>2]|0;if(i|0){Yb(c[i>>2]|0);ad(c[c[h>>2]>>2]|0);ad(c[h>>2]|0)}h=f+48|0;i=c[h>>2]|0;if(i|0){if((e|0)!=0?(j=e+16|0,(c[j>>2]|0)>0):0){ra[c[(c[456+(c[e+800>>2]<<2)>>2]|0)+16>>2]&7](c[i>>2]|0);if((c[j>>2]|0)>1){k=1;do{ra[c[(c[456+(c[e+800+(k<<2)>>2]<<2)>>2]|0)+16>>2]&7](c[(c[h>>2]|0)+(k<<2)>>2]|0);k=k+1|0}while((k|0)<(c[j>>2]|0))}l=c[h>>2]|0}else l=i;ad(l)}l=f+52|0;i=c[l>>2]|0;if(i|0){if((e|0)!=0?(h=e+20|0,(c[h>>2]|0)>0):0){ra[c[(c[464+(c[e+1312>>2]<<2)>>2]|0)+16>>2]&7](c[i>>2]|0);if((c[h>>2]|0)>1){j=1;do{ra[c[(c[464+(c[e+1312+(j<<2)>>2]<<2)>>2]|0)+16>>2]&7](c[(c[l>>2]|0)+(j<<2)>>2]|0);j=j+1|0}while((j|0)<(c[h>>2]|0))}m=c[l>>2]|0}else m=i;ad(m)}m=f+56|0;i=c[m>>2]|0;if(i|0){if((e|0)!=0?(l=e+28|0,(c[l>>2]|0)>0):0){jc(i);if((c[l>>2]|0)>1){e=1;do{jc((c[m>>2]|0)+(e*52|0)|0);e=e+1|0}while((e|0)<(c[l>>2]|0))}n=c[m>>2]|0}else n=i;ad(n)}n=c[f+60>>2]|0;if(n|0)kc(n);lc(f+80|0);_b(f+20|0);_b(f+32|0)}n=a+8|0;i=c[n>>2]|0;if(i|0){if(d?(d=b+4|0,b=c[d>>2]|0,(b|0)>0):0){m=i;l=b;b=0;while(1){e=c[m+(b<<2)>>2]|0;if(!e)o=l;else{ad(e);o=c[d>>2]|0}e=b+1|0;if((e|0)>=(o|0))break;m=c[n>>2]|0;l=o;b=e}p=c[n>>2]|0}else p=i;ad(p);p=c[a+12>>2]|0;if(p|0)ad(p)}if(g){g=c[f+64>>2]|0;if(g|0)ad(g);g=c[f+68>>2]|0;if(g|0)ad(g);g=c[f+72>>2]|0;if(g|0)ad(g);ad(f)}f=a;a=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(a|0));return}function ic(a){a=a|0;Yb(a+16|0);ad(c[a+48>>2]|0);ad(c[a+64>>2]|0);ad(c[a+80>>2]|0);ad(c[a+96>>2]|0);ad(c[a+112>>2]|0);ad(c[a+128>>2]|0);ad(c[a+144>>2]|0);ad(c[a+36>>2]|0);ad(c[a+152>>2]|0);ad(c[a+160>>2]|0);id(a|0,0,180)|0;return}function jc(a){a=a|0;var b=0,d=0,e=0,f=0;if(!a)return;b=c[a+16>>2]|0;if(b|0)ad(b);b=c[a+20>>2]|0;if(b|0)ad(b);b=c[a+24>>2]|0;if(b|0)ad(b);b=a+8|0;d=c[b>>2]|0;if(d|0){e=d;d=0;while(1){ad(c[c[e+(d<<2)>>2]>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+4>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+8>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+12>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+16>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+20>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+24>>2]|0);ad(c[(c[(c[b>>2]|0)+(d<<2)>>2]|0)+28>>2]|0);ad(c[(c[b>>2]|0)+(d<<2)>>2]|0);f=d+1|0;if((f|0)==17)break;e=c[b>>2]|0;d=f}ad(c[b>>2]|0)}b=a+12|0;d=c[b>>2]|0;if(d|0){ad(c[d>>2]|0);ad(c[(c[b>>2]|0)+4>>2]|0);ad(c[(c[b>>2]|0)+8>>2]|0);ad(c[b>>2]|0)}b=a;a=b+52|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function kc(a){a=a|0;if(!a)return;ad(a);return}function lc(a){a=a|0;var b=0;b=a;a=b+48|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=l;l=l+144|0;f=e;g=(d|0)!=0;h=$c((g?d:b)<<2)|0;id(f|0,0,132)|0;i=(b|0)>0;a:do if(i){j=f+4|0;k=(d|0)==0&1;m=0;n=0;b:while(1){o=c[a+(n<<2)>>2]|0;c:do if((o|0)>0){p=c[f+(o<<2)>>2]|0;if(!((o|0)>31|(p>>>o|0)==0))break b;q=m+1|0;c[h+(m<<2)>>2]=p;r=f+(o<<2)|0;d:do if(!(p&1)){s=p;t=r;u=o;while(1){c[t>>2]=s+1;v=u+-1|0;if((u|0)<=1)break d;s=c[f+(v<<2)>>2]|0;w=f+(v<<2)|0;if(s&1|0){x=w;y=v;z=7;break}else{t=w;u=v}}}else{x=r;y=o;z=7}while(0);do if((z|0)==7){z=0;if((y|0)==1){c[j>>2]=(c[j>>2]|0)+1;break}else{c[x>>2]=c[f+(y+-1<<2)>>2]<<1;break}}while(0);r=o+1|0;if((r|0)<33){u=p;t=o;s=r;while(1){r=f+(s<<2)|0;v=u;u=c[r>>2]|0;if((u>>>1|0)!=(v|0)){A=q;break c}c[r>>2]=c[f+(t<<2)>>2]<<1;r=s+1|0;if((r|0)>=33){A=q;break}else{v=s;s=r;t=v}}}else A=q}else A=m+k|0;while(0);n=n+1|0;if((n|0)>=(b|0))break a;else m=A}ad(h);B=0;l=e;return B|0}while(0);e:do if((d|0)!=1){A=1;while(1){if(c[f+(A<<2)>>2]&-1>>>(32-A|0)|0)break;A=A+1|0;if((A|0)>=33)break e}ad(h);B=0;l=e;return B|0}while(0);if(!i){B=h;l=e;return B|0}if(g){C=0;D=0}else{g=0;do{i=c[a+(g<<2)>>2]|0;f=h+(g<<2)|0;if((i|0)>0){d=c[f>>2]|0;A=0;y=0;while(1){x=d>>>A&1|y<<1;A=A+1|0;if((A|0)>=(i|0)){E=x;break}else y=x}}else E=0;g=g+1|0;c[f>>2]=E}while((g|0)!=(b|0));B=h;l=e;return B|0}while(1){g=c[a+(D<<2)>>2]|0;if((g|0)>0){E=c[h+(C<<2)>>2]|0;y=0;i=0;while(1){A=E>>>y&1|i<<1;y=y+1|0;if((y|0)>=(g|0)){F=A;break}else i=A}}else F=0;if(!g)G=C;else{c[h+(C<<2)>>2]=F;G=C+1|0}D=D+1|0;if((D|0)==(b|0)){B=h;break}else C=G}l=e;return B|0}function nc(a,b){a=a|0;b=b|0;var d=0;d=c[c[a>>2]>>2]|0;a=c[c[b>>2]>>2]|0;return (d>>>0>a>>>0&1)-(d>>>0>>0&1)|0}function oc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0;e=c[a+12>>2]|0;if((e+-1|0)>>>0>=2){f=0;return f|0}h=c[a+16>>2]|0;i=+(h&2097151|0);j=+Yc((h|0)<0?-i:i,(h>>>21&1023)+-788|0);h=c[a+20>>2]|0;i=+(h&2097151|0);k=+Yc((h|0)<0?-i:i,(h>>>21&1023)+-788|0);h=c[a>>2]|0;l=bd(R(h,b)|0,4)|0;switch(e|0){case 1:{e=c[a+4>>2]|0;if((h|0)<=0)while(1){}b=~~+D(+(+G(+(+(e|0)),+(1.0/+(h|0)))));while(1){m=b+1|0;n=1;o=1;p=0;do{n=R(n,b)|0;o=R(o,m)|0;p=p+1|0}while((p|0)!=(h|0));if((o|0)>(e|0)&(n|0)<=(e|0))break;else b=((n|0)>(e|0)?-1:1)+b|0}if((e|0)<=0){f=l;return f|0}p=(d|0)==0;m=a+8|0;q=a+32|0;i=k;r=j;s=a+28|0;t=0;u=0;while(1){if(p){v=c[q>>2]|0;w=R(t,h)|0;if(!(c[s>>2]|0)){x=1;y=0;do{g[l+(w+y<<2)>>2]=r+ +E(+(+(c[v+((((u|0)/(x|0)|0|0)%(b|0)|0)<<2)>>2]|0)))*i;x=R(x,b)|0;y=y+1|0}while((y|0)<(h|0));z=21}else{y=1;x=0;A=0.0;do{A=A+r+ +E(+(+(c[v+((((u|0)/(y|0)|0|0)%(b|0)|0)<<2)>>2]|0)))*i;g[l+(w+x<<2)>>2]=A;y=R(y,b)|0;x=x+1|0}while((x|0)<(h|0));z=21}}else if(c[(c[m>>2]|0)+(u<<2)>>2]|0){x=c[q>>2]|0;y=R(c[d+(t<<2)>>2]|0,h)|0;if(!(c[s>>2]|0)){w=1;v=0;do{g[l+(y+v<<2)>>2]=r+ +E(+(+(c[x+((((u|0)/(w|0)|0|0)%(b|0)|0)<<2)>>2]|0)))*i;w=R(w,b)|0;v=v+1|0}while((v|0)<(h|0));z=21}else{v=1;w=0;A=0.0;do{A=A+r+ +E(+(+(c[x+((((u|0)/(v|0)|0|0)%(b|0)|0)<<2)>>2]|0)))*i;g[l+(y+w<<2)>>2]=A;v=R(v,b)|0;w=w+1|0}while((w|0)<(h|0));z=21}}else B=t;if((z|0)==21){z=0;B=t+1|0}u=u+1|0;if((u|0)>=(e|0)){f=l;break}else t=B}return f|0}case 2:{B=c[a+4>>2]|0;if((B|0)<=0){f=l;return f|0}t=(d|0)!=0;e=a+8|0;u=a+32|0;i=k;k=j;z=a+28|0;a=(h|0)>0;b=0;s=0;while(1){if(t?(c[(c[e>>2]|0)+(s<<2)>>2]|0)==0:0)C=b;else{if(a){q=c[u>>2]|0;m=(c[z>>2]|0)==0;if(t){p=R(h,s)|0;w=R(c[d+(b<<2)>>2]|0,h)|0;if(m){v=0;do{g[l+(w+v<<2)>>2]=k+ +E(+(+(c[q+(p+v<<2)>>2]|0)))*i;v=v+1|0}while((v|0)<(h|0))}else{v=0;j=0.0;do{j=j+k+ +E(+(+(c[q+(p+v<<2)>>2]|0)))*i;g[l+(w+v<<2)>>2]=j;v=v+1|0}while((v|0)<(h|0))}}else{v=R(h,s)|0;w=R(b,h)|0;if(m){p=0;do{g[l+(w+p<<2)>>2]=k+ +E(+(+(c[q+(v+p<<2)>>2]|0)))*i;p=p+1|0}while((p|0)<(h|0))}else{p=0;j=0.0;do{j=j+k+ +E(+(+(c[q+(v+p<<2)>>2]|0)))*i;g[l+(w+p<<2)>>2]=j;p=p+1|0}while((p|0)<(h|0))}}}C=b+1|0}s=s+1|0;if((s|0)>=(B|0)){f=l;break}else b=C}return f|0}default:{f=l;return f|0}}return 0}function pc(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=+e;f=+f;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0;h=l;l=l+32480|0;i=h+32256|0;j=h+1792|0;k=h;m=l;l=l+((1*(d<<2)|0)+15&-16)|0;n=$c(68)|0;id(j|0,0,30464)|0;o=e>0.0;p=e<0.0;q=0;do{r=q<<2;s=0;do{t=s+r|0;if((t|0)<88)u=+g[34192+(t<<2)>>2];else u=-30.0;v=t+1|0;if((v|0)<88){w=+g[34192+(v<<2)>>2];if(u>w)x=w;else x=u}else if(u>-30.0)x=-30.0;else x=u;v=t+2|0;if((v|0)<88){w=+g[34192+(v<<2)>>2];if(x>w)y=w;else y=x}else if(x>-30.0)y=-30.0;else y=x;v=t+3|0;if((v|0)<88){w=+g[34192+(v<<2)>>2];if(y>w)z=w;else z=y}else if(y>-30.0)z=-30.0;else z=y;g[i+(s<<2)>>2]=z;s=s+1|0}while((s|0)!=56);s=34544+(q*1344|0)|0;md(j+(q*1792|0)+448|0,s|0,224)|0;md(j+(q*1792|0)+672|0,34544+(q*1344|0)+224|0,224)|0;md(j+(q*1792|0)+896|0,34544+(q*1344|0)+448|0,224)|0;md(j+(q*1792|0)+1120|0,34544+(q*1344|0)+672|0,224)|0;md(j+(q*1792|0)+1344|0,34544+(q*1344|0)+896|0,224)|0;md(j+(q*1792|0)+1568|0,34544+(q*1344|0)+1120|0,224)|0;md(j+(q*1792|0)|0,s|0,224)|0;md(j+(q*1792|0)+224|0,s|0,224)|0;if(o){s=0;do{if(p){r=0;do{v=16-r|0;w=+(((v|0)>-1?v:0-v|0)|0)*f+e;A=w<0.0?0.0:w;v=j+(q*1792|0)+(s*224|0)+(r<<2)|0;g[v>>2]=+g[v>>2]+(A>0.0?0.0:A);r=r+1|0}while((r|0)!=56)}else{r=0;do{v=16-r|0;A=+(((v|0)>-1?v:0-v|0)|0)*f+e;v=j+(q*1792|0)+(s*224|0)+(r<<2)|0;g[v>>2]=+g[v>>2]+(A<0.0?0.0:A);r=r+1|0}while((r|0)!=56)}s=s+1|0}while((s|0)!=8)}else{s=0;do{if(p){r=0;do{v=16-r|0;A=+(((v|0)>-1?v:0-v|0)|0)*f+e;v=j+(q*1792|0)+(s*224|0)+(r<<2)|0;g[v>>2]=+g[v>>2]+(A>0.0?0.0:A);r=r+1|0}while((r|0)!=56)}else{r=0;do{v=16-r|0;t=j+(q*1792|0)+(s*224|0)+(r<<2)|0;g[t>>2]=+g[t>>2]+(+(((v|0)>-1?v:0-v|0)|0)*f+e);r=r+1|0}while((r|0)!=56)}s=s+1|0}while((s|0)!=8)}A=+g[a+(q<<2)>>2];s=0;do{w=+(((s|0)>2?s:2)|0)*-10.0+70.0+A;r=0;do{v=j+(q*1792|0)+(s*224|0)+(r<<2)|0;g[v>>2]=+g[v>>2]+w;r=r+1|0}while((r|0)!=56);md(k+(s*224|0)|0,i|0,224)|0;w=+(s|0)*-10.0+70.0;r=0;do{v=k+(s*224|0)+(r<<2)|0;g[v>>2]=w+ +g[v>>2];r=r+1|0}while((r|0)!=56);B=0;do{w=+g[j+(q*1792|0)+(s*224|0)+(B<<2)>>2];r=k+(s*224|0)+(B<<2)|0;if(w>+g[r>>2])g[r>>2]=w;B=B+1|0}while((B|0)!=56);s=s+1|0}while((s|0)!=8);C=1;do{s=C+-1|0;r=0;do{A=+g[k+(s*224|0)+(r<<2)>>2];v=k+(C*224|0)+(r<<2)|0;if(A<+g[v>>2])g[v>>2]=A;r=r+1|0}while((r|0)!=56);E=0;do{A=+g[k+(C*224|0)+(E<<2)>>2];r=j+(q*1792|0)+(C*224|0)+(E<<2)|0;if(A<+g[r>>2])g[r>>2]=A;E=E+1|0}while((E|0)!=56);C=C+1|0}while((C|0)!=8);q=q+1|0}while((q|0)!=17);e=b;q=(d|0)>0;C=0;do{E=$c(32)|0;k=n+(C<<2)|0;c[k>>2]=E;f=+(C|0);z=f*.5;B=~~+D(+(+O(+(f*.34657350182533264+4.135165354540845))/e));i=~~+Q(+(+P(+(+(B|0)*b+1.0))*2.885390043258667+-11.931568145751953));a=~~+D(+(+P(+(+(B+1|0)*b))*2.885390043258667+-11.931568145751953));B=(i|0)>(C|0)?C:i;i=(B|0)>0?B:0;B=(a|0)<16?a:16;a=(i|0)>(B|0);C=C+1|0;p=(C|0)<17;f=z+3.9657840728759766;o=E;E=0;do{c[o+(E<<2)>>2]=$c(232)|0;if(q){r=0;do{g[m+(r<<2)>>2]=999.0;r=r+1|0}while((r|0)!=(d|0))}if(!a){r=i;while(1){y=+(r|0)*.5;s=0;v=0;while(1){x=+(s|0)*.125+y;t=~~(+O(+((x+3.9032840728759766)*.6931470036506653))/e);F=~~(+O(+((x+4.028284072875977)*.6931470036506653))/e+1.0);G=(t|0)>0?t:0;t=(G|0)>(d|0)?d:G;G=(t|0)<(v|0)?t:v;t=(F|0)>0?F:0;F=(t|0)>(d|0)?d:t;if((G|0)<(F|0)&(G|0)<(d|0)){x=+g[j+(r*1792|0)+(E*224|0)+(s<<2)>>2];t=G;while(1){H=m+(t<<2)|0;if(+g[H>>2]>x)g[H>>2]=x;H=t+1|0;if((H|0)<(F|0)&(H|0)<(d|0))t=H;else{I=H;break}}}else I=G;s=s+1|0;if((s|0)==56)break;else v=I}if((I|0)<(d|0)){y=+g[j+(r*1792|0)+(E*224|0)+220>>2];v=I;do{s=m+(v<<2)|0;if(+g[s>>2]>y)g[s>>2]=y;v=v+1|0}while((v|0)!=(d|0))}if((r|0)<(B|0))r=r+1|0;else break}}if(p){r=0;v=0;while(1){y=+(r|0)*.125+z;s=~~(+O(+((y+3.9032840728759766)*.6931470036506653))/e);t=~~(+O(+((y+4.028284072875977)*.6931470036506653))/e+1.0);F=(s|0)>0?s:0;s=(F|0)>(d|0)?d:F;F=(s|0)<(v|0)?s:v;s=(t|0)>0?t:0;t=(s|0)>(d|0)?d:s;if((F|0)<(t|0)&(F|0)<(d|0)){y=+g[j+(C*1792|0)+(E*224|0)+(r<<2)>>2];s=F;while(1){H=m+(s<<2)|0;if(+g[H>>2]>y)g[H>>2]=y;H=s+1|0;if((H|0)<(t|0)&(H|0)<(d|0))s=H;else{J=H;break}}}else J=F;r=r+1|0;if((r|0)==56)break;else v=J}if((J|0)<(d|0)){y=+g[j+(C*1792|0)+(E*224|0)+220>>2];v=J;do{r=m+(v<<2)|0;if(+g[r>>2]>y)g[r>>2]=y;v=v+1|0}while((v|0)!=(d|0))}}o=c[k>>2]|0;v=c[o+(E<<2)>>2]|0;r=0;do{s=~~(+O(+((f+ +(r|0)*.125)*.6931470036506653))/e);if((s|0)>-1&(s|0)<(d|0))K=+g[m+(s<<2)>>2];else K=-999.0;g[v+(r+2<<2)>>2]=K;r=r+1|0}while((r|0)!=56);do if(!(+g[v+8>>2]>-200.0))if(!(+g[v+12>>2]>-200.0))if(!(+g[v+16>>2]>-200.0))if(!(+g[v+20>>2]>-200.0))if(!(+g[v+24>>2]>-200.0))if(!(+g[v+28>>2]>-200.0))if(!(+g[v+32>>2]>-200.0))if(!(+g[v+36>>2]>-200.0))if(!(+g[v+40>>2]>-200.0))if(!(+g[v+44>>2]>-200.0))if(!(+g[v+48>>2]>-200.0))if(!(+g[v+52>>2]>-200.0))if(!(+g[v+56>>2]>-200.0))if(+g[v+60>>2]>-200.0)L=13.0;else{if(+g[v+64>>2]>-200.0){L=14.0;break}if(+g[v+68>>2]>-200.0){L=15.0;break}L=16.0}else L=12.0;else L=11.0;else L=10.0;else L=9.0;else L=8.0;else L=7.0;else L=6.0;else L=5.0;else L=4.0;else L=3.0;else L=2.0;else L=1.0;else L=0.0;while(0);g[v>>2]=L;r=55;while(1){if(+g[v+(r+2<<2)>>2]>-200.0){M=r;break}s=r+-1|0;if((s|0)>17)r=s;else{M=s;break}}g[v+4>>2]=+(M|0);E=E+1|0}while((E|0)!=8)}while((C|0)!=17);l=h;return n|0}function qc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(cc(a,b,0)|0){hc(a);d=1;return d|0}b=c[a+4>>2]|0;e=c[a+104>>2]|0;if((b|0)==0|(e|0)==0){d=0;return d|0}f=c[b+28>>2]|0;if(!f){d=0;return d|0}b=c[f+3656>>2]|0;g=c[f+4>>2]>>b+1;c[a+48>>2]=g;c[a+20>>2]=g>>b;c[a+24>>2]=-1;b=a+56|0;c[b>>2]=-1;c[b+4>>2]=-1;c[b+8>>2]=-1;c[b+12>>2]=-1;c[a+32>>2]=0;a=e+128|0;c[a>>2]=-1;c[a+4>>2]=-1;d=0;return d|0}function rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;d=c[a+4>>2]|0;e=c[d+28>>2]|0;f=c[a+104>>2]|0;h=c[e+3656>>2]|0;if(!b){i=-131;return i|0}j=a+20|0;k=c[j>>2]|0;l=a+24|0;m=c[l>>2]|0;if(!((k|0)<=(m|0)|(m|0)==-1)){i=-131;return i|0}n=a+40|0;o=c[n>>2]|0;p=a+36|0;c[p>>2]=o;q=c[b+28>>2]|0;c[n>>2]=q;c[a+44>>2]=-1;r=a+64|0;s=r;t=c[s>>2]|0;u=c[s+4>>2]|0;s=b+56|0;v=c[s>>2]|0;w=c[s+4>>2]|0;s=hd(t|0,u|0,1,0)|0;if(!(((t|0)!=-1|(u|0)!=-1)&((s|0)==(v|0)&(C|0)==(w|0)))){s=a+56|0;c[s>>2]=-1;c[s+4>>2]=-1;s=f+128|0;c[s>>2]=-1;c[s+4>>2]=-1}s=r;c[s>>2]=v;c[s+4>>2]=w;if(!(c[b>>2]|0)){x=k;y=m}else{k=h+1|0;w=c[e+(q<<2)>>2]>>k;s=c[e>>2]>>k;v=c[e+4>>2]>>k;k=c[b+88>>2]|0;r=a+72|0;u=r;t=hd(c[u>>2]|0,c[u+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;k=r;c[k>>2]=t;c[k+4>>2]=C;k=c[b+92>>2]|0;t=a+80|0;r=t;u=hd(c[r>>2]|0,c[r+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;k=t;c[k>>2]=u;c[k+4>>2]=C;k=c[b+96>>2]|0;u=a+88|0;t=u;r=hd(c[t>>2]|0,c[t+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;k=u;c[k>>2]=r;c[k+4>>2]=C;k=c[b+100>>2]|0;r=a+96|0;u=r;t=hd(c[u>>2]|0,c[u+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;k=r;c[k>>2]=t;c[k+4>>2]=C;k=a+48|0;t=c[k>>2]|0;r=(t|0)==0;u=r?v:0;z=r?0:v;r=d+4|0;if((c[r>>2]|0)>0){d=f+4|0;A=a+8|0;B=(v|0)/2|0;D=(s|0)/2|0;E=0-D|0;F=(s|0)>0;G=B+D|0;D=s+-1|0;H=(w|0)>0;I=f+8|0;J=(v|0)>0;K=v+-1|0;L=(s|0)/-2|0;M=o;o=q;q=0;while(1){N=(o|0)!=0;a:do if(!M){O=sc((c[d>>2]|0)-h|0)|0;P=c[(c[A>>2]|0)+(q<<2)>>2]|0;Q=P+(u<<2)|0;R=c[(c[b>>2]|0)+(q<<2)>>2]|0;if(!N){if(F)S=0;else{T=P;U=R;break}while(1){V=Q+(S<<2)|0;g[V>>2]=+g[O+(S<<2)>>2]*+g[R+(S<<2)>>2]+ +g[O+(D-S<<2)>>2]*+g[V>>2];S=S+1|0;if((S|0)==(s|0)){T=P;U=R;break a}}}V=R+(B<<2)+(E<<2)|0;if(F){W=0;do{X=Q+(W<<2)|0;g[X>>2]=+g[O+(W<<2)>>2]*+g[V+(W<<2)>>2]+ +g[O+(D-W<<2)>>2]*+g[X>>2];W=W+1|0}while((W|0)!=(s|0));Y=s}else Y=0;if((Y|0)<(G|0)){W=Y;do{c[Q+(W<<2)>>2]=c[V+(W<<2)>>2];W=W+1|0}while((W|0)<(G|0));T=P;U=R}else{T=P;U=R}}else if(N){W=sc((c[I>>2]|0)-h|0)|0;V=c[(c[A>>2]|0)+(q<<2)>>2]|0;Q=V+(u<<2)|0;O=c[(c[b>>2]|0)+(q<<2)>>2]|0;if(J)Z=0;else{T=V;U=O;break}do{X=Q+(Z<<2)|0;g[X>>2]=+g[W+(Z<<2)>>2]*+g[O+(Z<<2)>>2]+ +g[W+(K-Z<<2)>>2]*+g[X>>2];Z=Z+1|0}while((Z|0)!=(v|0));T=V;U=O}else{O=sc((c[d>>2]|0)-h|0)|0;V=c[(c[A>>2]|0)+(q<<2)>>2]|0;W=V+(u<<2)+(B<<2)+(L<<2)|0;Q=c[(c[b>>2]|0)+(q<<2)>>2]|0;if(F)_=0;else{T=V;U=Q;break}do{R=W+(_<<2)|0;g[R>>2]=+g[O+(_<<2)>>2]*+g[Q+(_<<2)>>2]+ +g[O+(D-_<<2)>>2]*+g[R>>2];_=_+1|0}while((_|0)!=(s|0));T=V;U=Q}while(0);N=T+(z<<2)|0;Q=U+(w<<2)|0;if(H){V=0;do{c[N+(V<<2)>>2]=c[Q+(V<<2)>>2];V=V+1|0}while((V|0)!=(w|0))}V=q+1|0;if((V|0)>=(c[r>>2]|0))break;M=c[p>>2]|0;o=c[n>>2]|0;q=V}$=c[k>>2]|0;aa=c[l>>2]|0}else{$=t;aa=m}c[k>>2]=$|0?0:v;if((aa|0)==-1){c[l>>2]=z;ba=z;ca=z}else{c[l>>2]=u;ba=u;ca=(((c[e+(c[n>>2]<<2)>>2]|0)/4|0)+((c[e+(c[p>>2]<<2)>>2]|0)/4|0)>>h)+u|0}c[j>>2]=ca;x=ca;y=ba}ba=f+128|0;f=ba;ca=c[f>>2]|0;u=c[f+4>>2]|0;if((ca|0)==-1&(u|0)==-1){da=0;ea=0}else{f=((c[e+(c[n>>2]<<2)>>2]|0)/4|0)+((c[e+(c[p>>2]<<2)>>2]|0)/4|0)|0;z=hd(f|0,((f|0)<0)<<31>>31|0,ca|0,u|0)|0;da=z;ea=C}z=ba;c[z>>2]=da;c[z+4>>2]=ea;z=a+56|0;ba=z;u=c[ba>>2]|0;ca=c[ba+4>>2]|0;ba=b+48|0;f=c[ba>>2]|0;aa=c[ba+4>>2]|0;ba=(f|0)!=-1|(aa|0)!=-1;do if((u|0)==-1&(ca|0)==-1){if(ba?(v=z,c[v>>2]=f,c[v+4>>2]=aa,(ea|0)>(aa|0)|(ea|0)==(aa|0)&da>>>0>f>>>0):0){v=gd(da|0,ea|0,f|0,aa|0)|0;$=(v|0)>0?v:0;if(!(c[b+44>>2]|0)){v=y+($>>>h)|0;c[l>>2]=(v|0)>(x|0)?x:v;break}else{v=x-y<>2]=x-((($|0)>(v|0)?v:$)>>h);break}}}else{$=((c[e+(c[n>>2]<<2)>>2]|0)/4|0)+((c[e+(c[p>>2]<<2)>>2]|0)/4|0)|0;v=hd($|0,(($|0)<0)<<31>>31|0,u|0,ca|0)|0;$=C;k=z;c[k>>2]=v;c[k+4>>2]=$;if(!((v|0)==(f|0)&($|0)==(aa|0)|ba^1)){if((($|0)>(aa|0)|($|0)==(aa|0)&v>>>0>f>>>0?(k=gd(v|0,$|0,f|0,aa|0)|0,k|0):0)?c[b+44>>2]|0:0){$=x-y<($|0)?$:k;c[j>>2]=x-(((v|0)>0?v:0)>>>h)}v=z;c[v>>2]=f;c[v+4>>2]=aa}}while(0);if(!(c[b+44>>2]|0)){i=0;return i|0}c[a+32>>2]=1;i=0;return i|0}function sc(a){a=a|0;return c[1500+(a<<2)>>2]|0}function tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=c[a+24>>2]|0;if((d|0)<=-1){e=0;return e|0}f=c[a+20>>2]|0;if((f|0)<=(d|0)){e=0;return e|0}if(b|0){g=c[(c[a+4>>2]|0)+4>>2]|0;h=a+12|0;i=c[h>>2]|0;if((g|0)>0){j=a+8|0;a=i;k=0;while(1){c[a+(k<<2)>>2]=(c[(c[j>>2]|0)+(k<<2)>>2]|0)+(d<<2);k=k+1|0;l=c[h>>2]|0;if((k|0)>=(g|0)){m=l;break}else a=l}}else m=i;c[b>>2]=m}e=f-d|0;return e|0}function uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+24|0;e=(c[d>>2]|0)+b|0;if(b|0?(e|0)>(c[a+20>>2]|0):0){f=-131;return f|0}c[d>>2]=e;f=0;return f|0}function vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=(a|0)!=0;if(d?(e=c[a+64>>2]|0,(e|0)!=0):0){f=c[e+104>>2]|0;g=c[e+4>>2]|0;if(!g){h=f;i=0;j=0;k=0;l=1}else{h=f;i=c[g+28>>2]|0;j=g;k=1;l=1}}else{h=0;i=0;j=0;k=0;l=0}g=d?a+4|0:0;if(!(d&((i|0)!=0&(k&(l&(h|0)!=0))))){m=-136;return m|0}ac(a);Ia(g,c[b>>2]|0,c[b+4>>2]|0);if(La(g,1)|0){m=-135;return m|0}l=La(g,c[h+44>>2]|0)|0;if((l|0)==-1){m=-136;return m|0}c[a+40>>2]=l;h=i+32+(l<<2)|0;l=c[h>>2]|0;if(!l){m=-136;return m|0}k=c[l>>2]|0;l=a+28|0;c[l>>2]=k;do if(k){c[a+24>>2]=La(g,1)|0;d=La(g,1)|0;c[a+32>>2]=d;if((d|0)==-1){m=-136;return m|0}else{n=c[l>>2]|0;break}}else{c[a+24>>2]=0;c[a+32>>2]=0;n=0}while(0);l=b+16|0;g=c[l+4>>2]|0;k=a+48|0;c[k>>2]=c[l>>2];c[k+4>>2]=g;g=b+24|0;k=c[g+4>>2]|0;l=a+56|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;c[a+44>>2]=c[b+12>>2];b=a+36|0;c[b>>2]=c[i+(n<<2)>>2];n=j+4|0;c[a>>2]=Ua(a,c[n>>2]<<2)|0;if((c[n>>2]|0)>0){j=0;do{k=Ua(a,c[b>>2]<<2)|0;c[(c[a>>2]|0)+(j<<2)>>2]=k;j=j+1|0}while((j|0)<(c[n>>2]|0))}n=c[(c[h>>2]|0)+12>>2]|0;m=wa[c[(c[34172+(c[i+288+(n<<2)>>2]<<2)>>2]|0)+16>>2]&15](a,c[i+544+(n<<2)>>2]|0)|0;return m|0}function wc(a){a=a|0;if(!a)return;ad(a);return}function xc(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function yc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;b=c[a>>2]|0;if(b|0){d=a+8|0;e=c[d>>2]|0;if((e|0)>0){f=b;g=e;e=0;while(1){h=c[f+(e<<2)>>2]|0;if(!h){i=g;j=f}else{ad(h);i=c[d>>2]|0;j=c[a>>2]|0}e=e+1|0;if((e|0)>=(i|0)){k=j;break}else{f=j;g=i}}}else k=b;ad(k)}k=c[a+4>>2]|0;if(k|0)ad(k);k=c[a+12>>2]|0;if(k|0)ad(k);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function zc(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=bd(1,3664)|0;return}function Ac(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=c[a+28>>2]|0;if(!b){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;return}d=b+8|0;e=c[d>>2]|0;if((e|0)>0){f=b+32|0;g=e;e=0;while(1){h=c[f+(e<<2)>>2]|0;if(!h)i=g;else{ad(h);i=c[d>>2]|0}e=e+1|0;if((e|0)>=(i|0))break;else g=i}}i=b+12|0;g=c[i>>2]|0;if((g|0)>0){e=b+544|0;d=b+288|0;f=g;g=0;while(1){h=c[e+(g<<2)>>2]|0;if(!h)j=f;else{ra[c[(c[34172+(c[d+(g<<2)>>2]<<2)>>2]|0)+8>>2]&7](h);j=c[i>>2]|0}g=g+1|0;if((g|0)>=(j|0))break;else f=j}}j=b+16|0;f=c[j>>2]|0;if((f|0)>0){g=b+1056|0;i=b+800|0;d=f;f=0;while(1){e=c[g+(f<<2)>>2]|0;if(!e)k=d;else{ra[c[(c[456+(c[i+(f<<2)>>2]<<2)>>2]|0)+12>>2]&7](e);k=c[j>>2]|0}f=f+1|0;if((f|0)>=(k|0))break;else d=k}}k=b+20|0;d=c[k>>2]|0;if((d|0)>0){f=b+1568|0;j=b+1312|0;i=d;d=0;while(1){g=c[f+(d<<2)>>2]|0;if(!g)l=i;else{ra[c[(c[464+(c[j+(d<<2)>>2]<<2)>>2]|0)+12>>2]&7](g);l=c[k>>2]|0}d=d+1|0;if((d|0)>=(l|0))break;else i=l}}l=b+24|0;if((c[l>>2]|0)>0){i=b+1824|0;d=b+2848|0;k=0;do{j=c[i+(k<<2)>>2]|0;if(j|0)gc(j);j=c[d>>2]|0;if(j|0)Bc(j+(k*56|0)|0);k=k+1|0}while((k|0)<(c[l>>2]|0));m=d}else m=b+2848|0;d=c[m>>2]|0;if(d|0)ad(d);d=b+28|0;if((c[d>>2]|0)>0){m=b+2852|0;l=0;do{wc(c[m+(l<<2)>>2]|0);l=l+1|0}while((l|0)<(c[d>>2]|0))}ad(b);c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;return}function Bc(a){a=a|0;var b=0,d=0,e=0;b=c[a+16>>2]|0;if(b|0)ad(b);b=c[a+20>>2]|0;if(b|0)ad(b);b=c[a+24>>2]|0;if(b|0)ad(b);b=c[a+28>>2]|0;if(b|0)ad(b);b=c[a+32>>2]|0;if(!b){d=a;e=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));return}ad(b);d=a;e=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));return}function Cc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;f=l;l=l+32|0;g=f;h=f+20|0;if(!e){i=-133;l=f;return i|0}Ia(g,c[e>>2]|0,c[e+4>>2]|0);j=La(g,8)|0;a[h>>0]=La(g,8)|0;a[h+1>>0]=La(g,8)|0;a[h+2>>0]=La(g,8)|0;a[h+3>>0]=La(g,8)|0;a[h+4>>0]=La(g,8)|0;a[h+5>>0]=La(g,8)|0;a:do if(!(Oc(h,57636,6)|0))switch(j|0){case 1:{if(!(c[e+8>>2]|0)){k=-133;break a}m=b+8|0;if(c[m>>2]|0){k=-133;break a}n=c[b+28>>2]|0;if(!n){k=-129;break a}o=La(g,32)|0;c[b>>2]=o;if(o|0){k=-134;break a}o=b+4|0;c[o>>2]=La(g,8)|0;c[m>>2]=La(g,32)|0;c[b+12>>2]=La(g,32)|0;c[b+16>>2]=La(g,32)|0;c[b+20>>2]=La(g,32)|0;c[n>>2]=1<<(La(g,4)|0);p=1<<(La(g,4)|0);c[n+4>>2]=p;if((((c[m>>2]|0)>=1?(c[o>>2]|0)>=1:0)?(o=c[n>>2]|0,!((p|0)>8192|((o|0)<64|(p|0)<(o|0)))):0)?(La(g,1)|0)==1:0){k=0;break a}Ac(b);k=-133;break a;break}case 3:{if(!(c[b+8>>2]|0)){k=-133;break a}o=La(g,32)|0;b:do if((o|0)>=0?(p=g+16|0,(o|0)<=((c[p>>2]|0)+-8|0)):0){n=bd(o+1|0,1)|0;c[d+12>>2]=n;if(o|0){m=n;n=o;while(1){n=n+-1|0;a[m>>0]=La(g,8)|0;if(!n)break;else m=m+1|0}}m=La(g,32)|0;if((m|0)>=0?(n=c[p>>2]|0,(m|0)<=(n-(Ma(g)|0)>>2|0)):0){n=d+8|0;c[n>>2]=m;q=m+1|0;c[d>>2]=bd(q,4)|0;r=d+4|0;c[r>>2]=bd(q,4)|0;if((m|0)>0){m=0;do{q=La(g,32)|0;if((q|0)<0){s=d;break b}t=c[p>>2]|0;if((q|0)>(t-(Ma(g)|0)|0)){s=d;break b}c[(c[r>>2]|0)+(m<<2)>>2]=q;t=bd(q+1|0,1)|0;c[(c[d>>2]|0)+(m<<2)>>2]=t;if(q|0){t=c[(c[d>>2]|0)+(m<<2)>>2]|0;u=q;while(1){u=u+-1|0;a[t>>0]=La(g,8)|0;if(!u)break;else t=t+1|0}}m=m+1|0}while((m|0)<(c[n>>2]|0))}if((La(g,1)|0)==1){k=0;break a}else s=d}else v=28}else v=28;while(0);if((v|0)==28){if(!d){k=-133;break a}s=d}o=c[s>>2]|0;if(o|0){n=d+8|0;m=c[n>>2]|0;if((m|0)>0){r=o;p=m;m=0;while(1){t=c[r+(m<<2)>>2]|0;if(!t){w=p;x=r}else{ad(t);w=c[n>>2]|0;x=c[s>>2]|0}m=m+1|0;if((m|0)>=(w|0)){y=x;break}else{r=x;p=w}}}else y=o;ad(y)}p=c[d+4>>2]|0;if(p|0)ad(p);p=c[d+12>>2]|0;if(p|0)ad(p);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;k=-133;break a;break}case 5:{if(!(c[b+8>>2]|0)){k=-133;break a}if(!(c[d+12>>2]|0)){k=-133;break a}p=c[b+28>>2]|0;if(!p){k=-129;break a}r=La(g,8)|0;m=p+24|0;c[m>>2]=r+1;c:do if((r|0)>=0){n=0;do{t=Dc(g)|0;c[p+1824+(n<<2)>>2]=t;n=n+1|0;if(!t)break c}while((n|0)<(c[m>>2]|0));n=La(g,6)|0;if((n|0)>=0){t=0;while(1){if(La(g,16)|0)break c;if((t|0)<(n|0))t=t+1|0;else break}t=La(g,6)|0;n=p+16|0;c[n>>2]=t+1;if((t|0)>=0){t=0;do{u=La(g,16)|0;c[p+800+(t<<2)>>2]=u;if(u>>>0>1)break c;q=wa[c[(c[456+(u<<2)>>2]|0)+4>>2]&15](b,g)|0;c[p+1056+(t<<2)>>2]=q;t=t+1|0;if(!q)break c}while((t|0)<(c[n>>2]|0));n=La(g,6)|0;t=p+20|0;c[t>>2]=n+1;if((n|0)>=0){n=0;do{q=La(g,16)|0;c[p+1312+(n<<2)>>2]=q;if(q>>>0>2)break c;u=wa[c[(c[464+(q<<2)>>2]|0)+4>>2]&15](b,g)|0;c[p+1568+(n<<2)>>2]=u;n=n+1|0;if(!u)break c}while((n|0)<(c[t>>2]|0));t=La(g,6)|0;n=p+12|0;c[n>>2]=t+1;if((t|0)>=0){t=0;do{u=La(g,16)|0;c[p+288+(t<<2)>>2]=u;if(u|0)break c;u=wa[c[(c[8543]|0)+4>>2]&15](b,g)|0;c[p+544+(t<<2)>>2]=u;t=t+1|0;if(!u)break c}while((t|0)<(c[n>>2]|0));t=La(g,6)|0;u=p+8|0;c[u>>2]=t+1;if((t|0)>=0){t=0;do{q=p+32+(t<<2)|0;c[q>>2]=bd(1,16)|0;z=La(g,1)|0;c[c[q>>2]>>2]=z;z=La(g,16)|0;c[(c[q>>2]|0)+4>>2]=z;z=La(g,16)|0;c[(c[q>>2]|0)+8>>2]=z;z=La(g,8)|0;A=c[q>>2]|0;c[A+12>>2]=z;if((c[A+4>>2]|0)>0)break c;if((c[A+8>>2]|0)>0)break c;t=t+1|0;if((z|0)<0?1:(z|0)>=(c[n>>2]|0))break c}while((t|0)<(c[u>>2]|0));if((La(g,1)|0)==1){k=0;break a}}}}}}}while(0);Ac(b);k=-133;break a;break}default:{k=-133;break a}}else k=-132;while(0);i=k;l=f;return i|0}function Dc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;b=bd(1,40)|0;c[b+36>>2]=1;a:do if(((La(a,24)|0)==5653314?(c[b>>2]=La(a,16)|0,d=La(a,24)|0,e=b+4|0,c[e>>2]=d,(d|0)!=-1):0)?(d=db(c[b>>2]|0)|0,((db(c[e>>2]|0)|0)+d|0)<=24):0){b:do switch(La(a,1)|0){case 0:{d=(La(a,1)|0)!=0;if(((R(d?1:5,c[e>>2]|0)|0)+7>>3|0)>((c[a+16>>2]|0)-(Ma(a)|0)|0))break a;f=c[e>>2]|0;g=b+8|0;c[g>>2]=$c(f<<2)|0;h=(f|0)>0;if(!d){if(h)i=0;else break b;while(1){d=La(a,5)|0;if((d|0)==-1)break a;c[(c[g>>2]|0)+(i<<2)>>2]=d+1;i=i+1|0;if((i|0)>=(c[e>>2]|0))break b}}if(h){d=0;do{if(La(a,1)|0){f=La(a,5)|0;if((f|0)==-1)break a;else j=f+1|0}else j=0;c[(c[g>>2]|0)+(d<<2)>>2]=j;d=d+1|0}while((d|0)<(c[e>>2]|0))}break}case 1:{d=(La(a,5)|0)+1|0;if(!d)break a;g=c[e>>2]|0;h=b+8|0;c[h>>2]=$c(g<<2)|0;if((g|0)>0){f=g;g=0;k=d;while(1){d=La(a,db(f-g|0)|0)|0;if((k|0)>32|(d|0)==-1)break a;l=c[e>>2]|0;if((d|0)>(l-g|0))break a;if((d|0)>0){if((d+-1>>k+-1|0)>1)break a;m=c[h>>2]|0;n=g;o=0;while(1){c[m+(n<<2)>>2]=k;o=o+1|0;if((o|0)==(d|0))break;else n=n+1|0}p=c[e>>2]|0;q=d+g|0}else{p=l;q=g}if((p|0)>(q|0)){f=p;g=q;k=k+1|0}else break}}break}default:break a}while(0);k=La(a,4)|0;g=b+12|0;c[g>>2]=k;switch(k|0){case 2:case 1:break;case 0:{r=b;return r|0}default:break a}c[b+16>>2]=La(a,32)|0;c[b+20>>2]=La(a,32)|0;k=b+24|0;c[k>>2]=(La(a,4)|0)+1;f=La(a,1)|0;c[b+28>>2]=f;if((f|0)!=-1){switch(c[g>>2]|0){case 1:{if(!(c[b>>2]|0))s=0;else s=Ec(b)|0;break}case 2:{s=R(c[b>>2]|0,c[e>>2]|0)|0;break}default:s=0}g=(R(c[k>>2]|0,s)|0)+7>>3;f=c[a+16>>2]|0;if((g|0)<=(f-(Ma(a)|0)|0)){f=$c(s<<2)|0;g=b+32|0;c[g>>2]=f;if((s|0)>0){h=0;do{n=La(a,c[k>>2]|0)|0;o=c[g>>2]|0;c[o+(h<<2)>>2]=n;h=h+1|0}while((h|0)!=(s|0));t=o}else t=f;if(!s){r=b;return r|0}if((c[t+(s+-1<<2)>>2]|0)!=-1){r=b;return r|0}}}}while(0);gc(b);r=0;return r|0}function Ec(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=c[a+4>>2]|0;d=c[a>>2]|0;if((d|0)<=0)while(1){}a=~~+D(+(+G(+(+(b|0)),+(1.0/+(d|0)))));while(1){e=a+1|0;f=1;g=1;h=0;do{f=R(f,a)|0;g=R(g,e)|0;h=h+1|0}while((h|0)<(d|0));if((f|0)<=(b|0)&(g|0)>(b|0))break;else a=((f|0)>(b|0)?-1:1)+a|0}return a|0}function Fc(){zc(57876);xc(57908);return}function Gc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=l;l=l+32|0;e=d;Jc(e,a,b);if(!(c[14468]|0))c[e+8>>2]=1;if(Cc(57876,57908,e)|0){f=0;l=d;return f|0}e=(c[14468]|0)+1|0;c[14468]=e;if((e|0)<3){f=1;l=d;return f|0}qc(57648,57876)|0;$b(57648,57760)|0;ga(c[14470]|0,c[14471]|0);f=1;l=d;return f|0}function Hc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=l;l=l+48|0;e=d;f=d+32|0;Jc(e,a,b);if(vc(57760,e)|0){g=0;l=d;return g|0}rc(57648,57760)|0;e=tc(57648,f)|0;la(c[f>>2]|0,c[14470]|0,e|0);uc(57648,e)|0;g=1;l=d;return g|0}function Ic(){if(!(c[14468]|0))return;Ac(57876);hc(57648);bc(57760)|0;yc(57908);return}function Jc(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;d=a+8|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;return}function Kc(){return 57924}function Lc(){return (Mc()|0)+64|0}function Mc(){return Nc()|0}function Nc(){return 57392}function Oc(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=b;g=d;h=c;while(1){i=a[f>>0]|0;j=a[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Pc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=l;l=l+208|0;g=f+8|0;h=f;i=R(d,b)|0;b=h;c[b>>2]=1;c[b+4>>2]=0;a:do if(i|0){b=0-d|0;c[g+4>>2]=d;c[g>>2]=d;j=d;k=d;m=2;while(1){n=j+d+k|0;c[g+(m<<2)>>2]=n;if(n>>>0>>0){o=k;k=n;m=m+1|0;j=o}else break}j=a+i+b|0;if(j>>>0>a>>>0){m=j;k=1;o=a;n=1;while(1){do if((k&3|0)!=3){p=n+-1|0;if((c[g+(p<<2)>>2]|0)>>>0<(m-o|0)>>>0)Qc(o,d,e,n,g);else Sc(o,d,e,h,n,0,g);if((n|0)==1){Tc(h,1);q=0;break}else{Tc(h,p);q=1;break}}else{Qc(o,d,e,n,g);Rc(h,2);q=n+2|0}while(0);p=c[h>>2]|1;c[h>>2]=p;r=o+d|0;if(r>>>0>>0){k=p;o=r;n=q}else{s=p;t=r;u=q;break}}}else{s=1;t=a;u=1}Sc(t,d,e,h,u,0,g);n=h+4|0;o=s;k=t;j=u;while(1){if((j|0)==1&(o|0)==1){if(!(c[n>>2]|0))break a}else if((j|0)>=2){Tc(h,2);m=j+-2|0;c[h>>2]=c[h>>2]^7;Rc(h,1);Sc(k+(0-(c[g+(m<<2)>>2]|0))+b|0,d,e,h,j+-1|0,1,g);Tc(h,1);r=c[h>>2]|1;c[h>>2]=r;p=k+b|0;Sc(p,d,e,h,m,1,g);o=r;k=p;j=m;continue}m=Uc(h)|0;Rc(h,m);o=c[h>>2]|0;k=k+b|0;j=m+j|0}}while(0);l=f;return}function Qc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;g=l;l=l+240|0;h=g;c[h>>2]=a;a:do if((e|0)>1){i=0-b|0;j=a;k=a;m=1;n=e;while(1){o=k+i|0;p=n+-2|0;q=o+(0-(c[f+(p<<2)>>2]|0))|0;if((wa[d&15](j,q)|0)>-1?(wa[d&15](j,o)|0)>-1:0){r=m;break a}s=m+1|0;t=h+(m<<2)|0;if((wa[d&15](q,o)|0)>-1){c[t>>2]=q;u=q;v=n+-1|0}else{c[t>>2]=o;u=o;v=p}if((v|0)<=1){r=s;break a}j=c[h>>2]|0;k=u;m=s;n=v}}else r=1;while(0);Wc(b,h,r);l=g;return}function Rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+4|0;if(b>>>0>31){e=c[d>>2]|0;c[a>>2]=e;c[d>>2]=0;f=e;g=0;h=b+-32|0}else{f=c[a>>2]|0;g=c[d>>2]|0;h=b}c[a>>2]=g<<32-h|f>>>h;c[d>>2]=g>>>h;return}function Sc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;i=l;l=l+240|0;j=i+232|0;k=i;m=c[e>>2]|0;c[j>>2]=m;n=c[e+4>>2]|0;e=j+4|0;c[e>>2]=n;c[k>>2]=a;a:do if((m|0)!=1|(n|0)!=0?(o=0-b|0,p=a+(0-(c[h+(f<<2)>>2]|0))|0,(wa[d&15](p,a)|0)>=1):0){q=p;p=a;r=1;s=f;t=(g|0)==0;while(1){if(t&(s|0)>1){u=p+o|0;v=c[h+(s+-2<<2)>>2]|0;if((wa[d&15](u,q)|0)>-1){w=p;x=r;y=s;z=10;break a}if((wa[d&15](u+(0-v)|0,q)|0)>-1){w=p;x=r;y=s;z=10;break a}}v=r+1|0;c[k+(r<<2)>>2]=q;u=Uc(j)|0;Rc(j,u);A=u+s|0;if(!((c[j>>2]|0)!=1|(c[e>>2]|0)!=0)){w=q;x=v;y=A;z=10;break a}u=q+(0-(c[h+(A<<2)>>2]|0))|0;if((wa[d&15](u,c[k>>2]|0)|0)<1){B=q;C=v;D=A;E=0;z=9;break}else{F=q;q=u;r=v;s=A;t=1;p=F}}}else{B=a;C=1;D=f;E=g;z=9}while(0);if((z|0)==9?(E|0)==0:0){w=B;x=C;y=D;z=10}if((z|0)==10){Wc(b,k,x);Qc(w,b,d,y,h)}l=i;return}function Tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[d>>2]=e;c[a>>2]=0;f=e;g=0;h=b+-32|0}else{f=c[d>>2]|0;g=c[a>>2]|0;h=b}c[d>>2]=g>>>(32-h|0)|f<>2]=g<>2]|0)+-1|0)|0;if(!b){d=Vc(c[a+4>>2]|0)|0;return ((d|0)==0?0:d+32|0)|0}else return b|0;return 0}function Vc(a){a=a|0;var b=0,c=0,d=0;if(a)if(!(a&1)){b=0;c=a;while(1){a=b+1|0;c=c>>>1;if(c&1|0){d=a;break}else b=a}}else d=0;else d=32;return d|0}function Wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;e=l;l=l+256|0;f=e;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=f,a|0):0){h=f;i=a;while(1){j=i>>>0<256?i:256;md(h|0,c[b>>2]|0,j|0)|0;k=0;do{m=b+(k<<2)|0;k=k+1|0;md(c[m>>2]|0,c[b+(k<<2)>>2]|0,j|0)|0;c[m>>2]=(c[m>>2]|0)+j}while((k|0)!=(d|0));k=i-j|0;if(!k)break a;h=c[g>>2]|0;i=k}}while(0);l=e;return}function Xc(a,b){a=+a;b=b|0;var d=0.0,e=0,f=0,g=0,i=0,k=0.0;if((b|0)<=1023)if((b|0)<-1022){d=a*2.2250738585072014e-308;e=b+1022|0;f=(e|0)<-1022;g=b+2044|0;i=f?((g|0)>-1022?g:-1022):e;k=f?d*2.2250738585072014e-308:d}else{i=b;k=a}else{d=a*8988465674311579538646525.0e283;f=b+-1023|0;e=(f|0)>1023;g=b+-2046|0;i=e?((g|0)<1023?g:1023):f;k=e?d*8988465674311579538646525.0e283:d}e=jd(i+1023|0,0,52)|0;i=C;c[j>>2]=e;c[j+4>>2]=i;return +(k*+h[j>>3])}function Yc(a,b){a=+a;b=b|0;return +(+Xc(a,b))}function Zc(a){a=+a;var b=0,d=0,e=0.0,f=0.0;h[j>>3]=a;b=c[j+4>>2]|0;d=b&2146435072;if(!(d>>>0>1126170624|(d|0)==1126170624&0>0)){d=(b|0)<0;e=(d?4503599627370496.0:-4503599627370496.0)+((d?-4503599627370496.0:4503599627370496.0)+a);if(e==0.0)f=d?-0.0:0.0;else f=e}else f=a;return +f}function _c(a){a=+a;var b=0,d=0,e=0.0,f=0.0;b=(g[j>>2]=a,c[j>>2]|0);if((b&2130706432)>>>0<=1249902592){d=(b|0)<0;e=(d?8388608.0:-8388608.0)+((d?-8388608.0:8388608.0)+a);if(e==0.0)f=d?-0.0:0.0;else f=e}else f=a;return +f}function $c(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0;b=l;l=l+16|0;d=b;do if(a>>>0<245){e=a>>>0<11?16:a+11&-8;f=e>>>3;g=c[14497]|0;h=g>>>f;if(h&3|0){i=(h&1^1)+f|0;j=58028+(i<<1<<2)|0;k=j+8|0;m=c[k>>2]|0;n=m+8|0;o=c[n>>2]|0;do if((j|0)!=(o|0)){if(o>>>0<(c[14501]|0)>>>0)ja();p=o+12|0;if((c[p>>2]|0)==(m|0)){c[p>>2]=j;c[k>>2]=o;break}else ja()}else c[14497]=g&~(1<>2]=o|3;k=m+o+4|0;c[k>>2]=c[k>>2]|1;q=n;l=b;return q|0}k=c[14499]|0;if(e>>>0>k>>>0){if(h|0){o=2<>>12&16;p=o>>>j;o=p>>>5&8;r=p>>>o;p=r>>>2&4;s=r>>>p;r=s>>>1&2;t=s>>>r;s=t>>>1&1;u=(o|j|p|r|s)+(t>>>s)|0;s=58028+(u<<1<<2)|0;t=s+8|0;r=c[t>>2]|0;p=r+8|0;j=c[p>>2]|0;do if((s|0)!=(j|0)){if(j>>>0<(c[14501]|0)>>>0)ja();o=j+12|0;if((c[o>>2]|0)==(r|0)){c[o>>2]=s;c[t>>2]=j;v=g;break}else ja()}else{o=g&~(1<>2]=e|3;t=r+e|0;c[t+4>>2]=j|1;c[t+j>>2]=j;if(k|0){s=c[14502]|0;f=k>>>3;h=58028+(f<<1<<2)|0;n=1<>2]|0;if(m>>>0<(c[14501]|0)>>>0)ja();else{w=f;x=m}}else{c[14497]=v|n;w=h+8|0;x=h}c[w>>2]=s;c[x+12>>2]=s;c[s+8>>2]=x;c[s+12>>2]=h}c[14499]=j;c[14502]=t;q=p;l=b;return q|0}t=c[14498]|0;if(t){j=(t&0-t)+-1|0;h=j>>>12&16;s=j>>>h;j=s>>>5&8;n=s>>>j;s=n>>>2&4;m=n>>>s;n=m>>>1&2;f=m>>>n;m=f>>>1&1;i=c[58292+((j|h|s|n|m)+(f>>>m)<<2)>>2]|0;m=(c[i+4>>2]&-8)-e|0;f=c[i+16+(((c[i+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){y=m;z=i}else{n=f;f=m;m=i;while(1){i=(c[n+4>>2]&-8)-e|0;s=i>>>0>>0;h=s?i:f;i=s?n:m;n=c[n+16+(((c[n+16>>2]|0)==0&1)<<2)>>2]|0;if(!n){y=h;z=i;break}else{f=h;m=i}}}m=c[14501]|0;if(z>>>0>>0)ja();f=z+e|0;if(z>>>0>=f>>>0)ja();n=c[z+24>>2]|0;p=c[z+12>>2]|0;do if((p|0)==(z|0)){r=z+20|0;u=c[r>>2]|0;if(!u){i=z+16|0;h=c[i>>2]|0;if(!h){A=0;break}else{B=h;C=i}}else{B=u;C=r}while(1){r=B+20|0;u=c[r>>2]|0;if(u|0){B=u;C=r;continue}r=B+16|0;u=c[r>>2]|0;if(!u)break;else{B=u;C=r}}if(C>>>0>>0)ja();else{c[C>>2]=0;A=B;break}}else{r=c[z+8>>2]|0;if(r>>>0>>0)ja();u=r+12|0;if((c[u>>2]|0)!=(z|0))ja();i=p+8|0;if((c[i>>2]|0)==(z|0)){c[u>>2]=p;c[i>>2]=r;A=p;break}else ja()}while(0);a:do if(n|0){p=c[z+28>>2]|0;m=58292+(p<<2)|0;do if((z|0)==(c[m>>2]|0)){c[m>>2]=A;if(!A){c[14498]=t&~(1<>>0>=(c[14501]|0)>>>0){c[n+16+(((c[n+16>>2]|0)!=(z|0)&1)<<2)>>2]=A;if(!A)break a;else break}else ja();while(0);p=c[14501]|0;if(A>>>0
>>0)ja();c[A+24>>2]=n;m=c[z+16>>2]|0;do if(m|0)if(m>>>0
>>0)ja();else{c[A+16>>2]=m;c[m+24>>2]=A;break}while(0);m=c[z+20>>2]|0;if(m|0)if(m>>>0<(c[14501]|0)>>>0)ja();else{c[A+20>>2]=m;c[m+24>>2]=A;break}}while(0);if(y>>>0<16){n=y+e|0;c[z+4>>2]=n|3;t=z+n+4|0;c[t>>2]=c[t>>2]|1}else{c[z+4>>2]=e|3;c[f+4>>2]=y|1;c[f+y>>2]=y;if(k|0){t=c[14502]|0;n=k>>>3;m=58028+(n<<1<<2)|0;p=1<>2]|0;if(r>>>0<(c[14501]|0)>>>0)ja();else{D=n;E=r}}else{c[14497]=g|p;D=m+8|0;E=m}c[D>>2]=t;c[E+12>>2]=t;c[t+8>>2]=E;c[t+12>>2]=m}c[14499]=y;c[14502]=f}q=z+8|0;l=b;return q|0}else F=e}else F=e}else if(a>>>0<=4294967231){m=a+11|0;t=m&-8;p=c[14498]|0;if(p){r=0-t|0;n=m>>>8;if(n)if(t>>>0>16777215)G=31;else{m=(n+1048320|0)>>>16&8;i=n<>>16&4;u=i<>>16&2;h=14-(n|m|i)+(u<>>15)|0;G=t>>>(h+7|0)&1|h<<1}else G=0;h=c[58292+(G<<2)>>2]|0;b:do if(!h){H=r;I=0;J=0;K=81}else{i=r;u=0;m=t<<((G|0)==31?0:25-(G>>>1)|0);n=h;s=0;while(1){j=(c[n+4>>2]&-8)-t|0;if(j>>>0>>0)if(!j){L=0;M=n;N=n;K=85;break b}else{O=j;P=n}else{O=i;P=s}j=c[n+20>>2]|0;n=c[n+16+(m>>>31<<2)>>2]|0;o=(j|0)==0|(j|0)==(n|0)?u:j;j=(n|0)==0;if(j){H=O;I=o;J=P;K=81;break}else{i=O;u=o;m=m<<((j^1)&1);s=P}}}while(0);if((K|0)==81){if((I|0)==0&(J|0)==0){h=2<>>12&16;e=h>>>r;h=e>>>5&8;f=e>>>h;e=f>>>2&4;g=f>>>e;f=g>>>1&2;k=g>>>f;g=k>>>1&1;Q=c[58292+((h|r|e|f|g)+(k>>>g)<<2)>>2]|0;R=0}else{Q=I;R=J}if(!Q){S=H;T=R}else{L=H;M=Q;N=R;K=85}}if((K|0)==85)while(1){K=0;g=(c[M+4>>2]&-8)-t|0;k=g>>>0>>0;f=k?g:L;g=k?M:N;M=c[M+16+(((c[M+16>>2]|0)==0&1)<<2)>>2]|0;if(!M){S=f;T=g;break}else{L=f;N=g;K=85}}if((T|0)!=0?S>>>0<((c[14499]|0)-t|0)>>>0:0){g=c[14501]|0;if(T>>>0>>0)ja();f=T+t|0;if(T>>>0>=f>>>0)ja();k=c[T+24>>2]|0;e=c[T+12>>2]|0;do if((e|0)==(T|0)){r=T+20|0;h=c[r>>2]|0;if(!h){s=T+16|0;m=c[s>>2]|0;if(!m){U=0;break}else{V=m;W=s}}else{V=h;W=r}while(1){r=V+20|0;h=c[r>>2]|0;if(h|0){V=h;W=r;continue}r=V+16|0;h=c[r>>2]|0;if(!h)break;else{V=h;W=r}}if(W>>>0>>0)ja();else{c[W>>2]=0;U=V;break}}else{r=c[T+8>>2]|0;if(r>>>0>>0)ja();h=r+12|0;if((c[h>>2]|0)!=(T|0))ja();s=e+8|0;if((c[s>>2]|0)==(T|0)){c[h>>2]=e;c[s>>2]=r;U=e;break}else ja()}while(0);c:do if(k){e=c[T+28>>2]|0;g=58292+(e<<2)|0;do if((T|0)==(c[g>>2]|0)){c[g>>2]=U;if(!U){r=p&~(1<>>0>=(c[14501]|0)>>>0){c[k+16+(((c[k+16>>2]|0)!=(T|0)&1)<<2)>>2]=U;if(!U){X=p;break c}else break}else ja();while(0);e=c[14501]|0;if(U>>>0>>0)ja();c[U+24>>2]=k;g=c[T+16>>2]|0;do if(g|0)if(g>>>0