@loongbao-web-gis-utils/draw-utils-grid-core 0.1.0
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/LICENSE +21 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +162 -0
- package/dist/index.js +5989 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 loongbao
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var K1=Object.defineProperty;var V1=(L,v,y)=>v in L?K1(L,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):L[v]=y;var f0=(L,v,y)=>V1(L,typeof v!="symbol"?v+"":v,y);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var o0=(L=>(L.H3="h3",L.GEOHASH="geohash",L))(o0||{}),FA=(L=>(L.CENTER="CENTER",L.NORTH="NORTH",L.SOUTH="SOUTH",L.EAST="EAST",L.WEST="WEST",L.NORTHEAST="NORTHEAST",L.NORTHWEST="NORTHWEST",L.SOUTHEAST="SOUTHEAST",L.SOUTHWEST="SOUTHWEST",L))(FA||{}),PA=(function(L){L=L||{};var v=typeof L<"u"?L:{},y={},F;for(F in v)v.hasOwnProperty(F)&&(y[F]=v[F]);var H="";function N(T){return v.locateFile?v.locateFile(T,H):H+T}var sA;typeof document<"u"&&document.currentScript&&(H=document.currentScript.src),H.indexOf("blob:")!==0?H=H.substr(0,H.lastIndexOf("/")+1):H="",sA=function(I,d,p){var r=new XMLHttpRequest;r.open("GET",I,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status==200||r.status==0&&r.response){d(r.response);return}var vA=a2(I);if(vA){d(vA.buffer);return}p()},r.onerror=p,r.send(null)};var AA=v.print||console.log.bind(console),CA=v.printErr||console.warn.bind(console);for(F in y)y.hasOwnProperty(F)&&(v[F]=y[F]);y=null,v.arguments&&v.arguments;var UA=0,yA=function(T){UA=T},KA=function(){return UA},XA=8;function VA(T,I,d,p){switch(d=d||"i8",d.charAt(d.length-1)==="*"&&(d="i32"),d){case"i1":rA[T>>0]=I;break;case"i8":rA[T>>0]=I;break;case"i16":wA[T>>1]=I;break;case"i32":kA[T>>2]=I;break;case"i64":M2=[I>>>0,(G0=I,+pr(G0)>=1?G0>0?(Rr(+Gr(G0/4294967296),4294967295)|0)>>>0:~~+Fr((G0-+(~~G0>>>0))/4294967296)>>>0:0)],kA[T>>2]=M2[0],kA[T+4>>2]=M2[1];break;case"float":QA[T>>2]=I;break;case"double":BA[T>>3]=I;break;default:R0("invalid type for setValue: "+d)}}function p0(T,I,d){switch(I=I||"i8",I.charAt(I.length-1)==="*"&&(I="i32"),I){case"i1":return rA[T>>0];case"i8":return rA[T>>0];case"i16":return wA[T>>1];case"i32":return kA[T>>2];case"i64":return kA[T>>2];case"float":return QA[T>>2];case"double":return BA[T>>3];default:R0("invalid type for getValue: "+I)}return null}var k0=!1;function A2(T,I){T||R0("Assertion failed: "+I)}function W0(T){var I=v["_"+T];return A2(I,"Cannot call unknown function "+T+", make sure it is exported"),I}function Q2(T,I,d,p,r){var g={string:function(hA){var cA=0;if(hA!=null&&hA!==0){var i2=(hA.length<<2)+1;cA=he(i2),m2(hA,cA,i2)}return cA},array:function(hA){var cA=he(hA.length);return fA(hA,cA),cA}};function vA(hA){return I==="string"?s0(hA):I==="boolean"?!!hA:hA}var _A=W0(T),RA=[],uA=0;if(p)for(var EA=0;EA<p.length;EA++){var v0=g[d[EA]];v0?(uA===0&&(uA=Xr()),RA[EA]=v0(p[EA])):RA[EA]=p[EA]}var bA=_A.apply(null,RA);return bA=vA(bA),uA!==0&&Jr(uA),bA}function b2(T,I,d,p){d=d||[];var r=d.every(function(vA){return vA==="number"}),g=I!=="string";return g&&r&&!p?W0(T):function(){return Q2(T,I,d,arguments)}}var e2=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function C2(T,I,d){for(var p=I+d,r=I;T[r]&&!(r>=p);)++r;if(r-I>16&&T.subarray&&e2)return e2.decode(T.subarray(I,r));for(var g="";I<r;){var vA=T[I++];if(!(vA&128)){g+=String.fromCharCode(vA);continue}var _A=T[I++]&63;if((vA&224)==192){g+=String.fromCharCode((vA&31)<<6|_A);continue}var RA=T[I++]&63;if((vA&240)==224?vA=(vA&15)<<12|_A<<6|RA:vA=(vA&7)<<18|_A<<12|RA<<6|T[I++]&63,vA<65536)g+=String.fromCharCode(vA);else{var uA=vA-65536;g+=String.fromCharCode(55296|uA>>10,56320|uA&1023)}}return g}function s0(T,I){return T?C2(J,T,I):""}function F0(T,I,d,p){if(!(p>0))return 0;for(var r=d,g=d+p-1,vA=0;vA<T.length;++vA){var _A=T.charCodeAt(vA);if(_A>=55296&&_A<=57343){var RA=T.charCodeAt(++vA);_A=65536+((_A&1023)<<10)|RA&1023}if(_A<=127){if(d>=g)break;I[d++]=_A}else if(_A<=2047){if(d+1>=g)break;I[d++]=192|_A>>6,I[d++]=128|_A&63}else if(_A<=65535){if(d+2>=g)break;I[d++]=224|_A>>12,I[d++]=128|_A>>6&63,I[d++]=128|_A&63}else{if(d+3>=g)break;I[d++]=240|_A>>18,I[d++]=128|_A>>12&63,I[d++]=128|_A>>6&63,I[d++]=128|_A&63}}return I[d]=0,d-r}function m2(T,I,d){return F0(T,J,I,d)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function fA(T,I){rA.set(T,I)}function lA(T,I){return T%I>0&&(T+=I-T%I),T}var j,rA,J,wA,kA,QA,BA;function DA(T){j=T,v.HEAP8=rA=new Int8Array(T),v.HEAP16=wA=new Int16Array(T),v.HEAP32=kA=new Int32Array(T),v.HEAPU8=J=new Uint8Array(T),v.HEAPU16=new Uint16Array(T),v.HEAPU32=new Uint32Array(T),v.HEAPF32=QA=new Float32Array(T),v.HEAPF64=BA=new Float64Array(T)}var mA=5271536,GA=28624,xA=v.TOTAL_MEMORY||33554432;v.buffer?j=v.buffer:j=new ArrayBuffer(xA),xA=j.byteLength,DA(j),kA[GA>>2]=mA;function r0(T){for(;T.length>0;){var I=T.shift();if(typeof I=="function"){I();continue}var d=I.func;typeof d=="number"?I.arg===void 0?v.dynCall_v(d):v.dynCall_vi(d,I.arg):d(I.arg===void 0?null:I.arg)}}var NA=[],i0=[],u0=[],oe=[];function ar(){if(v.preRun)for(typeof v.preRun=="function"&&(v.preRun=[v.preRun]);v.preRun.length;)Ir(v.preRun.shift());r0(NA)}function Tr(){r0(i0)}function Lr(){r0(u0)}function Pr(){if(v.postRun)for(typeof v.postRun=="function"&&(v.postRun=[v.postRun]);v.postRun.length;)yr(v.postRun.shift());r0(oe)}function Ir(T){NA.unshift(T)}function yr(T){oe.unshift(T)}var pr=Math.abs,Fr=Math.ceil,Gr=Math.floor,Rr=Math.min,_0=0,K0=null;function Or(T){_0++,v.monitorRunDependencies&&v.monitorRunDependencies(_0)}function Sr(T){if(_0--,v.monitorRunDependencies&&v.monitorRunDependencies(_0),_0==0&&K0){var I=K0;K0=null,I()}}v.preloadedImages={},v.preloadedAudios={};var h0=null,_2="data:application/octet-stream;base64,";function se(T){return String.prototype.startsWith?T.startsWith(_2):T.indexOf(_2)===0}var G0,M2;h0="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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Zhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAA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ZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAdmVydGV4Um90YXRpb25zAGNlbGxUb1ZlcnRleABncmFwaC0+YnVja2V0cyAhPSBOVUxMAHZlcnRleEdyYXBoLmMAaW5pdFZlcnRleEdyYXBoAG5vZGUgIT0gTlVMTABhZGRWZXJ0ZXhOb2Rl";var Hr=28640;function dr(T,I,d,p){R0("Assertion failed: "+s0(T)+", at: "+[I?s0(I):"unknown filename",d,p?s0(p):"unknown function"])}function ue(){return rA.length}function zr(T,I,d){J.set(J.subarray(I,I+d),T)}function Ur(T){return v.___errno_location&&(kA[v.___errno_location()>>2]=T),T}function Nr(T){R0("OOM")}function xr(T){try{var I=new ArrayBuffer(T);return I.byteLength!=T?void 0:(new Int8Array(I).set(rA),Zr(I),DA(I),1)}catch{}}function Yr(T){var I=ue(),d=16777216,p=2147483648-d;if(T>p)return!1;for(var r=16777216,g=Math.max(I,r);g<T;)g<=536870912?g=lA(2*g,d):g=Math.min(lA((3*g+2147483648)/4,d),p);var vA=xr(g);return!!vA}var jr=typeof atob=="function"?atob:function(T){var I="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="",p,r,g,vA,_A,RA,uA,EA=0;T=T.replace(/[^A-Za-z0-9\+\/\=]/g,"");do vA=I.indexOf(T.charAt(EA++)),_A=I.indexOf(T.charAt(EA++)),RA=I.indexOf(T.charAt(EA++)),uA=I.indexOf(T.charAt(EA++)),p=vA<<2|_A>>4,r=(_A&15)<<4|RA>>2,g=(RA&3)<<6|uA,d=d+String.fromCharCode(p),RA!==64&&(d=d+String.fromCharCode(r)),uA!==64&&(d=d+String.fromCharCode(g));while(EA<T.length);return d};function Wr(T){try{for(var I=jr(T),d=new Uint8Array(I.length),p=0;p<I.length;++p)d[p]=I.charCodeAt(p);return d}catch{throw new Error("Converting base64 string to bytes failed.")}}function a2(T){if(se(T))return Wr(T.slice(_2.length))}var Kr={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},Vr={b:yA,c:KA,d:dr,e:Ur,f:ue,g:zr,h:Yr,i:Nr,o:Hr,p:GA},G=(function(T,I,d){"almost asm";var p=new T.Int8Array(d),r=new T.Int32Array(d);new T.Uint8Array(d),new T.Float32Array(d);var g=new T.Float64Array(d),vA=I.o|0,_A=I.p|0,RA=T.Math.floor,uA=T.Math.abs,EA=T.Math.sqrt,v0=T.Math.pow,bA=T.Math.cos,hA=T.Math.sin,cA=T.Math.tan,i2=T.Math.acos,qr=T.Math.asin,P2=T.Math.atan,$A=T.Math.atan2,O0=T.Math.ceil,n0=T.Math.imul,I2=T.Math.min,cr=T.Math.max,g0=T.Math.clz32,iA=I.b,k=I.c,q=I.d,ke=I.e,$r=I.f,Ai=I.g,ei=I.h,ri=I.i,w=28656;function ii(e){return p=new Int8Array(e),r=new Int32Array(e),g=new Float64Array(e),d=e,!0}function ni(e){e=e|0;var A=0;return A=w,w=w+e|0,w=w+15&-16,A|0}function ti(){return w|0}function li(e){e=e|0,w=e}function fi(e,A){e=e|0,w=e}function oi(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;return(e|0)<0?(A=2,A|0):(e|0)>13780509?(A=o2(15,A)|0,A|0):(i=((e|0)<0)<<31>>31,t=HA(e|0,i|0,3,0)|0,n=k()|0,i=W(e|0,i|0,1,0)|0,i=HA(t|0,n|0,i|0,k()|0)|0,i=W(i|0,k()|0,1,0)|0,e=k()|0,r[A>>2]=i,r[A+4>>2]=e,A=0,A|0)}function ve(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,Ee(e,A,i,n,0)|0}function Ee(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0;if(s=w,w=w+16|0,f=s,!(De(e,A,i,n,t)|0))return n=0,w=s,n|0;do if((i|0)>=0){if((i|0)>13780509){if(l=o2(15,f)|0,l|0)break;o=f,f=r[o>>2]|0,o=r[o+4>>2]|0}else l=((i|0)<0)<<31>>31,u=HA(i|0,l|0,3,0)|0,o=k()|0,l=W(i|0,l|0,1,0)|0,l=HA(u|0,o|0,l|0,k()|0)|0,l=W(l|0,k()|0,1,0)|0,o=k()|0,r[f>>2]=l,r[f+4>>2]=o,f=l;if(C0(n|0,0,f<<3|0)|0,t|0){C0(t|0,0,f<<2|0)|0,l=t0(e,A,i,n,t,f,o,0)|0;break}l=JA(f,4)|0,l?(u=t0(e,A,i,n,l,f,o,0)|0,K(l),l=u):l=13}else l=2;while(!1);return u=l,w=s,u|0}function De(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0;if(b=w,w=w+16|0,D=b,Q=b+8|0,E=D,r[E>>2]=e,r[E+4>>2]=A,(i|0)<0)return Q=2,w=b,Q|0;if(l=n,r[l>>2]=e,r[l+4>>2]=A,l=(t|0)!=0,l&&(r[t>>2]=0),TA(e,A)|0)return Q=9,w=b,Q|0;r[Q>>2]=0;A:do if((i|0)>=1)if(l)for(h=1,u=0,B=0,E=1,l=e;;){if(!(u|B)){if(l=OA(l,A,4,Q,D)|0,l|0)break A;if(A=D,l=r[A>>2]|0,A=r[A+4>>2]|0,TA(l,A)|0){l=9;break A}}if(l=OA(l,A,r[26800+(B<<2)>>2]|0,Q,D)|0,l|0)break A;if(A=D,l=r[A>>2]|0,A=r[A+4>>2]|0,e=n+(h<<3)|0,r[e>>2]=l,r[e+4>>2]=A,r[t+(h<<2)>>2]=E,e=u+1|0,f=(e|0)==(E|0),o=B+1|0,s=(o|0)==6,TA(l,A)|0){l=9;break A}if(E=E+(s&f&1)|0,(E|0)>(i|0)){l=0;break}else h=h+1|0,u=f?0:e,B=f?s?0:o:B}else for(h=1,u=0,B=0,E=1,l=e;;){if(!(u|B)){if(l=OA(l,A,4,Q,D)|0,l|0)break A;if(A=D,l=r[A>>2]|0,A=r[A+4>>2]|0,TA(l,A)|0){l=9;break A}}if(l=OA(l,A,r[26800+(B<<2)>>2]|0,Q,D)|0,l|0)break A;if(A=D,l=r[A>>2]|0,A=r[A+4>>2]|0,e=n+(h<<3)|0,r[e>>2]=l,r[e+4>>2]=A,e=u+1|0,f=(e|0)==(E|0),o=B+1|0,s=(o|0)==6,TA(l,A)|0){l=9;break A}if(E=E+(s&f&1)|0,(E|0)>(i|0)){l=0;break}else h=h+1|0,u=f?0:e,B=f?s?0:o:B}else l=0;while(!1);return Q=l,w=b,Q|0}function t0(e,A,i,n,t,l,f,o){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0,f=f|0,o=o|0;var s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0;if(b=w,w=w+16|0,D=b+8|0,Q=b,s=N0(e|0,A|0,l|0,f|0)|0,h=k()|0,B=n+(s<<3)|0,m=B,a=r[m>>2]|0,m=r[m+4>>2]|0,u=(a|0)==(e|0)&(m|0)==(A|0),!((a|0)==0&(m|0)==0|u))do s=W(s|0,h|0,1,0)|0,s=U0(s|0,k()|0,l|0,f|0)|0,h=k()|0,B=n+(s<<3)|0,a=B,m=r[a>>2]|0,a=r[a+4>>2]|0,u=(m|0)==(e|0)&(a|0)==(A|0);while(!((m|0)==0&(a|0)==0|u));if(s=t+(s<<2)|0,u&&(r[s>>2]|0)<=(o|0)||(a=B,r[a>>2]=e,r[a+4>>2]=A,r[s>>2]=o,(o|0)>=(i|0)))return a=0,w=b,a|0;switch(u=o+1|0,r[D>>2]=0,s=OA(e,A,2,D,Q)|0,s|0){case 9:{E=9;break}case 0:{s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s||(E=9);break}}A:do if((E|0)==9){switch(r[D>>2]=0,s=OA(e,A,3,D,Q)|0,s|0){case 9:break;case 0:{if(s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s|0)break A;break}default:break A}switch(r[D>>2]=0,s=OA(e,A,1,D,Q)|0,s|0){case 9:break;case 0:{if(s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s|0)break A;break}default:break A}switch(r[D>>2]=0,s=OA(e,A,5,D,Q)|0,s|0){case 9:break;case 0:{if(s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s|0)break A;break}default:break A}switch(r[D>>2]=0,s=OA(e,A,4,D,Q)|0,s|0){case 9:break;case 0:{if(s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s|0)break A;break}default:break A}switch(r[D>>2]=0,s=OA(e,A,6,D,Q)|0,s|0){case 9:break;case 0:{if(s=Q,s=t0(r[s>>2]|0,r[s+4>>2]|0,i,n,t,l,f,u)|0,s|0)break A;break}default:break A}return a=0,w=b,a|0}while(!1);return a=s,w=b,a|0}function OA(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0;if(i>>>0>6)return t=1,t|0;if(B=(r[n>>2]|0)%6|0,r[n>>2]=B,(B|0)>0){l=0;do i=T0(i)|0,l=l+1|0;while((l|0)<(r[n>>2]|0))}if(B=P(e|0,A|0,45)|0,k()|0,h=B&127,h>>>0>121)return t=5,t|0;s=ZA(e,A)|0,l=P(e|0,A|0,52)|0,k()|0,l=l&15;A:do if(!l)u=8;else{for(;;){if(f=(15-l|0)*3|0,o=P(e|0,A|0,f|0)|0,k()|0,o=o&7,(o|0)==7){A=5;break}if(Q=(A0(l)|0)==0,l=l+-1|0,E=R(7,0,f|0)|0,A=A&~(k()|0),D=R(r[(Q?432:16)+(o*28|0)+(i<<2)>>2]|0,0,f|0)|0,f=k()|0,i=r[(Q?640:224)+(o*28|0)+(i<<2)>>2]|0,e=D|e&~E,A=f|A,!i){i=0;break A}if(!l){u=8;break A}}return A|0}while(!1);(u|0)==8&&(Q=r[848+(h*28|0)+(i<<2)>>2]|0,D=R(Q|0,0,45)|0,e=D|e,A=k()|0|A&-1040385,i=r[4272+(h*28|0)+(i<<2)>>2]|0,(Q&127|0)==127&&(Q=R(r[848+(h*28|0)+20>>2]|0,0,45)|0,A=k()|0|A&-1040385,i=r[4272+(h*28|0)+20>>2]|0,e=L0(Q|e,A)|0,A=k()|0,r[n>>2]=(r[n>>2]|0)+1)),o=P(e|0,A|0,45)|0,k()|0,o=o&127;A:do if(LA(o)|0){e:do if((ZA(e,A)|0)==1){if((h|0)!=(o|0))if(me(o,r[7696+(h*28|0)>>2]|0)|0){e=j2(e,A)|0,f=1,A=k()|0;break}else q(27795,26864,533,26872);switch(s|0){case 3:{e=L0(e,A)|0,A=k()|0,r[n>>2]=(r[n>>2]|0)+1,f=0;break e}case 5:{e=j2(e,A)|0,A=k()|0,r[n>>2]=(r[n>>2]|0)+5,f=0;break e}case 0:return Q=9,Q|0;default:return Q=1,Q|0}}else f=0;while(!1);if((i|0)>0){l=0;do e=Y2(e,A)|0,A=k()|0,l=l+1|0;while((l|0)!=(i|0))}if((h|0)!=(o|0)){if(!(p2(o)|0)){if((f|0)!=0|(ZA(e,A)|0)!=5)break;r[n>>2]=(r[n>>2]|0)+1;break}switch(B&127){case 8:case 118:break A}(ZA(e,A)|0)!=3&&(r[n>>2]=(r[n>>2]|0)+1)}}else if((i|0)>0){l=0;do e=L0(e,A)|0,A=k()|0,l=l+1|0;while((l|0)!=(i|0))}while(!1);return r[n>>2]=((r[n>>2]|0)+i|0)%6|0,Q=t,r[Q>>2]=e,r[Q+4>>2]=A,Q=0,Q|0}function si(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,Qe(e,A,i,n)|0?(C0(n|0,0,i*48|0)|0,n=ui(e,A,i,n)|0,n|0):(n=0,n|0)}function Qe(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0;if(Q=w,w=w+16|0,E=Q,D=Q+8|0,B=E,r[B>>2]=e,r[B+4>>2]=A,(i|0)<0)return D=2,w=Q,D|0;if(!i)return D=n,r[D>>2]=e,r[D+4>>2]=A,D=0,w=Q,D|0;r[D>>2]=0;A:do if(TA(e,A)|0)e=9;else{t=0,B=e;do{if(e=OA(B,A,4,D,E)|0,e|0)break A;if(A=E,B=r[A>>2]|0,A=r[A+4>>2]|0,t=t+1|0,TA(B,A)|0){e=9;break A}}while((t|0)<(i|0));h=n,r[h>>2]=B,r[h+4>>2]=A,h=i+-1|0,u=0,e=1;do{if(t=26800+(u<<2)|0,(u|0)==5)for(f=r[t>>2]|0,l=0,t=e;;){if(e=E,e=OA(r[e>>2]|0,r[e+4>>2]|0,f,D,E)|0,e|0)break A;if((l|0)!=(h|0))if(s=E,o=r[s>>2]|0,s=r[s+4>>2]|0,e=n+(t<<3)|0,r[e>>2]=o,r[e+4>>2]=s,!(TA(o,s)|0))e=t+1|0;else{e=9;break A}else e=t;if(l=l+1|0,(l|0)>=(i|0))break;t=e}else for(f=E,s=r[t>>2]|0,o=0,t=e,l=r[f>>2]|0,f=r[f+4>>2]|0;;){if(e=OA(l,f,s,D,E)|0,e|0)break A;if(f=E,l=r[f>>2]|0,f=r[f+4>>2]|0,e=n+(t<<3)|0,r[e>>2]=l,r[e+4>>2]=f,e=t+1|0,TA(l,f)|0){e=9;break A}if(o=o+1|0,(o|0)>=(i|0))break;t=e}u=u+1|0}while(u>>>0<6);e=E,e=(B|0)==(r[e>>2]|0)&&(A|0)==(r[e+4>>2]|0)?0:9}while(!1);return D=e,w=Q,D|0}function ui(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;if(B=w,w=w+16|0,f=B,!i)return r[n>>2]=e,r[n+4>>2]=A,n=0,w=B,n|0;do if((i|0)>=0){if((i|0)>13780509){if(t=o2(15,f)|0,t|0)break;l=f,t=r[l>>2]|0,l=r[l+4>>2]|0}else t=((i|0)<0)<<31>>31,h=HA(i|0,t|0,3,0)|0,l=k()|0,t=W(i|0,t|0,1,0)|0,t=HA(h|0,l|0,t|0,k()|0)|0,t=W(t|0,k()|0,1,0)|0,l=k()|0,h=f,r[h>>2]=t,r[h+4>>2]=l;if(u=JA(t,8)|0,!u)t=13;else{if(h=JA(t,4)|0,!h){K(u),t=13;break}if(t=t0(e,A,i,u,h,t,l,0)|0,t|0){K(u),K(h);break}if(A=r[f>>2]|0,f=r[f+4>>2]|0,(f|0)>0|(f|0)==0&A>>>0>0){t=0,o=0,s=0;do e=u+(o<<3)|0,l=r[e>>2]|0,e=r[e+4>>2]|0,!((l|0)==0&(e|0)==0)&&(r[h+(o<<2)>>2]|0)==(i|0)&&(E=n+(t<<3)|0,r[E>>2]=l,r[E+4>>2]=e,t=t+1|0),o=W(o|0,s|0,1,0)|0,s=k()|0;while((s|0)<(f|0)|(s|0)==(f|0)&o>>>0<A>>>0)}K(u),K(h),t=0}}else t=2;while(!1);return E=t,w=B,E|0}function y2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0;for(o=w,w=w+16|0,l=o,f=o+8|0,t=(TA(e,A)|0)==0,t=t?1:2;;){if(r[f>>2]=0,u=(OA(e,A,t,f,l)|0)==0,s=l,u&((r[s>>2]|0)==(i|0)?(r[s+4>>2]|0)==(n|0):0)){e=4;break}if(t=t+1|0,t>>>0>=7){t=7,e=4;break}}return(e|0)==4?(w=o,t|0):0}function hi(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0;if(o=w,w=w+48|0,t=o+16|0,l=o+8|0,f=o,i=c0(i)|0,i|0)return f=i,w=o,f|0;if(u=e,s=r[u+4>>2]|0,i=l,r[i>>2]=r[u>>2],r[i+4>>2]=s,Ze(l,t),i=Te(t,A,f)|0,!i){if(A=r[l>>2]|0,l=r[e+8>>2]|0,(l|0)>0){t=r[e+12>>2]|0,i=0;do A=(r[t+(i<<3)>>2]|0)+A|0,i=i+1|0;while((i|0)<(l|0))}i=f,t=r[i>>2]|0,i=r[i+4>>2]|0,l=((A|0)<0)<<31>>31,(i|0)<(l|0)|(i|0)==(l|0)&t>>>0<A>>>0?(i=f,r[i>>2]=A,r[i+4>>2]=l,i=l):A=t,s=W(A|0,i|0,12,0)|0,u=k()|0,i=f,r[i>>2]=s,r[i+4>>2]=u,i=n,r[i>>2]=s,r[i+4>>2]=u,i=0}return u=i,w=o,u|0}function be(e,A,i,n,t,l,f){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0,f=f|0;var o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0,Y=0,O=0,oA=0,MA=0,tA=0,aA=0,WA=0,or=0;if(MA=w,w=w+64|0,X=MA+48|0,Y=MA+32|0,O=MA+24|0,S=MA+8|0,x=MA,s=r[e>>2]|0,(s|0)<=0)return oA=0,w=MA,oA|0;for(U=e+4|0,eA=X+8|0,nA=Y+8|0,gA=S+8|0,o=0,_=0;;){u=r[U>>2]|0,M=u+(_<<4)|0,r[X>>2]=r[M>>2],r[X+4>>2]=r[M+4>>2],r[X+8>>2]=r[M+8>>2],r[X+12>>2]=r[M+12>>2],(_|0)==(s+-1|0)?(r[Y>>2]=r[u>>2],r[Y+4>>2]=r[u+4>>2],r[Y+8>>2]=r[u+8>>2],r[Y+12>>2]=r[u+12>>2]):(M=u+(_+1<<4)|0,r[Y>>2]=r[M>>2],r[Y+4>>2]=r[M+4>>2],r[Y+8>>2]=r[M+8>>2],r[Y+12>>2]=r[M+12>>2]),s=_i(X,Y,n,O)|0;A:do if(s)u=0,o=s;else if(s=O,u=r[s>>2]|0,s=r[s+4>>2]|0,(s|0)>0|(s|0)==0&u>>>0>0){a=0,M=0;e:for(;;){if(aA=1/(+(u>>>0)+4294967296*+(s|0)),or=+g[X>>3],s=SA(u|0,s|0,a|0,M|0)|0,WA=+(s>>>0)+4294967296*+(k()|0),tA=+(a>>>0)+4294967296*+(M|0),g[S>>3]=aA*(or*WA)+aA*(+g[Y>>3]*tA),g[gA>>3]=aA*(+g[eA>>3]*WA)+aA*(+g[nA>>3]*tA),s=W2(S,n,x)|0,s|0){o=s;break}m=x,b=r[m>>2]|0,m=r[m+4>>2]|0,E=N0(b|0,m|0,A|0,i|0)|0,h=k()|0,s=f+(E<<3)|0,B=s,u=r[B>>2]|0,B=r[B+4>>2]|0;r:do if((u|0)==0&(B|0)==0)C=s,oA=16;else for(D=0,Q=0;;){if((D|0)>(i|0)|(D|0)==(i|0)&Q>>>0>A>>>0){o=1;break e}if((u|0)==(b|0)&(B|0)==(m|0))break r;if(s=W(E|0,h|0,1,0)|0,E=U0(s|0,k()|0,A|0,i|0)|0,h=k()|0,Q=W(Q|0,D|0,1,0)|0,D=k()|0,s=f+(E<<3)|0,B=s,u=r[B>>2]|0,B=r[B+4>>2]|0,(u|0)==0&(B|0)==0){C=s,oA=16;break}}while(!1);if((oA|0)==16&&(oA=0,!((b|0)==0&(m|0)==0))&&(Q=C,r[Q>>2]=b,r[Q+4>>2]=m,Q=l+(r[t>>2]<<3)|0,r[Q>>2]=b,r[Q+4>>2]=m,Q=t,Q=W(r[Q>>2]|0,r[Q+4>>2]|0,1,0)|0,b=k()|0,m=t,r[m>>2]=Q,r[m+4>>2]=b),a=W(a|0,M|0,1,0)|0,M=k()|0,s=O,u=r[s>>2]|0,s=r[s+4>>2]|0,!((s|0)>(M|0)|(s|0)==(M|0)&u>>>0>a>>>0)){u=1;break A}}u=0}else u=1;while(!1);if(_=_+1|0,!u){oA=21;break}if(s=r[e>>2]|0,(_|0)>=(s|0)){o=0,oA=21;break}}return(oA|0)==21?(w=MA,o|0):0}function gi(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0,Y=0,O=0,oA=0,MA=0,tA=0,aA=0,WA=0;if(WA=w,w=w+112|0,oA=WA+80|0,s=WA+72|0,MA=WA,tA=WA+56|0,t=c0(i)|0,t|0)return aA=t,w=WA,aA|0;if(u=e+8|0,aA=l0((r[u>>2]<<5)+32|0)|0,!aA)return aA=13,w=WA,aA|0;if(c2(e,aA),t=c0(i)|0,!t){if(Y=e,O=r[Y+4>>2]|0,t=s,r[t>>2]=r[Y>>2],r[t+4>>2]=O,Ze(s,oA),t=Te(oA,A,MA)|0,t)Y=0,O=0;else{if(t=r[s>>2]|0,l=r[u>>2]|0,(l|0)>0){f=r[e+12>>2]|0,i=0;do t=(r[f+(i<<3)>>2]|0)+t|0,i=i+1|0;while((i|0)!=(l|0));i=t}else i=t;t=MA,l=r[t>>2]|0,t=r[t+4>>2]|0,f=((i|0)<0)<<31>>31,(t|0)<(f|0)|(t|0)==(f|0)&l>>>0<i>>>0?(t=MA,r[t>>2]=i,r[t+4>>2]=f,t=f):i=l,Y=W(i|0,t|0,12,0)|0,O=k()|0,t=MA,r[t>>2]=Y,r[t+4>>2]=O,t=0}if(!t){if(i=JA(Y,8)|0,!i)return K(aA),aA=13,w=WA,aA|0;if(o=JA(Y,8)|0,!o)return K(aA),K(i),aA=13,w=WA,aA|0;gA=oA,r[gA>>2]=0,r[gA+4>>2]=0,gA=e,X=r[gA+4>>2]|0,t=s,r[t>>2]=r[gA>>2],r[t+4>>2]=X,t=be(s,Y,O,A,oA,i,o)|0;A:do if(t)K(i),K(o),K(aA);else{e:do if((r[u>>2]|0)>0){for(f=e+12|0,l=0;t=be((r[f>>2]|0)+(l<<3)|0,Y,O,A,oA,i,o)|0,l=l+1|0,!(t|0);)if((l|0)>=(r[u>>2]|0))break e;K(i),K(o),K(aA);break A}while(!1);(O|0)>0|(O|0)==0&Y>>>0>0&&C0(o|0,0,Y<<3|0)|0,X=oA,gA=r[X+4>>2]|0;e:do if((gA|0)>0|(gA|0)==0&(r[X>>2]|0)>>>0>0){U=i,eA=o,nA=i,gA=o,X=i,t=i,C=i,S=o,x=o,i=o;r:for(;;){for(m=0,a=0,M=0,_=0,l=0,f=0;;){o=MA,s=o+56|0;do r[o>>2]=0,o=o+4|0;while((o|0)<(s|0));if(A=U+(m<<3)|0,u=r[A>>2]|0,A=r[A+4>>2]|0,De(u,A,1,MA,0)|0){o=MA,s=o+56|0;do r[o>>2]=0,o=o+4|0;while((o|0)<(s|0));o=JA(7,4)|0,o|0&&(t0(u,A,1,MA,o,7,0,0)|0,K(o))}for(b=0;;){Q=MA+(b<<3)|0,D=r[Q>>2]|0,Q=r[Q+4>>2]|0;i:do if((D|0)==0&(Q|0)==0)o=l,s=f;else{if(h=N0(D|0,Q|0,Y|0,O|0)|0,u=k()|0,o=n+(h<<3)|0,A=o,s=r[A>>2]|0,A=r[A+4>>2]|0,!((s|0)==0&(A|0)==0)){B=0,E=0;do{if((B|0)>(O|0)|(B|0)==(O|0)&E>>>0>Y>>>0)break r;if((s|0)==(D|0)&(A|0)==(Q|0)){o=l,s=f;break i}o=W(h|0,u|0,1,0)|0,h=U0(o|0,k()|0,Y|0,O|0)|0,u=k()|0,E=W(E|0,B|0,1,0)|0,B=k()|0,o=n+(h<<3)|0,A=o,s=r[A>>2]|0,A=r[A+4>>2]|0}while(!((s|0)==0&(A|0)==0))}if((D|0)==0&(Q|0)==0){o=l,s=f;break}P0(D,Q,tA)|0,$2(e,aA,tA)|0&&(E=W(l|0,f|0,1,0)|0,f=k()|0,B=o,r[B>>2]=D,r[B+4>>2]=Q,l=eA+(l<<3)|0,r[l>>2]=D,r[l+4>>2]=Q,l=E),o=l,s=f}while(!1);if(b=b+1|0,b>>>0>=7)break;l=o,f=s}if(m=W(m|0,a|0,1,0)|0,a=k()|0,M=W(M|0,_|0,1,0)|0,_=k()|0,f=oA,l=r[f>>2]|0,f=r[f+4>>2]|0,(_|0)<(f|0)|(_|0)==(f|0)&M>>>0<l>>>0)l=o,f=s;else break}if((f|0)>0|(f|0)==0&l>>>0>0){l=0,f=0;do _=U+(l<<3)|0,r[_>>2]=0,r[_+4>>2]=0,l=W(l|0,f|0,1,0)|0,f=k()|0,_=oA,M=r[_+4>>2]|0;while((f|0)<(M|0)|((f|0)==(M|0)?l>>>0<(r[_>>2]|0)>>>0:0))}if(_=oA,r[_>>2]=o,r[_+4>>2]=s,(s|0)>0|(s|0)==0&o>>>0>0)b=i,m=x,a=X,M=S,_=eA,i=C,x=t,S=nA,C=b,t=m,X=gA,gA=a,nA=M,eA=U,U=_;else break e}K(nA),K(gA),K(aA),t=1;break A}else t=o;while(!1);K(aA),K(i),K(t),t=0}while(!1);return aA=t,w=WA,aA|0}}return K(aA),aA=t,w=WA,aA|0}function wi(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(h=w,w=w+176|0,s=h,(A|0)<1)return Ar(i,0,0),u=0,w=h,u|0;for(o=e,o=P(r[o>>2]|0,r[o+4>>2]|0,52)|0,k()|0,Ar(i,(A|0)>6?A:6,o&15),o=0;n=e+(o<<3)|0,n=d0(r[n>>2]|0,r[n+4>>2]|0,s)|0,!(n|0);){if(n=r[s>>2]|0,(n|0)>0){f=0;do l=s+8+(f<<4)|0,f=f+1|0,n=s+8+(((f|0)%(n|0)|0)<<4)|0,t=x1(i,n,l)|0,t?ir(i,t)|0:N1(i,l,n)|0,n=r[s>>2]|0;while((f|0)<(n|0))}if(o=o+1|0,(o|0)>=(A|0)){n=0,u=13;break}}return(u|0)==13?(w=h,n|0):(er(i),u=n,w=h,u|0)}function Bi(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;if(l=w,w=w+32|0,n=l,t=l+16|0,e=wi(e,A,t)|0,e|0)return i=e,w=l,i|0;if(r[i>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,e=rr(t)|0,e|0)do{A=E1(i)|0;do D1(A,e)|0,f=e+16|0,r[n>>2]=r[f>>2],r[n+4>>2]=r[f+4>>2],r[n+8>>2]=r[f+8>>2],r[n+12>>2]=r[f+12>>2],ir(t,e)|0,e=Y1(t,n)|0;while((e|0)!=0);e=rr(t)|0}while((e|0)!=0);return er(t),e=Q1(i)|0,e?(je(i),f=e,w=l,f|0):(f=0,w=l,f|0)}function LA(e){return e=e|0,e>>>0>121?(e=0,e|0):(e=r[7696+(e*28|0)+16>>2]|0,e|0)}function p2(e){return e=e|0,(e|0)==4|(e|0)==117|0}function Ce(e){return e=e|0,r[11120+((r[e>>2]|0)*216|0)+((r[e+4>>2]|0)*72|0)+((r[e+8>>2]|0)*24|0)+(r[e+12>>2]<<3)>>2]|0}function ki(e){return e=e|0,r[11120+((r[e>>2]|0)*216|0)+((r[e+4>>2]|0)*72|0)+((r[e+8>>2]|0)*24|0)+(r[e+12>>2]<<3)+4>>2]|0}function vi(e,A){e=e|0,A=A|0,e=7696+(e*28|0)|0,r[A>>2]=r[e>>2],r[A+4>>2]=r[e+4>>2],r[A+8>>2]=r[e+8>>2],r[A+12>>2]=r[e+12>>2]}function Ei(e,A){e=e|0,A=A|0;var i=0,n=0;if(A>>>0>20)return A=-1,A|0;do if((r[11120+(A*216|0)>>2]|0)!=(e|0))if((r[11120+(A*216|0)+8>>2]|0)!=(e|0))if((r[11120+(A*216|0)+16>>2]|0)!=(e|0))if((r[11120+(A*216|0)+24>>2]|0)!=(e|0))if((r[11120+(A*216|0)+32>>2]|0)!=(e|0))if((r[11120+(A*216|0)+40>>2]|0)!=(e|0))if((r[11120+(A*216|0)+48>>2]|0)!=(e|0))if((r[11120+(A*216|0)+56>>2]|0)!=(e|0))if((r[11120+(A*216|0)+64>>2]|0)!=(e|0))if((r[11120+(A*216|0)+72>>2]|0)!=(e|0))if((r[11120+(A*216|0)+80>>2]|0)!=(e|0))if((r[11120+(A*216|0)+88>>2]|0)!=(e|0))if((r[11120+(A*216|0)+96>>2]|0)!=(e|0))if((r[11120+(A*216|0)+104>>2]|0)!=(e|0))if((r[11120+(A*216|0)+112>>2]|0)!=(e|0))if((r[11120+(A*216|0)+120>>2]|0)!=(e|0))if((r[11120+(A*216|0)+128>>2]|0)!=(e|0))if((r[11120+(A*216|0)+136>>2]|0)==(e|0))e=2,i=1,n=2;else{if((r[11120+(A*216|0)+144>>2]|0)==(e|0)){e=0,i=2,n=0;break}if((r[11120+(A*216|0)+152>>2]|0)==(e|0)){e=0,i=2,n=1;break}if((r[11120+(A*216|0)+160>>2]|0)==(e|0)){e=0,i=2,n=2;break}if((r[11120+(A*216|0)+168>>2]|0)==(e|0)){e=1,i=2,n=0;break}if((r[11120+(A*216|0)+176>>2]|0)==(e|0)){e=1,i=2,n=1;break}if((r[11120+(A*216|0)+184>>2]|0)==(e|0)){e=1,i=2,n=2;break}if((r[11120+(A*216|0)+192>>2]|0)==(e|0)){e=2,i=2,n=0;break}if((r[11120+(A*216|0)+200>>2]|0)==(e|0)){e=2,i=2,n=1;break}if((r[11120+(A*216|0)+208>>2]|0)==(e|0)){e=2,i=2,n=2;break}else e=-1;return e|0}else e=2,i=1,n=1;else e=2,i=1,n=0;else e=1,i=1,n=2;else e=1,i=1,n=1;else e=1,i=1,n=0;else e=0,i=1,n=2;else e=0,i=1,n=1;else e=0,i=1,n=0;else e=2,i=0,n=2;else e=2,i=0,n=1;else e=2,i=0,n=0;else e=1,i=0,n=2;else e=1,i=0,n=1;else e=1,i=0,n=0;else e=0,i=0,n=2;else e=0,i=0,n=1;else e=0,i=0,n=0;while(!1);return A=r[11120+(A*216|0)+(i*72|0)+(e*24|0)+(n<<3)+4>>2]|0,A|0}function me(e,A){return e=e|0,A=A|0,(r[7696+(e*28|0)+20>>2]|0)==(A|0)?(A=1,A|0):(A=(r[7696+(e*28|0)+24>>2]|0)==(A|0),A|0)}function F2(e,A){return e=e|0,A=A|0,r[848+(e*28|0)+(A<<2)>>2]|0}function G2(e,A){return e=e|0,A=A|0,(r[848+(e*28|0)>>2]|0)==(A|0)?(A=0,A|0):(r[848+(e*28|0)+4>>2]|0)==(A|0)?(A=1,A|0):(r[848+(e*28|0)+8>>2]|0)==(A|0)?(A=2,A|0):(r[848+(e*28|0)+12>>2]|0)==(A|0)?(A=3,A|0):(r[848+(e*28|0)+16>>2]|0)==(A|0)?(A=4,A|0):(r[848+(e*28|0)+20>>2]|0)==(A|0)?(A=5,A|0):((r[848+(e*28|0)+24>>2]|0)==(A|0)?6:7)|0}function Di(){return 122}function Qi(e){e=e|0;var A=0,i=0,n=0;A=0;do R(A|0,0,45)|0,n=k()|0|134225919,i=e+(A<<3)|0,r[i>>2]=-1,r[i+4>>2]=n,A=A+1|0;while((A|0)!=122);return 0}function bi(e){e=e|0;var A=0,i=0,n=0;return n=+g[e+16>>3],i=+g[e+24>>3],A=n-i,+(n<i?A+6.283185307179586:A)}function _e(e){return e=e|0,+g[e+16>>3]<+g[e+24>>3]|0}function Ci(e){return e=e|0,+(+g[e>>3]-+g[e+8>>3])}function R2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;return i=+g[A>>3],!(i>=+g[e+8>>3])||!(i<=+g[e>>3])?(A=0,A|0):(n=+g[e+16>>3],i=+g[e+24>>3],t=+g[A+8>>3],A=t>=i,e=t<=n&1,n<i?A&&(e=1):A||(e=0),A=(e|0)!=0,A|0)}function O2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;return+g[e>>3]<+g[A+8>>3]||+g[e+8>>3]>+g[A>>3]?(n=0,n|0):(l=+g[e+16>>3],i=e+24|0,h=+g[i>>3],f=l<h,n=A+16|0,u=+g[n>>3],t=A+24|0,s=+g[t>>3],o=u<s,A=h-u<s-l,e=f?o|A?1:2:0,A=o?f?1:A?2:1:0,l=+qA(l,e),l<+qA(+g[t>>3],A)||(h=+qA(+g[i>>3],e),h>+qA(+g[n>>3],A))?(o=0,o|0):(o=1,o|0))}function mi(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0;l=+g[e+16>>3],s=+g[e+24>>3],e=l<s,o=+g[A+16>>3],f=+g[A+24>>3],t=o<f,A=s-o<f-l,r[i>>2]=e?t|A?1:2:0,r[n>>2]=t?e?1:A?2:1:0}function Me(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;return+g[e>>3]<+g[A>>3]||+g[e+8>>3]>+g[A+8>>3]?(n=0,n|0):(n=e+16|0,s=+g[n>>3],l=+g[e+24>>3],f=s<l,i=A+16|0,h=+g[i>>3],t=A+24|0,u=+g[t>>3],o=h<u,A=l-h<u-s,e=f?o|A?1:2:0,A=o?f?1:A?2:1:0,l=+qA(l,e),l<=+qA(+g[t>>3],A)?(h=+qA(+g[n>>3],e),o=h>=+qA(+g[i>>3],A),o|0):(o=0,o|0))}function ae(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0;t=w,w=w+176|0,n=t,r[n>>2]=4,o=+g[A>>3],g[n+8>>3]=o,l=+g[A+16>>3],g[n+16>>3]=l,g[n+24>>3]=o,o=+g[A+24>>3],g[n+32>>3]=o,f=+g[A+8>>3],g[n+40>>3]=f,g[n+48>>3]=o,g[n+56>>3]=f,g[n+64>>3]=l,A=n+72|0,i=A+96|0;do r[A>>2]=0,A=A+4|0;while((A|0)<(i|0));x0(e|0,n|0,168)|0,w=t}function Te(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0;Q=w,w=w+288|0,h=Q+264|0,B=Q+96|0,u=Q,o=u,s=o+96|0;do r[o>>2]=0,o=o+4|0;while((o|0)<(s|0));return A=V2(A,u)|0,A|0?(D=A,w=Q,D|0):(s=u,u=r[s>>2]|0,s=r[s+4>>2]|0,P0(u,s,h)|0,d0(u,s,B)|0,f=+X0(h,B+8|0),g[h>>3]=+g[e>>3],s=h+8|0,g[s>>3]=+g[e+16>>3],g[B>>3]=+g[e+8>>3],u=B+8|0,g[u>>3]=+g[e+24>>3],t=+X0(h,B),m=+g[s>>3]-+g[u>>3],l=+uA(+m),b=+g[h>>3]-+g[B>>3],n=+uA(+b),!(m==0|b==0)&&(m=+lr(+l,+n),m=+O0(+(t*t/+h2(+(m/+h2(+l,+n)),3)/(f*(f*2.59807621135)*.8))),g[vA>>3]=m,E=~~m>>>0,D=+uA(m)>=1?m>0?~~+I2(+RA(m/4294967296),4294967295)>>>0:~~+O0((m-+(~~m>>>0))/4294967296)>>>0:0,(r[vA+4>>2]&2146435072|0)!=2146435072)?(B=(E|0)==0&(D|0)==0,A=i,r[A>>2]=B?1:E,r[A+4>>2]=B?0:D,A=0):A=1,D=A,w=Q,D|0)}function _i(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0;u=w,w=w+288|0,f=u+264|0,o=u+96|0,s=u,t=s,l=t+96|0;do r[t>>2]=0,t=t+4|0;while((t|0)<(l|0));return i=V2(i,s)|0,i|0?(n=i,w=u,n|0):(i=s,t=r[i>>2]|0,i=r[i+4>>2]|0,P0(t,i,f)|0,d0(t,i,o)|0,h=+X0(f,o+8|0),h=+O0(+(+X0(e,A)/(h*2))),g[vA>>3]=h,i=~~h>>>0,t=+uA(h)>=1?h>0?~~+I2(+RA(h/4294967296),4294967295)>>>0:~~+O0((h-+(~~h>>>0))/4294967296)>>>0:0,(r[vA+4>>2]&2146435072|0)==2146435072?(n=1,w=u,n|0):(s=(i|0)==0&(t|0)==0,r[n>>2]=s?1:i,r[n+4>>2]=s?0:t,n=0,w=u,n|0))}function Mi(e,A){e=e|0,A=+A;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;l=e+16|0,f=+g[l>>3],i=e+24|0,t=+g[i>>3],n=f-t,n=f<t?n+6.283185307179586:n,u=+g[e>>3],o=e+8|0,s=+g[o>>3],h=u-s,n=(n*A-n)*.5,A=(h*A-h)*.5,u=u+A,g[e>>3]=u>1.5707963267948966?1.5707963267948966:u,A=s-A,g[o>>3]=A<-1.5707963267948966?-1.5707963267948966:A,A=f+n,A=A>3.141592653589793?A+-6.283185307179586:A,g[l>>3]=A<-3.141592653589793?A+6.283185307179586:A,A=t-n,A=A>3.141592653589793?A+-6.283185307179586:A,g[i>>3]=A<-3.141592653589793?A+6.283185307179586:A}function ai(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0,r[e>>2]=A,r[e+4>>2]=i,r[e+8>>2]=n}function Ti(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;B=A+8|0,r[B>>2]=0,s=+g[e>>3],f=+uA(+s),u=+g[e+8>>3],o=+uA(+u)*1.1547005383792515,f=f+o*.5,i=~~f,e=~~o,f=f-+(i|0),o=o-+(e|0);do if(f<.5)if(f<.3333333333333333)if(r[A>>2]=i,o<(f+1)*.5){r[A+4>>2]=e;break}else{e=e+1|0,r[A+4>>2]=e;break}else if(E=1-f,e=(!(o<E)&1)+e|0,r[A+4>>2]=e,E<=o&o<f*2){i=i+1|0,r[A>>2]=i;break}else{r[A>>2]=i;break}else{if(!(f<.6666666666666666))if(i=i+1|0,r[A>>2]=i,o<f*.5){r[A+4>>2]=e;break}else{e=e+1|0,r[A+4>>2]=e;break}if(o<1-f){if(r[A+4>>2]=e,f*2+-1<o){r[A>>2]=i;break}}else e=e+1|0,r[A+4>>2]=e;i=i+1|0,r[A>>2]=i}while(!1);do if(s<0)if(e&1){h=(e+1|0)/2|0,h=SA(i|0,((i|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0,i=~~(+(i|0)-((+(h>>>0)+4294967296*+(k()|0))*2+1)),r[A>>2]=i;break}else{h=(e|0)/2|0,h=SA(i|0,((i|0)<0)<<31>>31|0,h|0,((h|0)<0)<<31>>31|0)|0,i=~~(+(i|0)-(+(h>>>0)+4294967296*+(k()|0))*2),r[A>>2]=i;break}while(!1);h=A+4|0,u<0&&(i=i-((e<<1|1|0)/2|0)|0,r[A>>2]=i,e=0-e|0,r[h>>2]=e),n=e-i|0,(i|0)<0?(t=0-i|0,r[h>>2]=n,r[B>>2]=t,r[A>>2]=0,e=n,i=0):t=0,(e|0)<0&&(i=i-e|0,r[A>>2]=i,t=t-e|0,r[B>>2]=t,r[h>>2]=0,e=0),l=i-t|0,n=e-t|0,(t|0)<0&&(r[A>>2]=l,r[h>>2]=n,r[B>>2]=0,e=n,i=l,t=0),n=(e|0)<(i|0)?e:i,n=(t|0)<(n|0)?t:n,!((n|0)<=0)&&(r[A>>2]=i-n,r[h>>2]=e-n,r[B>>2]=t-n)}function YA(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0;A=r[e>>2]|0,f=e+4|0,i=r[f>>2]|0,(A|0)<0&&(i=i-A|0,r[f>>2]=i,l=e+8|0,r[l>>2]=(r[l>>2]|0)-A,r[e>>2]=0,A=0),(i|0)<0?(A=A-i|0,r[e>>2]=A,l=e+8|0,t=(r[l>>2]|0)-i|0,r[l>>2]=t,r[f>>2]=0,i=0):(t=e+8|0,l=t,t=r[t>>2]|0),(t|0)<0&&(A=A-t|0,r[e>>2]=A,i=i-t|0,r[f>>2]=i,r[l>>2]=0,t=0),n=(i|0)<(A|0)?i:A,n=(t|0)<(n|0)?t:n,!((n|0)<=0)&&(r[e>>2]=A-n,r[f>>2]=i-n,r[l>>2]=t-n)}function M0(e,A){e=e|0,A=A|0;var i=0,n=0;n=r[e+8>>2]|0,i=+((r[e+4>>2]|0)-n|0),g[A>>3]=+((r[e>>2]|0)-n|0)-i*.5,g[A+8>>3]=i*.8660254037844386}function jA(e,A,i){e=e|0,A=A|0,i=i|0,r[i>>2]=(r[A>>2]|0)+(r[e>>2]|0),r[i+4>>2]=(r[A+4>>2]|0)+(r[e+4>>2]|0),r[i+8>>2]=(r[A+8>>2]|0)+(r[e+8>>2]|0)}function S2(e,A,i){e=e|0,A=A|0,i=i|0,r[i>>2]=(r[e>>2]|0)-(r[A>>2]|0),r[i+4>>2]=(r[e+4>>2]|0)-(r[A+4>>2]|0),r[i+8>>2]=(r[e+8>>2]|0)-(r[A+8>>2]|0)}function Le(e,A){e=e|0,A=A|0;var i=0,n=0;i=n0(r[e>>2]|0,A)|0,r[e>>2]=i,i=e+4|0,n=n0(r[i>>2]|0,A)|0,r[i>>2]=n,e=e+8|0,A=n0(r[e>>2]|0,A)|0,r[e>>2]=A}function n2(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;f=r[e>>2]|0,o=(f|0)<0,n=(r[e+4>>2]|0)-(o?f:0)|0,l=(n|0)<0,t=(l?0-n|0:0)+((r[e+8>>2]|0)-(o?f:0))|0,i=(t|0)<0,e=i?0:t,A=(l?0:n)-(i?t:0)|0,t=(o?0:f)-(l?n:0)-(i?t:0)|0,i=(A|0)<(t|0)?A:t,i=(e|0)<(i|0)?e:i,n=(i|0)>0,e=e-(n?i:0)|0,A=A-(n?i:0)|0;A:do switch(t-(n?i:0)|0){case 0:switch(A|0){case 0:return o=(e|0)==0?0:(e|0)==1?1:7,o|0;case 1:return o=(e|0)==0?2:(e|0)==1?3:7,o|0;default:break A}case 1:switch(A|0){case 0:return o=(e|0)==0?4:(e|0)==1?5:7,o|0;case 1:{if(!e)e=6;else break A;return e|0}default:break A}}while(!1);return o=7,o|0}function Li(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0;if(s=e+8|0,f=r[s>>2]|0,o=(r[e>>2]|0)-f|0,u=e+4|0,f=(r[u>>2]|0)-f|0,o>>>0>715827881|f>>>0>715827881){if(n=(o|0)>0,t=2147483647-o|0,l=-2147483648-o|0,(n?(t|0)<(o|0):(l|0)>(o|0))||(i=o<<1,n?(2147483647-i|0)<(o|0):(-2147483648-i|0)>(o|0))||((f|0)>0?(2147483647-f|0)<(f|0):(-2147483648-f|0)>(f|0))||(A=o*3|0,i=f<<1,(n?(t|0)<(i|0):(l|0)>(i|0))||((o|0)>-1?(A|-2147483648|0)>=(f|0):(A^-2147483648|0)<(f|0))))return u=1,u|0}else i=f<<1,A=o*3|0;return n=Q0(+(A-f|0)*.14285714285714285)|0,r[e>>2]=n,t=Q0(+(i+o|0)*.14285714285714285)|0,r[u>>2]=t,r[s>>2]=0,i=(t|0)<(n|0),A=i?n:t,i=i?t:n,(i|0)<0&&(((i|0)==-2147483648||((A|0)>0?(2147483647-A|0)<(i|0):(-2147483648-A|0)>(i|0)))&&q(27795,26892,354,26903),((A|0)>-1?(A|-2147483648|0)>=(i|0):(A^-2147483648|0)<(i|0))&&q(27795,26892,354,26903)),A=t-n|0,(n|0)<0?(i=0-n|0,r[u>>2]=A,r[s>>2]=i,r[e>>2]=0,n=0):(A=t,i=0),(A|0)<0&&(n=n-A|0,r[e>>2]=n,i=i-A|0,r[s>>2]=i,r[u>>2]=0,A=0),l=n-i|0,t=A-i|0,(i|0)<0?(r[e>>2]=l,r[u>>2]=t,r[s>>2]=0,A=t,t=l,i=0):t=n,n=(A|0)<(t|0)?A:t,n=(i|0)<(n|0)?i:n,(n|0)<=0?(u=0,u|0):(r[e>>2]=t-n,r[u>>2]=A-n,r[s>>2]=i-n,u=0,u|0)}function Pi(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0;if(f=e+8|0,t=r[f>>2]|0,l=(r[e>>2]|0)-t|0,o=e+4|0,t=(r[o>>2]|0)-t|0,l>>>0>715827881|t>>>0>715827881){if(i=(l|0)>0,(i?(2147483647-l|0)<(l|0):(-2147483648-l|0)>(l|0))||(A=l<<1,n=(t|0)>0,n?(2147483647-t|0)<(t|0):(-2147483648-t|0)>(t|0)))return o=1,o|0;if(s=t<<1,(n?(2147483647-s|0)<(t|0):(-2147483648-s|0)>(t|0))||(i?(2147483647-A|0)<(t|0):(-2147483648-A|0)>(t|0))||(i=t*3|0,(t|0)>-1?(i|-2147483648|0)>=(l|0):(i^-2147483648|0)<(l|0)))return s=1,s|0}else i=t*3|0,A=l<<1;return n=Q0(+(A+t|0)*.14285714285714285)|0,r[e>>2]=n,t=Q0(+(i-l|0)*.14285714285714285)|0,r[o>>2]=t,r[f>>2]=0,i=(t|0)<(n|0),A=i?n:t,i=i?t:n,(i|0)<0&&(((i|0)==-2147483648||((A|0)>0?(2147483647-A|0)<(i|0):(-2147483648-A|0)>(i|0)))&&q(27795,26892,402,26917),((A|0)>-1?(A|-2147483648|0)>=(i|0):(A^-2147483648|0)<(i|0))&&q(27795,26892,402,26917)),A=t-n|0,(n|0)<0?(i=0-n|0,r[o>>2]=A,r[f>>2]=i,r[e>>2]=0,n=0):(A=t,i=0),(A|0)<0&&(n=n-A|0,r[e>>2]=n,i=i-A|0,r[f>>2]=i,r[o>>2]=0,A=0),l=n-i|0,t=A-i|0,(i|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,A=t,t=l,i=0):t=n,n=(A|0)<(t|0)?A:t,n=(i|0)<(n|0)?i:n,(n|0)<=0?(s=0,s|0):(r[e>>2]=t-n,r[o>>2]=A-n,r[f>>2]=i-n,s=0,s|0)}function Ii(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;f=e+8|0,i=r[f>>2]|0,A=(r[e>>2]|0)-i|0,o=e+4|0,i=(r[o>>2]|0)-i|0,n=Q0(+((A*3|0)-i|0)*.14285714285714285)|0,r[e>>2]=n,A=Q0(+((i<<1)+A|0)*.14285714285714285)|0,r[o>>2]=A,r[f>>2]=0,i=A-n|0,(n|0)<0?(l=0-n|0,r[o>>2]=i,r[f>>2]=l,r[e>>2]=0,A=i,n=0,i=l):i=0,(A|0)<0&&(n=n-A|0,r[e>>2]=n,i=i-A|0,r[f>>2]=i,r[o>>2]=0,A=0),l=n-i|0,t=A-i|0,(i|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,A=t,t=l,i=0):t=n,n=(A|0)<(t|0)?A:t,n=(i|0)<(n|0)?i:n,!((n|0)<=0)&&(r[e>>2]=t-n,r[o>>2]=A-n,r[f>>2]=i-n)}function Pe(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;f=e+8|0,i=r[f>>2]|0,A=(r[e>>2]|0)-i|0,o=e+4|0,i=(r[o>>2]|0)-i|0,n=Q0(+((A<<1)+i|0)*.14285714285714285)|0,r[e>>2]=n,A=Q0(+((i*3|0)-A|0)*.14285714285714285)|0,r[o>>2]=A,r[f>>2]=0,i=A-n|0,(n|0)<0?(l=0-n|0,r[o>>2]=i,r[f>>2]=l,r[e>>2]=0,A=i,n=0,i=l):i=0,(A|0)<0&&(n=n-A|0,r[e>>2]=n,i=i-A|0,r[f>>2]=i,r[o>>2]=0,A=0),l=n-i|0,t=A-i|0,(i|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,A=t,t=l,i=0):t=n,n=(A|0)<(t|0)?A:t,n=(i|0)<(n|0)?i:n,!((n|0)<=0)&&(r[e>>2]=t-n,r[o>>2]=A-n,r[f>>2]=i-n)}function t2(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;A=r[e>>2]|0,f=e+4|0,i=r[f>>2]|0,o=e+8|0,n=r[o>>2]|0,t=i+(A*3|0)|0,r[e>>2]=t,i=n+(i*3|0)|0,r[f>>2]=i,A=(n*3|0)+A|0,r[o>>2]=A,n=i-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=n,r[o>>2]=A,r[e>>2]=0,i=n,n=0):n=t,(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=t,r[o>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[f>>2]=t-i,r[o>>2]=A-i)}function a0(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;t=r[e>>2]|0,f=e+4|0,A=r[f>>2]|0,o=e+8|0,i=r[o>>2]|0,n=(A*3|0)+t|0,t=i+(t*3|0)|0,r[e>>2]=t,r[f>>2]=n,A=(i*3|0)+A|0,r[o>>2]=A,i=n-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=i,r[o>>2]=A,r[e>>2]=0,t=0):i=n,(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[f>>2]=n-i,r[o>>2]=A-i)}function Ie(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0;(A+-1|0)>>>0>=6||(t=(r[15440+(A*12|0)>>2]|0)+(r[e>>2]|0)|0,r[e>>2]=t,o=e+4|0,n=(r[15440+(A*12|0)+4>>2]|0)+(r[o>>2]|0)|0,r[o>>2]=n,f=e+8|0,A=(r[15440+(A*12|0)+8>>2]|0)+(r[f>>2]|0)|0,r[f>>2]=A,i=n-t|0,(t|0)<0?(A=A-t|0,r[o>>2]=i,r[f>>2]=A,r[e>>2]=0,n=0):(i=n,n=t),(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[f>>2]=A,r[o>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[o>>2]=t,r[f>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[o>>2]=t-i,r[f>>2]=A-i))}function ye(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;t=r[e>>2]|0,f=e+4|0,A=r[f>>2]|0,o=e+8|0,i=r[o>>2]|0,n=A+t|0,t=i+t|0,r[e>>2]=t,r[f>>2]=n,A=i+A|0,r[o>>2]=A,i=n-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=i,r[o>>2]=A,r[e>>2]=0,n=0):(i=n,n=t),(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=t,r[o>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[f>>2]=t-i,r[o>>2]=A-i)}function l2(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;A=r[e>>2]|0,f=e+4|0,n=r[f>>2]|0,o=e+8|0,i=r[o>>2]|0,t=n+A|0,r[e>>2]=t,n=i+n|0,r[f>>2]=n,A=i+A|0,r[o>>2]=A,i=n-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=i,r[o>>2]=A,r[e>>2]=0,n=0):(i=n,n=t),(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=t,r[o>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[f>>2]=t-i,r[o>>2]=A-i)}function T0(e){switch(e=e|0,e|0){case 1:{e=5;break}case 5:{e=4;break}case 4:{e=6;break}case 6:{e=2;break}case 2:{e=3;break}case 3:{e=1;break}}return e|0}function E0(e){switch(e=e|0,e|0){case 1:{e=3;break}case 3:{e=2;break}case 2:{e=6;break}case 6:{e=4;break}case 4:{e=5;break}case 5:{e=1;break}}return e|0}function pe(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;A=r[e>>2]|0,f=e+4|0,i=r[f>>2]|0,o=e+8|0,n=r[o>>2]|0,t=i+(A<<1)|0,r[e>>2]=t,i=n+(i<<1)|0,r[f>>2]=i,A=(n<<1)+A|0,r[o>>2]=A,n=i-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=n,r[o>>2]=A,r[e>>2]=0,i=n,n=0):n=t,(i|0)<0&&(n=n-i|0,r[e>>2]=n,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=n-A|0,t=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=t,r[o>>2]=0,n=l,A=0):t=i,i=(t|0)<(n|0)?t:n,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=n-i,r[f>>2]=t-i,r[o>>2]=A-i)}function Fe(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;t=r[e>>2]|0,f=e+4|0,A=r[f>>2]|0,o=e+8|0,i=r[o>>2]|0,n=(A<<1)+t|0,t=i+(t<<1)|0,r[e>>2]=t,r[f>>2]=n,A=(i<<1)+A|0,r[o>>2]=A,i=n-t|0,(t|0)<0?(A=A-t|0,r[f>>2]=i,r[o>>2]=A,r[e>>2]=0,t=0):i=n,(i|0)<0&&(t=t-i|0,r[e>>2]=t,A=A-i|0,r[o>>2]=A,r[f>>2]=0,i=0),l=t-A|0,n=i-A|0,(A|0)<0?(r[e>>2]=l,r[f>>2]=n,r[o>>2]=0,t=l,A=0):n=i,i=(n|0)<(t|0)?n:t,i=(A|0)<(i|0)?A:i,!((i|0)<=0)&&(r[e>>2]=t-i,r[f>>2]=n-i,r[o>>2]=A-i)}function H2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0;return f=(r[e>>2]|0)-(r[A>>2]|0)|0,o=(f|0)<0,n=(r[e+4>>2]|0)-(r[A+4>>2]|0)-(o?f:0)|0,l=(n|0)<0,t=(o?0-f|0:0)+(r[e+8>>2]|0)-(r[A+8>>2]|0)+(l?0-n|0:0)|0,e=(t|0)<0,A=e?0:t,i=(l?0:n)-(e?t:0)|0,t=(o?0:f)-(l?n:0)-(e?t:0)|0,e=(i|0)<(t|0)?i:t,e=(A|0)<(e|0)?A:e,n=(e|0)>0,A=A-(n?e:0)|0,i=i-(n?e:0)|0,e=t-(n?e:0)|0,e=(e|0)>-1?e:0-e|0,i=(i|0)>-1?i:0-i|0,A=(A|0)>-1?A:0-A|0,A=(i|0)>(A|0)?i:A,((e|0)>(A|0)?e:A)|0}function yi(e,A){e=e|0,A=A|0;var i=0;i=r[e+8>>2]|0,r[A>>2]=(r[e>>2]|0)-i,r[A+4>>2]=(r[e+4>>2]|0)-i}function pi(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0;return n=r[e>>2]|0,r[A>>2]=n,t=r[e+4>>2]|0,f=A+4|0,r[f>>2]=t,o=A+8|0,r[o>>2]=0,i=(t|0)<(n|0),e=i?n:t,i=i?t:n,(i|0)<0&&((i|0)==-2147483648||((e|0)>0?(2147483647-e|0)<(i|0):(-2147483648-e|0)>(i|0))||((e|0)>-1?(e|-2147483648|0)>=(i|0):(e^-2147483648|0)<(i|0)))?(A=1,A|0):(e=t-n|0,(n|0)<0?(i=0-n|0,r[f>>2]=e,r[o>>2]=i,r[A>>2]=0,n=0):(e=t,i=0),(e|0)<0&&(n=n-e|0,r[A>>2]=n,i=i-e|0,r[o>>2]=i,r[f>>2]=0,e=0),l=n-i|0,t=e-i|0,(i|0)<0?(r[A>>2]=l,r[f>>2]=t,r[o>>2]=0,e=t,t=l,i=0):t=n,n=(e|0)<(t|0)?e:t,n=(i|0)<(n|0)?i:n,(n|0)<=0?(A=0,A|0):(r[A>>2]=t-n,r[f>>2]=e-n,r[o>>2]=i-n,A=0,A|0))}function Ge(e){e=e|0;var A=0,i=0,n=0,t=0;A=e+8|0,t=r[A>>2]|0,i=t-(r[e>>2]|0)|0,r[e>>2]=i,n=e+4|0,e=(r[n>>2]|0)-t|0,r[n>>2]=e,r[A>>2]=0-(e+i)}function Fi(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;i=r[e>>2]|0,A=0-i|0,r[e>>2]=A,f=e+8|0,r[f>>2]=0,o=e+4|0,n=r[o>>2]|0,t=n+i|0,(i|0)>0?(r[o>>2]=t,r[f>>2]=i,r[e>>2]=0,A=0,n=t):i=0,(n|0)<0?(l=A-n|0,r[e>>2]=l,i=i-n|0,r[f>>2]=i,r[o>>2]=0,t=l-i|0,A=0-i|0,(i|0)<0?(r[e>>2]=t,r[o>>2]=A,r[f>>2]=0,n=A,i=0):(n=0,t=l)):t=A,A=(n|0)<(t|0)?n:t,A=(i|0)<(A|0)?i:A,!((A|0)<=0)&&(r[e>>2]=t-A,r[o>>2]=n-A,r[f>>2]=i-A)}function Gi(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0;if(B=w,w=w+64|0,h=B,o=B+56|0,!(!0&(A&2013265920|0)==134217728&(!0&(n&2013265920|0)==134217728)))return t=5,w=B,t|0;if((e|0)==(i|0)&(A|0)==(n|0))return r[t>>2]=0,t=0,w=B,t|0;if(f=P(e|0,A|0,52)|0,k()|0,f=f&15,u=P(i|0,n|0,52)|0,k()|0,(f|0)!=(u&15|0))return t=12,w=B,t|0;if(l=f+-1|0,f>>>0>1){x2(e,A,l,h)|0,x2(i,n,l,o)|0,u=h,s=r[u>>2]|0,u=r[u+4>>2]|0;A:do if((s|0)==(r[o>>2]|0)&&(u|0)==(r[o+4>>2]|0)){f=(f^15)*3|0,l=P(e|0,A|0,f|0)|0,k()|0,l=l&7,f=P(i|0,n|0,f|0)|0,k()|0,f=f&7;do if((l|0)==0|(f|0)==0)r[t>>2]=1,l=0;else if((l|0)==7)l=5;else{if((l|0)==1|(f|0)==1&&TA(s,u)|0){l=5;break}if((r[15536+(l<<2)>>2]|0)!=(f|0)&&(r[15568+(l<<2)>>2]|0)!=(f|0))break A;r[t>>2]=1,l=0}while(!1);return t=l,w=B,t|0}while(!1)}l=h,f=l+56|0;do r[l>>2]=0,l=l+4|0;while((l|0)<(f|0));return ve(e,A,1,h)|0,A=h,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0))&&(A=h+8|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0)))&&(A=h+16|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0)))&&(A=h+24|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0)))&&(A=h+32|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0)))&&(A=h+40|0,!((r[A>>2]|0)==(i|0)&&(r[A+4>>2]|0)==(n|0)))?(l=h+48|0,l=((r[l>>2]|0)==(i|0)?(r[l+4>>2]|0)==(n|0):0)&1):l=1,r[t>>2]=l,t=0,w=B,t|0}function Ri(e,A,i,n,t){return e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,i=y2(e,A,i,n)|0,(i|0)==7?(t=11,t|0):(n=R(i|0,0,56)|0,A=A&-2130706433|(k()|0)|268435456,r[t>>2]=e|n,r[t+4>>2]=A,t=0,t|0)}function Oi(e,A,i){return e=e|0,A=A|0,i=i|0,!0&(A&2013265920|0)==268435456?(r[i>>2]=e,r[i+4>>2]=A&-2130706433|134217728,i=0,i|0):(i=6,i|0)}function Si(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;return t=w,w=w+16|0,n=t,r[n>>2]=0,!0&(A&2013265920|0)==268435456?(l=P(e|0,A|0,56)|0,k()|0,n=OA(e,A&-2130706433|134217728,l&7,n,i)|0,w=t,n|0):(n=6,w=t,n|0)}function Re(e,A){e=e|0,A=A|0;var i=0;switch(i=P(e|0,A|0,56)|0,k()|0,i&7){case 0:case 7:return i=0,i|0}return i=A&-2130706433|134217728,!(!0&(A&2013265920|0)==268435456)||!0&(A&117440512|0)==16777216&(TA(e,i)|0)!=0?(i=0,i|0):(i=U2(e,i)|0,i|0)}function Hi(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;return t=w,w=w+16|0,n=t,!0&(A&2013265920|0)==268435456?(l=A&-2130706433|134217728,f=i,r[f>>2]=e,r[f+4>>2]=l,r[n>>2]=0,A=P(e|0,A|0,56)|0,k()|0,n=OA(e,l,A&7,n,i+8|0)|0,w=t,n|0):(n=6,w=t,n|0)}function di(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0;return t=(TA(e,A)|0)==0,A=A&-2130706433,n=i,r[n>>2]=t?e:0,r[n+4>>2]=t?A|285212672:0,n=i+8|0,r[n>>2]=e,r[n+4>>2]=A|301989888,n=i+16|0,r[n>>2]=e,r[n+4>>2]=A|318767104,n=i+24|0,r[n>>2]=e,r[n+4>>2]=A|335544320,n=i+32|0,r[n>>2]=e,r[n+4>>2]=A|352321536,i=i+40|0,r[i>>2]=e,r[i+4>>2]=A|369098752,0}function f2(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;return f=w,w=w+16|0,t=f,l=A&-2130706433|134217728,!0&(A&2013265920|0)==268435456?(n=P(e|0,A|0,56)|0,k()|0,n=d1(e,l,n&7)|0,(n|0)==-1?(r[i>>2]=0,l=6,w=f,l|0):(H0(e,l,t)|0&&q(27795,26932,282,26947),A=P(e|0,A|0,52)|0,k()|0,A=A&15,TA(e,l)|0?d2(t,A,n,2,i):z2(t,A,n,2,i),l=0,w=f,l|0)):(l=6,w=f,l|0)}function zi(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0;n=w,w=w+16|0,t=n,Ui(e,A,i,t),Ti(t,i+4|0),w=n}function Ui(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0;if(o=w,w=w+16|0,s=o,Ni(e,i,s),l=+i2(+(1-+g[s>>3]*.5)),l<1e-16){r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,r[n+12>>2]=0,w=o;return}if(s=r[i>>2]|0,t=+g[15920+(s*24|0)>>3],t=+J0(t-+J0(+f1(15600+(s<<4)|0,e))),A0(A)|0?f=+J0(t+-.3334731722518321):f=t,t=+cA(+l)*2.618033988749896,(A|0)>0){e=0;do t=t*2.6457513110645907,e=e+1|0;while((e|0)!=(A|0))}l=+bA(+f)*t,g[n>>3]=l,f=+hA(+f)*t,g[n+8>>3]=f,w=o}function Ni(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;if(l=w,w=w+32|0,t=l,H1(e,t),r[A>>2]=0,g[i>>3]=5,n=+pA(16400,t),n<+g[i>>3]&&(r[A>>2]=0,g[i>>3]=n),n=+pA(16424,t),n<+g[i>>3]&&(r[A>>2]=1,g[i>>3]=n),n=+pA(16448,t),n<+g[i>>3]&&(r[A>>2]=2,g[i>>3]=n),n=+pA(16472,t),n<+g[i>>3]&&(r[A>>2]=3,g[i>>3]=n),n=+pA(16496,t),n<+g[i>>3]&&(r[A>>2]=4,g[i>>3]=n),n=+pA(16520,t),n<+g[i>>3]&&(r[A>>2]=5,g[i>>3]=n),n=+pA(16544,t),n<+g[i>>3]&&(r[A>>2]=6,g[i>>3]=n),n=+pA(16568,t),n<+g[i>>3]&&(r[A>>2]=7,g[i>>3]=n),n=+pA(16592,t),n<+g[i>>3]&&(r[A>>2]=8,g[i>>3]=n),n=+pA(16616,t),n<+g[i>>3]&&(r[A>>2]=9,g[i>>3]=n),n=+pA(16640,t),n<+g[i>>3]&&(r[A>>2]=10,g[i>>3]=n),n=+pA(16664,t),n<+g[i>>3]&&(r[A>>2]=11,g[i>>3]=n),n=+pA(16688,t),n<+g[i>>3]&&(r[A>>2]=12,g[i>>3]=n),n=+pA(16712,t),n<+g[i>>3]&&(r[A>>2]=13,g[i>>3]=n),n=+pA(16736,t),n<+g[i>>3]&&(r[A>>2]=14,g[i>>3]=n),n=+pA(16760,t),n<+g[i>>3]&&(r[A>>2]=15,g[i>>3]=n),n=+pA(16784,t),n<+g[i>>3]&&(r[A>>2]=16,g[i>>3]=n),n=+pA(16808,t),n<+g[i>>3]&&(r[A>>2]=17,g[i>>3]=n),n=+pA(16832,t),n<+g[i>>3]&&(r[A>>2]=18,g[i>>3]=n),n=+pA(16856,t),!(n<+g[i>>3])){w=l;return}r[A>>2]=19,g[i>>3]=n,w=l}function V0(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0;if(l=+S1(e),l<1e-16){A=15600+(A<<4)|0,r[t>>2]=r[A>>2],r[t+4>>2]=r[A+4>>2],r[t+8>>2]=r[A+8>>2],r[t+12>>2]=r[A+12>>2];return}if(f=+$A(+ +g[e+8>>3],+ +g[e>>3]),(i|0)>0){e=0;do l=l*.37796447300922725,e=e+1|0;while((e|0)!=(i|0))}o=l*.3333333333333333,n?(i=(A0(i)|0)==0,l=+P2(+((i?o:o*.37796447300922725)*.381966011250105))):(l=+P2(+(l*.381966011250105)),A0(i)|0&&(f=+J0(f+.3334731722518321))),o1(15600+(A<<4)|0,+J0(+g[15920+(A*24|0)>>3]-f),l,t)}function xi(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0;n=w,w=w+16|0,t=n,M0(e+4|0,t),V0(t,r[e>>2]|0,A,0,i),w=n}function d2(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0,Y=0,O=0,oA=0,MA=0,tA=0;if(oA=w,w=w+272|0,l=oA+256|0,M=oA+240|0,X=oA,Y=oA+224|0,O=oA+208|0,_=oA+176|0,C=oA+160|0,S=oA+192|0,x=oA+144|0,U=oA+128|0,eA=oA+112|0,nA=oA+96|0,gA=oA+80|0,r[l>>2]=A,r[M>>2]=r[e>>2],r[M+4>>2]=r[e+4>>2],r[M+8>>2]=r[e+8>>2],r[M+12>>2]=r[e+12>>2],Oe(M,l,X),r[t>>2]=0,M=n+i+((n|0)==5&1)|0,(M|0)<=(i|0)){w=oA;return}s=r[l>>2]|0,u=Y+4|0,h=_+4|0,B=i+5|0,E=16880+(s<<2)|0,D=16960+(s<<2)|0,Q=U+8|0,b=eA+8|0,m=nA+8|0,a=O+4|0,o=i;A:for(;;){f=X+(((o|0)%5|0)<<4)|0,r[O>>2]=r[f>>2],r[O+4>>2]=r[f+4>>2],r[O+8>>2]=r[f+8>>2],r[O+12>>2]=r[f+12>>2];do;while((S0(O,s,0,1)|0)==2);if((o|0)>(i|0)&(A0(A)|0)!=0){if(r[_>>2]=r[O>>2],r[_+4>>2]=r[O+4>>2],r[_+8>>2]=r[O+8>>2],r[_+12>>2]=r[O+12>>2],M0(u,C),n=r[_>>2]|0,l=r[17040+(n*80|0)+(r[Y>>2]<<2)>>2]|0,r[_>>2]=r[18640+(n*80|0)+(l*20|0)>>2],f=r[18640+(n*80|0)+(l*20|0)+16>>2]|0,(f|0)>0){e=0;do ye(h),e=e+1|0;while((e|0)<(f|0))}switch(f=18640+(n*80|0)+(l*20|0)+4|0,r[S>>2]=r[f>>2],r[S+4>>2]=r[f+4>>2],r[S+8>>2]=r[f+8>>2],Le(S,(r[E>>2]|0)*3|0),jA(h,S,h),YA(h),M0(h,x),MA=+(r[D>>2]|0),g[U>>3]=MA*3,g[Q>>3]=0,tA=MA*-1.5,g[eA>>3]=tA,g[b>>3]=MA*2.598076211353316,g[nA>>3]=tA,g[m>>3]=MA*-2.598076211353316,r[17040+((r[_>>2]|0)*80|0)+(r[O>>2]<<2)>>2]|0){case 1:{e=eA,n=U;break}case 3:{e=nA,n=eA;break}case 2:{e=U,n=nA;break}default:{e=12;break A}}qe(C,x,n,e,gA),V0(gA,r[_>>2]|0,s,1,t+8+(r[t>>2]<<4)|0),r[t>>2]=(r[t>>2]|0)+1}if((o|0)<(B|0)&&(M0(a,_),V0(_,r[O>>2]|0,s,1,t+8+(r[t>>2]<<4)|0),r[t>>2]=(r[t>>2]|0)+1),r[Y>>2]=r[O>>2],r[Y+4>>2]=r[O+4>>2],r[Y+8>>2]=r[O+8>>2],r[Y+12>>2]=r[O+12>>2],o=o+1|0,(o|0)>=(M|0)){e=3;break}}if((e|0)==3){w=oA;return}else(e|0)==12&&q(26970,27017,572,27027)}function Oe(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0;s=w,w=w+128|0,n=s+64|0,t=s,l=n,f=20240,o=l+60|0;do r[l>>2]=r[f>>2],l=l+4|0,f=f+4|0;while((l|0)<(o|0));l=t,f=20304,o=l+60|0;do r[l>>2]=r[f>>2],l=l+4|0,f=f+4|0;while((l|0)<(o|0));o=(A0(r[A>>2]|0)|0)==0,n=o?n:t,t=e+4|0,pe(t),Fe(t),A0(r[A>>2]|0)|0&&(a0(t),r[A>>2]=(r[A>>2]|0)+1),r[i>>2]=r[e>>2],A=i+4|0,jA(t,n,A),YA(A),r[i+16>>2]=r[e>>2],A=i+20|0,jA(t,n+12|0,A),YA(A),r[i+32>>2]=r[e>>2],A=i+36|0,jA(t,n+24|0,A),YA(A),r[i+48>>2]=r[e>>2],A=i+52|0,jA(t,n+36|0,A),YA(A),r[i+64>>2]=r[e>>2],i=i+68|0,jA(t,n+48|0,i),YA(i),w=s}function S0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0;if(Q=w,w=w+32|0,E=Q+12|0,o=Q,D=e+4|0,B=r[16960+(A<<2)>>2]|0,h=(n|0)!=0,B=h?B*3|0:B,t=r[D>>2]|0,u=e+8|0,f=r[u>>2]|0,h){if(l=e+12|0,n=r[l>>2]|0,t=f+t+n|0,(t|0)==(B|0))return D=1,w=Q,D|0;s=l}else s=e+12|0,n=r[s>>2]|0,t=f+t+n|0;if((t|0)<=(B|0))return D=0,w=Q,D|0;do if((n|0)>0){if(n=r[e>>2]|0,(f|0)>0){l=18640+(n*80|0)+60|0,n=e;break}n=18640+(n*80|0)+40|0,i?(ai(E,B,0,0),S2(D,E,o),l2(o),jA(o,E,D),l=n,n=e):(l=n,n=e)}else l=18640+((r[e>>2]|0)*80|0)+20|0,n=e;while(!1);if(r[n>>2]=r[l>>2],t=l+16|0,(r[t>>2]|0)>0){n=0;do ye(D),n=n+1|0;while((n|0)<(r[t>>2]|0))}return e=l+4|0,r[E>>2]=r[e>>2],r[E+4>>2]=r[e+4>>2],r[E+8>>2]=r[e+8>>2],A=r[16880+(A<<2)>>2]|0,Le(E,h?A*3|0:A),jA(D,E,D),YA(D),h?n=((r[u>>2]|0)+(r[D>>2]|0)+(r[s>>2]|0)|0)==(B|0)?1:2:n=2,D=n,w=Q,D|0}function Yi(e,A){e=e|0,A=A|0;var i=0;do i=S0(e,A,0,1)|0;while((i|0)==2);return i|0}function z2(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0;if(nA=w,w=w+240|0,l=nA+224|0,S=nA+208|0,x=nA,U=nA+192|0,eA=nA+176|0,m=nA+160|0,a=nA+144|0,M=nA+128|0,_=nA+112|0,C=nA+96|0,r[l>>2]=A,r[S>>2]=r[e>>2],r[S+4>>2]=r[e+4>>2],r[S+8>>2]=r[e+8>>2],r[S+12>>2]=r[e+12>>2],Se(S,l,x),r[t>>2]=0,b=n+i+((n|0)==6&1)|0,(b|0)<=(i|0)){w=nA;return}s=r[l>>2]|0,u=i+6|0,h=16960+(s<<2)|0,B=a+8|0,E=M+8|0,D=_+8|0,Q=U+4|0,f=0,o=i,n=-1;A:for(;;){if(l=(o|0)%6|0,e=x+(l<<4)|0,r[U>>2]=r[e>>2],r[U+4>>2]=r[e+4>>2],r[U+8>>2]=r[e+8>>2],r[U+12>>2]=r[e+12>>2],e=f,f=S0(U,s,0,1)|0,(o|0)>(i|0)&(A0(A)|0)!=0&&(e|0)!=1&&(r[U>>2]|0)!=(n|0)){switch(M0(x+(((l+5|0)%6|0)<<4)+4|0,eA),M0(x+(l<<4)+4|0,m),gA=+(r[h>>2]|0),g[a>>3]=gA*3,g[B>>3]=0,X=gA*-1.5,g[M>>3]=X,g[E>>3]=gA*2.598076211353316,g[_>>3]=X,g[D>>3]=gA*-2.598076211353316,l=r[S>>2]|0,r[17040+(l*80|0)+(((n|0)==(l|0)?r[U>>2]|0:n)<<2)>>2]|0){case 1:{e=M,n=a;break}case 3:{e=_,n=M;break}case 2:{e=a,n=_;break}default:{e=8;break A}}qe(eA,m,n,e,C),!(ce(eA,C)|0)&&!(ce(m,C)|0)&&(V0(C,r[S>>2]|0,s,1,t+8+(r[t>>2]<<4)|0),r[t>>2]=(r[t>>2]|0)+1)}if((o|0)<(u|0)&&(M0(Q,eA),V0(eA,r[U>>2]|0,s,1,t+8+(r[t>>2]<<4)|0),r[t>>2]=(r[t>>2]|0)+1),o=o+1|0,(o|0)>=(b|0)){e=3;break}else n=r[U>>2]|0}if((e|0)==3){w=nA;return}else(e|0)==8&&q(27054,27017,737,27099)}function Se(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0;s=w,w=w+160|0,n=s+80|0,t=s,l=n,f=20368,o=l+72|0;do r[l>>2]=r[f>>2],l=l+4|0,f=f+4|0;while((l|0)<(o|0));l=t,f=20448,o=l+72|0;do r[l>>2]=r[f>>2],l=l+4|0,f=f+4|0;while((l|0)<(o|0));o=(A0(r[A>>2]|0)|0)==0,n=o?n:t,t=e+4|0,pe(t),Fe(t),A0(r[A>>2]|0)|0&&(a0(t),r[A>>2]=(r[A>>2]|0)+1),r[i>>2]=r[e>>2],A=i+4|0,jA(t,n,A),YA(A),r[i+16>>2]=r[e>>2],A=i+20|0,jA(t,n+12|0,A),YA(A),r[i+32>>2]=r[e>>2],A=i+36|0,jA(t,n+24|0,A),YA(A),r[i+48>>2]=r[e>>2],A=i+52|0,jA(t,n+36|0,A),YA(A),r[i+64>>2]=r[e>>2],A=i+68|0,jA(t,n+48|0,A),YA(A),r[i+80>>2]=r[e>>2],i=i+84|0,jA(t,n+60|0,i),YA(i),w=s}function ji(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,52)|0,k()|0,A&15|0}function He(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,45)|0,k()|0,A&127|0}function Wi(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,(i+-1|0)>>>0>14?(n=4,n|0):(i=P(e|0,A|0,(15-i|0)*3|0)|0,k()|0,r[n>>2]=i&7,n=0,n|0)}function Ki(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0;if(e>>>0>15)return n=4,n|0;if(A>>>0>121)return n=17,n|0;f=R(e|0,0,52)|0,t=k()|0,o=R(A|0,0,45)|0,t=t|(k()|0)|134225919;A:do if((e|0)>=1){for(o=1,f=(p[20528+A>>0]|0)!=0,l=-1;;){if(A=r[i+(o+-1<<2)>>2]|0,A>>>0>6){t=18,A=10;break}if(!((A|0)==0|f^1))if((A|0)==1){t=19,A=10;break}else f=0;if(u=(15-o|0)*3|0,s=R(7,0,u|0)|0,t=t&~(k()|0),A=R(A|0,((A|0)<0)<<31>>31|0,u|0)|0,l=A|l&~s,t=k()|0|t,(o|0)<(e|0))o=o+1|0;else break A}if((A|0)==10)return t|0}else l=-1;while(!1);return u=n,r[u>>2]=l,r[u+4>>2]=t,u=0,u|0}function U2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0;return!(!0&(A&-16777216|0)==134217728)||(n=P(e|0,A|0,52)|0,k()|0,n=n&15,i=P(e|0,A|0,45)|0,k()|0,i=i&127,i>>>0>121)?(e=0,e|0):(f=(n^15)*3|0,t=P(e|0,A|0,f|0)|0,f=R(t|0,k()|0,f|0)|0,t=k()|0,l=SA(-1227133514,-1171,f|0,t|0)|0,!((f&613566756&l|0)==0&(t&4681&(k()|0)|0)==0)||(f=(n*3|0)+19|0,l=R(~e|0,~A|0,f|0)|0,f=P(l|0,k()|0,f|0)|0,!((n|0)==15|(f|0)==0&(k()|0)==0))?(f=0,f|0):!(p[20528+i>>0]|0)||(A=A&8191,(e|0)==0&(A|0)==0)?(f=1,f|0):(f=ee(e|0,A|0)|0,k()|0,((63-f|0)%3|0|0)!=0|0))}function Vi(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0;return!0&(A&-16777216|0)==134217728&&(n=P(e|0,A|0,52)|0,k()|0,n=n&15,i=P(e|0,A|0,45)|0,k()|0,i=i&127,i>>>0<=121)&&(f=(n^15)*3|0,t=P(e|0,A|0,f|0)|0,f=R(t|0,k()|0,f|0)|0,t=k()|0,l=SA(-1227133514,-1171,f|0,t|0)|0,(f&613566756&l|0)==0&(t&4681&(k()|0)|0)==0)&&(f=(n*3|0)+19|0,l=R(~e|0,~A|0,f|0)|0,f=P(l|0,k()|0,f|0)|0,(n|0)==15|(f|0)==0&(k()|0)==0)&&(!(p[20528+i>>0]|0)||(i=A&8191,(e|0)==0&(i|0)==0)||(f=ee(e|0,i|0)|0,k()|0,(63-f|0)%3|0|0))||Re(e,A)|0?(f=1,f|0):(f=($e(e,A)|0)!=0&1,f|0)}function N2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0;if(t=R(A|0,0,52)|0,l=k()|0,i=R(i|0,0,45)|0,i=l|(k()|0)|134225919,(A|0)<1){l=-1,n=i,A=e,r[A>>2]=l,e=e+4|0,r[e>>2]=n;return}for(l=1,t=-1;f=(15-l|0)*3|0,o=R(7,0,f|0)|0,i=i&~(k()|0),f=R(n|0,0,f|0)|0,t=t&~o|f,i=i|(k()|0),(l|0)!=(A|0);)l=l+1|0;o=e,f=o,r[f>>2]=t,o=o+4|0,r[o>>2]=i}function x2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0;if(l=P(e|0,A|0,52)|0,k()|0,l=l&15,i>>>0>15)return n=4,n|0;if((l|0)<(i|0))return n=12,n|0;if((l|0)==(i|0))return r[n>>2]=e,r[n+4>>2]=A,n=0,n|0;if(t=R(i|0,0,52)|0,t=t|e,e=k()|0|A&-15728641,(l|0)>(i|0))do A=R(7,0,(14-i|0)*3|0)|0,i=i+1|0,t=A|t,e=k()|0|e;while((i|0)<(l|0));return r[n>>2]=t,r[n+4>>2]=e,n=0,n|0}function Z0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0;if(l=P(e|0,A|0,52)|0,k()|0,l=l&15,!((i|0)<16&(l|0)<=(i|0)))return n=4,n|0;t=i-l|0,i=P(e|0,A|0,45)|0,k()|0;A:do if(!(LA(i&127)|0))i=D0(7,0,t,((t|0)<0)<<31>>31)|0,t=k()|0;else{e:do if(l|0){for(i=1;f=R(7,0,(15-i|0)*3|0)|0,!!((f&e|0)==0&((k()|0)&A|0)==0);)if(i>>>0<l>>>0)i=i+1|0;else break e;i=D0(7,0,t,((t|0)<0)<<31>>31)|0,t=k()|0;break A}while(!1);i=D0(7,0,t,((t|0)<0)<<31>>31)|0,i=HA(i|0,k()|0,5,0)|0,i=W(i|0,k()|0,-5,-1)|0,i=b0(i|0,k()|0,6,0)|0,i=W(i|0,k()|0,1,0)|0,t=k()|0}while(!1);return f=n,r[f>>2]=i,r[f+4>>2]=t,f=0,f|0}function TA(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;if(t=P(e|0,A|0,45)|0,k()|0,!(LA(t&127)|0))return t=0,t|0;t=P(e|0,A|0,52)|0,k()|0,t=t&15;A:do if(!t)i=0;else for(n=1;;){if(i=P(e|0,A|0,(15-n|0)*3|0)|0,k()|0,i=i&7,i|0)break A;if(n>>>0<t>>>0)n=n+1|0;else{i=0;break}}while(!1);return t=(i|0)==0&1,t|0}function Zi(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0;if(f=w,w=w+16|0,l=f,Z2(l,e,A,i),A=l,e=r[A>>2]|0,A=r[A+4>>2]|0,(e|0)==0&(A|0)==0)return w=f,0;t=0,i=0;do o=n+(t<<3)|0,r[o>>2]=e,r[o+4>>2]=A,t=W(t|0,i|0,1,0)|0,i=k()|0,J2(l),o=l,e=r[o>>2]|0,A=r[o+4>>2]|0;while(!((e|0)==0&(A|0)==0));return w=f,0}function de(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,(n|0)<(i|0)?(i=A,n=e,iA(i|0),n|0):(i=R(-1,-1,((n-i|0)*3|0)+3|0)|0,n=R(~i|0,~(k()|0)|0,(15-n|0)*3|0)|0,i=~(k()|0)&A,n=~n&e,iA(i|0),n|0)}function ze(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0;return t=P(e|0,A|0,52)|0,k()|0,t=t&15,(i|0)<16&(t|0)<=(i|0)?((t|0)<(i|0)&&(t=R(-1,-1,((i+-1-t|0)*3|0)+3|0)|0,t=R(~t|0,~(k()|0)|0,(15-i|0)*3|0)|0,A=~(k()|0)&A,e=~t&e),t=R(i|0,0,52)|0,i=A&-15728641|(k()|0),r[n>>2]=e|t,r[n+4>>2]=i,n=0,n|0):(n=4,n|0)}function Ji(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0,Y=0,O=0;if((i|0)==0&(n|0)==0)return O=0,O|0;if(t=e,l=r[t>>2]|0,t=r[t+4>>2]|0,!0&(t&15728640|0)==0){if(!((n|0)>0|(n|0)==0&i>>>0>0)||(O=A,r[O>>2]=l,r[O+4>>2]=t,(i|0)==1&(n|0)==0))return O=0,O|0;t=1,l=0;do X=e+(t<<3)|0,Y=r[X+4>>2]|0,O=A+(t<<3)|0,r[O>>2]=r[X>>2],r[O+4>>2]=Y,t=W(t|0,l|0,1,0)|0,l=k()|0;while((l|0)<(n|0)|(l|0)==(n|0)&t>>>0<i>>>0);return t=0,t|0}if(gA=i<<3,Y=l0(gA)|0,!Y)return O=13,O|0;if(x0(Y|0,e|0,gA|0)|0,X=JA(i,8)|0,!X)return K(Y),O=13,O|0;A:for(;;){t=Y,u=r[t>>2]|0,t=r[t+4>>2]|0,eA=P(u|0,t|0,52)|0,k()|0,eA=eA&15,nA=eA+-1|0,U=(eA|0)!=0,x=(n|0)>0|(n|0)==0&i>>>0>0;e:do if(U&x){if(M=R(nA|0,0,52)|0,_=k()|0,nA>>>0>15){if(!((u|0)==0&(t|0)==0)){O=16;break A}for(l=0,e=0;;){if(l=W(l|0,e|0,1,0)|0,e=k()|0,!((e|0)<(n|0)|(e|0)==(n|0)&l>>>0<i>>>0))break e;if(f=Y+(l<<3)|0,S=r[f>>2]|0,f=r[f+4>>2]|0,!((S|0)==0&(f|0)==0)){t=f,O=16;break A}}}for(o=u,e=t,l=0,f=0;;){if(!((o|0)==0&(e|0)==0)){if(!(!0&(e&117440512|0)==0)){O=21;break A}if(h=P(o|0,e|0,52)|0,k()|0,h=h&15,(h|0)<(nA|0)){t=12,O=27;break A}if((h|0)!=(nA|0)&&(o=o|M,e=e&-15728641|_,h>>>0>=eA>>>0)){s=nA;do S=R(7,0,(14-s|0)*3|0)|0,s=s+1|0,o=S|o,e=k()|0|e;while(s>>>0<h>>>0)}if(E=N0(o|0,e|0,i|0,n|0)|0,D=k()|0,s=X+(E<<3)|0,h=s,B=r[h>>2]|0,h=r[h+4>>2]|0,!((B|0)==0&(h|0)==0)){m=0,a=0;do{if((m|0)>(n|0)|(m|0)==(n|0)&a>>>0>i>>>0){O=31;break A}if((B|0)==(o|0)&(h&-117440513|0)==(e|0)){Q=P(B|0,h|0,56)|0,k()|0,Q=Q&7,b=Q+1|0,S=P(B|0,h|0,45)|0,k()|0;r:do if(!(LA(S&127)|0))h=7;else{if(B=P(B|0,h|0,52)|0,k()|0,B=B&15,!B){h=6;break}for(h=1;;){if(S=R(7,0,(15-h|0)*3|0)|0,!((S&o|0)==0&((k()|0)&e|0)==0)){h=7;break r}if(h>>>0<B>>>0)h=h+1|0;else{h=6;break}}}while(!1);if((Q+2|0)>>>0>h>>>0){O=41;break A}S=R(b|0,0,56)|0,e=k()|0|e&-117440513,C=s,r[C>>2]=0,r[C+4>>2]=0,o=S|o}else E=W(E|0,D|0,1,0)|0,E=U0(E|0,k()|0,i|0,n|0)|0,D=k()|0;a=W(a|0,m|0,1,0)|0,m=k()|0,s=X+(E<<3)|0,h=s,B=r[h>>2]|0,h=r[h+4>>2]|0}while(!((B|0)==0&(h|0)==0))}S=s,r[S>>2]=o,r[S+4>>2]=e}if(l=W(l|0,f|0,1,0)|0,f=k()|0,!((f|0)<(n|0)|(f|0)==(n|0)&l>>>0<i>>>0))break e;e=Y+(l<<3)|0,o=r[e>>2]|0,e=r[e+4>>2]|0}}while(!1);if(S=W(i|0,n|0,5,0)|0,C=k()|0,C>>>0<0|(C|0)==0&S>>>0<11){O=85;break}if(S=b0(i|0,n|0,6,0)|0,k()|0,S=JA(S,8)|0,!S){O=48;break}do if(x){for(b=0,e=0,Q=0,m=0;;){if(h=X+(b<<3)|0,f=h,l=r[f>>2]|0,f=r[f+4>>2]|0,(l|0)==0&(f|0)==0)C=Q;else{B=P(l|0,f|0,56)|0,k()|0,B=B&7,o=B+1|0,E=f&-117440513,C=P(l|0,f|0,45)|0,k()|0;e:do if(LA(C&127)|0){if(D=P(l|0,f|0,52)|0,k()|0,D=D&15,D|0)for(s=1;;){if(C=R(7,0,(15-s|0)*3|0)|0,!((l&C|0)==0&(E&(k()|0)|0)==0))break e;if(s>>>0<D>>>0)s=s+1|0;else break}f=R(o|0,0,56)|0,l=f|l,f=k()|0|E,o=h,r[o>>2]=l,r[o+4>>2]=f,o=B+2|0}while(!1);(o|0)==7?(C=S+(e<<3)|0,r[C>>2]=l,r[C+4>>2]=f&-117440513,e=W(e|0,Q|0,1,0)|0,C=k()|0):C=Q}if(b=W(b|0,m|0,1,0)|0,m=k()|0,(m|0)<(n|0)|(m|0)==(n|0)&b>>>0<i>>>0)Q=C;else break}if(x){if(a=nA>>>0>15,M=R(nA|0,0,52)|0,_=k()|0,!U){for(l=0,s=0,o=0,f=0;(u|0)==0&(t|0)==0||(nA=A+(l<<3)|0,r[nA>>2]=u,r[nA+4>>2]=t,l=W(l|0,s|0,1,0)|0,s=k()|0),o=W(o|0,f|0,1,0)|0,f=k()|0,!!((f|0)<(n|0)|(f|0)==(n|0)&o>>>0<i>>>0);)t=Y+(o<<3)|0,u=r[t>>2]|0,t=r[t+4>>2]|0;t=C;break}for(l=0,s=0,f=0,o=0;;){do if(!((u|0)==0&(t|0)==0)){if(D=P(u|0,t|0,52)|0,k()|0,D=D&15,a|(D|0)<(nA|0)){O=80;break A}if((D|0)!=(nA|0)){if(h=u|M,B=t&-15728641|_,D>>>0>=eA>>>0){E=nA;do U=R(7,0,(14-E|0)*3|0)|0,E=E+1|0,h=U|h,B=k()|0|B;while(E>>>0<D>>>0)}}else h=u,B=t;Q=N0(h|0,B|0,i|0,n|0)|0,E=0,D=0,m=k()|0;do{if((E|0)>(n|0)|(E|0)==(n|0)&D>>>0>i>>>0){O=81;break A}if(U=X+(Q<<3)|0,b=r[U+4>>2]|0,(b&-117440513|0)==(B|0)&&(r[U>>2]|0)==(h|0)){O=65;break}U=W(Q|0,m|0,1,0)|0,Q=U0(U|0,k()|0,i|0,n|0)|0,m=k()|0,D=W(D|0,E|0,1,0)|0,E=k()|0,U=X+(Q<<3)|0}while(!((r[U>>2]|0)==(h|0)&&(r[U+4>>2]|0)==(B|0)));if((O|0)==65&&(O=0,!0&(b&117440512|0)==100663296))break;U=A+(l<<3)|0,r[U>>2]=u,r[U+4>>2]=t,l=W(l|0,s|0,1,0)|0,s=k()|0}while(!1);if(f=W(f|0,o|0,1,0)|0,o=k()|0,!((o|0)<(n|0)|(o|0)==(n|0)&f>>>0<i>>>0))break;t=Y+(f<<3)|0,u=r[t>>2]|0,t=r[t+4>>2]|0}t=C}else l=0,t=C}else l=0,e=0,t=0;while(!1);if(C0(X|0,0,gA|0)|0,x0(Y|0,S|0,e<<3|0)|0,K(S),(e|0)==0&(t|0)==0){O=89;break}else A=A+(l<<3)|0,n=t,i=e}if((O|0)==16)!0&(t&117440512|0)==0?(t=4,O=27):O=21;else if((O|0)==31)q(27795,27122,620,27132);else{if((O|0)==41)return K(Y),K(X),O=10,O|0;if((O|0)==48)return K(Y),K(X),O=13,O|0;(O|0)==80?q(27795,27122,711,27132):(O|0)==81?q(27795,27122,723,27132):(O|0)==85&&(x0(A|0,Y|0,i<<3|0)|0,O=89)}return(O|0)==21?(K(Y),K(X),O=5,O|0):(O|0)==27?(K(Y),K(X),O=t,O|0):(O|0)==89?(K(Y),K(X),O=0,O|0):0}function Xi(e,A,i,n,t,l,f){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0,f=f|0;var o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0;if(b=w,w=w+16|0,Q=b,!((i|0)>0|(i|0)==0&A>>>0>0))return Q=0,w=b,Q|0;if((f|0)>=16)return Q=12,w=b,Q|0;E=0,D=0,B=0,o=0;A:for(;;){if(u=e+(E<<3)|0,s=r[u>>2]|0,u=r[u+4>>2]|0,h=P(s|0,u|0,52)|0,k()|0,(h&15|0)>(f|0)){o=12,s=11;break}if(Z2(Q,s,u,f),h=Q,u=r[h>>2]|0,h=r[h+4>>2]|0,(u|0)==0&(h|0)==0)s=B;else{s=B;do{if(!((o|0)<(l|0)|(o|0)==(l|0)&s>>>0<t>>>0)){s=10;break A}B=n+(s<<3)|0,r[B>>2]=u,r[B+4>>2]=h,s=W(s|0,o|0,1,0)|0,o=k()|0,J2(Q),B=Q,u=r[B>>2]|0,h=r[B+4>>2]|0}while(!((u|0)==0&(h|0)==0))}if(E=W(E|0,D|0,1,0)|0,D=k()|0,(D|0)<(i|0)|(D|0)==(i|0)&E>>>0<A>>>0)B=s;else{o=0,s=11;break}}return(s|0)==10?(Q=14,w=b,Q|0):(s|0)==11?(w=b,o|0):0}function qi(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;E=w,w=w+16|0,B=E;A:do if((i|0)>0|(i|0)==0&A>>>0>0){for(u=0,f=0,l=0,h=0;;){if(s=e+(u<<3)|0,o=r[s>>2]|0,s=r[s+4>>2]|0,!((o|0)==0&(s|0)==0)&&(s=(Z0(o,s,n,B)|0)==0,o=B,f=W(r[o>>2]|0,r[o+4>>2]|0,f|0,l|0)|0,l=k()|0,!s)){l=12;break}if(u=W(u|0,h|0,1,0)|0,h=k()|0,!((h|0)<(i|0)|(h|0)==(i|0)&u>>>0<A>>>0))break A}return w=E,l|0}else f=0,l=0;while(!1);return r[t>>2]=f,r[t+4>>2]=l,t=0,w=E,t|0}function ci(e,A){return e=e|0,A=A|0,A=P(e|0,A|0,52)|0,k()|0,A&1|0}function ZA(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;if(t=P(e|0,A|0,52)|0,k()|0,t=t&15,!t)return t=0,t|0;for(n=1;;){if(i=P(e|0,A|0,(15-n|0)*3|0)|0,k()|0,i=i&7,i|0){n=5;break}if(n>>>0<t>>>0)n=n+1|0;else{i=0,n=5;break}}return(n|0)==5?i|0:0}function Y2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0;if(s=P(e|0,A|0,52)|0,k()|0,s=s&15,!s)return o=A,s=e,iA(o|0),s|0;for(o=1,i=0;;){l=(15-o|0)*3|0,n=R(7,0,l|0)|0,t=k()|0,f=P(e|0,A|0,l|0)|0,k()|0,l=R(T0(f&7)|0,0,l|0)|0,f=k()|0,e=l|e&~n,A=f|A&~t;A:do if(!i)if((l&n|0)==0&(f&t|0)==0)i=0;else if(n=P(e|0,A|0,52)|0,k()|0,n=n&15,!n)i=1;else{i=1;e:for(;;){switch(f=P(e|0,A|0,(15-i|0)*3|0)|0,k()|0,f&7){case 1:break e;case 0:break;default:{i=1;break A}}if(i>>>0<n>>>0)i=i+1|0;else{i=1;break A}}for(i=1;;)if(f=(15-i|0)*3|0,t=P(e|0,A|0,f|0)|0,k()|0,l=R(7,0,f|0)|0,A=A&~(k()|0),f=R(T0(t&7)|0,0,f|0)|0,e=e&~l|f,A=A|(k()|0),i>>>0<n>>>0)i=i+1|0;else{i=1;break}}while(!1);if(o>>>0<s>>>0)o=o+1|0;else break}return iA(A|0),e|0}function L0(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0;if(n=P(e|0,A|0,52)|0,k()|0,n=n&15,!n)return i=A,n=e,iA(i|0),n|0;for(i=1;l=(15-i|0)*3|0,f=P(e|0,A|0,l|0)|0,k()|0,t=R(7,0,l|0)|0,A=A&~(k()|0),l=R(T0(f&7)|0,0,l|0)|0,e=l|e&~t,A=k()|0|A,i>>>0<n>>>0;)i=i+1|0;return iA(A|0),e|0}function $i(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0;if(s=P(e|0,A|0,52)|0,k()|0,s=s&15,!s)return o=A,s=e,iA(o|0),s|0;for(o=1,i=0;;){l=(15-o|0)*3|0,n=R(7,0,l|0)|0,t=k()|0,f=P(e|0,A|0,l|0)|0,k()|0,l=R(E0(f&7)|0,0,l|0)|0,f=k()|0,e=l|e&~n,A=f|A&~t;A:do if(!i)if((l&n|0)==0&(f&t|0)==0)i=0;else if(n=P(e|0,A|0,52)|0,k()|0,n=n&15,!n)i=1;else{i=1;e:for(;;){switch(f=P(e|0,A|0,(15-i|0)*3|0)|0,k()|0,f&7){case 1:break e;case 0:break;default:{i=1;break A}}if(i>>>0<n>>>0)i=i+1|0;else{i=1;break A}}for(i=1;;)if(t=(15-i|0)*3|0,l=R(7,0,t|0)|0,f=A&~(k()|0),A=P(e|0,A|0,t|0)|0,k()|0,A=R(E0(A&7)|0,0,t|0)|0,e=e&~l|A,A=f|(k()|0),i>>>0<n>>>0)i=i+1|0;else{i=1;break}}while(!1);if(o>>>0<s>>>0)o=o+1|0;else break}return iA(A|0),e|0}function j2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0;if(n=P(e|0,A|0,52)|0,k()|0,n=n&15,!n)return i=A,n=e,iA(i|0),n|0;for(i=1;f=(15-i|0)*3|0,l=R(7,0,f|0)|0,t=A&~(k()|0),A=P(e|0,A|0,f|0)|0,k()|0,A=R(E0(A&7)|0,0,f|0)|0,e=A|e&~l,A=k()|0|t,i>>>0<n>>>0;)i=i+1|0;return iA(A|0),e|0}function A1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(s=w,w=w+64|0,o=s+40|0,n=s+24|0,t=s+12|0,l=s,R(A|0,0,52)|0,i=k()|0|134225919,!A)return(r[e+4>>2]|0)>2||(r[e+8>>2]|0)>2||(r[e+12>>2]|0)>2?(f=0,o=0,iA(f|0),w=s,o|0):(R(Ce(e)|0,0,45)|0,f=k()|0|i,o=-1,iA(f|0),w=s,o|0);if(r[o>>2]=r[e>>2],r[o+4>>2]=r[e+4>>2],r[o+8>>2]=r[e+8>>2],r[o+12>>2]=r[e+12>>2],f=o+4|0,(A|0)>0)for(e=-1;r[n>>2]=r[f>>2],r[n+4>>2]=r[f+4>>2],r[n+8>>2]=r[f+8>>2],A&1?(Ii(f),r[t>>2]=r[f>>2],r[t+4>>2]=r[f+4>>2],r[t+8>>2]=r[f+8>>2],t2(t)):(Pe(f),r[t>>2]=r[f>>2],r[t+4>>2]=r[f+4>>2],r[t+8>>2]=r[f+8>>2],a0(t)),S2(n,t,l),YA(l),h=(15-A|0)*3|0,u=R(7,0,h|0)|0,i=i&~(k()|0),h=R(n2(l)|0,0,h|0)|0,e=h|e&~u,i=k()|0|i,(A|0)>1;)A=A+-1|0;else e=-1;A:do if((r[f>>2]|0)<=2&&(r[o+8>>2]|0)<=2&&(r[o+12>>2]|0)<=2){if(n=Ce(o)|0,A=R(n|0,0,45)|0,A=A|e,e=k()|0|i&-1040385,l=ki(o)|0,!(LA(n)|0)){if((l|0)<=0)break;for(t=0;;){if(n=P(A|0,e|0,52)|0,k()|0,n=n&15,n)for(i=1;h=(15-i|0)*3|0,o=P(A|0,e|0,h|0)|0,k()|0,u=R(7,0,h|0)|0,e=e&~(k()|0),h=R(T0(o&7)|0,0,h|0)|0,A=A&~u|h,e=e|(k()|0),i>>>0<n>>>0;)i=i+1|0;if(t=t+1|0,(t|0)==(l|0))break A}}t=P(A|0,e|0,52)|0,k()|0,t=t&15;e:do if(t){i=1;r:for(;;){switch(h=P(A|0,e|0,(15-i|0)*3|0)|0,k()|0,h&7){case 1:break r;case 0:break;default:break e}if(i>>>0<t>>>0)i=i+1|0;else break e}if(me(n,r[o>>2]|0)|0)for(i=1;o=(15-i|0)*3|0,u=R(7,0,o|0)|0,h=e&~(k()|0),e=P(A|0,e|0,o|0)|0,k()|0,e=R(E0(e&7)|0,0,o|0)|0,A=A&~u|e,e=h|(k()|0),i>>>0<t>>>0;)i=i+1|0;else for(i=1;h=(15-i|0)*3|0,o=P(A|0,e|0,h|0)|0,k()|0,u=R(7,0,h|0)|0,e=e&~(k()|0),h=R(T0(o&7)|0,0,h|0)|0,A=A&~u|h,e=e|(k()|0),i>>>0<t>>>0;)i=i+1|0}while(!1);if((l|0)>0){i=0;do A=Y2(A,e)|0,e=k()|0,i=i+1|0;while((i|0)!=(l|0))}}else A=0,e=0;while(!1);return u=e,h=A,iA(u|0),w=s,h|0}function A0(e){return e=e|0,(e|0)%2|0|0}function W2(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0;return t=w,w=w+16|0,n=t,A>>>0>15?(n=4,w=t,n|0):(r[e+4>>2]&2146435072|0)==2146435072||(r[e+8+4>>2]&2146435072|0)==2146435072?(n=3,w=t,n|0):(zi(e,A,n),A=A1(n,A)|0,n=k()|0,r[i>>2]=A,r[i+4>>2]=n,(A|0)==0&(n|0)==0&&q(27795,27122,1050,27145),n=0,w=t,n|0)}function K2(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;if(t=i+4|0,l=P(e|0,A|0,52)|0,k()|0,l=l&15,f=P(e|0,A|0,45)|0,k()|0,n=(l|0)==0,LA(f&127)|0){if(n)return f=1,f|0;n=1}else{if(n)return f=0,f|0;(r[t>>2]|0)==0&&(r[i+8>>2]|0)==0?n=(r[i+12>>2]|0)!=0&1:n=1}for(i=1;i&1?t2(t):a0(t),f=P(e|0,A|0,(15-i|0)*3|0)|0,k()|0,Ie(t,f&7),i>>>0<l>>>0;)i=i+1|0;return n|0}function H0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(h=w,w=w+16|0,s=h,u=P(e|0,A|0,45)|0,k()|0,u=u&127,u>>>0>121)return r[i>>2]=0,r[i+4>>2]=0,r[i+8>>2]=0,r[i+12>>2]=0,u=5,w=h,u|0;A:do if((LA(u)|0)!=0&&(l=P(e|0,A|0,52)|0,k()|0,l=l&15,(l|0)!=0)){n=1;e:for(;;){switch(o=P(e|0,A|0,(15-n|0)*3|0)|0,k()|0,o&7){case 5:break e;case 0:break;default:{n=A;break A}}if(n>>>0<l>>>0)n=n+1|0;else{n=A;break A}}for(t=1,n=A;A=(15-t|0)*3|0,f=R(7,0,A|0)|0,o=n&~(k()|0),n=P(e|0,n|0,A|0)|0,k()|0,n=R(E0(n&7)|0,0,A|0)|0,e=e&~f|n,n=o|(k()|0),t>>>0<l>>>0;)t=t+1|0}else n=A;while(!1);if(o=7696+(u*28|0)|0,r[i>>2]=r[o>>2],r[i+4>>2]=r[o+4>>2],r[i+8>>2]=r[o+8>>2],r[i+12>>2]=r[o+12>>2],!(K2(e,n,i)|0))return u=0,w=h,u|0;if(f=i+4|0,r[s>>2]=r[f>>2],r[s+4>>2]=r[f+4>>2],r[s+8>>2]=r[f+8>>2],l=P(e|0,n|0,52)|0,k()|0,o=l&15,l&1?(a0(f),l=o+1|0):l=o,!(LA(u)|0))n=0;else{A:do if(!o)n=0;else for(A=1;;){if(t=P(e|0,n|0,(15-A|0)*3|0)|0,k()|0,t=t&7,t|0){n=t;break A}if(A>>>0<o>>>0)A=A+1|0;else{n=0;break}}while(!1);n=(n|0)==4&1}if(!(S0(i,l,n,0)|0))(l|0)!=(o|0)&&(r[f>>2]=r[s>>2],r[f+4>>2]=r[s+4>>2],r[f+8>>2]=r[s+8>>2]);else{if(LA(u)|0)do;while((S0(i,l,0,0)|0)!=0);(l|0)!=(o|0)&&Pe(f)}return u=0,w=h,u|0}function P0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;return l=w,w=w+16|0,n=l,t=H0(e,A,n)|0,t|0?(w=l,t|0):(t=P(e|0,A|0,52)|0,k()|0,xi(n,t&15,i),t=0,w=l,t|0)}function d0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0;if(f=w,w=w+16|0,l=f,n=H0(e,A,l)|0,n|0)return l=n,w=f,l|0;n=P(e|0,A|0,45)|0,k()|0,n=(LA(n&127)|0)==0,t=P(e|0,A|0,52)|0,k()|0,t=t&15;A:do if(!n){if(t|0)for(n=1;;){if(o=R(7,0,(15-n|0)*3|0)|0,!((o&e|0)==0&((k()|0)&A|0)==0))break A;if(n>>>0<t>>>0)n=n+1|0;else break}return d2(l,t,0,5,i),o=0,w=f,o|0}while(!1);return z2(l,t,0,6,i),o=0,w=f,o|0}function e1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;if(t=P(e|0,A|0,45)|0,k()|0,!(LA(t&127)|0))return t=2,r[i>>2]=t,0;if(t=P(e|0,A|0,52)|0,k()|0,t=t&15,!t)return t=5,r[i>>2]=t,0;for(n=1;;){if(l=R(7,0,(15-n|0)*3|0)|0,!((l&e|0)==0&((k()|0)&A|0)==0)){n=2,e=6;break}if(n>>>0<t>>>0)n=n+1|0;else{n=5,e=6;break}}return(e|0)==6&&(r[i>>2]=n),0}function Ue(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0;B=w,w=w+128|0,u=B+112|0,l=B+96|0,h=B,t=P(e|0,A|0,52)|0,k()|0,o=t&15,r[u>>2]=o,f=P(e|0,A|0,45)|0,k()|0,f=f&127;A:do if(LA(f)|0){if(o|0)for(n=1;;){if(s=R(7,0,(15-n|0)*3|0)|0,!((s&e|0)==0&((k()|0)&A|0)==0)){t=0;break A}if(n>>>0<o>>>0)n=n+1|0;else break}if(t&1)t=1;else return s=R(o+1|0,0,52)|0,h=k()|0|A&-15728641,u=R(7,0,(14-o|0)*3|0)|0,h=Ue((s|e)&~u,h&~(k()|0),i)|0,w=B,h|0}else t=0;while(!1);if(n=H0(e,A,l)|0,!n){t?(Oe(l,u,h),s=5):(Se(l,u,h),s=6);A:do if(LA(f)|0)if(!o)e=5;else for(n=1;;){if(f=R(7,0,(15-n|0)*3|0)|0,!((f&e|0)==0&((k()|0)&A|0)==0)){e=2;break A}if(n>>>0<o>>>0)n=n+1|0;else{e=5;break}}else e=2;while(!1);C0(i|0,-1,e<<2|0)|0;A:do if(t)for(l=0;;){if(f=h+(l<<4)|0,Yi(f,r[u>>2]|0)|0,f=r[f>>2]|0,o=r[i>>2]|0,(o|0)==-1|(o|0)==(f|0))n=i;else{t=0;do{if(t=t+1|0,t>>>0>=e>>>0){n=1;break A}n=i+(t<<2)|0,o=r[n>>2]|0}while(!((o|0)==-1|(o|0)==(f|0)))}if(r[n>>2]=f,l=l+1|0,l>>>0>=s>>>0){n=0;break}}else for(l=0;;){if(f=h+(l<<4)|0,S0(f,r[u>>2]|0,0,1)|0,f=r[f>>2]|0,o=r[i>>2]|0,(o|0)==-1|(o|0)==(f|0))n=i;else{t=0;do{if(t=t+1|0,t>>>0>=e>>>0){n=1;break A}n=i+(t<<2)|0,o=r[n>>2]|0}while(!((o|0)==-1|(o|0)==(f|0)))}if(r[n>>2]=f,l=l+1|0,l>>>0>=s>>>0){n=0;break}}while(!1)}return h=n,w=B,h|0}function r1(){return 12}function V2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0;if(e>>>0>15)return o=4,o|0;if(R(e|0,0,52)|0,o=k()|0|134225919,!e){i=0,n=0;do LA(n)|0&&(R(n|0,0,45)|0,f=o|(k()|0),e=A+(i<<3)|0,r[e>>2]=-1,r[e+4>>2]=f,i=i+1|0),n=n+1|0;while((n|0)!=122);return i=0,i|0}i=0,f=0;do{if(LA(f)|0){for(R(f|0,0,45)|0,n=1,t=-1,l=o|(k()|0);s=R(7,0,(15-n|0)*3|0)|0,t=t&~s,l=l&~(k()|0),(n|0)!=(e|0);)n=n+1|0;s=A+(i<<3)|0,r[s>>2]=t,r[s+4>>2]=l,i=i+1|0}f=f+1|0}while((f|0)!=122);return i=0,i|0}function i1(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0;if(M=w,w=w+16|0,m=M,a=P(e|0,A|0,52)|0,k()|0,a=a&15,i>>>0>15)return a=4,w=M,a|0;if((a|0)<(i|0))return a=12,w=M,a|0;if((a|0)!=(i|0))if(l=R(i|0,0,52)|0,l=l|e,o=k()|0|A&-15728641,(a|0)>(i|0)){s=i;do b=R(7,0,(14-s|0)*3|0)|0,s=s+1|0,l=b|l,o=k()|0|o;while((s|0)<(a|0));b=l}else b=l;else b=e,o=A;Q=P(b|0,o|0,45)|0,k()|0;A:do if(LA(Q&127)|0){if(s=P(b|0,o|0,52)|0,k()|0,s=s&15,s|0)for(l=1;;){if(Q=R(7,0,(15-l|0)*3|0)|0,!((Q&b|0)==0&((k()|0)&o|0)==0)){u=33;break A}if(l>>>0<s>>>0)l=l+1|0;else break}if(Q=n,r[Q>>2]=0,r[Q+4>>2]=0,(a|0)>(i|0)){for(Q=A&-15728641,D=a;;){if(E=D,D=D+-1|0,D>>>0>15|(a|0)<(D|0)){u=19;break}if((a|0)!=(D|0))if(l=R(D|0,0,52)|0,l=l|e,s=k()|0|Q,(a|0)<(E|0))B=l;else{u=D;do B=R(7,0,(14-u|0)*3|0)|0,u=u+1|0,l=B|l,s=k()|0|s;while((u|0)<(a|0));B=l}else B=e,s=A;if(h=P(B|0,s|0,45)|0,k()|0,!(LA(h&127)|0))l=0;else{h=P(B|0,s|0,52)|0,k()|0,h=h&15;e:do if(!h)l=0;else for(u=1;;){if(l=P(B|0,s|0,(15-u|0)*3|0)|0,k()|0,l=l&7,l|0)break e;if(u>>>0<h>>>0)u=u+1|0;else{l=0;break}}while(!1);l=(l|0)==0&1}if(s=P(e|0,A|0,(15-E|0)*3|0)|0,k()|0,s=s&7,(s|0)==7){t=5,u=42;break}if(l=(l|0)!=0,(s|0)==1&l){t=5,u=42;break}if(B=s+(((s|0)!=0&l)<<31>>31)|0,B|0&&(u=a-E|0,u=D0(7,0,u,((u|0)<0)<<31>>31)|0,h=k()|0,l?(l=HA(u|0,h|0,5,0)|0,l=W(l|0,k()|0,-5,-1)|0,l=b0(l|0,k()|0,6,0)|0,l=W(l|0,k()|0,1,0)|0,s=k()|0):(l=u,s=h),E=B+-1|0,E=HA(u|0,h|0,E|0,((E|0)<0)<<31>>31|0)|0,E=W(l|0,s|0,E|0,k()|0)|0,B=k()|0,h=n,h=W(E|0,B|0,r[h>>2]|0,r[h+4>>2]|0)|0,B=k()|0,E=n,r[E>>2]=h,r[E+4>>2]=B),(D|0)<=(i|0)){u=37;break}}if((u|0)==19)q(27795,27122,1367,27158);else if((u|0)==37){f=n,t=r[f+4>>2]|0,f=r[f>>2]|0;break}else if((u|0)==42)return w=M,t|0}else t=0,f=0}else u=33;while(!1);A:do if((u|0)==33)if(Q=n,r[Q>>2]=0,r[Q+4>>2]=0,(a|0)>(i|0)){for(l=a;;){if(t=P(e|0,A|0,(15-l|0)*3|0)|0,k()|0,t=t&7,(t|0)==7){t=5;break}if(f=a-l|0,f=D0(7,0,f,((f|0)<0)<<31>>31)|0,t=HA(f|0,k()|0,t|0,0)|0,f=k()|0,Q=n,f=W(r[Q>>2]|0,r[Q+4>>2]|0,t|0,f|0)|0,t=k()|0,Q=n,r[Q>>2]=f,r[Q+4>>2]=t,l=l+-1|0,(l|0)<=(i|0))break A}return w=M,t|0}else t=0,f=0;while(!1);return Z0(b,o,a,m)|0&&q(27795,27122,1327,27173),a=m,m=r[a+4>>2]|0,((t|0)>-1|(t|0)==-1&f>>>0>4294967295)&((m|0)>(t|0)|((m|0)==(t|0)?(r[a>>2]|0)>>>0>f>>>0:0))?(a=0,w=M,a|0):(q(27795,27122,1407,27158),0)}function n1(e,A,i,n,t,l){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0;var f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0;if(B=w,w=w+16|0,f=B,t>>>0>15)return l=4,w=B,l|0;if(o=P(i|0,n|0,52)|0,k()|0,o=o&15,(o|0)>(t|0))return l=12,w=B,l|0;if(Z0(i,n,t,f)|0&&q(27795,27122,1327,27173),h=f,u=r[h+4>>2]|0,!(((A|0)>-1|(A|0)==-1&e>>>0>4294967295)&((u|0)>(A|0)|((u|0)==(A|0)?(r[h>>2]|0)>>>0>e>>>0:0))))return l=2,w=B,l|0;h=t-o|0,t=R(t|0,0,52)|0,s=k()|0|n&-15728641,u=l,r[u>>2]=t|i,r[u+4>>2]=s,u=P(i|0,n|0,45)|0,k()|0;A:do if(LA(u&127)|0){if(o|0)for(f=1;;){if(u=R(7,0,(15-f|0)*3|0)|0,!((u&i|0)==0&((k()|0)&n|0)==0))break A;if(f>>>0<o>>>0)f=f+1|0;else break}if((h|0)<1)return l=0,w=B,l|0;for(u=o^15,n=-1,s=1,f=1;;){o=h-s|0,o=D0(7,0,o,((o|0)<0)<<31>>31)|0,i=k()|0;do if(f)if(f=HA(o|0,i|0,5,0)|0,f=W(f|0,k()|0,-5,-1)|0,f=b0(f|0,k()|0,6,0)|0,t=k()|0,(A|0)>(t|0)|(A|0)==(t|0)&e>>>0>f>>>0){A=W(e|0,A|0,-1,-1)|0,A=SA(A|0,k()|0,f|0,t|0)|0,f=k()|0,E=l,Q=r[E>>2]|0,E=r[E+4>>2]|0,b=(u+n|0)*3|0,D=R(7,0,b|0)|0,E=E&~(k()|0),n=b0(A|0,f|0,o|0,i|0)|0,e=k()|0,t=W(n|0,e|0,2,0)|0,b=R(t|0,k()|0,b|0)|0,E=k()|0|E,t=l,r[t>>2]=b|Q&~D,r[t+4>>2]=E,e=HA(n|0,e|0,o|0,i|0)|0,e=SA(A|0,f|0,e|0,k()|0)|0,f=0,A=k()|0;break}else{b=l,D=r[b>>2]|0,b=r[b+4>>2]|0,Q=R(7,0,(u+n|0)*3|0)|0,b=b&~(k()|0),f=l,r[f>>2]=D&~Q,r[f+4>>2]=b,f=1;break}else D=l,t=r[D>>2]|0,D=r[D+4>>2]|0,n=(u+n|0)*3|0,E=R(7,0,n|0)|0,D=D&~(k()|0),b=b0(e|0,A|0,o|0,i|0)|0,f=k()|0,n=R(b|0,f|0,n|0)|0,D=k()|0|D,Q=l,r[Q>>2]=n|t&~E,r[Q+4>>2]=D,f=HA(b|0,f|0,o|0,i|0)|0,e=SA(e|0,A|0,f|0,k()|0)|0,f=0,A=k()|0;while(!1);if((h|0)>(s|0))n=~s,s=s+1|0;else{A=0;break}}return w=B,A|0}while(!1);if((h|0)<1)return b=0,w=B,b|0;for(t=o^15,f=1;;)if(Q=h-f|0,Q=D0(7,0,Q,((Q|0)<0)<<31>>31)|0,b=k()|0,s=l,i=r[s>>2]|0,s=r[s+4>>2]|0,o=(t-f|0)*3|0,n=R(7,0,o|0)|0,s=s&~(k()|0),E=b0(e|0,A|0,Q|0,b|0)|0,D=k()|0,o=R(E|0,D|0,o|0)|0,s=k()|0|s,u=l,r[u>>2]=o|i&~n,r[u+4>>2]=s,b=HA(E|0,D|0,Q|0,b|0)|0,e=SA(e|0,A|0,b|0,k()|0)|0,A=k()|0,(h|0)<=(f|0)){A=0;break}else f=f+1|0;return w=B,A|0}function Z2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0;t=P(A|0,i|0,52)|0,k()|0,t=t&15,(A|0)==0&(i|0)==0|((n|0)>15|(t|0)>(n|0))?(l=-1,A=-1,i=0,t=0):(A=de(A,i,t+1|0,n)|0,f=(k()|0)&-15728641,i=R(n|0,0,52)|0,i=A|i,f=f|(k()|0),A=(TA(i,f)|0)==0,l=t,A=A?-1:n,t=f),f=e,r[f>>2]=i,r[f+4>>2]=t,r[e+8>>2]=l,r[e+12>>2]=A}function Ne(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0;if(t=P(e|0,A|0,52)|0,k()|0,t=t&15,l=n+8|0,r[l>>2]=t,(e|0)==0&(A|0)==0|((i|0)>15|(t|0)>(i|0))){i=n,r[i>>2]=0,r[i+4>>2]=0,r[l>>2]=-1,r[n+12>>2]=-1;return}if(e=de(e,A,t+1|0,i)|0,l=(k()|0)&-15728641,t=R(i|0,0,52)|0,t=e|t,l=l|(k()|0),e=n,r[e>>2]=t,r[e+4>>2]=l,e=n+12|0,TA(t,l)|0){r[e>>2]=i;return}else{r[e>>2]=-1;return}}function J2(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0;if(i=e,A=r[i>>2]|0,i=r[i+4>>2]|0,!((A|0)==0&(i|0)==0)&&(n=P(A|0,i|0,52)|0,k()|0,n=n&15,o=R(1,0,(n^15)*3|0)|0,A=W(o|0,k()|0,A|0,i|0)|0,i=k()|0,o=e,r[o>>2]=A,r[o+4>>2]=i,o=e+8|0,f=r[o>>2]|0,!((n|0)<(f|0)))){for(s=e+12|0,l=n;;){if((l|0)==(f|0)){n=5;break}if(u=(l|0)==(r[s>>2]|0),t=(15-l|0)*3|0,n=P(A|0,i|0,t|0)|0,k()|0,n=n&7,u&((n|0)==1&!0)){n=7;break}if(!((n|0)==7&!0)){n=10;break}if(u=R(1,0,t|0)|0,A=W(A|0,i|0,u|0,k()|0)|0,i=k()|0,u=e,r[u>>2]=A,r[u+4>>2]=i,(l|0)>(f|0))l=l+-1|0;else{n=10;break}}if((n|0)==5){u=e,r[u>>2]=0,r[u+4>>2]=0,r[o>>2]=-1,r[s>>2]=-1;return}else if((n|0)==7){f=R(1,0,t|0)|0,f=W(A|0,i|0,f|0,k()|0)|0,o=k()|0,u=e,r[u>>2]=f,r[u+4>>2]=o,r[s>>2]=l+-1;return}else if((n|0)==10)return}}function J0(e){e=+e;var A=0;return A=e<0?e+6.283185307179586:e,+(e>=6.283185307179586?A+-6.283185307179586:A)}function z0(e,A){return e=e|0,A=A|0,+uA(+(+g[e>>3]-+g[A>>3]))<17453292519943298e-27?(A=+uA(+(+g[e+8>>3]-+g[A+8>>3]))<17453292519943298e-27,A|0):(A=0,A|0)}function qA(e,A){switch(e=+e,A=A|0,A|0){case 1:{e=e<0?e+6.283185307179586:e;break}case 2:{e=e>0?e+-6.283185307179586:e;break}}return+e}function t1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;return t=+g[A>>3],n=+g[e>>3],l=+hA(+((t-n)*.5)),i=+hA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+bA(+t)*+bA(+n)*i),+(+$A(+ +EA(+i),+ +EA(+(1-i)))*2)}function X0(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;return t=+g[A>>3],n=+g[e>>3],l=+hA(+((t-n)*.5)),i=+hA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+bA(+t)*+bA(+n)*i),+(+$A(+ +EA(+i),+ +EA(+(1-i)))*2*6371.007180918475)}function l1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;return t=+g[A>>3],n=+g[e>>3],l=+hA(+((t-n)*.5)),i=+hA(+((+g[A+8>>3]-+g[e+8>>3])*.5)),i=l*l+i*(+bA(+t)*+bA(+n)*i),+(+$A(+ +EA(+i),+ +EA(+(1-i)))*2*6371.007180918475*1e3)}function f1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0;return l=+g[A>>3],n=+bA(+l),t=+g[A+8>>3]-+g[e+8>>3],f=n*+hA(+t),i=+g[e>>3],+ +$A(+f,+(+hA(+l)*+bA(+i)-+bA(+t)*(n*+hA(+i))))}function o1(e,A,i,n){e=e|0,A=+A,i=+i,n=n|0;var t=0,l=0,f=0,o=0;if(i<1e-16){r[n>>2]=r[e>>2],r[n+4>>2]=r[e+4>>2],r[n+8>>2]=r[e+8>>2],r[n+12>>2]=r[e+12>>2];return}l=A<0?A+6.283185307179586:A,l=A>=6.283185307179586?l+-6.283185307179586:l;do if(l<1e-16)A=+g[e>>3]+i,g[n>>3]=A,t=n;else{if(t=+uA(+(l+-3.141592653589793))<1e-16,A=+g[e>>3],t){A=A-i,g[n>>3]=A,t=n;break}if(f=+bA(+i),i=+hA(+i),A=f*+hA(+A)+ +bA(+l)*(i*+bA(+A)),A=A>1?1:A,A=+qr(+(A<-1?-1:A)),g[n>>3]=A,+uA(+(A+-1.5707963267948966))<1e-16){g[n>>3]=1.5707963267948966,g[n+8>>3]=0;return}if(+uA(+(A+1.5707963267948966))<1e-16){g[n>>3]=-1.5707963267948966,g[n+8>>3]=0;return}if(o=1/+bA(+A),l=i*+hA(+l)*o,i=+g[e>>3],A=o*((f-+hA(+A)*+hA(+i))/+bA(+i)),f=l>1?1:l,A=A>1?1:A,A=+g[e+8>>3]+ +$A(+(f<-1?-1:f),+(A<-1?-1:A)),A>3.141592653589793)do A=A+-6.283185307179586;while(A>3.141592653589793);if(A<-3.141592653589793)do A=A+6.283185307179586;while(A<-3.141592653589793);g[n+8>>3]=A;return}while(!1);if(+uA(+(A+-1.5707963267948966))<1e-16){g[t>>3]=1.5707963267948966,g[n+8>>3]=0;return}if(+uA(+(A+1.5707963267948966))<1e-16){g[t>>3]=-1.5707963267948966,g[n+8>>3]=0;return}if(A=+g[e+8>>3],A>3.141592653589793)do A=A+-6.283185307179586;while(A>3.141592653589793);if(A<-3.141592653589793)do A=A+6.283185307179586;while(A<-3.141592653589793);g[n+8>>3]=A}function xe(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20656+(e<<3)>>3],A=0,A|0)}function s1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20784+(e<<3)>>3],A=0,A|0)}function u1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[20912+(e<<3)>>3],A=0,A|0)}function h1(e,A){return e=e|0,A=A|0,e>>>0>15?(A=4,A|0):(g[A>>3]=+g[21040+(e<<3)>>3],A=0,A|0)}function o2(e,A){e=e|0,A=A|0;var i=0;return e>>>0>15?(A=4,A|0):(i=D0(7,0,e,((e|0)<0)<<31>>31)|0,i=HA(i|0,k()|0,120,0)|0,e=k()|0,r[A>>2]=i|2,r[A+4>>2]=e,A=0,A|0)}function Ye(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;return E=+g[A>>3],h=+g[e>>3],s=+hA(+((E-h)*.5)),l=+g[A+8>>3],u=+g[e+8>>3],f=+hA(+((l-u)*.5)),o=+bA(+h),B=+bA(+E),f=s*s+f*(B*o*f),f=+$A(+ +EA(+f),+ +EA(+(1-f)))*2,s=+g[i>>3],E=+hA(+((s-E)*.5)),n=+g[i+8>>3],l=+hA(+((n-l)*.5)),t=+bA(+s),l=E*E+l*(B*t*l),l=+$A(+ +EA(+l),+ +EA(+(1-l)))*2,s=+hA(+((h-s)*.5)),n=+hA(+((u-n)*.5)),n=s*s+n*(o*t*n),n=+$A(+ +EA(+n),+ +EA(+(1-n)))*2,t=(f+l+n)*.5,+(+P2(+ +EA(+(+cA(+(t*.5))*+cA(+((t-f)*.5))*+cA(+((t-l)*.5))*+cA(+((t-n)*.5)))))*4)}function X2(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0;if(o=w,w=w+192|0,l=o+168|0,f=o,t=P0(e,A,l)|0,t|0)return i=t,w=o,i|0;if(d0(e,A,f)|0&&q(27795,27190,415,27199),A=r[f>>2]|0,(A|0)>0){if(n=+Ye(f+8|0,f+8+(((A|0)!=1&1)<<4)|0,l)+0,(A|0)!=1){e=1;do t=e,e=e+1|0,n=n+ +Ye(f+8+(t<<4)|0,f+8+(((e|0)%(A|0)|0)<<4)|0,l);while((e|0)<(A|0))}}else n=0;return g[i>>3]=n,i=0,w=o,i|0}function g1(e,A,i){return e=e|0,A=A|0,i=i|0,e=X2(e,A,i)|0,e|0||(g[i>>3]=+g[i>>3]*6371.007180918475*6371.007180918475),e|0}function w1(e,A,i){return e=e|0,A=A|0,i=i|0,e=X2(e,A,i)|0,e|0||(g[i>>3]=+g[i>>3]*6371.007180918475*6371.007180918475*1e3*1e3),e|0}function B1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(o=w,w=w+176|0,f=o,e=f2(e,A,f)|0,e|0)return f=e,w=o,f|0;if(g[i>>3]=0,e=r[f>>2]|0,(e|0)<=1)return f=0,w=o,f|0;A=e+-1|0,e=0,n=+g[f+8>>3],t=+g[f+16>>3],l=0;do e=e+1|0,u=n,n=+g[f+8+(e<<4)>>3],h=+hA(+((n-u)*.5)),s=t,t=+g[f+8+(e<<4)+8>>3],s=+hA(+((t-s)*.5)),s=h*h+s*(+bA(+n)*+bA(+u)*s),l=l+ +$A(+ +EA(+s),+ +EA(+(1-s)))*2;while((e|0)<(A|0));return g[i>>3]=l,f=0,w=o,f|0}function k1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(o=w,w=w+176|0,f=o,e=f2(e,A,f)|0,e|0)return f=e,l=+g[i>>3],l=l*6371.007180918475,g[i>>3]=l,w=o,f|0;if(g[i>>3]=0,e=r[f>>2]|0,(e|0)<=1)return f=0,l=0,l=l*6371.007180918475,g[i>>3]=l,w=o,f|0;A=e+-1|0,e=0,n=+g[f+8>>3],t=+g[f+16>>3],l=0;do e=e+1|0,u=n,n=+g[f+8+(e<<4)>>3],h=+hA(+((n-u)*.5)),s=t,t=+g[f+8+(e<<4)+8>>3],s=+hA(+((t-s)*.5)),s=h*h+s*(+bA(+u)*+bA(+n)*s),l=l+ +$A(+ +EA(+s),+ +EA(+(1-s)))*2;while((e|0)!=(A|0));return g[i>>3]=l,f=0,h=l,h=h*6371.007180918475,g[i>>3]=h,w=o,f|0}function v1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(o=w,w=w+176|0,f=o,e=f2(e,A,f)|0,e|0)return f=e,l=+g[i>>3],l=l*6371.007180918475,l=l*1e3,g[i>>3]=l,w=o,f|0;if(g[i>>3]=0,e=r[f>>2]|0,(e|0)<=1)return f=0,l=0,l=l*6371.007180918475,l=l*1e3,g[i>>3]=l,w=o,f|0;A=e+-1|0,e=0,n=+g[f+8>>3],t=+g[f+16>>3],l=0;do e=e+1|0,u=n,n=+g[f+8+(e<<4)>>3],h=+hA(+((n-u)*.5)),s=t,t=+g[f+8+(e<<4)+8>>3],s=+hA(+((t-s)*.5)),s=h*h+s*(+bA(+u)*+bA(+n)*s),l=l+ +$A(+ +EA(+s),+ +EA(+(1-s)))*2;while((e|0)!=(A|0));return g[i>>3]=l,f=0,h=l,h=h*6371.007180918475,h=h*1e3,g[i>>3]=h,w=o,f|0}function E1(e){e=e|0;var A=0,i=0,n=0;return A=JA(1,12)|0,A||q(27280,27235,49,27293),i=e+4|0,n=r[i>>2]|0,n|0?(n=n+8|0,r[n>>2]=A,r[i>>2]=A,A|0):(r[e>>2]|0&&q(27310,27235,61,27333),n=e,r[n>>2]=A,r[i>>2]=A,A|0)}function D1(e,A){e=e|0,A=A|0;var i=0,n=0;return n=l0(24)|0,n||q(27347,27235,78,27361),r[n>>2]=r[A>>2],r[n+4>>2]=r[A+4>>2],r[n+8>>2]=r[A+8>>2],r[n+12>>2]=r[A+12>>2],r[n+16>>2]=0,A=e+4|0,i=r[A>>2]|0,i|0?(r[i+16>>2]=n,r[A>>2]=n,n|0):(r[e>>2]|0&&q(27376,27235,82,27361),r[e>>2]=n,r[A>>2]=n,n|0)}function je(e){e=e|0;var A=0,i=0,n=0,t=0;if(e)for(n=1;;){if(A=r[e>>2]|0,A|0)do{if(i=r[A>>2]|0,i|0)do t=i,i=r[i+16>>2]|0,K(t);while((i|0)!=0);t=A,A=r[A+8>>2]|0,K(t)}while((A|0)!=0);if(A=e,e=r[e+8>>2]|0,n||K(A),e)n=0;else break}}function Q1(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0,nA=0,gA=0,X=0,Y=0,O=0,oA=0,MA=0,tA=0;if(t=e+8|0,r[t>>2]|0)return tA=1,tA|0;if(n=r[e>>2]|0,!n)return tA=0,tA|0;A=n,i=0;do i=i+1|0,A=r[A+8>>2]|0;while((A|0)!=0);if(i>>>0<2)return tA=0,tA|0;oA=l0(i<<2)|0,oA||q(27396,27235,317,27415),O=l0(i<<5)|0,O||q(27437,27235,321,27415),r[e>>2]=0,x=e+4|0,r[x>>2]=0,r[t>>2]=0,i=0,Y=0,S=0,B=0;A:for(;;){if(h=r[n>>2]|0,h){l=0,f=h;do{if(s=+g[f+8>>3],A=f,f=r[f+16>>2]|0,u=(f|0)==0,t=u?h:f,o=+g[t+8>>3],+uA(+(s-o))>3.141592653589793){tA=14;break}l=l+(o-s)*(+g[A>>3]+ +g[t>>3])}while(!u);if((tA|0)==14){tA=0,l=0,A=h;do C=+g[A+8>>3],X=A+16|0,gA=r[X>>2]|0,gA=(gA|0)==0?h:gA,_=+g[gA+8>>3],l=l+(+g[A>>3]+ +g[gA>>3])*((_<0?_+6.283185307179586:_)-(C<0?C+6.283185307179586:C)),A=r[((A|0)==0?n:X)>>2]|0;while((A|0)!=0)}l>0?(r[oA+(Y<<2)>>2]=n,Y=Y+1|0,t=S,A=B):tA=19}else tA=19;if((tA|0)==19){tA=0;do if(i){if(A=i+8|0,r[A>>2]|0){tA=21;break A}if(i=JA(1,12)|0,!i){tA=23;break A}r[A>>2]=i,t=i+4|0,f=i,A=B}else if(B){t=x,f=B+8|0,A=n,i=e;break}else if(r[e>>2]|0){tA=27;break A}else{t=x,f=e,A=n,i=e;break}while(!1);if(r[f>>2]=n,r[t>>2]=n,f=O+(S<<5)|0,u=r[n>>2]|0,u){for(h=O+(S<<5)+8|0,g[h>>3]=17976931348623157e292,B=O+(S<<5)+24|0,g[B>>3]=17976931348623157e292,g[f>>3]=-17976931348623157e292,E=O+(S<<5)+16|0,g[E>>3]=-17976931348623157e292,a=17976931348623157e292,M=-17976931348623157e292,t=0,D=u,s=17976931348623157e292,b=17976931348623157e292,m=-17976931348623157e292,o=-17976931348623157e292;l=+g[D>>3],C=+g[D+8>>3],D=r[D+16>>2]|0,Q=(D|0)==0,_=+g[(Q?u:D)+8>>3],l<s&&(g[h>>3]=l,s=l),C<b&&(g[B>>3]=C,b=C),l>m?g[f>>3]=l:l=m,C>o&&(g[E>>3]=C,o=C),a=C>0&C<a?C:a,M=C<0&C>M?C:M,t=t|+uA(+(C-_))>3.141592653589793,!Q;)m=l;t&&(g[E>>3]=M,g[B>>3]=a)}else r[f>>2]=0,r[f+4>>2]=0,r[f+8>>2]=0,r[f+12>>2]=0,r[f+16>>2]=0,r[f+20>>2]=0,r[f+24>>2]=0,r[f+28>>2]=0;t=S+1|0}if(X=n+8|0,n=r[X>>2]|0,r[X>>2]=0,n)S=t,B=A;else{tA=45;break}}if((tA|0)==21)q(27213,27235,35,27247);else if((tA|0)==23)q(27267,27235,37,27247);else if((tA|0)==27)q(27310,27235,61,27333);else if((tA|0)==45){A:do if((Y|0)>0){for(X=(t|0)==0,nA=t<<2,gA=(e|0)==0,eA=0,A=0;;){if(U=r[oA+(eA<<2)>>2]|0,X)tA=73;else{if(S=l0(nA)|0,!S){tA=50;break}if(x=l0(nA)|0,!x){tA=52;break}e:do if(gA)i=0;else{for(t=0,i=0,f=e;n=O+(t<<5)|0,We(r[f>>2]|0,n,r[U>>2]|0)|0?(r[S+(i<<2)>>2]=f,r[x+(i<<2)>>2]=n,Q=i+1|0):Q=i,f=r[f+8>>2]|0,f;)t=t+1|0,i=Q;if((Q|0)>0)if(n=r[S>>2]|0,(Q|0)==1)i=n;else for(E=0,D=-1,i=n,B=n;;){for(u=r[B>>2]|0,n=0,f=0;t=r[r[S+(f<<2)>>2]>>2]|0,(t|0)==(u|0)?h=n:h=n+((We(t,r[x+(f<<2)>>2]|0,r[u>>2]|0)|0)&1)|0,f=f+1|0,(f|0)!=(Q|0);)n=h;if(t=(h|0)>(D|0),i=t?B:i,n=E+1|0,(n|0)==(Q|0))break e;E=n,D=t?h:D,B=r[S+(n<<2)>>2]|0}else i=0}while(!1);if(K(S),K(x),i){if(t=i+4|0,n=r[t>>2]|0,n)i=n+8|0;else if(r[i>>2]|0){tA=70;break}r[i>>2]=U,r[t>>2]=U}else tA=73}if((tA|0)==73){if(tA=0,A=r[U>>2]|0,A|0)do x=A,A=r[A+16>>2]|0,K(x);while((A|0)!=0);K(U),A=1}if(eA=eA+1|0,(eA|0)>=(Y|0)){MA=A;break A}}(tA|0)==50?q(27452,27235,249,27471):(tA|0)==52?q(27490,27235,252,27471):(tA|0)==70&&q(27310,27235,61,27333)}else MA=0;while(!1);return K(oA),K(O),tA=MA,tA|0}return 0}function We(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(!(R2(A,i)|0)||(A=_e(A)|0,n=+g[i>>3],t=+g[i+8>>3],t=A&t<0?t+6.283185307179586:t,e=r[e>>2]|0,!e))return e=0,e|0;if(A){A=0,u=t,i=e;A:for(;;){for(;f=+g[i>>3],t=+g[i+8>>3],i=i+16|0,h=r[i>>2]|0,h=(h|0)==0?e:h,l=+g[h>>3],o=+g[h+8>>3],f>l?(s=f,f=o):(s=l,l=f,f=t,t=o),n=n==l|n==s?n+2220446049250313e-31:n,!!(n<l|n>s);)if(i=r[i>>2]|0,!i){i=22;break A}if(o=f<0?f+6.283185307179586:f,f=t<0?t+6.283185307179586:t,u=o==u|f==u?u+-2220446049250313e-31:u,s=o+(f-o)*((n-l)/(s-l)),(s<0?s+6.283185307179586:s)>u&&(A=A^1),i=r[i>>2]|0,!i){i=22;break}}if((i|0)==22)return A|0}else{A=0,u=t,i=e;A:for(;;){for(;f=+g[i>>3],t=+g[i+8>>3],i=i+16|0,h=r[i>>2]|0,h=(h|0)==0?e:h,l=+g[h>>3],o=+g[h+8>>3],f>l?(s=f,f=o):(s=l,l=f,f=t,t=o),n=n==l|n==s?n+2220446049250313e-31:n,!!(n<l|n>s);)if(i=r[i>>2]|0,!i){i=22;break A}if(u=f==u|t==u?u+-2220446049250313e-31:u,f+(t-f)*((n-l)/(s-l))>u&&(A=A^1),i=r[i>>2]|0,!i){i=22;break}}if((i|0)==22)return A|0}return 0}function w0(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0;if(M=w,w=w+32|0,a=M+16|0,m=M,l=P(e|0,A|0,52)|0,k()|0,l=l&15,D=P(i|0,n|0,52)|0,k()|0,(l|0)!=(D&15|0))return a=12,w=M,a|0;if(u=P(e|0,A|0,45)|0,k()|0,u=u&127,h=P(i|0,n|0,45)|0,k()|0,h=h&127,u>>>0>121|h>>>0>121)return a=5,w=M,a|0;if(D=(u|0)!=(h|0),D){if(o=G2(u,h)|0,(o|0)==7)return a=1,w=M,a|0;s=G2(h,u)|0,(s|0)==7?q(27514,27538,161,27548):(Q=o,f=s)}else Q=0,f=0;B=LA(u)|0,E=LA(h)|0,r[a>>2]=0,r[a+4>>2]=0,r[a+8>>2]=0,r[a+12>>2]=0;do if(Q){if(h=r[4272+(u*28|0)+(Q<<2)>>2]|0,o=(h|0)>0,E)if(o){u=0,s=i,o=n;do s=$i(s,o)|0,o=k()|0,f=E0(f)|0,(f|0)==1&&(f=E0(1)|0),u=u+1|0;while((u|0)!=(h|0));h=f,u=s,s=o}else h=f,u=i,s=n;else if(o){u=0,s=i,o=n;do s=j2(s,o)|0,o=k()|0,f=E0(f)|0,u=u+1|0;while((u|0)!=(h|0));h=f,u=s,s=o}else h=f,u=i,s=n;if(K2(u,s,a)|0,D||q(27563,27538,191,27548),o=(B|0)!=0,f=(E|0)!=0,o&f&&q(27590,27538,192,27548),o){if(f=ZA(e,A)|0,(f|0)==7){l=5;break}if(p[22e3+(f*7|0)+Q>>0]|0){l=1;break}s=r[21168+(f*28|0)+(Q<<2)>>2]|0,u=s}else if(f){if(f=ZA(u,s)|0,(f|0)==7){l=5;break}if(p[22e3+(f*7|0)+h>>0]|0){l=1;break}u=0,s=r[21168+(h*28|0)+(f<<2)>>2]|0}else u=0,s=0;if((u|s|0)<0)l=5;else{if((s|0)>0){o=a+4|0,f=0;do l2(o),f=f+1|0;while((f|0)!=(s|0))}if(r[m>>2]=0,r[m+4>>2]=0,r[m+8>>2]=0,Ie(m,Q),l|0)for(;A0(l)|0?t2(m):a0(m),(l|0)>1;)l=l+-1|0;if((u|0)>0){l=0;do l2(m),l=l+1|0;while((l|0)!=(u|0))}b=a+4|0,jA(b,m,b),YA(b),b=51}}else if(K2(i,n,a)|0,(B|0)!=0&(E|0)!=0)if((h|0)!=(u|0)&&q(27621,27538,261,27548),f=ZA(e,A)|0,l=ZA(i,n)|0,(f|0)==7|(l|0)==7)l=5;else if(p[22e3+(f*7|0)+l>>0]|0)l=1;else if(f=r[21168+(f*28|0)+(l<<2)>>2]|0,(f|0)>0){o=a+4|0,l=0;do l2(o),l=l+1|0;while((l|0)!=(f|0));b=51}else b=51;else b=51;while(!1);return(b|0)==51&&(l=a+4|0,r[t>>2]=r[l>>2],r[t+4>>2]=r[l+4>>2],r[t+8>>2]=r[l+8>>2],l=0),a=l,w=M,a|0}function Ke(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0;if(b=w,w=w+48|0,u=b+36|0,f=b+24|0,o=b+12|0,s=b,t=P(e|0,A|0,52)|0,k()|0,t=t&15,E=P(e|0,A|0,45)|0,k()|0,E=E&127,E>>>0>121)return n=5,w=b,n|0;if(h=LA(E)|0,R(t|0,0,52)|0,m=k()|0|134225919,l=n,r[l>>2]=-1,r[l+4>>2]=m,!t)return t=n2(i)|0,(t|0)==7||(t=F2(E,t)|0,(t|0)==127)?(m=1,w=b,m|0):(D=R(t|0,0,45)|0,Q=k()|0,E=n,Q=r[E+4>>2]&-1040385|Q,m=n,r[m>>2]=r[E>>2]|D,r[m+4>>2]=Q,m=0,w=b,m|0);for(r[u>>2]=r[i>>2],r[u+4>>2]=r[i+4>>2],r[u+8>>2]=r[i+8>>2],i=t;;){if(l=i,i=i+-1|0,r[f>>2]=r[u>>2],r[f+4>>2]=r[u+4>>2],r[f+8>>2]=r[u+8>>2],A0(l)|0){if(t=Li(u)|0,t|0){i=13;break}r[o>>2]=r[u>>2],r[o+4>>2]=r[u+4>>2],r[o+8>>2]=r[u+8>>2],t2(o)}else{if(t=Pi(u)|0,t|0){i=13;break}r[o>>2]=r[u>>2],r[o+4>>2]=r[u+4>>2],r[o+8>>2]=r[u+8>>2],a0(o)}if(S2(f,o,s),YA(s),t=n,M=r[t>>2]|0,t=r[t+4>>2]|0,_=(15-l|0)*3|0,a=R(7,0,_|0)|0,t=t&~(k()|0),_=R(n2(s)|0,0,_|0)|0,t=k()|0|t,m=n,r[m>>2]=_|M&~a,r[m+4>>2]=t,(l|0)<=1){i=14;break}}A:do if((i|0)!=13&&(i|0)==14)if((r[u>>2]|0)<=1&&(r[u+4>>2]|0)<=1&&(r[u+8>>2]|0)<=1){i=n2(u)|0,t=F2(E,i)|0,(t|0)==127?s=0:s=LA(t)|0;e:do if(i){if(h){if(t=ZA(e,A)|0,(t|0)==7){t=5;break A}if(l=r[21376+(t*28|0)+(i<<2)>>2]|0,(l|0)>0){t=i,i=0;do t=T0(t)|0,i=i+1|0;while((i|0)!=(l|0))}else t=i;if((t|0)==1){t=9;break A}i=F2(E,t)|0,(i|0)==127&&q(27648,27538,411,27678),LA(i)|0?q(27693,27538,412,27678):(Q=i,D=l,B=t)}else Q=t,D=0,B=i;if(o=r[4272+(E*28|0)+(B<<2)>>2]|0,(o|0)<=-1&&q(27724,27538,419,27678),!s){if((D|0)<0){t=5;break A}if(D|0){l=n,t=0,i=r[l>>2]|0,l=r[l+4>>2]|0;do i=L0(i,l)|0,l=k()|0,_=n,r[_>>2]=i,r[_+4>>2]=l,t=t+1|0;while((t|0)<(D|0))}if((o|0)<=0){t=Q,i=58;break}for(l=n,t=0,i=r[l>>2]|0,l=r[l+4>>2]|0;;)if(i=L0(i,l)|0,l=k()|0,_=n,r[_>>2]=i,r[_+4>>2]=l,t=t+1|0,(t|0)==(o|0)){t=Q,i=58;break e}}if(f=G2(Q,E)|0,(f|0)==7&&q(27514,27538,428,27678),t=n,i=r[t>>2]|0,t=r[t+4>>2]|0,(o|0)>0){l=0;do i=L0(i,t)|0,t=k()|0,_=n,r[_>>2]=i,r[_+4>>2]=t,l=l+1|0;while((l|0)!=(o|0))}if(t=ZA(i,t)|0,(t|0)==7&&q(27795,27538,440,27678),i=p2(Q)|0,i=r[(i?21792:21584)+(f*28|0)+(t<<2)>>2]|0,(i|0)<0&&q(27795,27538,454,27678),!i)t=Q,i=58;else{f=n,t=0,l=r[f>>2]|0,f=r[f+4>>2]|0;do l=Y2(l,f)|0,f=k()|0,_=n,r[_>>2]=l,r[_+4>>2]=f,t=t+1|0;while((t|0)<(i|0));t=Q,i=58}}else if((h|0)!=0&(s|0)!=0){if(i=ZA(e,A)|0,l=n,l=ZA(r[l>>2]|0,r[l+4>>2]|0)|0,(i|0)==7|(l|0)==7){t=5;break A}if(l=r[21376+(i*28|0)+(l<<2)>>2]|0,(l|0)<0){t=5;break A}if(!l)i=59;else{o=n,i=0,f=r[o>>2]|0,o=r[o+4>>2]|0;do f=L0(f,o)|0,o=k()|0,_=n,r[_>>2]=f,r[_+4>>2]=o,i=i+1|0;while((i|0)<(l|0));i=58}}else i=58;while(!1);if((i|0)==58&&s&&(i=59),(i|0)==59&&(_=n,(ZA(r[_>>2]|0,r[_+4>>2]|0)|0)==1)){t=9;break}_=n,a=r[_>>2]|0,_=r[_+4>>2]&-1040385,M=R(t|0,0,45)|0,_=_|(k()|0),t=n,r[t>>2]=a|M,r[t+4>>2]=_,t=0}else t=1;while(!1);return _=t,w=b,_|0}function b1(e,A,i,n,t,l){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0;var f=0,o=0;return o=w,w=w+16|0,f=o,t?e=15:(e=w0(e,A,i,n,f)|0,e||(yi(f,l),e=0)),w=o,e|0}function C1(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0;return f=w,w=w+16|0,l=f,n?i=15:(i=pi(i,l)|0,i||(i=Ke(e,A,l,t)|0)),w=f,i|0}function m1(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0;return s=w,w=w+32|0,f=s+12|0,o=s,l=w0(e,A,e,A,f)|0,l|0?(o=l,w=s,o|0):(e=w0(e,A,i,n,o)|0,e|0?(o=e,w=s,o|0):(f=H2(f,o)|0,o=t,r[o>>2]=f,r[o+4>>2]=((f|0)<0)<<31>>31,o=0,w=s,o|0))}function _1(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0;return s=w,w=w+32|0,f=s+12|0,o=s,l=w0(e,A,e,A,f)|0,!l&&(l=w0(e,A,i,n,o)|0,!l)?(n=H2(f,o)|0,n=W(n|0,((n|0)<0)<<31>>31|0,1,0)|0,f=k()|0,o=t,r[o>>2]=n,r[o+4>>2]=f,o=0,w=s,o|0):(o=l,w=s,o|0)}function M1(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0;if(U=w,w=w+48|0,S=U+24|0,f=U+12|0,x=U,l=w0(e,A,e,A,S)|0,!l&&(l=w0(e,A,i,n,f)|0,!l)){_=H2(S,f)|0,C=((_|0)<0)<<31>>31,r[S>>2]=0,r[S+4>>2]=0,r[S+8>>2]=0,r[f>>2]=0,r[f+4>>2]=0,r[f+8>>2]=0,w0(e,A,e,A,S)|0&&q(27795,27538,692,27747),w0(e,A,i,n,f)|0&&q(27795,27538,697,27747),Ge(S),Ge(f),h=(_|0)==0?0:1/+(_|0),i=r[S>>2]|0,b=h*+((r[f>>2]|0)-i|0),m=S+4|0,n=r[m>>2]|0,a=h*+((r[f+4>>2]|0)-n|0),M=S+8|0,l=r[M>>2]|0,h=h*+((r[f+8>>2]|0)-l|0),r[x>>2]=i,B=x+4|0,r[B>>2]=n,E=x+8|0,r[E>>2]=l;A:do if((_|0)<0)l=0;else for(D=0,Q=0;;){s=+(Q>>>0)+4294967296*+(D|0),eA=b*s+ +(i|0),o=a*s+ +(n|0),s=h*s+ +(l|0),i=~~+g2(+eA),f=~~+g2(+o),l=~~+g2(+s),eA=+uA(+(+(i|0)-eA)),o=+uA(+(+(f|0)-o)),s=+uA(+(+(l|0)-s));do if(eA>o&eA>s)i=0-(f+l)|0,n=f;else if(u=0-i|0,o>s){n=u-l|0;break}else{n=f,l=u-f|0;break}while(!1);if(r[x>>2]=i,r[B>>2]=n,r[E>>2]=l,Fi(x),l=Ke(e,A,x,t+(Q<<3)|0)|0,l|0)break A;if(!((D|0)<(C|0)|(D|0)==(C|0)&Q>>>0<_>>>0)){l=0;break A}i=W(Q|0,D|0,1,0)|0,n=k()|0,D=n,Q=i,i=r[S>>2]|0,n=r[m>>2]|0,l=r[M>>2]|0}while(!1);return x=l,w=U,x|0}return x=l,w=U,x|0}function D0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0;if((i|0)==0&(n|0)==0)return t=0,l=1,iA(t|0),l|0;l=e,t=A,e=1,A=0;do f=(i&1|0)==0&!0,e=HA((f?1:l)|0,(f?0:t)|0,e|0,A|0)|0,A=k()|0,i=tr(i|0,n|0,1)|0,n=k()|0,l=HA(l|0,t|0,l|0,t|0)|0,t=k()|0;while(!((i|0)==0&(n|0)==0));return iA(A|0),e|0}function q2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0;o=w,w=w+16|0,l=o,f=P(e|0,A|0,52)|0,k()|0,f=f&15;do if(f){if(t=P0(e,A,l)|0,!t){u=+g[l>>3],s=1/+bA(+u),h=+g[25968+(f<<3)>>3],g[i>>3]=u+h,g[i+8>>3]=u-h,u=+g[l+8>>3],s=h*s,g[i+16>>3]=s+u,g[i+24>>3]=u-s;break}return f=t,w=o,f|0}else{if(t=P(e|0,A|0,45)|0,k()|0,t=t&127,t>>>0>121)return f=5,w=o,f|0;l=22064+(t<<5)|0,r[i>>2]=r[l>>2],r[i+4>>2]=r[l+4>>2],r[i+8>>2]=r[l+8>>2],r[i+12>>2]=r[l+12>>2],r[i+16>>2]=r[l+16>>2],r[i+20>>2]=r[l+20>>2],r[i+24>>2]=r[l+24>>2],r[i+28>>2]=r[l+28>>2];break}while(!1);return Mi(i,n?1.4:1.1),n=26096+(f<<3)|0,(r[n>>2]|0)==(e|0)&&(r[n+4>>2]|0)==(A|0)&&(g[i>>3]=1.5707963267948966),f=26224+(f<<3)|0,(r[f>>2]|0)==(e|0)&&(r[f+4>>2]|0)==(A|0)&&(g[i+8>>3]=-1.5707963267948966),+g[i>>3]!=1.5707963267948966&&+g[i+8>>3]!=-1.5707963267948966?(f=0,w=o,f|0):(g[i+16>>3]=3.141592653589793,g[i+24>>3]=-3.141592653589793,f=0,w=o,f|0)}function a1(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0;u=w,w=w+48|0,f=u+32|0,l=u+40|0,o=u,N2(f,0,0,0),s=r[f>>2]|0,f=r[f+4>>2]|0;do if(i>>>0<=15){if(t=c0(n)|0,t|0){n=o,r[n>>2]=0,r[n+4>>2]=0,r[o+8>>2]=t,r[o+12>>2]=-1,n=o+16|0,s=o+29|0,r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,p[n+12>>0]=0,p[s>>0]=p[l>>0]|0,p[s+1>>0]=p[l+1>>0]|0,p[s+2>>0]=p[l+2>>0]|0;break}if(t=JA((r[A+8>>2]|0)+1|0,32)|0,t){c2(A,t),h=o,r[h>>2]=s,r[h+4>>2]=f,r[o+8>>2]=0,r[o+12>>2]=i,r[o+16>>2]=n,r[o+20>>2]=A,r[o+24>>2]=t,p[o+28>>0]=0,s=o+29|0,p[s>>0]=p[l>>0]|0,p[s+1>>0]=p[l+1>>0]|0,p[s+2>>0]=p[l+2>>0]|0;break}else{n=o,r[n>>2]=0,r[n+4>>2]=0,r[o+8>>2]=13,r[o+12>>2]=-1,n=o+16|0,s=o+29|0,r[n>>2]=0,r[n+4>>2]=0,r[n+8>>2]=0,p[n+12>>0]=0,p[s>>0]=p[l>>0]|0,p[s+1>>0]=p[l+1>>0]|0,p[s+2>>0]=p[l+2>>0]|0;break}}else s=o,r[s>>2]=0,r[s+4>>2]=0,r[o+8>>2]=4,r[o+12>>2]=-1,s=o+16|0,h=o+29|0,r[s>>2]=0,r[s+4>>2]=0,r[s+8>>2]=0,p[s+12>>0]=0,p[h>>0]=p[l>>0]|0,p[h+1>>0]=p[l+1>>0]|0,p[h+2>>0]=p[l+2>>0]|0;while(!1);s2(o),r[e>>2]=r[o>>2],r[e+4>>2]=r[o+4>>2],r[e+8>>2]=r[o+8>>2],r[e+12>>2]=r[o+12>>2],r[e+16>>2]=r[o+16>>2],r[e+20>>2]=r[o+20>>2],r[e+24>>2]=r[o+24>>2],r[e+28>>2]=r[o+28>>2],w=u}function s2(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0;if(C=w,w=w+336|0,D=C+168|0,Q=C,n=e,i=r[n>>2]|0,n=r[n+4>>2]|0,(i|0)==0&(n|0)==0){w=C;return}if(A=e+28|0,p[A>>0]|0?(i=Ve(i,n)|0,n=k()|0):p[A>>0]=1,_=e+20|0,!(r[r[_>>2]>>2]|0)){A=e+24|0,i=r[A>>2]|0,i|0&&K(i),M=e,r[M>>2]=0,r[M+4>>2]=0,r[e+8>>2]=0,r[_>>2]=0,r[e+12>>2]=-1,r[e+16>>2]=0,r[A>>2]=0,w=C;return}M=e+16|0,A=r[M>>2]|0,t=A&15;A:do if((i|0)==0&(n|0)==0)a=e+24|0;else{b=e+12|0,B=(t|0)==3,h=A&255,s=(t|1|0)==3,E=e+24|0,u=(t+-1|0)>>>0<3,f=(t|2|0)==3,o=Q+8|0;e:for(;;){if(l=P(i|0,n|0,52)|0,k()|0,l=l&15,(l|0)==(r[b>>2]|0)){switch(h&15){case 0:case 2:case 3:{if(t=P0(i,n,D)|0,t|0){m=15;break e}if($2(r[_>>2]|0,r[E>>2]|0,D)|0){m=19;break e}break}}if(s&&(t=r[(r[_>>2]|0)+4>>2]|0,r[D>>2]=r[t>>2],r[D+4>>2]=r[t+4>>2],r[D+8>>2]=r[t+8>>2],r[D+12>>2]=r[t+12>>2],R2(26832,D)|0)){if(W2(r[(r[_>>2]|0)+4>>2]|0,l,Q)|0){m=25;break}if(t=Q,(r[t>>2]|0)==(i|0)&&(r[t+4>>2]|0)==(n|0)){m=29;break}}if(u){if(t=d0(i,n,D)|0,t|0){m=32;break}if(q2(i,n,Q,0)|0){m=36;break}if(f&&Je(r[_>>2]|0,r[E>>2]|0,D,Q)|0){m=42;break}if(s&&Xe(r[_>>2]|0,r[E>>2]|0,D,Q)|0){m=42;break}}if(B){if(A=q2(i,n,D,1)|0,t=r[E>>2]|0,A|0){m=45;break}if(O2(t,D)|0){if(ae(Q,D),Me(D,r[E>>2]|0)|0){m=53;break}if($2(r[_>>2]|0,r[E>>2]|0,o)|0){m=53;break}if(Xe(r[_>>2]|0,r[E>>2]|0,Q,D)|0){m=53;break}}}}do if((l|0)<(r[b>>2]|0)){if(A=q2(i,n,D,1)|0,t=r[E>>2]|0,A|0){m=58;break e}if(!(O2(t,D)|0)){m=73;break}if(Me(r[E>>2]|0,D)|0&&(ae(Q,D),Je(r[_>>2]|0,r[E>>2]|0,Q,D)|0)){m=65;break e}if(i=ze(i,n,l+1|0,Q)|0,i|0){m=67;break e}n=Q,i=r[n>>2]|0,n=r[n+4>>2]|0}else m=73;while(!1);if((m|0)==73&&(m=0,i=Ve(i,n)|0,n=k()|0),(i|0)==0&(n|0)==0){a=E;break A}}switch(m|0){case 15:{A=r[E>>2]|0,A|0&&K(A),m=e,r[m>>2]=0,r[m+4>>2]=0,r[_>>2]=0,r[b>>2]=-1,r[M>>2]=0,r[E>>2]=0,r[e+8>>2]=t,m=20;break}case 19:{r[e>>2]=i,r[e+4>>2]=n,m=20;break}case 25:{q(27795,27761,470,27772);break}case 29:{r[e>>2]=i,r[e+4>>2]=n,w=C;return}case 32:{A=r[E>>2]|0,A|0&&K(A),a=e,r[a>>2]=0,r[a+4>>2]=0,r[_>>2]=0,r[b>>2]=-1,r[M>>2]=0,r[E>>2]=0,r[e+8>>2]=t,w=C;return}case 36:{q(27795,27761,493,27772);break}case 42:{r[e>>2]=i,r[e+4>>2]=n,w=C;return}case 45:{t|0&&K(t),m=e,r[m>>2]=0,r[m+4>>2]=0,r[_>>2]=0,r[b>>2]=-1,r[M>>2]=0,r[E>>2]=0,r[e+8>>2]=A,m=55;break}case 53:{r[e>>2]=i,r[e+4>>2]=n,m=55;break}case 58:{t|0&&K(t),m=e,r[m>>2]=0,r[m+4>>2]=0,r[_>>2]=0,r[b>>2]=-1,r[M>>2]=0,r[E>>2]=0,r[e+8>>2]=A,m=71;break}case 65:{r[e>>2]=i,r[e+4>>2]=n,m=71;break}case 67:{A=r[E>>2]|0,A|0&&K(A),a=e,r[a>>2]=0,r[a+4>>2]=0,r[_>>2]=0,r[b>>2]=-1,r[M>>2]=0,r[E>>2]=0,r[e+8>>2]=i,w=C;return}}if((m|0)==20){w=C;return}else if((m|0)==55){w=C;return}else if((m|0)==71){w=C;return}}while(!1);A=r[a>>2]|0,A|0&&K(A),m=e,r[m>>2]=0,r[m+4>>2]=0,r[e+8>>2]=0,r[_>>2]=0,r[e+12>>2]=-1,r[M>>2]=0,r[a>>2]=0,w=C}function Ve(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0;B=w,w=w+16|0,h=B,n=P(e|0,A|0,52)|0,k()|0,n=n&15,i=P(e|0,A|0,45)|0,k()|0;do if(n){for(;i=R(n+4095|0,0,52)|0,t=k()|0|A&-15728641,l=(15-n|0)*3|0,f=R(7,0,l|0)|0,o=k()|0,i=i|e|f,t=t|o,s=P(e|0,A|0,l|0)|0,k()|0,s=s&7,n=n+-1|0,!(s>>>0<6);)if(n)A=t,e=i;else{u=4;break}if((u|0)==4){i=P(i|0,t|0,45)|0,k()|0;break}return h=(s|0)==0&(TA(i,t)|0)!=0,h=R((h?2:1)+s|0,0,l|0)|0,u=k()|0|A&~o,h=h|e&~f,iA(u|0),w=B,h|0}while(!1);return i=i&127,i>>>0>120?(u=0,h=0,iA(u|0),w=B,h|0):(N2(h,0,i+1|0,0),u=r[h+4>>2]|0,h=r[h>>2]|0,iA(u|0),w=B,h|0)}function T1(e,A,i,n,t,l){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0,l=l|0;var f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0;m=w,w=w+160|0,B=m+80|0,o=m+64|0,E=m+112|0,b=m,a1(B,e,A,i),u=B,Z2(o,r[u>>2]|0,r[u+4>>2]|0,A),u=o,s=r[u>>2]|0,u=r[u+4>>2]|0,f=r[B+8>>2]|0,D=E+4|0,r[D>>2]=r[B>>2],r[D+4>>2]=r[B+4>>2],r[D+8>>2]=r[B+8>>2],r[D+12>>2]=r[B+12>>2],r[D+16>>2]=r[B+16>>2],r[D+20>>2]=r[B+20>>2],r[D+24>>2]=r[B+24>>2],r[D+28>>2]=r[B+28>>2],D=b,r[D>>2]=s,r[D+4>>2]=u,D=b+8|0,r[D>>2]=f,e=b+12|0,A=E,i=e+36|0;do r[e>>2]=r[A>>2],e=e+4|0,A=A+4|0;while((e|0)<(i|0));if(E=b+48|0,r[E>>2]=r[o>>2],r[E+4>>2]=r[o+4>>2],r[E+8>>2]=r[o+8>>2],r[E+12>>2]=r[o+12>>2],(s|0)==0&(u|0)==0)return b=f,w=m,b|0;i=b+16|0,h=b+24|0,B=b+28|0,f=0,o=0,A=s,e=u;do{if(!((f|0)<(t|0)|(f|0)==(t|0)&o>>>0<n>>>0)){Q=4;break}if(u=o,o=W(o|0,f|0,1,0)|0,f=k()|0,u=l+(u<<3)|0,r[u>>2]=A,r[u+4>>2]=e,J2(E),e=E,A=r[e>>2]|0,e=r[e+4>>2]|0,(A|0)==0&(e|0)==0){if(s2(i),A=i,e=r[A>>2]|0,A=r[A+4>>2]|0,(e|0)==0&(A|0)==0){Q=10;break}Ne(e,A,r[B>>2]|0,E),e=E,A=r[e>>2]|0,e=r[e+4>>2]|0}u=b,r[u>>2]=A,r[u+4>>2]=e}while(!((A|0)==0&(e|0)==0));return(Q|0)==4?(e=b+40|0,A=r[e>>2]|0,A|0&&K(A),Q=b+16|0,r[Q>>2]=0,r[Q+4>>2]=0,r[h>>2]=0,r[b+36>>2]=0,r[B>>2]=-1,r[b+32>>2]=0,r[e>>2]=0,Ne(0,0,0,E),r[b>>2]=0,r[b+4>>2]=0,r[D>>2]=0,b=14,w=m,b|0):((Q|0)==10&&(r[b>>2]=0,r[b+4>>2]=0,r[D>>2]=r[h>>2]),b=r[D>>2]|0,w=m,b|0)}function L1(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0;if(B=w,w=w+48|0,s=B+32|0,o=B+40|0,u=B,!(r[e>>2]|0))return h=n,r[h>>2]=0,r[h+4>>2]=0,h=0,w=B,h|0;N2(s,0,0,0),f=s,t=r[f>>2]|0,f=r[f+4>>2]|0;do if(A>>>0>15)h=u,r[h>>2]=0,r[h+4>>2]=0,r[u+8>>2]=4,r[u+12>>2]=-1,h=u+16|0,i=u+29|0,r[h>>2]=0,r[h+4>>2]=0,r[h+8>>2]=0,p[h+12>>0]=0,p[i>>0]=p[o>>0]|0,p[i+1>>0]=p[o+1>>0]|0,p[i+2>>0]=p[o+2>>0]|0,i=4,h=9;else{if(i=c0(i)|0,i|0){s=u,r[s>>2]=0,r[s+4>>2]=0,r[u+8>>2]=i,r[u+12>>2]=-1,s=u+16|0,h=u+29|0,r[s>>2]=0,r[s+4>>2]=0,r[s+8>>2]=0,p[s+12>>0]=0,p[h>>0]=p[o>>0]|0,p[h+1>>0]=p[o+1>>0]|0,p[h+2>>0]=p[o+2>>0]|0,h=9;break}if(i=JA((r[e+8>>2]|0)+1|0,32)|0,!i){h=u,r[h>>2]=0,r[h+4>>2]=0,r[u+8>>2]=13,r[u+12>>2]=-1,h=u+16|0,i=u+29|0,r[h>>2]=0,r[h+4>>2]=0,r[h+8>>2]=0,p[h+12>>0]=0,p[i>>0]=p[o>>0]|0,p[i+1>>0]=p[o+1>>0]|0,p[i+2>>0]=p[o+2>>0]|0,i=13,h=9;break}c2(e,i),D=u,r[D>>2]=t,r[D+4>>2]=f,f=u+8|0,r[f>>2]=0,r[u+12>>2]=A,r[u+20>>2]=e,r[u+24>>2]=i,p[u+28>>0]=0,t=u+29|0,p[t>>0]=p[o>>0]|0,p[t+1>>0]=p[o+1>>0]|0,p[t+2>>0]=p[o+2>>0]|0,r[u+16>>2]=3,E=+Ci(i),E=E*+bi(i),l=+uA(+ +g[i>>3]),l=E/+bA(+ +h2(+l,+ +uA(+ +g[i+8>>3])))*6371.007180918475*6371.007180918475,t=u+12|0,i=r[t>>2]|0;A:do if((i|0)>0)do{if(xe(i+-1|0,s)|0,!(l/+g[s>>3]>10))break A;D=r[t>>2]|0,i=D+-1|0,r[t>>2]=i}while((D|0)>1);while(!1);if(s2(u),t=n,r[t>>2]=0,r[t+4>>2]=0,t=u,i=r[t>>2]|0,t=r[t+4>>2]|0,!((i|0)==0&(t|0)==0))do Z0(i,t,A,s)|0,o=s,e=n,o=W(r[e>>2]|0,r[e+4>>2]|0,r[o>>2]|0,r[o+4>>2]|0)|0,e=k()|0,D=n,r[D>>2]=o,r[D+4>>2]=e,s2(u),D=u,i=r[D>>2]|0,t=r[D+4>>2]|0;while(!((i|0)==0&(t|0)==0));i=r[f>>2]|0}while(!1);return D=i,w=B,D|0}function q0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;if(!(R2(A,i)|0)||(A=_e(A)|0,n=+g[i>>3],t=+g[i+8>>3],t=A&t<0?t+6.283185307179586:t,E=r[e>>2]|0,(E|0)<=0))return E=0,E|0;if(B=r[e+4>>2]|0,A){A=0,h=t,i=-1,e=0;A:for(;;){for(u=e;f=+g[B+(u<<4)>>3],t=+g[B+(u<<4)+8>>3],e=(i+2|0)%(E|0)|0,l=+g[B+(e<<4)>>3],o=+g[B+(e<<4)+8>>3],f>l?(s=f,f=o):(s=l,l=f,f=t,t=o),n=n==l|n==s?n+2220446049250313e-31:n,!!(n<l|n>s);)if(i=u+1|0,(i|0)>=(E|0)){i=22;break A}else e=u,u=i,i=e;if(o=f<0?f+6.283185307179586:f,f=t<0?t+6.283185307179586:t,h=o==h|f==h?h+-2220446049250313e-31:h,s=o+(f-o)*((n-l)/(s-l)),(s<0?s+6.283185307179586:s)>h&&(A=A^1),e=u+1|0,(e|0)>=(E|0)){i=22;break}else i=u}if((i|0)==22)return A|0}else{A=0,h=t,i=-1,e=0;A:for(;;){for(u=e;f=+g[B+(u<<4)>>3],t=+g[B+(u<<4)+8>>3],e=(i+2|0)%(E|0)|0,l=+g[B+(e<<4)>>3],o=+g[B+(e<<4)+8>>3],f>l?(s=f,f=o):(s=l,l=f,f=t,t=o),n=n==l|n==s?n+2220446049250313e-31:n,!!(n<l|n>s);)if(i=u+1|0,(i|0)>=(E|0)){i=22;break A}else e=u,u=i,i=e;if(h=f==h|t==h?h+-2220446049250313e-31:h,f+(t-f)*((n-l)/(s-l))>h&&(A=A^1),e=u+1|0,(e|0)>=(E|0)){i=22;break}else i=u}if((i|0)==22)return A|0}return 0}function Ze(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0;if(Q=r[e>>2]|0,!Q){r[A>>2]=0,r[A+4>>2]=0,r[A+8>>2]=0,r[A+12>>2]=0,r[A+16>>2]=0,r[A+20>>2]=0,r[A+24>>2]=0,r[A+28>>2]=0;return}if(b=A+8|0,g[b>>3]=17976931348623157e292,m=A+24|0,g[m>>3]=17976931348623157e292,g[A>>3]=-17976931348623157e292,a=A+16|0,g[a>>3]=-17976931348623157e292,!((Q|0)<=0)){for(E=r[e+4>>2]|0,u=17976931348623157e292,h=-17976931348623157e292,B=0,e=-1,l=17976931348623157e292,f=17976931348623157e292,s=-17976931348623157e292,n=-17976931348623157e292,D=0;i=+g[E+(D<<4)>>3],o=+g[E+(D<<4)+8>>3],e=e+2|0,t=+g[E+(((e|0)==(Q|0)?0:e)<<4)+8>>3],i<l&&(g[b>>3]=i,l=i),o<f&&(g[m>>3]=o,f=o),i>s?g[A>>3]=i:i=s,o>n&&(g[a>>3]=o,n=o),u=o>0&o<u?o:u,h=o<0&o>h?o:h,B=B|+uA(+(o-t))>3.141592653589793,e=D+1|0,(e|0)!=(Q|0);)M=D,s=i,D=e,e=M;B&&(g[a>>3]=h,g[m>>3]=u)}}function c0(e){return e=e|0,(e>>>0<4?0:15)|0}function c2(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0;if(Q=r[e>>2]|0,Q){if(b=A+8|0,g[b>>3]=17976931348623157e292,m=A+24|0,g[m>>3]=17976931348623157e292,g[A>>3]=-17976931348623157e292,a=A+16|0,g[a>>3]=-17976931348623157e292,(Q|0)>0){for(t=r[e+4>>2]|0,E=17976931348623157e292,D=-17976931348623157e292,n=0,i=-1,s=17976931348623157e292,u=17976931348623157e292,B=-17976931348623157e292,f=-17976931348623157e292,M=0;l=+g[t+(M<<4)>>3],h=+g[t+(M<<4)+8>>3],x=i+2|0,o=+g[t+(((x|0)==(Q|0)?0:x)<<4)+8>>3],l<s&&(g[b>>3]=l,s=l),h<u&&(g[m>>3]=h,u=h),l>B?g[A>>3]=l:l=B,h>f&&(g[a>>3]=h,f=h),E=h>0&h<E?h:E,D=h<0&h>D?h:D,n=n|+uA(+(h-o))>3.141592653589793,i=M+1|0,(i|0)!=(Q|0);)x=M,B=l,M=i,i=x;n&&(g[a>>3]=D,g[m>>3]=E)}}else r[A>>2]=0,r[A+4>>2]=0,r[A+8>>2]=0,r[A+12>>2]=0,r[A+16>>2]=0,r[A+20>>2]=0,r[A+24>>2]=0,r[A+28>>2]=0;if(x=e+8|0,i=r[x>>2]|0,!((i|0)<=0)){S=e+12|0,C=0;do if(t=r[S>>2]|0,n=C,C=C+1|0,m=A+(C<<5)|0,a=r[t+(n<<3)>>2]|0,a){if(M=A+(C<<5)+8|0,g[M>>3]=17976931348623157e292,e=A+(C<<5)+24|0,g[e>>3]=17976931348623157e292,g[m>>3]=-17976931348623157e292,_=A+(C<<5)+16|0,g[_>>3]=-17976931348623157e292,(a|0)>0){for(Q=r[t+(n<<3)+4>>2]|0,E=17976931348623157e292,D=-17976931348623157e292,t=0,n=-1,b=0,s=17976931348623157e292,u=17976931348623157e292,h=-17976931348623157e292,f=-17976931348623157e292;l=+g[Q+(b<<4)>>3],B=+g[Q+(b<<4)+8>>3],n=n+2|0,o=+g[Q+(((n|0)==(a|0)?0:n)<<4)+8>>3],l<s&&(g[M>>3]=l,s=l),B<u&&(g[e>>3]=B,u=B),l>h?g[m>>3]=l:l=h,B>f&&(g[_>>3]=B,f=B),E=B>0&B<E?B:E,D=B<0&B>D?B:D,t=t|+uA(+(B-o))>3.141592653589793,n=b+1|0,(n|0)!=(a|0);)U=b,b=n,h=l,n=U;t&&(g[_>>3]=D,g[e>>3]=E)}}else r[m>>2]=0,r[m+4>>2]=0,r[m+8>>2]=0,r[m+12>>2]=0,r[m+16>>2]=0,r[m+20>>2]=0,r[m+24>>2]=0,r[m+28>>2]=0,i=r[x>>2]|0;while((C|0)<(i|0))}}function $2(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;if(!(q0(e,A,i)|0))return t=0,t|0;if(t=e+8|0,(r[t>>2]|0)<=0)return t=1,t|0;for(n=e+12|0,e=0;;){if(l=e,e=e+1|0,q0((r[n>>2]|0)+(l<<3)|0,A+(e<<5)|0,i)|0){e=0,n=6;break}if((e|0)>=(r[t>>2]|0)){e=1,n=6;break}}return(n|0)==6?e|0:0}function Je(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(u=w,w=w+16|0,o=u,f=i+8|0,!(q0(e,A,f)|0))return s=0,w=u,s|0;s=e+8|0;A:do if((r[s>>2]|0)>0){for(l=e+12|0,t=0;;){if(h=t,t=t+1|0,q0((r[l>>2]|0)+(h<<3)|0,A+(t<<5)|0,f)|0){t=0;break}if((t|0)>=(r[s>>2]|0))break A}return w=u,t|0}while(!1);if(u2(e,A,i,n)|0)return h=0,w=u,h|0;r[o>>2]=r[i>>2],r[o+4>>2]=f,t=r[s>>2]|0;A:do if((t|0)>0)for(e=e+12|0,f=0,l=t;;){if(t=r[e>>2]|0,(r[t+(f<<3)>>2]|0)>0){if(q0(o,n,r[t+(f<<3)+4>>2]|0)|0){t=0;break A}if(t=f+1|0,u2((r[e>>2]|0)+(f<<3)|0,A+(t<<5)|0,i,n)|0){t=0;break A}l=r[s>>2]|0}else t=f+1|0;if((t|0)<(l|0))f=t;else{t=1;break}}else t=1;while(!1);return h=t,w=u,h|0}function u2(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0,x=0,U=0,eA=0;if(x=w,w=w+176|0,M=x+172|0,t=x+168|0,_=x,!(O2(A,n)|0))return e=0,w=x,e|0;if(mi(A,n,M,t),x0(_|0,i|0,168)|0,(r[i>>2]|0)>0){A=0;do U=_+8+(A<<4)+8|0,a=+qA(+g[U>>3],r[t>>2]|0),g[U>>3]=a,A=A+1|0;while((A|0)<(r[i>>2]|0))}b=+g[n>>3],m=+g[n+8>>3],a=+qA(+g[n+16>>3],r[t>>2]|0),D=+qA(+g[n+24>>3],r[t>>2]|0);A:do if((r[e>>2]|0)>0){if(n=e+4|0,t=r[_>>2]|0,(t|0)<=0){for(A=0;;)if(A=A+1|0,(A|0)>=(r[e>>2]|0)){A=0;break A}}for(i=0;;){if(A=r[n>>2]|0,E=+g[A+(i<<4)>>3],Q=+qA(+g[A+(i<<4)+8>>3],r[M>>2]|0),A=r[n>>2]|0,i=i+1|0,U=(i|0)%(r[e>>2]|0)|0,l=+g[A+(U<<4)>>3],f=+qA(+g[A+(U<<4)+8>>3],r[M>>2]|0),!(E>=b)|!(l>=b)&&!(E<=m)|!(l<=m)&&!(Q<=D)|!(f<=D)&&!(Q>=a)|!(f>=a)){B=l-E,u=f-Q,A=0;do if(eA=A,A=A+1|0,U=(A|0)==(t|0)?0:A,l=+g[_+8+(eA<<4)+8>>3],f=+g[_+8+(U<<4)+8>>3]-l,o=+g[_+8+(eA<<4)>>3],s=+g[_+8+(U<<4)>>3]-o,h=B*f-u*s,h!=0&&(C=Q-l,S=E-o,s=(C*s-f*S)/h,!(s<0|s>1))&&(h=(B*C-u*S)/h,h>=0&h<=1)){A=1;break A}while((A|0)<(t|0))}if((i|0)>=(r[e>>2]|0)){A=0;break}}}else A=0;while(!1);return eA=A,w=x,eA|0}function Xe(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0;if(u2(e,A,i,n)|0)return l=1,l|0;if(l=e+8|0,(r[l>>2]|0)<=0)return l=0,l|0;for(t=e+12|0,e=0;;){if(f=e,e=e+1|0,u2((r[t>>2]|0)+(f<<3)|0,A+(e<<5)|0,i,n)|0){e=1,t=6;break}if((e|0)>=(r[l>>2]|0)){e=0,t=6;break}}return(t|0)==6?e|0:0}function P1(){return 8}function I1(){return 16}function y1(){return 168}function p1(){return 8}function F1(){return 16}function G1(){return 12}function R1(){return 8}function O1(e){return e=e|0,+(+((r[e>>2]|0)>>>0)+4294967296*+(r[e+4>>2]|0))}function S1(e){e=e|0;var A=0,i=0;return i=+g[e>>3],A=+g[e+8>>3],+ +EA(+(i*i+A*A))}function qe(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0;u=+g[e>>3],s=+g[A>>3]-u,o=+g[e+8>>3],f=+g[A+8>>3]-o,B=+g[i>>3],l=+g[n>>3]-B,E=+g[i+8>>3],h=+g[n+8>>3]-E,l=(l*(o-E)-(u-B)*h)/(s*h-f*l),g[t>>3]=u+s*l,g[t+8>>3]=o+f*l}function ce(e,A){return e=e|0,A=A|0,+uA(+(+g[e>>3]-+g[A>>3]))<11920928955078125e-23?(A=+uA(+(+g[e+8>>3]-+g[A+8>>3]))<11920928955078125e-23,A|0):(A=0,A|0)}function pA(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;return t=+g[e>>3]-+g[A>>3],n=+g[e+8>>3]-+g[A+8>>3],i=+g[e+16>>3]-+g[A+16>>3],+(t*t+n*n+i*i)}function H1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0;i=+g[e>>3],n=+bA(+i),i=+hA(+i),g[A+16>>3]=i,i=+g[e+8>>3],t=n*+bA(+i),g[A>>3]=t,i=n*+hA(+i),g[A+8>>3]=i}function d1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;if(l=w,w=w+16|0,t=l,n=TA(e,A)|0,(i+-1|0)>>>0>5||(n=(n|0)!=0,(i|0)==1&n))return t=-1,w=l,t|0;do if($0(e,A,t)|0)n=-1;else if(n){n=((r[26352+(i<<2)>>2]|0)+5-(r[t>>2]|0)|0)%5|0;break}else{n=((r[26384+(i<<2)>>2]|0)+6-(r[t>>2]|0)|0)%6|0;break}while(!1);return t=n,w=l,t|0}function $0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0;if(h=w,w=w+32|0,o=h+16|0,s=h,n=H0(e,A,o)|0,n|0)return i=n,w=h,i|0;l=He(e,A)|0,u=ZA(e,A)|0,vi(l,s),n=Ei(l,r[o>>2]|0)|0;do if(LA(l)|0){do switch(l|0){case 4:{t=0;break}case 14:{t=1;break}case 24:{t=2;break}case 38:{t=3;break}case 49:{t=4;break}case 58:{t=5;break}case 63:{t=6;break}case 72:{t=7;break}case 83:{t=8;break}case 97:{t=9;break}case 107:{t=10;break}case 117:{t=11;break}default:q(27795,27797,75,27806)}while(!1);if(f=r[26416+(t*24|0)+8>>2]|0,A=r[26416+(t*24|0)+16>>2]|0,e=r[o>>2]|0,(e|0)!=(r[s>>2]|0)&&(s=p2(l)|0,e=r[o>>2]|0,s|(e|0)==(A|0)&&(n=(n+1|0)%6|0)),(u|0)==3&(e|0)==(A|0)){n=(n+5|0)%6|0;break}(u|0)==5&(e|0)==(f|0)&&(n=(n+1|0)%6|0)}while(!1);return r[i>>2]=n,i=0,w=h,i|0}function e0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0;if(_=w,w=w+32|0,M=_+24|0,m=_+20|0,Q=_+8|0,D=_+16|0,E=_,s=(TA(e,A)|0)==0,s=s?6:5,h=P(e|0,A|0,52)|0,k()|0,h=h&15,s>>>0<=i>>>0)return n=2,w=_,n|0;B=(h|0)==0,!B&&(b=R(7,0,(h^15)*3|0)|0,(b&e|0)==0&((k()|0)&A|0)==0)?t=i:l=4;A:do if((l|0)==4){if(t=(TA(e,A)|0)!=0,((t?4:5)|0)<(i|0)||$0(e,A,M)|0||(l=(r[M>>2]|0)+i|0,t?t=26704+(((l|0)%5|0)<<2)|0:t=26736+(((l|0)%6|0)<<2)|0,b=r[t>>2]|0,(b|0)==7))return n=1,w=_,n|0;r[m>>2]=0,t=OA(e,A,b,m,Q)|0;do if(!t){if(o=Q,u=r[o>>2]|0,o=r[o+4>>2]|0,f=o>>>0<A>>>0|(o|0)==(A|0)&u>>>0<e>>>0,l=f?u:e,f=f?o:A,!B&&(B=R(7,0,(h^15)*3|0)|0,(u&B|0)==0&(o&(k()|0)|0)==0))t=i;else{if(o=(i+-1+s|0)%(s|0)|0,t=TA(e,A)|0,(o|0)<0&&q(27795,27797,248,27822),s=(t|0)!=0,((s?4:5)|0)<(o|0)&&q(27795,27797,248,27822),$0(e,A,M)|0&&q(27795,27797,248,27822),t=(r[M>>2]|0)+o|0,s?t=26704+(((t|0)%5|0)<<2)|0:t=26736+(((t|0)%6|0)<<2)|0,o=r[t>>2]|0,(o|0)==7&&q(27795,27797,248,27822),r[D>>2]=0,t=OA(e,A,o,D,E)|0,t|0)break;u=E,s=r[u>>2]|0,u=r[u+4>>2]|0;do if(u>>>0<f>>>0|(u|0)==(f|0)&s>>>0<l>>>0){if(TA(s,u)|0?l=y2(s,u,e,A)|0:l=r[26800+((((r[D>>2]|0)+(r[26768+(o<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,t=TA(s,u)|0,(l+-1|0)>>>0>5){t=-1,l=s,f=u;break}if(t=(t|0)!=0,(l|0)==1&t){t=-1,l=s,f=u;break}do if($0(s,u,M)|0)t=-1;else if(t){t=((r[26352+(l<<2)>>2]|0)+5-(r[M>>2]|0)|0)%5|0;break}else{t=((r[26384+(l<<2)>>2]|0)+6-(r[M>>2]|0)|0)%6|0;break}while(!1);l=s,f=u}else t=i;while(!1);o=Q,u=r[o>>2]|0,o=r[o+4>>2]|0}if((l|0)==(u|0)&(f|0)==(o|0)){if(s=(TA(u,o)|0)!=0,s?e=y2(u,o,e,A)|0:e=r[26800+((((r[m>>2]|0)+(r[26768+(b<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,t=TA(u,o)|0,(e+-1|0)>>>0<=5&&(a=(t|0)!=0,!((e|0)==1&a)))do if($0(u,o,M)|0)t=-1;else if(a){t=((r[26352+(e<<2)>>2]|0)+5-(r[M>>2]|0)|0)%5|0;break}else{t=((r[26384+(e<<2)>>2]|0)+6-(r[M>>2]|0)|0)%6|0;break}while(!1);else t=-1;t=t+1|0,t=(t|0)==6|s&(t|0)==5?0:t}A=f,e=l;break A}while(!1);return n=t,w=_,n|0}while(!1);return a=R(t|0,0,56)|0,M=k()|0|A&-2130706433|536870912,r[n>>2]=a|e,r[n+4>>2]=M,n=0,w=_,n|0}function z1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;return l=(TA(e,A)|0)==0,n=e0(e,A,0,i)|0,t=(n|0)==0,l?!t||(n=e0(e,A,1,i+8|0)|0,n|0)||(n=e0(e,A,2,i+16|0)|0,n|0)||(n=e0(e,A,3,i+24|0)|0,n|0)||(n=e0(e,A,4,i+32|0)|0,n)?(l=n,l|0):e0(e,A,5,i+40|0)|0:!t||(n=e0(e,A,1,i+8|0)|0,n|0)||(n=e0(e,A,2,i+16|0)|0,n|0)||(n=e0(e,A,3,i+24|0)|0,n|0)||(n=e0(e,A,4,i+32|0)|0,n|0)?(l=n,l|0):(l=i+40|0,r[l>>2]=0,r[l+4>>2]=0,l=0,l|0)}function U1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0,o=0,s=0;return s=w,w=w+192|0,t=s,l=s+168|0,f=P(e|0,A|0,56)|0,k()|0,f=f&7,o=A&-2130706433|134217728,n=H0(e,o,l)|0,n|0?(o=n,w=s,o|0):(A=P(e|0,A|0,52)|0,k()|0,A=A&15,TA(e,o)|0?d2(l,A,f,1,t):z2(l,A,f,1,t),o=t+8|0,r[i>>2]=r[o>>2],r[i+4>>2]=r[o+4>>2],r[i+8>>2]=r[o+8>>2],r[i+12>>2]=r[o+12>>2],o=0,w=s,o|0)}function $e(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;return t=w,w=w+16|0,i=t,!(!0&(A&2013265920|0)==536870912)||(n=A&-2130706433|134217728,!(U2(e,n)|0))?(n=0,w=t,n|0):(l=P(e|0,A|0,56)|0,k()|0,l=(e0(e,n,l&7,i)|0)==0,n=i,n=l&((r[n>>2]|0)==(e|0)?(r[n+4>>2]|0)==(A|0):0)&1,w=t,n|0)}function Ar(e,A,i){e=e|0,A=A|0,i=i|0;var n=0;(A|0)>0?(n=JA(A,4)|0,r[e>>2]=n,n||q(27835,27858,40,27872)):r[e>>2]=0,r[e+4>>2]=A,r[e+8>>2]=0,r[e+12>>2]=i}function er(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0;t=e+4|0,l=e+12|0,f=e+8|0;A:for(;;){for(i=r[t>>2]|0,A=0;;){if((A|0)>=(i|0))break A;if(n=r[e>>2]|0,o=r[n+(A<<2)>>2]|0,!o)A=A+1|0;else break}A=n+(~~(+uA(+(+v0(10,+ +(15-(r[l>>2]|0)|0))*(+g[o>>3]+ +g[o+8>>3])))%+(i|0))>>>0<<2)|0,i=r[A>>2]|0;e:do if(i|0){if(n=o+32|0,(i|0)==(o|0))r[A>>2]=r[n>>2];else{if(i=i+32|0,A=r[i>>2]|0,!A)break;for(;(A|0)!=(o|0);)if(i=A+32|0,A=r[i>>2]|0,!A)break e;r[i>>2]=r[n>>2]}K(o),r[f>>2]=(r[f>>2]|0)+-1}while(!1)}K(r[e>>2]|0)}function rr(e){e=e|0;var A=0,i=0,n=0;for(n=r[e+4>>2]|0,i=0;;){if((i|0)>=(n|0)){A=0,i=4;break}if(A=r[(r[e>>2]|0)+(i<<2)>>2]|0,!A)i=i+1|0;else{i=4;break}}return(i|0)==4?A|0:0}function ir(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;if(i=~~(+uA(+(+v0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,i=(r[e>>2]|0)+(i<<2)|0,n=r[i>>2]|0,!n)return l=1,l|0;l=A+32|0;do if((n|0)!=(A|0)){if(i=r[n+32>>2]|0,!i)return l=1,l|0;for(t=i;;){if((t|0)==(A|0)){t=8;break}if(i=r[t+32>>2]|0,i)n=t,t=i;else{i=1,t=10;break}}if((t|0)==8){r[n+32>>2]=r[l>>2];break}else if((t|0)==10)return i|0}else r[i>>2]=r[l>>2];while(!1);return K(A),l=e+8|0,r[l>>2]=(r[l>>2]|0)+-1,l=0,l|0}function N1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;l=l0(40)|0,l||q(27888,27858,98,27901),r[l>>2]=r[A>>2],r[l+4>>2]=r[A+4>>2],r[l+8>>2]=r[A+8>>2],r[l+12>>2]=r[A+12>>2],t=l+16|0,r[t>>2]=r[i>>2],r[t+4>>2]=r[i+4>>2],r[t+8>>2]=r[i+8>>2],r[t+12>>2]=r[i+12>>2],r[l+32>>2]=0,t=~~(+uA(+(+v0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,t=(r[e>>2]|0)+(t<<2)|0,n=r[t>>2]|0;do if(!n)r[t>>2]=l;else{for(;!(z0(n,A)|0&&z0(n+16|0,i)|0);)if(t=r[n+32>>2]|0,n=(t|0)==0?n:t,!(r[n+32>>2]|0)){f=10;break}if((f|0)==10){r[n+32>>2]=l;break}return K(l),f=n,f|0}while(!1);return f=e+8|0,r[f>>2]=(r[f>>2]|0)+1,f=l,f|0}function x1(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0;if(t=~~(+uA(+(+v0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,t=r[(r[e>>2]|0)+(t<<2)>>2]|0,!t)return i=0,i|0;if(!i){for(e=t;;){if(z0(e,A)|0){n=10;break}if(e=r[e+32>>2]|0,!e){e=0,n=10;break}}if((n|0)==10)return e|0}for(e=t;;){if(z0(e,A)|0&&z0(e+16|0,i)|0){n=10;break}if(e=r[e+32>>2]|0,!e){e=0,n=10;break}}return(n|0)==10?e|0:0}function Y1(e,A){e=e|0,A=A|0;var i=0;if(i=~~(+uA(+(+v0(10,+ +(15-(r[e+12>>2]|0)|0))*(+g[A>>3]+ +g[A+8>>3])))%+(r[e+4>>2]|0))>>>0,e=r[(r[e>>2]|0)+(i<<2)>>2]|0,!e)return i=0,i|0;for(;;){if(z0(e,A)|0){A=5;break}if(e=r[e+32>>2]|0,!e){e=0,A=5;break}}return(A|0)==5?e|0:0}function j1(){return 27920}function Q0(e){return e=+e,~~+fr(+e)|0}function l0(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0,b=0,m=0,a=0,M=0,_=0,C=0,S=0;S=w,w=w+16|0,E=S;do if(e>>>0<245){if(u=e>>>0<11?16:e+11&-8,e=u>>>3,B=r[6981]|0,i=B>>>e,i&3|0)return A=(i&1^1)+e|0,e=27964+(A<<1<<2)|0,i=e+8|0,n=r[i>>2]|0,t=n+8|0,l=r[t>>2]|0,(l|0)==(e|0)?r[6981]=B&~(1<<A):(r[l+12>>2]=e,r[i>>2]=l),C=A<<3,r[n+4>>2]=C|3,C=n+C+4|0,r[C>>2]=r[C>>2]|1,C=t,w=S,C|0;if(h=r[6983]|0,u>>>0>h>>>0){if(i|0)return A=2<<e,A=i<<e&(A|0-A),A=(A&0-A)+-1|0,o=A>>>12&16,A=A>>>o,i=A>>>5&8,A=A>>>i,l=A>>>2&4,A=A>>>l,e=A>>>1&2,A=A>>>e,n=A>>>1&1,n=(i|o|l|e|n)+(A>>>n)|0,A=27964+(n<<1<<2)|0,e=A+8|0,l=r[e>>2]|0,o=l+8|0,i=r[o>>2]|0,(i|0)==(A|0)?(e=B&~(1<<n),r[6981]=e):(r[i+12>>2]=A,r[e>>2]=i,e=B),C=n<<3,f=C-u|0,r[l+4>>2]=u|3,t=l+u|0,r[t+4>>2]=f|1,r[l+C>>2]=f,h|0&&(n=r[6986]|0,A=h>>>3,i=27964+(A<<1<<2)|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=n,r[A+12>>2]=n,r[n+8>>2]=A,r[n+12>>2]=i),r[6983]=f,r[6986]=t,C=o,w=S,C|0;if(l=r[6982]|0,l){for(i=(l&0-l)+-1|0,t=i>>>12&16,i=i>>>t,n=i>>>5&8,i=i>>>n,f=i>>>2&4,i=i>>>f,o=i>>>1&2,i=i>>>o,s=i>>>1&1,s=r[28228+((n|t|f|o|s)+(i>>>s)<<2)>>2]|0,i=s,o=s,s=(r[s+4>>2]&-8)-u|0;e=r[i+16>>2]|0,!(!e&&(e=r[i+20>>2]|0,!e));)f=(r[e+4>>2]&-8)-u|0,t=f>>>0<s>>>0,i=e,o=t?e:o,s=t?f:s;if(f=o+u|0,f>>>0>o>>>0){t=r[o+24>>2]|0,A=r[o+12>>2]|0;do if((A|0)==(o|0)){if(e=o+20|0,A=r[e>>2]|0,!A&&(e=o+16|0,A=r[e>>2]|0,!A)){i=0;break}for(;;)if(n=A+20|0,i=r[n>>2]|0,i)A=i,e=n;else if(n=A+16|0,i=r[n>>2]|0,i)A=i,e=n;else break;r[e>>2]=0,i=A}else i=r[o+8>>2]|0,r[i+12>>2]=A,r[A+8>>2]=i,i=A;while(!1);do if(t|0){if(A=r[o+28>>2]|0,e=28228+(A<<2)|0,(o|0)==(r[e>>2]|0)){if(r[e>>2]=i,!i){r[6982]=l&~(1<<A);break}}else if(C=t+16|0,r[((r[C>>2]|0)==(o|0)?C:t+20|0)>>2]=i,!i)break;r[i+24>>2]=t,A=r[o+16>>2]|0,A|0&&(r[i+16>>2]=A,r[A+24>>2]=i),A=r[o+20>>2]|0,A|0&&(r[i+20>>2]=A,r[A+24>>2]=i)}while(!1);return s>>>0<16?(C=s+u|0,r[o+4>>2]=C|3,C=o+C+4|0,r[C>>2]=r[C>>2]|1):(r[o+4>>2]=u|3,r[f+4>>2]=s|1,r[f+s>>2]=s,h|0&&(n=r[6986]|0,A=h>>>3,i=27964+(A<<1<<2)|0,A=1<<A,A&B?(e=i+8|0,A=r[e>>2]|0):(r[6981]=A|B,A=i,e=i+8|0),r[e>>2]=n,r[A+12>>2]=n,r[n+8>>2]=A,r[n+12>>2]=i),r[6983]=s,r[6986]=f),C=o+8|0,w=S,C|0}else B=u}else B=u}else B=u}else if(e>>>0<=4294967231)if(e=e+11|0,u=e&-8,n=r[6982]|0,n){t=0-u|0,e=e>>>8,e?u>>>0>16777215?s=31:(B=(e+1048320|0)>>>16&8,b=e<<B,o=(b+520192|0)>>>16&4,b=b<<o,s=(b+245760|0)>>>16&2,s=14-(o|B|s)+(b<<s>>>15)|0,s=u>>>(s+7|0)&1|s<<1):s=0,i=r[28228+(s<<2)>>2]|0;A:do if(!i)i=0,e=0,b=61;else for(e=0,o=u<<((s|0)==31?0:25-(s>>>1)|0),l=0;;){if(f=(r[i+4>>2]&-8)-u|0,f>>>0<t>>>0)if(f)e=i,t=f;else{e=i,t=0,b=65;break A}if(b=r[i+20>>2]|0,i=r[i+16+(o>>>31<<2)>>2]|0,l=(b|0)==0|(b|0)==(i|0)?l:b,i)o=o<<1;else{i=l,b=61;break}}while(!1);if((b|0)==61){if((i|0)==0&(e|0)==0){if(e=2<<s,e=(e|0-e)&n,!e){B=u;break}B=(e&0-e)+-1|0,f=B>>>12&16,B=B>>>f,l=B>>>5&8,B=B>>>l,o=B>>>2&4,B=B>>>o,s=B>>>1&2,B=B>>>s,i=B>>>1&1,e=0,i=r[28228+((l|f|o|s|i)+(B>>>i)<<2)>>2]|0}i?b=65:(o=e,f=t)}if((b|0)==65)for(l=i;;)if(B=(r[l+4>>2]&-8)-u|0,i=B>>>0<t>>>0,t=i?B:t,e=i?l:e,i=r[l+16>>2]|0,i||(i=r[l+20>>2]|0),i)l=i;else{o=e,f=t;break}if((o|0)!=0&&f>>>0<((r[6983]|0)-u|0)>>>0&&(h=o+u|0,h>>>0>o>>>0)){l=r[o+24>>2]|0,A=r[o+12>>2]|0;do if((A|0)==(o|0)){if(e=o+20|0,A=r[e>>2]|0,!A&&(e=o+16|0,A=r[e>>2]|0,!A)){A=0;break}for(;;)if(t=A+20|0,i=r[t>>2]|0,i)A=i,e=t;else if(t=A+16|0,i=r[t>>2]|0,i)A=i,e=t;else break;r[e>>2]=0}else C=r[o+8>>2]|0,r[C+12>>2]=A,r[A+8>>2]=C;while(!1);do if(l){if(e=r[o+28>>2]|0,i=28228+(e<<2)|0,(o|0)==(r[i>>2]|0)){if(r[i>>2]=A,!A){n=n&~(1<<e),r[6982]=n;break}}else if(C=l+16|0,r[((r[C>>2]|0)==(o|0)?C:l+20|0)>>2]=A,!A)break;r[A+24>>2]=l,e=r[o+16>>2]|0,e|0&&(r[A+16>>2]=e,r[e+24>>2]=A),e=r[o+20>>2]|0,e&&(r[A+20>>2]=e,r[e+24>>2]=A)}while(!1);A:do if(f>>>0<16)C=f+u|0,r[o+4>>2]=C|3,C=o+C+4|0,r[C>>2]=r[C>>2]|1;else{if(r[o+4>>2]=u|3,r[h+4>>2]=f|1,r[h+f>>2]=f,A=f>>>3,f>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=h,r[A+12>>2]=h,r[h+8>>2]=A,r[h+12>>2]=i;break}if(A=f>>>8,A?f>>>0>16777215?i=31:(_=(A+1048320|0)>>>16&8,C=A<<_,M=(C+520192|0)>>>16&4,C=C<<M,i=(C+245760|0)>>>16&2,i=14-(M|_|i)+(C<<i>>>15)|0,i=f>>>(i+7|0)&1|i<<1):i=0,A=28228+(i<<2)|0,r[h+28>>2]=i,e=h+16|0,r[e+4>>2]=0,r[e>>2]=0,e=1<<i,!(n&e)){r[6982]=n|e,r[A>>2]=h,r[h+24>>2]=A,r[h+12>>2]=h,r[h+8>>2]=h;break}A=r[A>>2]|0;e:do if((r[A+4>>2]&-8|0)!=(f|0)){for(n=f<<((i|0)==31?0:25-(i>>>1)|0);i=A+16+(n>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(f|0)){A=e;break e}else n=n<<1,A=e;r[i>>2]=h,r[h+24>>2]=A,r[h+12>>2]=h,r[h+8>>2]=h;break A}while(!1);_=A+8|0,C=r[_>>2]|0,r[C+12>>2]=h,r[_>>2]=h,r[h+8>>2]=C,r[h+12>>2]=A,r[h+24>>2]=0}while(!1);return C=o+8|0,w=S,C|0}else B=u}else B=u;else B=-1;while(!1);if(i=r[6983]|0,i>>>0>=B>>>0)return A=i-B|0,e=r[6986]|0,A>>>0>15?(C=e+B|0,r[6986]=C,r[6983]=A,r[C+4>>2]=A|1,r[e+i>>2]=A,r[e+4>>2]=B|3):(r[6983]=0,r[6986]=0,r[e+4>>2]=i|3,C=e+i+4|0,r[C>>2]=r[C>>2]|1),C=e+8|0,w=S,C|0;if(f=r[6984]|0,f>>>0>B>>>0)return M=f-B|0,r[6984]=M,C=r[6987]|0,_=C+B|0,r[6987]=_,r[_+4>>2]=M|1,r[C+4>>2]=B|3,C=C+8|0,w=S,C|0;if(r[7099]|0?e=r[7101]|0:(r[7101]=4096,r[7100]=4096,r[7102]=-1,r[7103]=-1,r[7104]=0,r[7092]=0,r[7099]=E&-16^1431655768,e=4096),o=B+48|0,s=B+47|0,l=e+s|0,t=0-e|0,u=l&t,u>>>0<=B>>>0||(e=r[7091]|0,e|0&&(h=r[7089]|0,E=h+u|0,E>>>0<=h>>>0|E>>>0>e>>>0)))return C=0,w=S,C|0;A:do if(r[7092]&4)A=0,b=143;else{i=r[6987]|0;e:do if(i){for(n=28372;E=r[n>>2]|0,!(E>>>0<=i>>>0&&(E+(r[n+4>>2]|0)|0)>>>0>i>>>0);)if(e=r[n+8>>2]|0,e)n=e;else{b=128;break e}if(A=l-f&t,A>>>0<2147483647)if(e=m0(A|0)|0,(e|0)==((r[n>>2]|0)+(r[n+4>>2]|0)|0)){if((e|0)!=-1){f=A,l=e,b=145;break A}}else n=e,b=136;else A=0}else b=128;while(!1);do if((b|0)==128)if(i=m0(0)|0,(i|0)!=-1&&(A=i,D=r[7100]|0,Q=D+-1|0,A=((Q&A|0)==0?0:(Q+A&0-D)-A|0)+u|0,D=r[7089]|0,Q=A+D|0,A>>>0>B>>>0&A>>>0<2147483647)){if(E=r[7091]|0,E|0&&Q>>>0<=D>>>0|Q>>>0>E>>>0){A=0;break}if(e=m0(A|0)|0,(e|0)==(i|0)){f=A,l=i,b=145;break A}else n=e,b=136}else A=0;while(!1);do if((b|0)==136){if(i=0-A|0,!(o>>>0>A>>>0&(A>>>0<2147483647&(n|0)!=-1)))if((n|0)==-1){A=0;break}else{f=A,l=n,b=145;break A}if(e=r[7101]|0,e=s-A+e&0-e,e>>>0>=2147483647){f=A,l=n,b=145;break A}if((m0(e|0)|0)==-1){m0(i|0)|0,A=0;break}else{f=e+A|0,l=n,b=145;break A}}while(!1);r[7092]=r[7092]|4,b=143}while(!1);if((b|0)==143&&u>>>0<2147483647&&(M=m0(u|0)|0,Q=m0(0)|0,m=Q-M|0,a=m>>>0>(B+40|0)>>>0,!((M|0)==-1|a^1|M>>>0<Q>>>0&((M|0)!=-1&(Q|0)!=-1)^1))&&(f=a?m:A,l=M,b=145),(b|0)==145){A=(r[7089]|0)+f|0,r[7089]=A,A>>>0>(r[7090]|0)>>>0&&(r[7090]=A),s=r[6987]|0;A:do if(s){for(A=28372;;){if(e=r[A>>2]|0,i=r[A+4>>2]|0,(l|0)==(e+i|0)){b=154;break}if(n=r[A+8>>2]|0,n)A=n;else break}if((b|0)==154&&(_=A+4|0,(r[A+12>>2]&8|0)==0)&&l>>>0>s>>>0&e>>>0<=s>>>0){r[_>>2]=i+f,C=(r[6984]|0)+f|0,M=s+8|0,M=(M&7|0)==0?0:0-M&7,_=s+M|0,M=C-M|0,r[6987]=_,r[6984]=M,r[_+4>>2]=M|1,r[s+C+4>>2]=40,r[6988]=r[7103];break}for(l>>>0<(r[6985]|0)>>>0&&(r[6985]=l),i=l+f|0,A=28372;;){if((r[A>>2]|0)==(i|0)){b=162;break}if(e=r[A+8>>2]|0,e)A=e;else break}if((b|0)==162&&(r[A+12>>2]&8|0)==0){r[A>>2]=l,h=A+4|0,r[h>>2]=(r[h>>2]|0)+f,h=l+8|0,h=l+((h&7|0)==0?0:0-h&7)|0,A=i+8|0,A=i+((A&7|0)==0?0:0-A&7)|0,u=h+B|0,o=A-h-B|0,r[h+4>>2]=B|3;e:do if((s|0)==(A|0))C=(r[6984]|0)+o|0,r[6984]=C,r[6987]=u,r[u+4>>2]=C|1;else{if((r[6986]|0)==(A|0)){C=(r[6983]|0)+o|0,r[6983]=C,r[6986]=u,r[u+4>>2]=C|1,r[u+C>>2]=C;break}if(e=r[A+4>>2]|0,(e&3|0)==1){f=e&-8,n=e>>>3;r:do if(e>>>0<256)if(e=r[A+8>>2]|0,i=r[A+12>>2]|0,(i|0)==(e|0)){r[6981]=r[6981]&~(1<<n);break}else{r[e+12>>2]=i,r[i+8>>2]=e;break}else{l=r[A+24>>2]|0,e=r[A+12>>2]|0;do if((e|0)==(A|0)){if(i=A+16|0,n=i+4|0,e=r[n>>2]|0,e)i=n;else if(e=r[i>>2]|0,!e){e=0;break}for(;;)if(t=e+20|0,n=r[t>>2]|0,n)e=n,i=t;else if(t=e+16|0,n=r[t>>2]|0,n)e=n,i=t;else break;r[i>>2]=0}else C=r[A+8>>2]|0,r[C+12>>2]=e,r[e+8>>2]=C;while(!1);if(!l)break;i=r[A+28>>2]|0,n=28228+(i<<2)|0;do if((r[n>>2]|0)!=(A|0)){if(C=l+16|0,r[((r[C>>2]|0)==(A|0)?C:l+20|0)>>2]=e,!e)break r}else{if(r[n>>2]=e,e|0)break;r[6982]=r[6982]&~(1<<i);break r}while(!1);if(r[e+24>>2]=l,i=A+16|0,n=r[i>>2]|0,n|0&&(r[e+16>>2]=n,r[n+24>>2]=e),i=r[i+4>>2]|0,!i)break;r[e+20>>2]=i,r[i+24>>2]=e}while(!1);A=A+f|0,t=f+o|0}else t=o;if(A=A+4|0,r[A>>2]=r[A>>2]&-2,r[u+4>>2]=t|1,r[u+t>>2]=t,A=t>>>3,t>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=u,r[A+12>>2]=u,r[u+8>>2]=A,r[u+12>>2]=i;break}A=t>>>8;do if(!A)n=0;else{if(t>>>0>16777215){n=31;break}_=(A+1048320|0)>>>16&8,C=A<<_,M=(C+520192|0)>>>16&4,C=C<<M,n=(C+245760|0)>>>16&2,n=14-(M|_|n)+(C<<n>>>15)|0,n=t>>>(n+7|0)&1|n<<1}while(!1);if(A=28228+(n<<2)|0,r[u+28>>2]=n,e=u+16|0,r[e+4>>2]=0,r[e>>2]=0,e=r[6982]|0,i=1<<n,!(e&i)){r[6982]=e|i,r[A>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break}A=r[A>>2]|0;r:do if((r[A+4>>2]&-8|0)!=(t|0)){for(n=t<<((n|0)==31?0:25-(n>>>1)|0);i=A+16+(n>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(t|0)){A=e;break r}else n=n<<1,A=e;r[i>>2]=u,r[u+24>>2]=A,r[u+12>>2]=u,r[u+8>>2]=u;break e}while(!1);_=A+8|0,C=r[_>>2]|0,r[C+12>>2]=u,r[_>>2]=u,r[u+8>>2]=C,r[u+12>>2]=A,r[u+24>>2]=0}while(!1);return C=h+8|0,w=S,C|0}for(A=28372;e=r[A>>2]|0,!(e>>>0<=s>>>0&&(C=e+(r[A+4>>2]|0)|0,C>>>0>s>>>0));)A=r[A+8>>2]|0;t=C+-47|0,e=t+8|0,e=t+((e&7|0)==0?0:0-e&7)|0,t=s+16|0,e=e>>>0<t>>>0?s:e,A=e+8|0,i=f+-40|0,M=l+8|0,M=(M&7|0)==0?0:0-M&7,_=l+M|0,M=i-M|0,r[6987]=_,r[6984]=M,r[_+4>>2]=M|1,r[l+i+4>>2]=40,r[6988]=r[7103],i=e+4|0,r[i>>2]=27,r[A>>2]=r[7093],r[A+4>>2]=r[7094],r[A+8>>2]=r[7095],r[A+12>>2]=r[7096],r[7093]=l,r[7094]=f,r[7096]=0,r[7095]=A,A=e+24|0;do _=A,A=A+4|0,r[A>>2]=7;while((_+8|0)>>>0<C>>>0);if((e|0)!=(s|0)){if(l=e-s|0,r[i>>2]=r[i>>2]&-2,r[s+4>>2]=l|1,r[e>>2]=l,A=l>>>3,l>>>0<256){i=27964+(A<<1<<2)|0,e=r[6981]|0,A=1<<A,e&A?(e=i+8|0,A=r[e>>2]|0):(r[6981]=e|A,A=i,e=i+8|0),r[e>>2]=s,r[A+12>>2]=s,r[s+8>>2]=A,r[s+12>>2]=i;break}if(A=l>>>8,A?l>>>0>16777215?n=31:(_=(A+1048320|0)>>>16&8,C=A<<_,M=(C+520192|0)>>>16&4,C=C<<M,n=(C+245760|0)>>>16&2,n=14-(M|_|n)+(C<<n>>>15)|0,n=l>>>(n+7|0)&1|n<<1):n=0,i=28228+(n<<2)|0,r[s+28>>2]=n,r[s+20>>2]=0,r[t>>2]=0,A=r[6982]|0,e=1<<n,!(A&e)){r[6982]=A|e,r[i>>2]=s,r[s+24>>2]=i,r[s+12>>2]=s,r[s+8>>2]=s;break}A=r[i>>2]|0;e:do if((r[A+4>>2]&-8|0)!=(l|0)){for(n=l<<((n|0)==31?0:25-(n>>>1)|0);i=A+16+(n>>>31<<2)|0,e=r[i>>2]|0,!!e;)if((r[e+4>>2]&-8|0)==(l|0)){A=e;break e}else n=n<<1,A=e;r[i>>2]=s,r[s+24>>2]=A,r[s+12>>2]=s,r[s+8>>2]=s;break A}while(!1);_=A+8|0,C=r[_>>2]|0,r[C+12>>2]=s,r[_>>2]=s,r[s+8>>2]=C,r[s+12>>2]=A,r[s+24>>2]=0}}else C=r[6985]|0,(C|0)==0|l>>>0<C>>>0&&(r[6985]=l),r[7093]=l,r[7094]=f,r[7096]=0,r[6990]=r[7099],r[6989]=-1,r[6994]=27964,r[6993]=27964,r[6996]=27972,r[6995]=27972,r[6998]=27980,r[6997]=27980,r[7e3]=27988,r[6999]=27988,r[7002]=27996,r[7001]=27996,r[7004]=28004,r[7003]=28004,r[7006]=28012,r[7005]=28012,r[7008]=28020,r[7007]=28020,r[7010]=28028,r[7009]=28028,r[7012]=28036,r[7011]=28036,r[7014]=28044,r[7013]=28044,r[7016]=28052,r[7015]=28052,r[7018]=28060,r[7017]=28060,r[7020]=28068,r[7019]=28068,r[7022]=28076,r[7021]=28076,r[7024]=28084,r[7023]=28084,r[7026]=28092,r[7025]=28092,r[7028]=28100,r[7027]=28100,r[7030]=28108,r[7029]=28108,r[7032]=28116,r[7031]=28116,r[7034]=28124,r[7033]=28124,r[7036]=28132,r[7035]=28132,r[7038]=28140,r[7037]=28140,r[7040]=28148,r[7039]=28148,r[7042]=28156,r[7041]=28156,r[7044]=28164,r[7043]=28164,r[7046]=28172,r[7045]=28172,r[7048]=28180,r[7047]=28180,r[7050]=28188,r[7049]=28188,r[7052]=28196,r[7051]=28196,r[7054]=28204,r[7053]=28204,r[7056]=28212,r[7055]=28212,C=f+-40|0,M=l+8|0,M=(M&7|0)==0?0:0-M&7,_=l+M|0,M=C-M|0,r[6987]=_,r[6984]=M,r[_+4>>2]=M|1,r[l+C+4>>2]=40,r[6988]=r[7103];while(!1);if(A=r[6984]|0,A>>>0>B>>>0)return M=A-B|0,r[6984]=M,C=r[6987]|0,_=C+B|0,r[6987]=_,r[_+4>>2]=M|1,r[C+4>>2]=B|3,C=C+8|0,w=S,C|0}return C=j1()|0,r[C>>2]=12,C=0,w=S,C|0}function K(e){e=e|0;var A=0,i=0,n=0,t=0,l=0,f=0,o=0,s=0;if(e){i=e+-8|0,t=r[6985]|0,e=r[e+-4>>2]|0,A=e&-8,s=i+A|0;do if(e&1)o=i,f=i;else{if(n=r[i>>2]|0,!(e&3)||(f=i+(0-n)|0,l=n+A|0,f>>>0<t>>>0))return;if((r[6986]|0)==(f|0)){if(e=s+4|0,A=r[e>>2]|0,(A&3|0)!=3){o=f,A=l;break}r[6983]=l,r[e>>2]=A&-2,r[f+4>>2]=l|1,r[f+l>>2]=l;return}if(i=n>>>3,n>>>0<256)if(e=r[f+8>>2]|0,A=r[f+12>>2]|0,(A|0)==(e|0)){r[6981]=r[6981]&~(1<<i),o=f,A=l;break}else{r[e+12>>2]=A,r[A+8>>2]=e,o=f,A=l;break}t=r[f+24>>2]|0,e=r[f+12>>2]|0;do if((e|0)==(f|0)){if(A=f+16|0,i=A+4|0,e=r[i>>2]|0,e)A=i;else if(e=r[A>>2]|0,!e){e=0;break}for(;;)if(n=e+20|0,i=r[n>>2]|0,i)e=i,A=n;else if(n=e+16|0,i=r[n>>2]|0,i)e=i,A=n;else break;r[A>>2]=0}else o=r[f+8>>2]|0,r[o+12>>2]=e,r[e+8>>2]=o;while(!1);if(t){if(A=r[f+28>>2]|0,i=28228+(A<<2)|0,(r[i>>2]|0)==(f|0)){if(r[i>>2]=e,!e){r[6982]=r[6982]&~(1<<A),o=f,A=l;break}}else if(o=t+16|0,r[((r[o>>2]|0)==(f|0)?o:t+20|0)>>2]=e,!e){o=f,A=l;break}r[e+24>>2]=t,A=f+16|0,i=r[A>>2]|0,i|0&&(r[e+16>>2]=i,r[i+24>>2]=e),A=r[A+4>>2]|0,A?(r[e+20>>2]=A,r[A+24>>2]=e,o=f,A=l):(o=f,A=l)}else o=f,A=l}while(!1);if(!(f>>>0>=s>>>0)&&(e=s+4|0,n=r[e>>2]|0,!!(n&1))){if(n&2)r[e>>2]=n&-2,r[o+4>>2]=A|1,r[f+A>>2]=A,t=A;else{if((r[6987]|0)==(s|0)){if(s=(r[6984]|0)+A|0,r[6984]=s,r[6987]=o,r[o+4>>2]=s|1,(o|0)!=(r[6986]|0))return;r[6986]=0,r[6983]=0;return}if((r[6986]|0)==(s|0)){s=(r[6983]|0)+A|0,r[6983]=s,r[6986]=f,r[o+4>>2]=s|1,r[f+s>>2]=s;return}t=(n&-8)+A|0,i=n>>>3;do if(n>>>0<256)if(A=r[s+8>>2]|0,e=r[s+12>>2]|0,(e|0)==(A|0)){r[6981]=r[6981]&~(1<<i);break}else{r[A+12>>2]=e,r[e+8>>2]=A;break}else{l=r[s+24>>2]|0,e=r[s+12>>2]|0;do if((e|0)==(s|0)){if(A=s+16|0,i=A+4|0,e=r[i>>2]|0,e)A=i;else if(e=r[A>>2]|0,!e){i=0;break}for(;;)if(n=e+20|0,i=r[n>>2]|0,i)e=i,A=n;else if(n=e+16|0,i=r[n>>2]|0,i)e=i,A=n;else break;r[A>>2]=0,i=e}else i=r[s+8>>2]|0,r[i+12>>2]=e,r[e+8>>2]=i,i=e;while(!1);if(l|0){if(e=r[s+28>>2]|0,A=28228+(e<<2)|0,(r[A>>2]|0)==(s|0)){if(r[A>>2]=i,!i){r[6982]=r[6982]&~(1<<e);break}}else if(n=l+16|0,r[((r[n>>2]|0)==(s|0)?n:l+20|0)>>2]=i,!i)break;r[i+24>>2]=l,e=s+16|0,A=r[e>>2]|0,A|0&&(r[i+16>>2]=A,r[A+24>>2]=i),e=r[e+4>>2]|0,e|0&&(r[i+20>>2]=e,r[e+24>>2]=i)}}while(!1);if(r[o+4>>2]=t|1,r[f+t>>2]=t,(o|0)==(r[6986]|0)){r[6983]=t;return}}if(e=t>>>3,t>>>0<256){i=27964+(e<<1<<2)|0,A=r[6981]|0,e=1<<e,A&e?(A=i+8|0,e=r[A>>2]|0):(r[6981]=A|e,e=i,A=i+8|0),r[A>>2]=o,r[e+12>>2]=o,r[o+8>>2]=e,r[o+12>>2]=i;return}e=t>>>8,e?t>>>0>16777215?n=31:(f=(e+1048320|0)>>>16&8,s=e<<f,l=(s+520192|0)>>>16&4,s=s<<l,n=(s+245760|0)>>>16&2,n=14-(l|f|n)+(s<<n>>>15)|0,n=t>>>(n+7|0)&1|n<<1):n=0,e=28228+(n<<2)|0,r[o+28>>2]=n,r[o+20>>2]=0,r[o+16>>2]=0,A=r[6982]|0,i=1<<n;A:do if(!(A&i))r[6982]=A|i,r[e>>2]=o,r[o+24>>2]=e,r[o+12>>2]=o,r[o+8>>2]=o;else{e=r[e>>2]|0;e:do if((r[e+4>>2]&-8|0)!=(t|0)){for(n=t<<((n|0)==31?0:25-(n>>>1)|0);i=e+16+(n>>>31<<2)|0,A=r[i>>2]|0,!!A;)if((r[A+4>>2]&-8|0)==(t|0)){e=A;break e}else n=n<<1,e=A;r[i>>2]=o,r[o+24>>2]=e,r[o+12>>2]=o,r[o+8>>2]=o;break A}while(!1);f=e+8|0,s=r[f>>2]|0,r[s+12>>2]=o,r[f>>2]=o,r[o+8>>2]=s,r[o+12>>2]=e,r[o+24>>2]=0}while(!1);if(s=(r[6989]|0)+-1|0,r[6989]=s,!(s|0)){for(e=28380;e=r[e>>2]|0,e;)e=e+8|0;r[6989]=-1}}}}function JA(e,A){e=e|0,A=A|0;var i=0;return e?(i=n0(A,e)|0,(A|e)>>>0>65535&&(i=((i>>>0)/(e>>>0)|0|0)==(A|0)?i:-1)):i=0,e=l0(i)|0,!e||!(r[e+-4>>2]&3)||C0(e|0,0,i|0)|0,e|0}function W(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,i=e+i>>>0,iA(A+n+(i>>>0<e>>>0|0)>>>0|0),i|0|0}function SA(e,A,i,n){return e=e|0,A=A|0,i=i|0,n=n|0,n=A-n-(i>>>0>e>>>0|0)>>>0,iA(n|0),e-i>>>0|0|0}function nr(e){return e=e|0,(e?31-(g0(e^e-1)|0)|0:32)|0}function Ae(e,A,i,n,t){e=e|0,A=A|0,i=i|0,n=n|0,t=t|0;var l=0,f=0,o=0,s=0,u=0,h=0,B=0,E=0,D=0,Q=0;if(h=e,s=A,u=s,f=i,E=n,o=E,!u)return l=(t|0)!=0,o?l?(r[t>>2]=e|0,r[t+4>>2]=A&0,E=0,t=0,iA(E|0),t|0):(E=0,t=0,iA(E|0),t|0):(l&&(r[t>>2]=(h>>>0)%(f>>>0),r[t+4>>2]=0),E=0,t=(h>>>0)/(f>>>0)>>>0,iA(E|0),t|0);l=(o|0)==0;do if(f){if(!l){if(l=(g0(o|0)|0)-(g0(u|0)|0)|0,l>>>0<=31){B=l+1|0,o=31-l|0,A=l-31>>31,f=B,e=h>>>(B>>>0)&A|u<<o,A=u>>>(B>>>0)&A,l=0,o=h<<o;break}return t?(r[t>>2]=e|0,r[t+4>>2]=s|A&0,E=0,t=0,iA(E|0),t|0):(E=0,t=0,iA(E|0),t|0)}if(l=f-1|0,l&f|0){o=(g0(f|0)|0)+33-(g0(u|0)|0)|0,Q=64-o|0,B=32-o|0,s=B>>31,D=o-32|0,A=D>>31,f=o,e=B-1>>31&u>>>(D>>>0)|(u<<B|h>>>(o>>>0))&A,A=A&u>>>(o>>>0),l=h<<Q&s,o=(u<<Q|h>>>(D>>>0))&s|h<<B&o-33>>31;break}return t|0&&(r[t>>2]=l&h,r[t+4>>2]=0),(f|0)==1?(D=s|A&0,Q=e|0|0,iA(D|0),Q|0):(Q=nr(f|0)|0,D=u>>>(Q>>>0)|0,Q=u<<32-Q|h>>>(Q>>>0)|0,iA(D|0),Q|0)}else{if(l)return t|0&&(r[t>>2]=(u>>>0)%(f>>>0),r[t+4>>2]=0),D=0,Q=(u>>>0)/(f>>>0)>>>0,iA(D|0),Q|0;if(!h)return t|0&&(r[t>>2]=0,r[t+4>>2]=(u>>>0)%(o>>>0)),D=0,Q=(u>>>0)/(o>>>0)>>>0,iA(D|0),Q|0;if(l=o-1|0,!(l&o))return t|0&&(r[t>>2]=e|0,r[t+4>>2]=l&u|A&0),D=0,Q=u>>>((nr(o|0)|0)>>>0),iA(D|0),Q|0;if(l=(g0(o|0)|0)-(g0(u|0)|0)|0,l>>>0<=30){A=l+1|0,o=31-l|0,f=A,e=u<<o|h>>>(A>>>0),A=u>>>(A>>>0),l=0,o=h<<o;break}return t?(r[t>>2]=e|0,r[t+4>>2]=s|A&0,D=0,Q=0,iA(D|0),Q|0):(D=0,Q=0,iA(D|0),Q|0)}while(!1);if(!f)u=o,s=0,o=0;else{B=i|0|0,h=E|n&0,u=W(B|0,h|0,-1,-1)|0,i=k()|0,s=o,o=0;do n=s,s=l>>>31|s<<1,l=o|l<<1,n=e<<1|n>>>31|0,E=e>>>31|A<<1|0,SA(u|0,i|0,n|0,E|0)|0,Q=k()|0,D=Q>>31|((Q|0)<0?-1:0)<<1,o=D&1,e=SA(n|0,E|0,D&B|0,(((Q|0)<0?-1:0)>>31|((Q|0)<0?-1:0)<<1)&h|0)|0,A=k()|0,f=f-1|0;while((f|0)!=0);u=s,s=0}return f=0,t|0&&(r[t>>2]=e,r[t+4>>2]=A),D=(l|0)>>>31|(u|f)<<1|(f<<1|l>>>31)&0|s,Q=(l<<1|0)&-2|o,iA(D|0),Q|0}function b0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0;return u=A>>31|((A|0)<0?-1:0)<<1,s=((A|0)<0?-1:0)>>31|((A|0)<0?-1:0)<<1,l=n>>31|((n|0)<0?-1:0)<<1,t=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1,o=SA(u^e|0,s^A|0,u|0,s|0)|0,f=k()|0,e=l^u,A=t^s,SA((Ae(o,f,SA(l^i|0,t^n|0,l|0,t|0)|0,k()|0,0)|0)^e|0,(k()|0)^A|0,e|0,A|0)|0}function W1(e,A){e=e|0,A=A|0;var i=0,n=0,t=0,l=0;return l=e&65535,t=A&65535,i=n0(t,l)|0,n=e>>>16,e=(i>>>16)+(n0(t,n)|0)|0,t=A>>>16,A=n0(t,l)|0,iA((e>>>16)+(n0(t,n)|0)+(((e&65535)+A|0)>>>16)|0),e+A<<16|i&65535|0|0}function HA(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0;return t=e,l=i,i=W1(t,l)|0,e=k()|0,iA((n0(A,l)|0)+(n0(n,t)|0)+e|e&0|0),i|0|0|0}function U0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0,f=0,o=0,s=0,u=0;return t=w,w=w+16|0,o=t|0,f=A>>31|((A|0)<0?-1:0)<<1,l=((A|0)<0?-1:0)>>31|((A|0)<0?-1:0)<<1,u=n>>31|((n|0)<0?-1:0)<<1,s=((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1,e=SA(f^e|0,l^A|0,f|0,l|0)|0,A=k()|0,Ae(e,A,SA(u^i|0,s^n|0,u|0,s|0)|0,k()|0,o)|0,n=SA(r[o>>2]^f|0,r[o+4>>2]^l|0,f|0,l|0)|0,i=k()|0,w=t,iA(i|0),n|0}function N0(e,A,i,n){e=e|0,A=A|0,i=i|0,n=n|0;var t=0,l=0;return l=w,w=w+16|0,t=l|0,Ae(e,A,i,n,t)|0,w=l,iA(r[t+4>>2]|0),r[t>>2]|0|0}function tr(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(iA(A>>i|0),e>>>i|(A&(1<<i)-1)<<32-i):(iA(((A|0)<0?-1:0)|0),A>>i-32|0)}function P(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(iA(A>>>i|0),e>>>i|(A&(1<<i)-1)<<32-i):(iA(0),A>>>i-32|0)}function R(e,A,i){return e=e|0,A=A|0,i=i|0,(i|0)<32?(iA(A<<i|(e&(1<<i)-1<<32-i)>>>32-i|0),e<<i):(iA(e<<i-32|0),0)}function ee(e,A,i){return e=e|0,A=A|0,A=g0(A)|0,(A|0)==32&&(A=A+(g0(e)|0)|0),iA(0),A|0}function lr(e,A){return e=+e,A=+A,e!=e?+A:A!=A?+e:+cr(+e,+A)}function h2(e,A){return e=+e,A=+A,e!=e?+A:A!=A?+e:+I2(+e,+A)}function g2(e){return e=+e,e>=0?+RA(e+.5):+O0(e-.5)}function x0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0;if((i|0)>=8192)return Ai(e|0,A|0,i|0)|0,e|0;if(l=e|0,t=e+i|0,(e&3)==(A&3)){for(;e&3;){if(!i)return l|0;p[e>>0]=p[A>>0]|0,e=e+1|0,A=A+1|0,i=i-1|0}for(i=t&-4|0,n=i-64|0;(e|0)<=(n|0);)r[e>>2]=r[A>>2],r[e+4>>2]=r[A+4>>2],r[e+8>>2]=r[A+8>>2],r[e+12>>2]=r[A+12>>2],r[e+16>>2]=r[A+16>>2],r[e+20>>2]=r[A+20>>2],r[e+24>>2]=r[A+24>>2],r[e+28>>2]=r[A+28>>2],r[e+32>>2]=r[A+32>>2],r[e+36>>2]=r[A+36>>2],r[e+40>>2]=r[A+40>>2],r[e+44>>2]=r[A+44>>2],r[e+48>>2]=r[A+48>>2],r[e+52>>2]=r[A+52>>2],r[e+56>>2]=r[A+56>>2],r[e+60>>2]=r[A+60>>2],e=e+64|0,A=A+64|0;for(;(e|0)<(i|0);)r[e>>2]=r[A>>2],e=e+4|0,A=A+4|0}else for(i=t-4|0;(e|0)<(i|0);)p[e>>0]=p[A>>0]|0,p[e+1>>0]=p[A+1>>0]|0,p[e+2>>0]=p[A+2>>0]|0,p[e+3>>0]=p[A+3>>0]|0,e=e+4|0,A=A+4|0;for(;(e|0)<(t|0);)p[e>>0]=p[A>>0]|0,e=e+1|0,A=A+1|0;return l|0}function C0(e,A,i){e=e|0,A=A|0,i=i|0;var n=0,t=0,l=0,f=0;if(l=e+i|0,A=A&255,(i|0)>=67){for(;e&3;)p[e>>0]=A,e=e+1|0;for(n=l&-4|0,f=A|A<<8|A<<16|A<<24,t=n-64|0;(e|0)<=(t|0);)r[e>>2]=f,r[e+4>>2]=f,r[e+8>>2]=f,r[e+12>>2]=f,r[e+16>>2]=f,r[e+20>>2]=f,r[e+24>>2]=f,r[e+28>>2]=f,r[e+32>>2]=f,r[e+36>>2]=f,r[e+40>>2]=f,r[e+44>>2]=f,r[e+48>>2]=f,r[e+52>>2]=f,r[e+56>>2]=f,r[e+60>>2]=f,e=e+64|0;for(;(e|0)<(n|0);)r[e>>2]=f,e=e+4|0}for(;(e|0)<(l|0);)p[e>>0]=A,e=e+1|0;return l-i|0}function fr(e){return e=+e,e>=0?+RA(e+.5):+O0(e-.5)}function m0(e){e=e|0;var A=0,i=0,n=0;return n=$r()|0,i=r[_A>>2]|0,A=i+e|0,(e|0)>0&(A|0)<(i|0)|(A|0)<0?(ri(A|0)|0,ke(12),-1):(A|0)>(n|0)&&!(ei(A|0)|0)?(ke(12),-1):(r[_A>>2]=A,i|0)}return{___divdi3:b0,___muldi3:HA,___remdi3:U0,___uremdi3:N0,_areNeighborCells:Gi,_bitshift64Ashr:tr,_bitshift64Lshr:P,_bitshift64Shl:R,_calloc:JA,_cellAreaKm2:g1,_cellAreaM2:w1,_cellAreaRads2:X2,_cellToBoundary:d0,_cellToCenterChild:ze,_cellToChildPos:i1,_cellToChildren:Zi,_cellToChildrenSize:Z0,_cellToLatLng:P0,_cellToLocalIj:b1,_cellToParent:x2,_cellToVertex:e0,_cellToVertexes:z1,_cellsToDirectedEdge:Ri,_cellsToLinkedMultiPolygon:Bi,_childPosToCell:n1,_compactCells:Ji,_constructCell:Ki,_destroyLinkedMultiPolygon:je,_directedEdgeToBoundary:f2,_directedEdgeToCells:Hi,_edgeLengthKm:k1,_edgeLengthM:v1,_edgeLengthRads:B1,_emscripten_replace_memory:ii,_free:K,_getBaseCellNumber:He,_getDirectedEdgeDestination:Si,_getDirectedEdgeOrigin:Oi,_getHexagonAreaAvgKm2:xe,_getHexagonAreaAvgM2:s1,_getHexagonEdgeLengthAvgKm:u1,_getHexagonEdgeLengthAvgM:h1,_getIcosahedronFaces:Ue,_getIndexDigit:Wi,_getNumCells:o2,_getPentagons:V2,_getRes0Cells:Qi,_getResolution:ji,_greatCircleDistanceKm:X0,_greatCircleDistanceM:l1,_greatCircleDistanceRads:t1,_gridDisk:ve,_gridDiskDistances:Ee,_gridDistance:m1,_gridPathCells:M1,_gridPathCellsSize:_1,_gridRing:si,_gridRingUnsafe:Qe,_i64Add:W,_i64Subtract:SA,_isPentagon:TA,_isResClassIII:ci,_isValidCell:U2,_isValidDirectedEdge:Re,_isValidIndex:Vi,_isValidVertex:$e,_latLngToCell:W2,_llvm_ctlz_i64:ee,_llvm_maxnum_f64:lr,_llvm_minnum_f64:h2,_llvm_round_f64:g2,_localIjToCell:C1,_malloc:l0,_maxFaceCount:e1,_maxGridDiskSize:oi,_maxPolygonToCellsSize:hi,_maxPolygonToCellsSizeExperimental:L1,_memcpy:x0,_memset:C0,_originToDirectedEdges:di,_pentagonCount:r1,_polygonToCells:gi,_polygonToCellsExperimental:T1,_readInt64AsDoubleFromPointer:O1,_res0CellCount:Di,_round:fr,_sbrk:m0,_sizeOfCellBoundary:y1,_sizeOfCoordIJ:R1,_sizeOfGeoLoop:p1,_sizeOfGeoPolygon:F1,_sizeOfH3Index:P1,_sizeOfLatLng:I1,_sizeOfLinkedGeoPolygon:G1,_uncompactCells:Xi,_uncompactCellsSize:qi,_vertexToLatLng:U1,establishStackSpace:fi,stackAlloc:ni,stackRestore:li,stackSave:ti}})(Kr,Vr,j);v.___divdi3=G.___divdi3,v.___muldi3=G.___muldi3,v.___remdi3=G.___remdi3,v.___uremdi3=G.___uremdi3,v._areNeighborCells=G._areNeighborCells,v._bitshift64Ashr=G._bitshift64Ashr,v._bitshift64Lshr=G._bitshift64Lshr,v._bitshift64Shl=G._bitshift64Shl,v._calloc=G._calloc,v._cellAreaKm2=G._cellAreaKm2,v._cellAreaM2=G._cellAreaM2,v._cellAreaRads2=G._cellAreaRads2,v._cellToBoundary=G._cellToBoundary,v._cellToCenterChild=G._cellToCenterChild,v._cellToChildPos=G._cellToChildPos,v._cellToChildren=G._cellToChildren,v._cellToChildrenSize=G._cellToChildrenSize,v._cellToLatLng=G._cellToLatLng,v._cellToLocalIj=G._cellToLocalIj,v._cellToParent=G._cellToParent,v._cellToVertex=G._cellToVertex,v._cellToVertexes=G._cellToVertexes,v._cellsToDirectedEdge=G._cellsToDirectedEdge,v._cellsToLinkedMultiPolygon=G._cellsToLinkedMultiPolygon,v._childPosToCell=G._childPosToCell,v._compactCells=G._compactCells,v._constructCell=G._constructCell,v._destroyLinkedMultiPolygon=G._destroyLinkedMultiPolygon,v._directedEdgeToBoundary=G._directedEdgeToBoundary,v._directedEdgeToCells=G._directedEdgeToCells,v._edgeLengthKm=G._edgeLengthKm,v._edgeLengthM=G._edgeLengthM,v._edgeLengthRads=G._edgeLengthRads;var Zr=v._emscripten_replace_memory=G._emscripten_replace_memory;v._free=G._free,v._getBaseCellNumber=G._getBaseCellNumber,v._getDirectedEdgeDestination=G._getDirectedEdgeDestination,v._getDirectedEdgeOrigin=G._getDirectedEdgeOrigin,v._getHexagonAreaAvgKm2=G._getHexagonAreaAvgKm2,v._getHexagonAreaAvgM2=G._getHexagonAreaAvgM2,v._getHexagonEdgeLengthAvgKm=G._getHexagonEdgeLengthAvgKm,v._getHexagonEdgeLengthAvgM=G._getHexagonEdgeLengthAvgM,v._getIcosahedronFaces=G._getIcosahedronFaces,v._getIndexDigit=G._getIndexDigit,v._getNumCells=G._getNumCells,v._getPentagons=G._getPentagons,v._getRes0Cells=G._getRes0Cells,v._getResolution=G._getResolution,v._greatCircleDistanceKm=G._greatCircleDistanceKm,v._greatCircleDistanceM=G._greatCircleDistanceM,v._greatCircleDistanceRads=G._greatCircleDistanceRads,v._gridDisk=G._gridDisk,v._gridDiskDistances=G._gridDiskDistances,v._gridDistance=G._gridDistance,v._gridPathCells=G._gridPathCells,v._gridPathCellsSize=G._gridPathCellsSize,v._gridRing=G._gridRing,v._gridRingUnsafe=G._gridRingUnsafe,v._i64Add=G._i64Add,v._i64Subtract=G._i64Subtract,v._isPentagon=G._isPentagon,v._isResClassIII=G._isResClassIII,v._isValidCell=G._isValidCell,v._isValidDirectedEdge=G._isValidDirectedEdge,v._isValidIndex=G._isValidIndex,v._isValidVertex=G._isValidVertex,v._latLngToCell=G._latLngToCell,v._llvm_ctlz_i64=G._llvm_ctlz_i64,v._llvm_maxnum_f64=G._llvm_maxnum_f64,v._llvm_minnum_f64=G._llvm_minnum_f64,v._llvm_round_f64=G._llvm_round_f64,v._localIjToCell=G._localIjToCell,v._malloc=G._malloc,v._maxFaceCount=G._maxFaceCount,v._maxGridDiskSize=G._maxGridDiskSize,v._maxPolygonToCellsSize=G._maxPolygonToCellsSize,v._maxPolygonToCellsSizeExperimental=G._maxPolygonToCellsSizeExperimental,v._memcpy=G._memcpy,v._memset=G._memset,v._originToDirectedEdges=G._originToDirectedEdges,v._pentagonCount=G._pentagonCount,v._polygonToCells=G._polygonToCells,v._polygonToCellsExperimental=G._polygonToCellsExperimental,v._readInt64AsDoubleFromPointer=G._readInt64AsDoubleFromPointer,v._res0CellCount=G._res0CellCount,v._round=G._round,v._sbrk=G._sbrk,v._sizeOfCellBoundary=G._sizeOfCellBoundary,v._sizeOfCoordIJ=G._sizeOfCoordIJ,v._sizeOfGeoLoop=G._sizeOfGeoLoop,v._sizeOfGeoPolygon=G._sizeOfGeoPolygon,v._sizeOfH3Index=G._sizeOfH3Index,v._sizeOfLatLng=G._sizeOfLatLng,v._sizeOfLinkedGeoPolygon=G._sizeOfLinkedGeoPolygon,v._uncompactCells=G._uncompactCells,v._uncompactCellsSize=G._uncompactCellsSize,v._vertexToLatLng=G._vertexToLatLng,v.establishStackSpace=G.establishStackSpace;var he=v.stackAlloc=G.stackAlloc,Jr=v.stackRestore=G.stackRestore,Xr=v.stackSave=G.stackSave;if(v.asm=G,v.cwrap=b2,v.setValue=VA,v.getValue=p0,h0){se(h0)||(h0=N(h0));{Or();var T2=function(T){T.byteLength&&(T=new Uint8Array(T)),J.set(T,XA),v.memoryInitializerRequest&&delete v.memoryInitializerRequest.response,Sr()},ge=function(){sA(h0,T2,function(){throw"could not load memory initializer "+h0})},we=a2(h0);if(we)T2(we.buffer);else if(v.memoryInitializerRequest){var Be=function(){var T=v.memoryInitializerRequest,I=T.response;if(T.status!==200&&T.status!==0){var d=a2(v.memoryInitializerRequestURL);if(d)I=d.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+T.status+", retrying "+h0),ge();return}}T2(I)};v.memoryInitializerRequest.response?setTimeout(Be,0):v.memoryInitializerRequest.addEventListener("load",Be)}else ge()}}var r2;K0=function T(){r2||L2(),r2||(K0=T)};function L2(T){if(_0>0||(ar(),_0>0))return;function I(){r2||(r2=!0,!k0&&(Tr(),Lr(),v.onRuntimeInitialized&&v.onRuntimeInitialized(),Pr()))}v.setStatus?(v.setStatus("Running..."),setTimeout(function(){setTimeout(function(){v.setStatus("")},1),I()},1)):I()}v.run=L2;function R0(T){throw v.onAbort&&v.onAbort(T),T+="",AA(T),CA(T),k0=!0,"abort("+T+"). Build with -s ASSERTIONS=1 for more info."}if(v.abort=R0,v.preInit)for(typeof v.preInit=="function"&&(v.preInit=[v.preInit]);v.preInit.length>0;)v.preInit.pop()();return L2(),L})(typeof PA=="object"?PA:{}),Z="number",V=Z,Y0=Z,c=Z,$=Z,dA=Z,z=Z,Z1=[["sizeOfH3Index",Z],["sizeOfLatLng",Z],["sizeOfCellBoundary",Z],["sizeOfGeoLoop",Z],["sizeOfGeoPolygon",Z],["sizeOfLinkedGeoPolygon",Z],["sizeOfCoordIJ",Z],["readInt64AsDoubleFromPointer",Z],["isValidCell",Y0,[c,$]],["isValidIndex",Y0,[c,$]],["latLngToCell",V,[Z,Z,dA,z]],["cellToLatLng",V,[c,$,z]],["cellToBoundary",V,[c,$,z]],["maxGridDiskSize",V,[Z,z]],["gridDisk",V,[c,$,Z,z]],["gridDiskDistances",V,[c,$,Z,z,z]],["gridRing",V,[c,$,Z,z]],["gridRingUnsafe",V,[c,$,Z,z]],["maxPolygonToCellsSize",V,[z,dA,Z,z]],["polygonToCells",V,[z,dA,Z,z]],["maxPolygonToCellsSizeExperimental",V,[z,dA,Z,z]],["polygonToCellsExperimental",V,[z,dA,Z,Z,Z,z]],["cellsToLinkedMultiPolygon",V,[z,Z,z]],["destroyLinkedMultiPolygon",null,[z]],["compactCells",V,[z,z,Z,Z]],["uncompactCells",V,[z,Z,Z,z,Z,dA]],["uncompactCellsSize",V,[z,Z,Z,dA,z]],["isPentagon",Y0,[c,$]],["isResClassIII",Y0,[c,$]],["getBaseCellNumber",Z,[c,$]],["getResolution",Z,[c,$]],["getIndexDigit",Z,[c,$,Z]],["constructCell",V,[Z,Z,z,z]],["maxFaceCount",V,[c,$,z]],["getIcosahedronFaces",V,[c,$,z]],["cellToParent",V,[c,$,dA,z]],["cellToChildren",V,[c,$,dA,z]],["cellToCenterChild",V,[c,$,dA,z]],["cellToChildrenSize",V,[c,$,dA,z]],["cellToChildPos",V,[c,$,dA,z]],["childPosToCell",V,[Z,Z,c,$,dA,z]],["areNeighborCells",V,[c,$,c,$,z]],["cellsToDirectedEdge",V,[c,$,c,$,z]],["getDirectedEdgeOrigin",V,[c,$,z]],["getDirectedEdgeDestination",V,[c,$,z]],["isValidDirectedEdge",Y0,[c,$]],["directedEdgeToCells",V,[c,$,z]],["originToDirectedEdges",V,[c,$,z]],["directedEdgeToBoundary",V,[c,$,z]],["gridDistance",V,[c,$,c,$,z]],["gridPathCells",V,[c,$,c,$,z]],["gridPathCellsSize",V,[c,$,c,$,z]],["cellToLocalIj",V,[c,$,c,$,Z,z]],["localIjToCell",V,[c,$,z,Z,z]],["getHexagonAreaAvgM2",V,[dA,z]],["getHexagonAreaAvgKm2",V,[dA,z]],["getHexagonEdgeLengthAvgM",V,[dA,z]],["getHexagonEdgeLengthAvgKm",V,[dA,z]],["greatCircleDistanceM",Z,[z,z]],["greatCircleDistanceKm",Z,[z,z]],["greatCircleDistanceRads",Z,[z,z]],["cellAreaM2",V,[c,$,z]],["cellAreaKm2",V,[c,$,z]],["cellAreaRads2",V,[c,$,z]],["edgeLengthM",V,[c,$,z]],["edgeLengthKm",V,[c,$,z]],["edgeLengthRads",V,[c,$,z]],["getNumCells",V,[dA,z]],["getRes0Cells",V,[z]],["res0CellCount",Z],["getPentagons",V,[Z,z]],["pentagonCount",Z],["cellToVertex",V,[c,$,Z,z]],["cellToVertexes",V,[c,$,z]],["vertexToLatLng",V,[c,$,z]],["isValidVertex",Y0,[c,$]]],J1=0,X1=1,q1=2,c1=3,gr=4,$1=5,An=6,en=7,rn=8,nn=9,tn=10,ln=11,fn=12,on=13,sn=14,un=15,hn=16,gn=17,wn=18,Bn=19,IA={};IA[J1]="Success";IA[X1]="The operation failed but a more specific error is not available";IA[q1]="Argument was outside of acceptable range";IA[c1]="Latitude or longitude arguments were outside of acceptable range";IA[gr]="Resolution argument was outside of acceptable range";IA[$1]="Cell argument was not valid";IA[An]="Directed edge argument was not valid";IA[en]="Undirected edge argument was not valid";IA[rn]="Vertex argument was not valid";IA[nn]="Pentagon distortion was encountered";IA[tn]="Duplicate input";IA[ln]="Cell arguments were not neighbors";IA[fn]="Cell arguments had incompatible resolutions";IA[on]="Memory allocation failed";IA[sn]="Bounds of provided memory were insufficient";IA[un]="Mode or flags argument was not valid";IA[hn]="Index argument was not valid";IA[gn]="Base cell number was outside of acceptable range";IA[wn]="Child indexing digits invalid";IA[Bn]="Child indexing digits refer to a deleted subsequence";var le=1e3,wr=1001,Br=1002,E2={};E2[le]="Unknown unit";E2[wr]="Array length out of bounds";E2[Br]="Got unexpected null value for H3 index";var kn="Unknown error";function kr(L,v,y){var F=y&&"value"in y,H=new Error((L[v]||kn)+" (code: "+v+(F?", value: "+y.value:"")+")");return H.code=v,H}function vr(L,v){var y=arguments.length===2?{value:v}:{};return kr(IA,L,y)}function D2(L,v){var y=arguments.length===2?{value:v}:{};return kr(E2,L,y)}function B0(L){if(L!==0)throw vr(L)}var zA={};Z1.forEach(function(v){zA[v[0]]=PA.cwrap.apply(PA,v)});var j0=16,vn=4,y0=8,En=8,v2=zA.sizeOfH3Index(),Dn=zA.sizeOfLatLng(),Qn=zA.sizeOfCellBoundary();zA.sizeOfGeoPolygon();zA.sizeOfGeoLoop();zA.sizeOfLinkedGeoPolygon();zA.sizeOfCoordIJ();var I0={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function bn(L){if(typeof L!="number"||L<0||L>15||Math.floor(L)!==L)throw vr(gr,L);return L}function Cn(L){if(!L)throw D2(Br);return L}var mn=Math.pow(2,32)-1;function _n(L){if(L>mn)throw D2(wr,L);return L}var Mn=/[^0-9a-fA-F]/;function fe(L){if(Array.isArray(L)&&L.length===2&&Number.isInteger(L[0])&&Number.isInteger(L[1]))return L;if(typeof L!="string"||Mn.test(L))return[0,0];var v=parseInt(L.substring(0,L.length-8),j0),y=parseInt(L.substring(L.length-8),j0);return[y,v]}function sr(L){if(L>=0)return L.toString(j0);L=L&2147483647;var v=Er(8,L.toString(j0)),y=(parseInt(v[0],j0)+8).toString(j0);return v=y+v.substring(1),v}function an(L,v){return sr(v)+Er(8,sr(L))}function Er(L,v){for(var y=L-v.length,F="",H=0;H<y;H++)F+="0";return F=F+v,F}function Dr(L,v){v===void 0&&(v=0);var y=PA.getValue(L+v2*v,"i32"),F=PA.getValue(L+v2*v+vn,"i32");return F?an(y,F):null}function Qr(L,v){return v===void 0&&(v=0),PA.getValue(L+y0*v,"double")}function Tn(L){return zA.readInt64AsDoubleFromPointer(L)}function Ln(L,v){for(var y=[],F=0;F<v;F++){var H=Dr(L,F);H!==null&&y.push(H)}return y}function ur(L){return Sn(PA.getValue(L,"double"))}function Pn(L){return[ur(L+y0),ur(L)]}function In(L,v,y){for(var F=PA.getValue(L,"i32"),H=L+y0,N=[],sA=Pn,AA=0;AA<F*2;AA+=2)N.push(sA(H+y0*AA));return N.push(N[0]),N}function yn(L,v,y){var F=PA._malloc(Dn);PA.HEAPF64.set([L,v].map(On),F/y0);var H=PA._malloc(v2);try{return B0(zA.latLngToCell(F,y,H)),Cn(Dr(H))}finally{PA._free(H),PA._free(F)}}function pn(L,v){var y=PA._malloc(Qn),F=fe(L),H=F[0],N=F[1];try{return B0(zA.cellToBoundary(H,N,y)),In(y,v,v)}finally{PA._free(y)}}function Fn(L,v){var y=fe(L),F=y[0],H=y[1],N=PA._malloc(En);try{B0(zA.maxGridDiskSize(v,N));var sA=_n(Tn(N)),AA=PA._calloc(sA,v2);try{return B0(zA.gridDisk(F,H,v,AA)),Ln(AA,sA)}finally{PA._free(AA)}}finally{PA._free(N)}}function Gn(L,v){var y=fe(L),F=y[0],H=y[1],N=PA._malloc(y0);try{switch(v){case I0.m2:B0(zA.cellAreaM2(F,H,N));break;case I0.km2:B0(zA.cellAreaKm2(F,H,N));break;case I0.rads2:B0(zA.cellAreaRads2(F,H,N));break;default:throw D2(le,v)}return Qr(N)}finally{PA._free(N)}}function Rn(L,v){bn(L);var y=PA._malloc(y0);try{switch(v){case I0.m:B0(zA.getHexagonEdgeLengthAvgM(L,y));break;case I0.km:B0(zA.getHexagonEdgeLengthAvgKm(L,y));break;default:throw D2(le,v)}return Qr(y)}finally{PA._free(y)}}function On(L){return L*Math.PI/180}function Sn(L){return L*180/Math.PI}const Hn=I0.m,dn=I0.m2;function zn(L){return`POLYGON((${pn(L,!0).map(([F,H])=>`${F} ${H}`).join(",")}))`}class br{constructor(){f0(this,"type",o0.H3)}latLngToGridKey(v,y,F){return yn(y,v,F)}getNeighbors(v,y){const H=Fn(v,1).filter(sA=>sA!==v),N=[FA.EAST,FA.NORTHEAST,FA.NORTHWEST,FA.WEST,FA.SOUTHWEST,FA.SOUTHEAST];return H.map((sA,AA)=>({gridKey:sA,locationType:N[AA%N.length]??FA.CENTER}))}gridKeyToWKT(v){return zn(v)}calculateEdgeLength(v,y){return Rn(y,Hn)}calculateArea(v,y){return Gn(v,dn)}formatLength(v){return v>=1e3?`${(v/1e3).toFixed(2)} km`:`${v.toFixed(2)} m`}formatArea(v){return v>=1e6?`${(v/1e6).toFixed(2)} km²`:`${v.toFixed(2)} m²`}buildFeature(v,y,F,H,N,sA,AA,CA,UA){const yA=this.latLngToGridKey(y,F,H),KA=[{primary:!0,gridKey:yA,wkt:this.gridKeyToWKT(yA),locationType:FA.CENTER}];if(N){const XA=this.getNeighbors(yA,H);for(const VA of XA)KA.push({primary:!1,gridKey:VA.gridKey,wkt:this.gridKeyToWKT(VA.gridKey),locationType:VA.locationType})}return{id:v,type:o0.H3,grids:KA,drawNeighbor:N,accuracy:H,primaryColor:sA,lineWidth:AA,lineOpacity:CA,fillOpacity:UA}}}function Un(L){return L&&L.__esModule&&Object.prototype.hasOwnProperty.call(L,"default")?L.default:L}var re,hr;function Nn(){if(hr)return re;hr=1;for(var L="0123456789bcdefghjkmnpqrstuvwxyz",v={},y=0;y<L.length;y++)v[L.charAt(y)]=y;var F="auto",H=-90,N=90,sA=-180,AA=180,CA=[0,5,7,8,11,12,13,15,16,17,18],UA=function(fA,lA,j){if(j===F){if(typeof fA=="number"||typeof lA=="number")throw new Error("string notation required for auto precision.");var rA=fA.split(".")[1].length,J=lA.split(".")[1].length,wA=Math.max(rA,J);j=CA[wA]}else j===void 0&&(j=9);for(var kA=[],QA=0,BA=0,DA=0,mA=N,GA=H,xA=AA,r0=sA,NA;kA.length<j;)if(BA%2===0?(NA=(xA+r0)/2,lA>NA?(DA=(DA<<1)+1,r0=NA):(DA=(DA<<1)+0,xA=NA)):(NA=(mA+GA)/2,fA>NA?(DA=(DA<<1)+1,GA=NA):(DA=(DA<<1)+0,mA=NA)),QA++,BA++,QA===5){var i0=L[DA];kA.push(i0),QA=0,DA=0}return kA.join("")},yA=function(fA,lA,j){j=j||52;for(var rA=0,J=N,wA=H,kA=AA,QA=sA,BA,DA=0;rA<j;)DA*=2,rA%2===0?(BA=(kA+QA)/2,lA>BA?(DA+=1,QA=BA):kA=BA):(BA=(J+wA)/2,fA>BA?(DA+=1,wA=BA):J=BA),rA++;return DA},KA=function(fA){for(var lA=!0,j=N,rA=H,J=AA,wA=sA,kA,QA=0,BA=0,DA=fA.length;BA<DA;BA++){var mA=fA[BA].toLowerCase();QA=v[mA];for(var GA=4;GA>=0;GA--){var xA=QA>>GA&1;lA?(kA=(J+wA)/2,xA===1?wA=kA:J=kA):(kA=(j+rA)/2,xA===1?rA=kA:j=kA),lA=!lA}}return[rA,wA,j,J]},XA=function(fA,lA){lA=lA||52;for(var j=N,rA=H,J=AA,wA=sA,kA=0,QA=0,BA=lA/2,DA=0;DA<BA;DA++)QA=VA(fA,(BA-DA)*2-1),kA=VA(fA,(BA-DA)*2-2),kA===0?j=(j+rA)/2:rA=(j+rA)/2,QA===0?J=(J+wA)/2:wA=(J+wA)/2;return[rA,wA,j,J]};function VA(fA,lA){return fA/Math.pow(2,lA)&1}var p0=function(fA){var lA=KA(fA),j=(lA[0]+lA[2])/2,rA=(lA[1]+lA[3])/2,J=lA[2]-j,wA=lA[3]-rA;return{latitude:j,longitude:rA,error:{latitude:J,longitude:wA}}},k0=function(fA,lA){var j=XA(fA,lA),rA=(j[0]+j[2])/2,J=(j[1]+j[3])/2,wA=j[2]-rA,kA=j[3]-J;return{latitude:rA,longitude:J,error:{latitude:wA,longitude:kA}}},A2=function(fA,lA){var j=p0(fA),rA=j.latitude+lA[0]*j.error.latitude*2,J=j.longitude+lA[1]*j.error.longitude*2;return J=s0(J),rA=F0(rA),UA(rA,J,fA.length)},W0=function(fA,lA,j){j=j||52;var rA=k0(fA,j),J=rA.latitude+lA[0]*rA.error.latitude*2,wA=rA.longitude+lA[1]*rA.error.longitude*2;return wA=s0(wA),J=F0(J),yA(J,wA,j)},Q2=function(fA){var lA=fA.length,j=p0(fA),rA=j.latitude,J=j.longitude,wA=j.error.latitude*2,kA=j.error.longitude*2,QA,BA,DA=[mA(1,0),mA(1,1),mA(0,1),mA(-1,1),mA(-1,0),mA(-1,-1),mA(0,-1),mA(1,-1)];function mA(GA,xA){return QA=rA+GA*wA,BA=J+xA*kA,BA=s0(BA),QA=F0(QA),UA(QA,BA,lA)}return DA},b2=function(fA,lA){lA=lA||52;var j=k0(fA,lA),rA=j.latitude,J=j.longitude,wA=j.error.latitude*2,kA=j.error.longitude*2,QA,BA,DA=[mA(1,0),mA(1,1),mA(0,1),mA(-1,1),mA(-1,0),mA(-1,-1),mA(0,-1),mA(1,-1)];function mA(GA,xA){return QA=rA+GA*wA,BA=J+xA*kA,BA=s0(BA),QA=F0(QA),yA(QA,BA,lA)}return DA},e2=function(fA,lA,j,rA,J){J=J||9;for(var wA=UA(fA,lA,J),kA=UA(j,rA,J),QA=p0(wA),BA=QA.error.latitude*2,DA=QA.error.longitude*2,mA=KA(wA),GA=KA(kA),xA=Math.round((GA[0]-mA[0])/BA),r0=Math.round((GA[1]-mA[1])/DA),NA=[],i0=0;i0<=xA;i0++)for(var u0=0;u0<=r0;u0++)NA.push(A2(wA,[i0,u0]));return NA},C2=function(fA,lA,j,rA,J){J=J||52;for(var wA=yA(fA,lA,J),kA=yA(j,rA,J),QA=k0(wA,J),BA=QA.error.latitude*2,DA=QA.error.longitude*2,mA=XA(wA,J),GA=XA(kA,J),xA=Math.round((GA[0]-mA[0])/BA),r0=Math.round((GA[1]-mA[1])/DA),NA=[],i0=0;i0<=xA;i0++)for(var u0=0;u0<=r0;u0++)NA.push(W0(wA,[i0,u0],J));return NA};function s0(fA){return fA>AA?sA+fA%AA:fA<sA?AA+fA%AA:fA}function F0(fA){return fA>N?N:fA<H?H:fA}var m2={ENCODE_AUTO:F,encode:UA,encode_uint64:yA,encode_int:yA,decode:p0,decode_int:k0,decode_uint64:k0,decode_bbox:KA,decode_bbox_uint64:XA,decode_bbox_int:XA,neighbor:A2,neighbor_int:W0,neighbors:Q2,neighbors_int:b2,bboxes:e2,bboxes_int:C2};return re=m2,re}var xn=Nn();const ne=Un(xn),Yn={n:FA.NORTH,ne:FA.NORTHEAST,e:FA.EAST,se:FA.SOUTHEAST,s:FA.SOUTH,sw:FA.SOUTHWEST,w:FA.WEST,nw:FA.NORTHWEST};function te(L){const{latitude:v,longitude:y,error:F}=ne.decode(L);return{minLat:v-F.latitude,maxLat:v+F.latitude,minLng:y-F.longitude,maxLng:y+F.longitude}}function jn(L){const v=te(L);return`POLYGON((${v.minLng} ${v.minLat},${v.maxLng} ${v.minLat},${v.maxLng} ${v.maxLat},${v.minLng} ${v.maxLat},${v.minLng} ${v.minLat}))`}function w2(L,v,y,F){const N=yA=>yA*Math.PI/180,sA=N(y-L),AA=N(F-v),CA=Math.sin(sA/2)*Math.sin(sA/2)+Math.cos(N(L))*Math.cos(N(y))*Math.sin(AA/2)*Math.sin(AA/2);return 6371e3*(2*Math.atan2(Math.sqrt(CA),Math.sqrt(1-CA)))}class Cr{constructor(){f0(this,"type",o0.GEOHASH)}latLngToGridKey(v,y,F){return ne.encode(y,v,F)}getNeighbors(v,y){const F=ne.neighbors(v);return Object.entries(F).filter(([,H])=>H!=="").map(([H,N])=>({gridKey:N,locationType:Yn[H]??FA.CENTER}))}gridKeyToWKT(v){return jn(v)}calculateEdgeLength(v,y){const F=te(v),H=w2(F.minLat,F.minLng,F.minLat,F.maxLng),N=w2(F.minLat,F.minLng,F.maxLat,F.minLng);return Math.max(H,N)}calculateArea(v,y){const F=te(v),H=w2(F.minLat,F.minLng,F.minLat,F.maxLng),N=w2(F.minLat,F.minLng,F.maxLat,F.minLng);return H*N}formatLength(v){return v>=1e3?`${(v/1e3).toFixed(2)} km`:`${v.toFixed(2)} m`}formatArea(v){return v>=1e6?`${(v/1e6).toFixed(2)} km²`:`${v.toFixed(2)} m²`}buildFeature(v,y,F,H,N,sA,AA,CA,UA){const yA=this.latLngToGridKey(y,F,H),KA=[{primary:!0,gridKey:yA,wkt:this.gridKeyToWKT(yA),locationType:FA.CENTER}];if(N){const XA=this.getNeighbors(yA,H);for(const VA of XA)KA.push({primary:!1,gridKey:VA.gridKey,wkt:this.gridKeyToWKT(VA.gridKey),locationType:VA.locationType})}return{id:v,type:o0.GEOHASH,grids:KA,drawNeighbor:N,accuracy:H,primaryColor:sA,lineWidth:AA,lineOpacity:CA,fillOpacity:UA}}}const B2=new Map;function k2(L){if(!B2.has(L))switch(L){case o0.H3:B2.set(L,new br);break;case o0.GEOHASH:B2.set(L,new Cr);break}return B2.get(L)}let mr=1;function _r(){return mr++}function Wn(){mr=1}function Mr(L,v,y,F){return L.some(H=>H.type===v&&H.accuracy===y&&H.grids.some(N=>N.primary&&N.gridKey===F))}const ie={type:o0.H3,accuracy:6,drawNeighbor:!1,lineWidth:2,primaryColor:"#0000FF",lineOpacity:1,fillOpacity:.3,enableDel:!1,showLen:!1,showArea:!1,debug:!1};class Kn{constructor(v,y){f0(this,"adapter");f0(this,"callbacks");f0(this,"layerHandle",null);f0(this,"features",[]);f0(this,"enableDel",!1);f0(this,"_drawEnabled",!1);f0(this,"options",{...ie});this.adapter=v,this.callbacks=y??{}}get drawEnabled(){return this._drawEnabled}log(...v){this.options.debug&&console.log("[DrawTool]",...v)}startDraw(v={}){if(this.log("startDraw",JSON.stringify(v)),this.layerHandle||(this.layerHandle=this.adapter.createLayer(),this.log("layer created",this.layerHandle.id.toString())),this.options={...ie,...v},this.enableDel=this.options.enableDel,this._drawEnabled=!0,v.oldFeatures&&v.oldFeatures.length>0){this.log("oldFeatures loaded",v.oldFeatures.length);for(const y of v.oldFeatures)this.features.push(y),this.adapter.addFeature(this.layerHandle,y)}}stopDraw(){this.log("stopDraw"),this.layerHandle&&(this.adapter.hideDeleteIcon(this.layerHandle),this.adapter.destroyLayer(this.layerHandle),this.layerHandle=null),this.features=[],this.enableDel=!1,this._drawEnabled=!1,this.options={...ie}}onDblClick(v){if(!this.layerHandle||!this._drawEnabled){this.log("onDblClick ignored: layerHandle=",!!this.layerHandle,"drawEnabled=",this._drawEnabled);return}this.log("onDblClick",v);const y=k2(this.options.type),[F,H]=v,N=y.latLngToGridKey(F,H,this.options.accuracy);if(this.log("gridKey generated",N),Mr(this.features,this.options.type,this.options.accuracy,N)){this.log("duplicate grid detected, skipped");return}const sA=_r();this.log("id generated",sA);const AA=y.buildFeature(sA,F,H,this.options.accuracy,this.options.drawNeighbor,this.options.primaryColor,this.options.lineWidth,this.options.lineOpacity,this.options.fillOpacity);if(this.log("feature built",JSON.stringify({id:AA.id,type:AA.type,gridCount:AA.grids.length})),this.callbacks.insertBiz){const CA=this.callbacks.insertBiz(AA);if(this.log("insertBiz callback returned",CA),!CA)return}this.features.push(AA),this.adapter.addFeature(this.layerHandle,AA),this._drawEnabled=!1,this.options.showLen&&(this.log("showing length label"),this.showLengthLabel(AA)),this.options.showArea&&(this.log("showing area label"),this.showAreaLabel(AA))}onClick(v){if(!this.layerHandle||!this.enableDel)return;this.log("onClick",v),this.adapter.hideDeleteIcon(this.layerHandle);const y=this.adapter.findFeatureIdAtCoordinate(this.layerHandle,v);if(y===null){this.log("onClick: no feature hit");return}this.log("onClick: hit featureId=",y);const F=this.features.find(H=>H.id===y);F&&this.adapter.showDeleteWithConfirm(this.layerHandle,F,v).then(H=>{this.log("delete confirm result",H),H&&this.executeDelete(F)})}getFeatures(){return[...this.features]}getOptions(){return{...this.options}}executeDelete(v){if(this.callbacks.delBiz&&!this.callbacks.delBiz(v)){this.log("delBiz returned false, restoring feature",v.id),this.adapter.addFeature(this.layerHandle,v);return}this.log("executing delete feature",v.id),this.adapter.removeFeature(this.layerHandle,v.id),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len-width"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"len-height"),this.adapter.hideFeatureLabel(this.layerHandle,v.id,"area"),this.features=this.features.filter(y=>y.id!==v.id),this.log("feature deleted, remaining count=",this.features.length)}showLengthLabel(v){const y=k2(this.options.type),F=v.grids.find(H=>H.primary);if(F)if(this.options.type===o0.GEOHASH){const{width:H,height:N}=this.getGeoHashDimensions(F.wkt),sA=y.formatLength(H),AA=y.formatLength(N),CA=this.getPolygonEdgeMidpoints(F.wkt);CA.length>=4&&(this.adapter.showFeatureLabel(this.layerHandle,v.id,sA,CA[0],"len-width",this.options.primaryColor),this.adapter.showFeatureLabel(this.layerHandle,v.id,AA,CA[3],"len-height",this.options.primaryColor))}else{const H=y.calculateEdgeLength(F.gridKey,this.options.accuracy),N=y.formatLength(H),sA=this.getPolygonEdgeMidpoints(F.wkt);sA.length>0&&this.adapter.showFeatureLabel(this.layerHandle,v.id,N,sA[0],"len",this.options.primaryColor)}}showAreaLabel(v){const y=k2(this.options.type),F=v.grids.find(CA=>CA.primary);if(!F)return;const H=y.calculateArea(F.gridKey,this.options.accuracy),N=y.formatArea(H),[sA,AA]=this.getGridCenter(F.wkt);this.adapter.showFeatureLabel(this.layerHandle,v.id,N,[sA,AA],"area",this.options.primaryColor)}getPolygonEdgeMidpoints(v){if(!v.startsWith("POLYGON"))return[];const F=v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(N=>N.trim().split(/\s+/).map(Number)),H=[];for(let N=0;N<F.length-1;N++){const[sA,AA]=F[N],[CA,UA]=F[N+1];H.push([(sA+CA)/2,(AA+UA)/2])}return H}getGeoHashDimensions(v){this.getPolygonEdgeMidpoints(v);const y=this.parsePolygonVertices(v);if(y.length<4)return{width:0,height:0};const[F,H]=y[0],[N]=y[1],[,sA]=y[2],AA=6371e3,CA=VA=>VA*Math.PI/180,UA=CA(N-F),yA=CA(sA-H),KA=UA*AA*Math.cos(CA((H+sA)/2)),XA=yA*AA;return{width:KA,height:XA}}parsePolygonVertices(v){return v.startsWith("POLYGON")?v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(F=>F.trim().split(/\s+/).map(Number)):[]}getGridCenter(v){if(v.startsWith("POINT")){const y=v.match(/POINT\(([-\d.]+)\s+([-\d.]+)\)/);if(y)return[parseFloat(y[1]),parseFloat(y[2])]}if(v.startsWith("POLYGON")){const F=v.replace(/POLYGON\(\(/,"").replace(/\)\)/,"").split(",").map(CA=>CA.trim().split(/\s+/).map(Number)),H=F.map(([CA])=>CA),N=F.map(([,CA])=>CA),sA=(Math.min(...H)+Math.max(...H))/2,AA=(Math.min(...N)+Math.max(...N))/2;return[sA,AA]}return[0,0]}}exports.DrawTool=Kn;exports.GeoHashGridStrategy=Cr;exports.GridType=o0;exports.H3GridStrategy=br;exports.LocationType=FA;exports.generateId=_r;exports.getGridStrategy=k2;exports.isDuplicateGrid=Mr;exports.resetIdGenerator=Wn;
|