diff --git a/CHANGELOG.md b/CHANGELOG.md index e739499..4e99bbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. This library adheres to a versioning policy described in [the README](./README.md#versioning). The public API of this library consists of the functions exported in [h3core.js](./lib/h3core.js). ## Unreleased +### Added +- Added `reverseDirectedEdge` function +### Changed +- Updated the core library to `v4.5.0` ### Fixed - Prevent oversized `gridDisk` and `gridDiskDistances` calls from corrupting subsequent calls. diff --git a/H3_VERSION b/H3_VERSION index cca25a9..a84947d 100644 --- a/H3_VERSION +++ b/H3_VERSION @@ -1 +1 @@ -4.4.1 +4.5.0 diff --git a/README.md b/README.md index fcdfcab..0d1c730 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Coverage Status](https://coveralls.io/repos/github/uber/h3-js/badge.svg?branch=master)](https://coveralls.io/github/uber/h3-js?branch=master) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![npm version](https://badge.fury.io/js/h3-js.svg)](https://badge.fury.io/js/h3-js) -[![H3 Version](https://img.shields.io/static/v1?label=h3%20api&message=v4.4.1&color=blue)](https://github.com/uber/h3/releases/tag/v4.4.1) +[![H3 Version](https://img.shields.io/static/v1?label=h3%20api&message=v4.5.0&color=blue)](https://github.com/uber/h3/releases/tag/v4.5.0) The `h3-js` library provides a pure-JavaScript version of the [H3 Core Library](https://github.com/uber/h3), a hexagon-based geographic grid system. It can be used either in Node >= 6 or in the browser. The core library is transpiled from C using [emscripten](http://kripken.github.io/emscripten-site), offering full parity with the C API and highly efficient operations. @@ -137,6 +137,7 @@ const coordinates = h3.cellsToMultiPolygon(hexagons, true); * [.directedEdgeToCells(edgeIndex)](#module_h3.directedEdgeToCells) ⇒ Array.<H3Index> * [.originToDirectedEdges(h3Index)](#module_h3.originToDirectedEdges) ⇒ Array.<H3Index> * [.directedEdgeToBoundary(edgeIndex, [formatAsGeoJson])](#module_h3.directedEdgeToBoundary) ⇒ Array.<CoordPair> + * [.reverseDirectedEdge(edgeIndex)](#module_h3.reverseDirectedEdge) ⇒ H3Index * [.gridDistance(origin, destination)](#module_h3.gridDistance) ⇒ number * [.gridPathCells(origin, destination)](#module_h3.gridPathCells) ⇒ Array.<H3Index> * [.cellToLocalIj(origin, destination)](#module_h3.cellToLocalIj) ⇒ CoordIJ @@ -887,6 +888,24 @@ cross the edge of an icosahedron face, this may return 3 coordinates. | [formatAsGeoJson] | boolean | Whether to provide GeoJSON output: [lng, lat] | +* * * + + + +### h3.reverseDirectedEdge(edgeIndex) ⇒ H3Index +Returns the directed edge with origin and destination cells reversed + +**Returns**: H3Index - Directed edge, reversed +**Throws**: + +- H3Error If input is invalid + + +| Param | Type | Description | +| --- | --- | --- | +| edgeIndex | H3IndexInput | Directed edge index | + + * * * diff --git a/doc-files/README.tmpl.md b/doc-files/README.tmpl.md index 3573802..f5acf5f 100644 --- a/doc-files/README.tmpl.md +++ b/doc-files/README.tmpl.md @@ -8,7 +8,7 @@ [![Coverage Status](https://coveralls.io/repos/github/uber/h3-js/badge.svg?branch=master)](https://coveralls.io/github/uber/h3-js?branch=master) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![npm version](https://badge.fury.io/js/h3-js.svg)](https://badge.fury.io/js/h3-js) -[![H3 Version](https://img.shields.io/static/v1?label=h3%20api&message=v4.4.1&color=blue)](https://github.com/uber/h3/releases/tag/v4.4.1) +[![H3 Version](https://img.shields.io/static/v1?label=h3%20api&message=v4.5.0&color=blue)](https://github.com/uber/h3/releases/tag/v4.5.0) The `h3-js` library provides a pure-JavaScript version of the [H3 Core Library](https://github.com/uber/h3), a hexagon-based geographic grid system. It can be used either in Node >= 6 or in the browser. The core library is transpiled from C using [emscripten](http://kripken.github.io/emscripten-site), offering full parity with the C API and highly efficient operations. diff --git a/lib/bindings.js b/lib/bindings.js index 5b032a1..f15d06c 100644 --- a/lib/bindings.js +++ b/lib/bindings.js @@ -85,6 +85,7 @@ export default [ ['directedEdgeToCells', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['originToDirectedEdges', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['directedEdgeToBoundary', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], + ['reverseDirectedEdge', H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], ['gridDistance', H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], ['gridPathCells', H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], ['gridPathCellsSize', H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], diff --git a/lib/h3core.js b/lib/h3core.js index 6a63eeb..2425303 100644 --- a/lib/h3core.js +++ b/lib/h3core.js @@ -1510,6 +1510,25 @@ export function directedEdgeToBoundary(edgeIndex, formatAsGeoJson) { } } +/** + * Returns the directed edge with origin and destination cells reversed + * @static + * @param {H3IndexInput} edgeIndex Directed edge index + * @return {H3Index} Directed edge, reversed + * @throws {H3Error} If input is invalid + */ +export function reverseDirectedEdge(edgeIndex) { + const [lower, upper] = h3IndexToSplitLong(edgeIndex); + + const out = C._malloc(SZ_H3INDEX); + try { + throwIfError(H3.reverseDirectedEdge(lower, upper, out)); + return validateH3Index(readH3IndexFromPointer(out)); + } finally { + C._free(out); + } +} + /** * Get the grid distance between two hex indexes. This function may fail * to find the distance between two indexes if they are very far apart or diff --git a/out/binding-functions b/out/binding-functions index bce2574..bc24378 100644 --- a/out/binding-functions +++ b/out/binding-functions @@ -44,6 +44,7 @@ getDirectedEdgeDestination directedEdgeToCells originToDirectedEdges directedEdgeToBoundary +reverseDirectedEdge cellToVertex cellToVertexes vertexToLatLng diff --git a/out/libh3.js b/out/libh3.js index f803da8..d7f446e 100644 --- a/out/libh3.js +++ b/out/libh3.js @@ -4,19 +4,19 @@ var libh3 = ( function(libh3) { libh3 = libh3 || {}; -var Module=typeof libh3!=="undefined"?libh3:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined" && document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=28656,DYNAMIC_BASE=5271536,DYNAMICTOP_PTR=28624;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////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 tempDoublePtr=28640;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function emscripten_realloc_buffer(size){try{var newBuffer=new ArrayBuffer(size);if(newBuffer.byteLength!=size)return;new Int8Array(newBuffer).set(HEAP8);_emscripten_replace_memory(newBuffer);updateGlobalBufferAndViews(newBuffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=16777216;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined" && document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for getValue: "+type)}return null}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=28416,DYNAMIC_BASE=5271296,DYNAMICTOP_PTR=28384;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;memoryInitializer="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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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAAAAACAAAAAQAAABMAAAACAAAAAgAAAAAAAAAFAAAACgAAAAAAAAACAAAAAgAAAAMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABEAAAACAAAAAAAAAAIAAAABAAAADwAAAAIAAAACAAAAAAAAAAUAAAALAAAAAAAAAAIAAAACAAAAAwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAIAAAAAAAAAAgAAAAEAAAAQAAAAAgAAAAIAAAAAAAAABQAAAAwAAAAAAAAAAgAAAAIAAAADAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAACAAAAAQAAABEAAAACAAAAAgAAAAAAAAAFAAAADQAAAAAAAAACAAAAAgAAAAMAAAATAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAACAAAAAAAAAAIAAAABAAAAEgAAAAIAAAACAAAAAAAAAAUAAAAOAAAAAAAAAAIAAAACAAAAAwAAAAIAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP6phvycGBZRAJbod0OgwfkCp+L8jatBmQCjl3pGrPlFAfMWm114SOkButwtqS7UjQHQwbcjXyw1A8jnLuuyA9j9KwjL0VwHhPyotk0lcs8k/Q5PvEs9rsz+SfsOQEVqdPzUAKDojLoY/WJz/kcjCcD8YFu070FRZPyoLC2BdJEM/YOXQAuiMM0HIBz1bw3sdQdV46aaHRwZByatzjDPX8EDb3Jie8HXZQCJxj6ULP8NAUaG6uRAZrUCWdmou5/mVQLb9huRPm4BAhvoCHygZaUCuX/I3SPdSQC9/bC/1qTxAfKxsYQ6pJUCuslH+N14QQMS/cv7SvPg/Ol8maYKx4j8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////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cmNQYWlycwBjcmVhdGVTb3J0YWJsZUxvb3AAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAdmVjM1RvQ2VsbABjZWxsVG9DaGlsZFBvcwB2YWxpZGF0ZUNoaWxkUG9zAHJldkRpciAhPSBJTlZBTElEX0RJR0lUAGxvY2FsaWouYwBjZWxsVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAYmFzZUNlbGwgPT0gb3JpZ2luQmFzZUNlbGwALi4vaW5jbHVkZS9jb29yZGlqay5oAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAYmFzZUNlbGwgIT0gSU5WQUxJRF9CQVNFX0NFTEwAbG9jYWxJamtUb0NlbGwAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAZ3JpZFBhdGhDZWxsc0ludGVycG9sYXRlAHBvbHlmaWxsLmMAaXRlclN0ZXBQb2x5Z29uQ29tcGFjdAAwAHZlcnRleC5jAHZlcnRleFJvdGF0aW9ucwBjZWxsVG9WZXJ0ZXg=";var tempDoublePtr=28400;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function emscripten_realloc_buffer(size){try{var newBuffer=new ArrayBuffer(size);if(newBuffer.byteLength!=size)return;new Int8Array(newBuffer).set(HEAP8);_emscripten_replace_memory(newBuffer);updateGlobalBufferAndViews(newBuffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=16777216;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i13780509){c=xc(15,c)|0;return c|0}else{d=((a|0)<0)<<31>>31;f=Pd(a|0,d|0,3,0)|0;e=H()|0;d=Jd(a|0,d|0,1,0)|0;d=Pd(f|0,e|0,d|0,H()|0)|0;d=Jd(d|0,H()|0,1,0)|0;a=H()|0;b[c>>2]=d;b[c+4>>2]=a;c=0;return c|0}return 0}function aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ba(a,b,c,d,0)|0}function ba(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=T;T=T+16|0;h=j;if(!(ca(a,c,d,e,f)|0)){e=0;T=j;return e|0}do if((d|0)>=0){if((d|0)>13780509){g=xc(15,h)|0;if(g|0)break;i=h;h=b[i>>2]|0;i=b[i+4>>2]|0}else{g=((d|0)<0)<<31>>31;k=Pd(d|0,g|0,3,0)|0;i=H()|0;g=Jd(d|0,g|0,1,0)|0;g=Pd(k|0,i|0,g|0,H()|0)|0;g=Jd(g|0,H()|0,1,0)|0;i=H()|0;b[h>>2]=g;b[h+4>>2]=i;h=g}_d(e|0,0,h<<3|0)|0;if(f|0){_d(f|0,0,h<<2|0)|0;g=da(a,c,d,e,f,h,i,0)|0;break}g=Id(h,4)|0;if(!g)g=13;else{k=da(a,c,d,e,g,h,i,0)|0;Hd(g);g=k}}else g=2;while(0);k=g;T=j;return k|0}function ca(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=T;T=T+16|0;o=q;p=q+8|0;n=o;b[n>>2]=a;b[n+4>>2]=c;if((d|0)<0){p=2;T=q;return p|0}g=e;b[g>>2]=a;b[g+4>>2]=c;g=(f|0)!=0;if(g)b[f>>2]=0;if(Kb(a,c)|0){p=9;T=q;return p|0}b[p>>2]=0;a:do if((d|0)>=1)if(g){l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=ea(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(Kb(g,c)|0){g=9;break a}}g=ea(g,c,b[26800+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;b[f+(l<<2)>>2]=n;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(Kb(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else{l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=ea(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(Kb(g,c)|0){g=9;break a}}g=ea(g,c,b[26800+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(Kb(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else g=0;while(0);p=g;T=q;return p|0}function da(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=T;T=T+16|0;o=q+8|0;p=q;j=Rd(a|0,c|0,g|0,h|0)|0;l=H()|0;m=e+(j<<3)|0;r=m;s=b[r>>2]|0;r=b[r+4>>2]|0;k=(s|0)==(a|0)&(r|0)==(c|0);if(!((s|0)==0&(r|0)==0|k))do{j=Jd(j|0,l|0,1,0)|0;j=Qd(j|0,H()|0,g|0,h|0)|0;l=H()|0;m=e+(j<<3)|0;s=m;r=b[s>>2]|0;s=b[s+4>>2]|0;k=(r|0)==(a|0)&(s|0)==(c|0)}while(!((r|0)==0&(s|0)==0|k));j=f+(j<<2)|0;if(k?(b[j>>2]|0)<=(i|0):0){s=0;T=q;return s|0}s=m;b[s>>2]=a;b[s+4>>2]=c;b[j>>2]=i;if((i|0)>=(d|0)){s=0;T=q;return s|0}k=i+1|0;b[o>>2]=0;j=ea(a,c,2,o,p)|0;switch(j|0){case 9:{n=9;break}case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(!j)n=9;break}default:{}}a:do if((n|0)==9){b[o>>2]=0;j=ea(a,c,3,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,1,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,5,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,4,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,6,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}s=0;T=q;return s|0}while(0);s=j;T=q;return s|0}function ea(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(d>>>0>6){f=1;return f|0}m=(b[e>>2]|0)%6|0;b[e>>2]=m;if((m|0)>0){g=0;do{d=$a(d)|0;g=g+1|0}while((g|0)<(b[e>>2]|0))}m=Td(a|0,c|0,45)|0;H()|0;l=m&127;if(l>>>0>121){f=5;return f|0}j=Sb(a,c)|0;g=Td(a|0,c|0,52)|0;H()|0;g=g&15;a:do if(!g)k=8;else{while(1){h=(15-g|0)*3|0;i=Td(a|0,c|0,h|0)|0;H()|0;i=i&7;if((i|0)==7){c=5;break}p=(Yb(g)|0)==0;g=g+-1|0;n=Ud(7,0,h|0)|0;c=c&~(H()|0);o=Ud(b[(p?432:16)+(i*28|0)+(d<<2)>>2]|0,0,h|0)|0;h=H()|0;d=b[(p?640:224)+(i*28|0)+(d<<2)>>2]|0;a=o|a&~n;c=h|c;if(!d){d=0;break a}if(!g){k=8;break a}}return c|0}while(0);if((k|0)==8){p=b[848+(l*28|0)+(d<<2)>>2]|0;o=Ud(p|0,0,45)|0;a=o|a;c=H()|0|c&-1040385;d=b[4272+(l*28|0)+(d<<2)>>2]|0;if((p&127|0)==127){p=Ud(b[848+(l*28|0)+20>>2]|0,0,45)|0;c=H()|0|c&-1040385;d=b[4272+(l*28|0)+20>>2]|0;a=Ub(p|a,c)|0;c=H()|0;b[e>>2]=(b[e>>2]|0)+1}}i=Td(a|0,c|0,45)|0;H()|0;i=i&127;b:do if(!(oa(i)|0)){if((d|0)>0){g=0;do{a=Ub(a,c)|0;c=H()|0;g=g+1|0}while((g|0)!=(d|0))}}else{c:do if((Sb(a,c)|0)==1){if((l|0)!=(i|0))if(ua(i,b[7696+(l*28|0)>>2]|0)|0){a=Wb(a,c)|0;h=1;c=H()|0;break}else I(27795,26864,533,26872);switch(j|0){case 3:{a=Ub(a,c)|0;c=H()|0;b[e>>2]=(b[e>>2]|0)+1;h=0;break c}case 5:{a=Wb(a,c)|0;c=H()|0;b[e>>2]=(b[e>>2]|0)+5;h=0;break c}case 0:{p=9;return p|0}default:{p=1;return p|0}}}else h=0;while(0);if((d|0)>0){g=0;do{a=Tb(a,c)|0;c=H()|0;g=g+1|0}while((g|0)!=(d|0))}if((l|0)!=(i|0)){if(!(pa(i)|0)){if((h|0)!=0|(Sb(a,c)|0)!=5)break;b[e>>2]=(b[e>>2]|0)+1;break}switch(m&127){case 8:case 118:break b;default:{}}if((Sb(a,c)|0)!=3)b[e>>2]=(b[e>>2]|0)+1}}while(0);b[e>>2]=((b[e>>2]|0)+d|0)%6|0;p=f;b[p>>2]=a;b[p+4>>2]=c;p=0;return p|0}function fa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!(ga(a,b,c,d)|0)){d=0;return d|0}_d(d|0,0,c*48|0)|0;d=ha(a,b,c,d)|0;return d|0}function ga(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=T;T=T+16|0;n=p;o=p+8|0;m=n;b[m>>2]=a;b[m+4>>2]=c;if((d|0)<0){o=2;T=p;return o|0}if(!d){o=e;b[o>>2]=a;b[o+4>>2]=c;o=0;T=p;return o|0}b[o>>2]=0;a:do if(!(Kb(a,c)|0)){f=0;m=a;do{a=ea(m,c,4,o,n)|0;if(a|0)break a;c=n;m=b[c>>2]|0;c=b[c+4>>2]|0;f=f+1|0;if(Kb(m,c)|0){a=9;break a}}while((f|0)<(d|0));l=e;b[l>>2]=m;b[l+4>>2]=c;l=d+-1|0;k=0;a=1;do{f=26800+(k<<2)|0;if((k|0)==5){h=b[f>>2]|0;g=0;f=a;while(1){a=n;a=ea(b[a>>2]|0,b[a+4>>2]|0,h,o,n)|0;if(a|0)break a;if((g|0)!=(l|0)){j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=i;b[a+4>>2]=j;if(!(Kb(i,j)|0))a=f+1|0;else{a=9;break a}}else a=f;g=g+1|0;if((g|0)>=(d|0))break;else f=a}}else{h=n;j=b[f>>2]|0;i=0;f=a;g=b[h>>2]|0;h=b[h+4>>2]|0;while(1){a=ea(g,h,j,o,n)|0;if(a|0)break a;h=n;g=b[h>>2]|0;h=b[h+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=g;b[a+4>>2]=h;a=f+1|0;if(Kb(g,h)|0){a=9;break a}i=i+1|0;if((i|0)>=(d|0))break;else f=a}}k=k+1|0}while(k>>>0<6);a=n;a=((m|0)==(b[a>>2]|0)?(c|0)==(b[a+4>>2]|0):0)?0:9}else a=9;while(0);o=a;T=p;return o|0}function ha(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=T;T=T+16|0;h=m;if(!d){b[e>>2]=a;b[e+4>>2]=c;e=0;T=m;return e|0}do if((d|0)>=0){if((d|0)>13780509){f=xc(15,h)|0;if(f|0)break;g=h;f=b[g>>2]|0;g=b[g+4>>2]|0}else{f=((d|0)<0)<<31>>31;l=Pd(d|0,f|0,3,0)|0;g=H()|0;f=Jd(d|0,f|0,1,0)|0;f=Pd(l|0,g|0,f|0,H()|0)|0;f=Jd(f|0,H()|0,1,0)|0;g=H()|0;l=h;b[l>>2]=f;b[l+4>>2]=g}k=Id(f,8)|0;if(!k)f=13;else{l=Id(f,4)|0;if(!l){Hd(k);f=13;break}f=da(a,c,d,k,l,f,g,0)|0;if(f|0){Hd(k);Hd(l);break}c=b[h>>2]|0;h=b[h+4>>2]|0;if((h|0)>0|(h|0)==0&c>>>0>0){f=0;i=0;j=0;do{a=k+(i<<3)|0;g=b[a>>2]|0;a=b[a+4>>2]|0;if(!((g|0)==0&(a|0)==0)?(b[l+(i<<2)>>2]|0)==(d|0):0){n=e+(f<<3)|0;b[n>>2]=g;b[n+4>>2]=a;f=f+1|0}i=Jd(i|0,j|0,1,0)|0;j=H()|0}while((j|0)<(h|0)|(j|0)==(h|0)&i>>>0>>0)}Hd(k);Hd(l);f=0}}else f=2;while(0);n=f;T=m;return n|0}function ia(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=T;T=T+16|0;g=i;h=i+8|0;f=(Kb(a,c)|0)==0;f=f?1:2;while(1){b[h>>2]=0;k=(ea(a,c,f,h,g)|0)==0;j=g;if(k&((b[j>>2]|0)==(d|0)?(b[j+4>>2]|0)==(e|0):0)){a=4;break}f=f+1|0;if(f>>>0>=7){f=7;a=4;break}}if((a|0)==4){T=i;return f|0}return 0}function ja(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=T;T=T+48|0;f=i+16|0;g=i+8|0;h=i;d=_c(d)|0;if(d|0){h=d;T=i;return h|0}k=a;j=b[k+4>>2]|0;d=g;b[d>>2]=b[k>>2];b[d+4>>2]=j;Zc(g,f);d=Ha(f,c,h)|0;if(!d){c=b[g>>2]|0;g=b[a+8>>2]|0;if((g|0)>0){f=b[a+12>>2]|0;d=0;do{c=(b[f+(d<<3)>>2]|0)+c|0;d=d+1|0}while((d|0)<(g|0))}d=h;f=b[d>>2]|0;d=b[d+4>>2]|0;g=((c|0)<0)<<31>>31;if((d|0)<(g|0)|(d|0)==(g|0)&f>>>0>>0){d=h;b[d>>2]=c;b[d+4>>2]=g;d=g}else c=f;j=Jd(c|0,d|0,12,0)|0;k=H()|0;d=h;b[d>>2]=j;b[d+4>>2]=k;d=e;b[d>>2]=j;b[d+4>>2]=k;d=0}k=d;T=i;return k|0}function ka(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0;I=T;T=T+64|0;D=I+48|0;E=I+32|0;F=I+24|0;x=I+8|0;y=I;k=b[a>>2]|0;if((k|0)<=0){G=0;T=I;return G|0}z=a+4|0;A=D+8|0;B=E+8|0;C=x+8|0;j=0;v=0;while(1){l=b[z>>2]|0;u=l+(v<<4)|0;b[D>>2]=b[u>>2];b[D+4>>2]=b[u+4>>2];b[D+8>>2]=b[u+8>>2];b[D+12>>2]=b[u+12>>2];if((v|0)==(k+-1|0)){b[E>>2]=b[l>>2];b[E+4>>2]=b[l+4>>2];b[E+8>>2]=b[l+8>>2];b[E+12>>2]=b[l+12>>2]}else{u=l+(v+1<<4)|0;b[E>>2]=b[u>>2];b[E+4>>2]=b[u+4>>2];b[E+8>>2]=b[u+8>>2];b[E+12>>2]=b[u+12>>2]}k=Ia(D,E,f,F)|0;a:do if(!k){k=F;l=b[k>>2]|0;k=b[k+4>>2]|0;if((k|0)>0|(k|0)==0&l>>>0>0){t=0;u=0;b:while(1){K=1.0/(+(l>>>0)+4294967296.0*+(k|0));M=+e[D>>3];k=Kd(l|0,k|0,t|0,u|0)|0;L=+(k>>>0)+4294967296.0*+(H()|0);J=+(t>>>0)+4294967296.0*+(u|0);e[x>>3]=K*(M*L)+K*(+e[E>>3]*J);e[C>>3]=K*(+e[A>>3]*L)+K*(+e[B>>3]*J);k=Zb(x,f,y)|0;if(k|0){j=k;break}s=y;r=b[s>>2]|0;s=b[s+4>>2]|0;o=Rd(r|0,s|0,c|0,d|0)|0;m=H()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;c:do if((l|0)==0&(n|0)==0){w=k;G=16}else{p=0;q=0;while(1){if((p|0)>(d|0)|(p|0)==(d|0)&q>>>0>c>>>0){j=1;break b}if((l|0)==(r|0)&(n|0)==(s|0))break c;k=Jd(o|0,m|0,1,0)|0;o=Qd(k|0,H()|0,c|0,d|0)|0;m=H()|0;q=Jd(q|0,p|0,1,0)|0;p=H()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;if((l|0)==0&(n|0)==0){w=k;G=16;break}}}while(0);if((G|0)==16?(G=0,!((r|0)==0&(s|0)==0)):0){q=w;b[q>>2]=r;b[q+4>>2]=s;q=h+(b[g>>2]<<3)|0;b[q>>2]=r;b[q+4>>2]=s;q=g;q=Jd(b[q>>2]|0,b[q+4>>2]|0,1,0)|0;r=H()|0;s=g;b[s>>2]=q;b[s+4>>2]=r}t=Jd(t|0,u|0,1,0)|0;u=H()|0;k=F;l=b[k>>2]|0;k=b[k+4>>2]|0;if(!((k|0)>(u|0)|(k|0)==(u|0)&l>>>0>t>>>0)){l=1;break a}}l=0}else l=1}else{l=0;j=k}while(0);v=v+1|0;if(!l){G=21;break}k=b[a>>2]|0;if((v|0)>=(k|0)){j=0;G=21;break}}if((G|0)==21){T=I;return j|0}return 0}function la(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0;K=T;T=T+112|0;F=K+80|0;j=K+72|0;G=K;I=K+56|0;f=_c(d)|0;if(f|0){J=f;T=K;return J|0}k=a+8|0;J=Gd((b[k>>2]<<5)+32|0)|0;if(!J){J=13;T=K;return J|0}$c(a,J);f=_c(d)|0;if(!f){D=a;E=b[D+4>>2]|0;f=j;b[f>>2]=b[D>>2];b[f+4>>2]=E;Zc(j,F);f=Ha(F,c,G)|0;if(!f){f=b[j>>2]|0;g=b[k>>2]|0;if((g|0)>0){h=b[a+12>>2]|0;d=0;do{f=(b[h+(d<<3)>>2]|0)+f|0;d=d+1|0}while((d|0)!=(g|0));d=f}else d=f;f=G;g=b[f>>2]|0;f=b[f+4>>2]|0;h=((d|0)<0)<<31>>31;if((f|0)<(h|0)|(f|0)==(h|0)&g>>>0>>0){f=G;b[f>>2]=d;b[f+4>>2]=h;f=h}else d=g;D=Jd(d|0,f|0,12,0)|0;E=H()|0;f=G;b[f>>2]=D;b[f+4>>2]=E;f=0}else{D=0;E=0}if(!f){d=Id(D,8)|0;if(!d){Hd(J);J=13;T=K;return J|0}i=Id(D,8)|0;if(!i){Hd(J);Hd(d);J=13;T=K;return J|0}B=F;b[B>>2]=0;b[B+4>>2]=0;B=a;C=b[B+4>>2]|0;f=j;b[f>>2]=b[B>>2];b[f+4>>2]=C;f=ka(j,D,E,c,F,d,i)|0;a:do if(!f){b:do if((b[k>>2]|0)>0){h=a+12|0;g=0;while(1){f=ka((b[h>>2]|0)+(g<<3)|0,D,E,c,F,d,i)|0;g=g+1|0;if(f|0)break;if((g|0)>=(b[k>>2]|0))break b}Hd(d);Hd(i);Hd(J);break a}while(0);if((E|0)>0|(E|0)==0&D>>>0>0)_d(i|0,0,D<<3|0)|0;C=F;B=b[C+4>>2]|0;c:do if((B|0)>0|(B|0)==0&(b[C>>2]|0)>>>0>0){y=d;z=i;A=d;B=i;C=d;f=d;v=d;w=i;x=i;d=i;d:while(1){r=0;s=0;t=0;u=0;g=0;h=0;while(1){i=G;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));c=y+(r<<3)|0;k=b[c>>2]|0;c=b[c+4>>2]|0;if(ca(k,c,1,G,0)|0){i=G;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));i=Id(7,4)|0;if(i|0){da(k,c,1,G,i,7,0,0)|0;Hd(i)}}q=0;while(1){p=G+(q<<3)|0;o=b[p>>2]|0;p=b[p+4>>2]|0;e:do if((o|0)==0&(p|0)==0){i=g;j=h}else{l=Rd(o|0,p|0,D|0,E|0)|0;k=H()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0;if(!((j|0)==0&(c|0)==0)){m=0;n=0;do{if((m|0)>(E|0)|(m|0)==(E|0)&n>>>0>D>>>0)break d;if((j|0)==(o|0)&(c|0)==(p|0)){i=g;j=h;break e}i=Jd(l|0,k|0,1,0)|0;l=Qd(i|0,H()|0,D|0,E|0)|0;k=H()|0;n=Jd(n|0,m|0,1,0)|0;m=H()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0}while(!((j|0)==0&(c|0)==0))}if((o|0)==0&(p|0)==0){i=g;j=h;break}ac(o,p,I)|0;if(ad(a,J,I)|0){n=Jd(g|0,h|0,1,0)|0;h=H()|0;m=i;b[m>>2]=o;b[m+4>>2]=p;g=z+(g<<3)|0;b[g>>2]=o;b[g+4>>2]=p;g=n}i=g;j=h}while(0);q=q+1|0;if(q>>>0>=7)break;else{g=i;h=j}}r=Jd(r|0,s|0,1,0)|0;s=H()|0;t=Jd(t|0,u|0,1,0)|0;u=H()|0;h=F;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((u|0)<(h|0)|(u|0)==(h|0)&t>>>0>>0))break;else{g=i;h=j}}if((h|0)>0|(h|0)==0&g>>>0>0){g=0;h=0;do{u=y+(g<<3)|0;b[u>>2]=0;b[u+4>>2]=0;g=Jd(g|0,h|0,1,0)|0;h=H()|0;u=F;t=b[u+4>>2]|0}while((h|0)<(t|0)|((h|0)==(t|0)?g>>>0<(b[u>>2]|0)>>>0:0))}u=F;b[u>>2]=i;b[u+4>>2]=j;if((j|0)>0|(j|0)==0&i>>>0>0){q=d;r=x;s=C;t=w;u=z;d=v;x=f;w=A;v=q;f=r;C=B;B=s;A=t;z=y;y=u}else break c}Hd(A);Hd(B);Hd(J);f=1;break a}else f=i;while(0);Hd(J);Hd(d);Hd(f);f=0}else{Hd(d);Hd(i);Hd(J)}while(0);J=f;T=K;return J|0}}Hd(J);J=f;T=K;return J|0}function ma(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=T;T=T+176|0;j=l;if((c|0)<1){xd(d,0,0);k=0;T=l;return k|0}i=a;i=Td(b[i>>2]|0,b[i+4>>2]|0,52)|0;H()|0;xd(d,(c|0)>6?c:6,i&15);i=0;while(1){e=a+(i<<3)|0;e=bc(b[e>>2]|0,b[e+4>>2]|0,j)|0;if(e|0)break;e=b[j>>2]|0;if((e|0)>0){h=0;do{g=j+8+(h<<4)|0;h=h+1|0;e=j+8+(((h|0)%(e|0)|0)<<4)|0;f=Cd(d,e,g)|0;if(!f)Bd(d,g,e)|0;else Ad(d,f)|0;e=b[j>>2]|0}while((h|0)<(e|0))}i=i+1|0;if((i|0)>=(c|0)){e=0;k=13;break}}if((k|0)==13){T=l;return e|0}yd(d);k=e;T=l;return k|0}function na(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;g=T;T=T+32|0;e=g;f=g+16|0;a=ma(a,c,f)|0;if(a|0){d=a;T=g;return d|0}b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;a=zd(f)|0;if(a|0)do{c=Fc(d)|0;do{Gc(c,a)|0;h=a+16|0;b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];b[e+12>>2]=b[h+12>>2];Ad(f,a)|0;a=Dd(f,e)|0}while((a|0)!=0);a=zd(f)|0}while((a|0)!=0);yd(f);a=Ic(d)|0;if(!a){h=0;T=g;return h|0}Hc(d);h=a;T=g;return h|0}function oa(a){a=a|0;if(a>>>0>121){a=0;return a|0}a=b[7696+(a*28|0)+16>>2]|0;return a|0}function pa(a){a=a|0;return (a|0)==4|(a|0)==117|0}function qa(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)>>2]|0}function ra(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)+4>>2]|0}function sa(a,c){a=a|0;c=c|0;a=7696+(a*28|0)|0;b[c>>2]=b[a>>2];b[c+4>>2]=b[a+4>>2];b[c+8>>2]=b[a+8>>2];b[c+12>>2]=b[a+12>>2];return}function ta(a,c){a=a|0;c=c|0;var d=0,e=0;if(c>>>0>20){c=-1;return c|0}do if((b[11120+(c*216|0)>>2]|0)!=(a|0))if((b[11120+(c*216|0)+8>>2]|0)!=(a|0))if((b[11120+(c*216|0)+16>>2]|0)!=(a|0))if((b[11120+(c*216|0)+24>>2]|0)!=(a|0))if((b[11120+(c*216|0)+32>>2]|0)!=(a|0))if((b[11120+(c*216|0)+40>>2]|0)!=(a|0))if((b[11120+(c*216|0)+48>>2]|0)!=(a|0))if((b[11120+(c*216|0)+56>>2]|0)!=(a|0))if((b[11120+(c*216|0)+64>>2]|0)!=(a|0))if((b[11120+(c*216|0)+72>>2]|0)!=(a|0))if((b[11120+(c*216|0)+80>>2]|0)!=(a|0))if((b[11120+(c*216|0)+88>>2]|0)!=(a|0))if((b[11120+(c*216|0)+96>>2]|0)!=(a|0))if((b[11120+(c*216|0)+104>>2]|0)!=(a|0))if((b[11120+(c*216|0)+112>>2]|0)!=(a|0))if((b[11120+(c*216|0)+120>>2]|0)!=(a|0))if((b[11120+(c*216|0)+128>>2]|0)!=(a|0))if((b[11120+(c*216|0)+136>>2]|0)==(a|0)){a=2;d=1;e=2}else{if((b[11120+(c*216|0)+144>>2]|0)==(a|0)){a=0;d=2;e=0;break}if((b[11120+(c*216|0)+152>>2]|0)==(a|0)){a=0;d=2;e=1;break}if((b[11120+(c*216|0)+160>>2]|0)==(a|0)){a=0;d=2;e=2;break}if((b[11120+(c*216|0)+168>>2]|0)==(a|0)){a=1;d=2;e=0;break}if((b[11120+(c*216|0)+176>>2]|0)==(a|0)){a=1;d=2;e=1;break}if((b[11120+(c*216|0)+184>>2]|0)==(a|0)){a=1;d=2;e=2;break}if((b[11120+(c*216|0)+192>>2]|0)==(a|0)){a=2;d=2;e=0;break}if((b[11120+(c*216|0)+200>>2]|0)==(a|0)){a=2;d=2;e=1;break}if((b[11120+(c*216|0)+208>>2]|0)==(a|0)){a=2;d=2;e=2;break}else a=-1;return a|0}else{a=2;d=1;e=1}else{a=2;d=1;e=0}else{a=1;d=1;e=2}else{a=1;d=1;e=1}else{a=1;d=1;e=0}else{a=0;d=1;e=2}else{a=0;d=1;e=1}else{a=0;d=1;e=0}else{a=2;d=0;e=2}else{a=2;d=0;e=1}else{a=2;d=0;e=0}else{a=1;d=0;e=2}else{a=1;d=0;e=1}else{a=1;d=0;e=0}else{a=0;d=0;e=2}else{a=0;d=0;e=1}else{a=0;d=0;e=0}while(0);c=b[11120+(c*216|0)+(d*72|0)+(a*24|0)+(e<<3)+4>>2]|0;return c|0}function ua(a,c){a=a|0;c=c|0;if((b[7696+(a*28|0)+20>>2]|0)==(c|0)){c=1;return c|0}c=(b[7696+(a*28|0)+24>>2]|0)==(c|0);return c|0}function va(a,c){a=a|0;c=c|0;return b[848+(a*28|0)+(c<<2)>>2]|0}function wa(a,c){a=a|0;c=c|0;if((b[848+(a*28|0)>>2]|0)==(c|0)){c=0;return c|0}if((b[848+(a*28|0)+4>>2]|0)==(c|0)){c=1;return c|0}if((b[848+(a*28|0)+8>>2]|0)==(c|0)){c=2;return c|0}if((b[848+(a*28|0)+12>>2]|0)==(c|0)){c=3;return c|0}if((b[848+(a*28|0)+16>>2]|0)==(c|0)){c=4;return c|0}if((b[848+(a*28|0)+20>>2]|0)==(c|0)){c=5;return c|0}else return ((b[848+(a*28|0)+24>>2]|0)==(c|0)?6:7)|0;return 0}function xa(){return 122}function ya(a){a=a|0;var c=0,d=0,e=0;c=0;do{Ud(c|0,0,45)|0;e=H()|0|134225919;d=a+(c<<3)|0;b[d>>2]=-1;b[d+4>>2]=e;c=c+1|0}while((c|0)!=122);return 0}function za(a){a=a|0;var b=0.0,c=0.0,d=0.0;d=+e[a+16>>3];c=+e[a+24>>3];b=d-c;return +(d>3]<+e[a+24>>3]|0}function Ba(a){a=a|0;return +(+e[a>>3]-+e[a+8>>3])}function Ca(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[b>>3];if(!(c>=+e[a+8>>3])){b=0;return b|0}if(!(c<=+e[a>>3])){b=0;return b|0}d=+e[a+16>>3];c=+e[a+24>>3];f=+e[b+8>>3];b=f>=c;a=f<=d&1;if(d>3]<+e[b+8>>3]){d=0;return d|0}if(+e[a+8>>3]>+e[b>>3]){d=0;return d|0}g=+e[a+16>>3];c=a+24|0;l=+e[c>>3];h=g>3];f=b+24|0;j=+e[f>>3];i=k>3],b)){i=0;return i|0}l=+nc(+e[c>>3],a);if(l>+nc(+e[d>>3],b)){i=0;return i|0}i=1;return i|0}function Ea(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0;h=+e[a+16>>3];k=+e[a+24>>3];a=h>3];i=+e[c+24>>3];g=j>2]=a?(g|c?1:2):0;b[f>>2]=g?(a?1:c?2:1):0;return}function Fa(a,b){a=a|0;b=b|0;var c=0,d=0,f=0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0;if(+e[a>>3]<+e[b>>3]){d=0;return d|0}if(+e[a+8>>3]>+e[b+8>>3]){d=0;return d|0}d=a+16|0;j=+e[d>>3];g=+e[a+24>>3];h=j>3];f=b+24|0;k=+e[f>>3];i=l>3],b))){i=0;return i|0}l=+nc(+e[d>>3],a);i=l>=+nc(+e[c>>3],b);return i|0}function Ga(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0;g=T;T=T+176|0;f=g;b[f>>2]=4;j=+e[c>>3];e[f+8>>3]=j;h=+e[c+16>>3];e[f+16>>3]=h;e[f+24>>3]=j;j=+e[c+24>>3];e[f+32>>3]=j;i=+e[c+8>>3];e[f+40>>3]=i;e[f+48>>3]=j;e[f+56>>3]=i;e[f+64>>3]=h;c=f+72|0;d=c+96|0;do{b[c>>2]=0;c=c+4|0}while((c|0)<(d|0));Zd(a|0,f|0,168)|0;T=g;return}function Ha(a,c,d){a=a|0;c=c|0;d=d|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,r=0,s=0,t=0,u=0.0,v=0.0;t=T;T=T+288|0;n=t+264|0;o=t+96|0;m=t;k=m;l=k+96|0;do{b[k>>2]=0;k=k+4|0}while((k|0)<(l|0));c=fc(c,m)|0;if(c|0){s=c;T=t;return s|0}l=m;m=b[l>>2]|0;l=b[l+4>>2]|0;ac(m,l,n)|0;bc(m,l,o)|0;j=+pc(n,o+8|0);e[n>>3]=+e[a>>3];l=n+8|0;e[l>>3]=+e[a+16>>3];e[o>>3]=+e[a+8>>3];m=o+8|0;e[m>>3]=+e[a+24>>3];h=+pc(n,o);v=+e[l>>3]-+e[m>>3];i=+q(+v);u=+e[n>>3]-+e[o>>3];g=+q(+u);if(!(v==0.0|u==0.0)?(v=+Wd(+i,+g),v=+A(+(h*h/+Xd(+(v/+Xd(+i,+g)),3.0)/(j*(j*2.59807621135)*.8))),e[f>>3]=v,r=~~v>>>0,s=+q(v)>=1.0?(v>0.0?~~+C(+p(v/4294967296.0),4294967295.0)>>>0:~~+A((v-+(~~v>>>0))/4294967296.0)>>>0):0,!(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0)):0){o=(r|0)==0&(s|0)==0;c=d;b[c>>2]=o?1:r;b[c+4>>2]=o?0:s;c=0}else c=1;s=c;T=t;return s|0}function Ia(a,c,d,g){a=a|0;c=c|0;d=d|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=T;T=T+288|0;j=m+264|0;k=m+96|0;l=m;h=l;i=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(i|0));d=fc(d,l)|0;if(d|0){g=d;T=m;return g|0}d=l;h=b[d>>2]|0;d=b[d+4>>2]|0;ac(h,d,j)|0;bc(h,d,k)|0;n=+pc(j,k+8|0);n=+A(+(+pc(a,c)/(n*2.0)));e[f>>3]=n;d=~~n>>>0;h=+q(n)>=1.0?(n>0.0?~~+C(+p(n/4294967296.0),4294967295.0)>>>0:~~+A((n-+(~~n>>>0))/4294967296.0)>>>0):0;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0){g=1;T=m;return g|0}l=(d|0)==0&(h|0)==0;b[g>>2]=l?1:d;b[g+4>>2]=l?0:h;g=0;T=m;return g|0}function Ja(a,b){a=a|0;b=+b;var c=0,d=0.0,f=0.0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0.0;g=a+16|0;h=+e[g>>3];c=a+24|0;f=+e[c>>3];d=h-f;d=h>3];i=a+8|0;j=+e[i>>3];l=k-j;d=(d*b-d)*.5;b=(l*b-l)*.5;k=k+b;e[a>>3]=k>1.5707963267948966?1.5707963267948966:k;b=j-b;e[i>>3]=b<-1.5707963267948966?-1.5707963267948966:b;b=h+d;b=b>3.141592653589793?b+-6.283185307179586:b;e[g>>3]=b<-3.141592653589793?b+6.283185307179586:b;b=f-d;b=b>3.141592653589793?b+-6.283185307179586:b;e[c>>3]=b<-3.141592653589793?b+6.283185307179586:b;return}function Ka(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;b[a>>2]=c;b[a+4>>2]=d;b[a+8>>2]=e;return}function La(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0;n=c+8|0;b[n>>2]=0;k=+e[a>>3];i=+q(+k);l=+e[a+8>>3];j=+q(+l)*1.1547005383792515;i=i+j*.5;d=~~i;a=~~j;i=i-+(d|0);j=j-+(a|0);do if(i<.5)if(i<.3333333333333333){b[c>>2]=d;if(j<(i+1.0)*.5){b[c+4>>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}else{o=1.0-i;a=(!(j>2]=a;if(o<=j&j>2]=d;break}else{b[c>>2]=d;break}}else{if(!(i<.6666666666666666)){d=d+1|0;b[c>>2]=d;if(j>2]=a;break}else{a=a+1|0;b[c+4>>2]=a;break}}if(j<1.0-i){b[c+4>>2]=a;if(i*2.0+-1.0>2]=d;break}}else{a=a+1|0;b[c+4>>2]=a}d=d+1|0;b[c>>2]=d}while(0);do if(k<0.0)if(!(a&1)){m=(a|0)/2|0;m=Kd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-(+(m>>>0)+4294967296.0*+(H()|0))*2.0);b[c>>2]=d;break}else{m=(a+1|0)/2|0;m=Kd(d|0,((d|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;d=~~(+(d|0)-((+(m>>>0)+4294967296.0*+(H()|0))*2.0+1.0));b[c>>2]=d;break}while(0);m=c+4|0;if(l<0.0){d=d-((a<<1|1|0)/2|0)|0;b[c>>2]=d;a=0-a|0;b[m>>2]=a}f=a-d|0;if((d|0)<0){g=0-d|0;b[m>>2]=f;b[n>>2]=g;b[c>>2]=0;a=f;d=0}else g=0;if((a|0)<0){d=d-a|0;b[c>>2]=d;g=g-a|0;b[n>>2]=g;b[m>>2]=0;a=0}h=d-g|0;f=a-g|0;if((g|0)<0){b[c>>2]=h;b[m>>2]=f;b[n>>2]=0;a=f;d=h;g=0}f=(a|0)<(d|0)?a:d;f=(g|0)<(f|0)?g:f;if((f|0)<=0)return;b[c>>2]=d-f;b[m>>2]=a-f;b[n>>2]=g-f;return}function Ma(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;if((c|0)<0){d=d-c|0;b[h>>2]=d;g=a+8|0;b[g>>2]=(b[g>>2]|0)-c;b[a>>2]=0;c=0}if((d|0)<0){c=c-d|0;b[a>>2]=c;g=a+8|0;f=(b[g>>2]|0)-d|0;b[g>>2]=f;b[h>>2]=0;d=0}else{f=a+8|0;g=f;f=b[f>>2]|0}if((f|0)<0){c=c-f|0;b[a>>2]=c;d=d-f|0;b[h>>2]=d;b[g>>2]=0;f=0}e=(d|0)<(c|0)?d:c;e=(f|0)<(e|0)?f:e;if((e|0)<=0)return;b[a>>2]=c-e;b[h>>2]=d-e;b[g>>2]=f-e;return}function Na(a,c){a=a|0;c=c|0;var d=0.0,f=0;f=b[a+8>>2]|0;d=+((b[a+4>>2]|0)-f|0);e[c>>3]=+((b[a>>2]|0)-f|0)-d*.5;e[c+8>>3]=d*.8660254037844386;return}function Oa(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[c>>2]|0)+(b[a>>2]|0);b[d+4>>2]=(b[c+4>>2]|0)+(b[a+4>>2]|0);b[d+8>>2]=(b[c+8>>2]|0)+(b[a+8>>2]|0);return}function Pa(a,c,d){a=a|0;c=c|0;d=d|0;b[d>>2]=(b[a>>2]|0)-(b[c>>2]|0);b[d+4>>2]=(b[a+4>>2]|0)-(b[c+4>>2]|0);b[d+8>>2]=(b[a+8>>2]|0)-(b[c+8>>2]|0);return}function Qa(a,c){a=a|0;c=c|0;var d=0,e=0;d=B(b[a>>2]|0,c)|0;b[a>>2]=d;d=a+4|0;e=B(b[d>>2]|0,c)|0;b[d>>2]=e;a=a+8|0;c=B(b[a>>2]|0,c)|0;b[a>>2]=c;return}function Ra(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=b[a>>2]|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(g?0-e|0:0)+((b[a+8>>2]|0)-(i?h:0))|0;d=(f|0)<0;a=d?0:f;c=(g?0:e)-(d?f:0)|0;f=(i?0:h)-(g?e:0)-(d?f:0)|0;d=(c|0)<(f|0)?c:f;d=(a|0)<(d|0)?a:d;e=(d|0)>0;a=a-(e?d:0)|0;c=c-(e?d:0)|0;a:do switch(f-(e?d:0)|0){case 0:switch(c|0){case 0:{i=(a|0)==0?0:(a|0)==1?1:7;return i|0}case 1:{i=(a|0)==0?2:(a|0)==1?3:7;return i|0}default:break a}case 1:switch(c|0){case 0:{i=(a|0)==0?4:(a|0)==1?5:7;return i|0}case 1:{if(!a)a=6;else break a;return a|0}default:break a}default:{}}while(0);i=7;return i|0}function Sa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=a+8|0;h=b[j>>2]|0;i=(b[a>>2]|0)-h|0;k=a+4|0;h=(b[k>>2]|0)-h|0;if(i>>>0>715827881|h>>>0>715827881){e=(i|0)>0;f=2147483647-i|0;g=-2147483648-i|0;if(e?(f|0)<(i|0):(g|0)>(i|0)){k=1;return k|0}d=i<<1;if(e?(2147483647-d|0)<(i|0):(-2147483648-d|0)>(i|0)){k=1;return k|0}if((h|0)>0?(2147483647-h|0)<(h|0):(-2147483648-h|0)>(h|0)){k=1;return k|0}c=i*3|0;d=h<<1;if((e?(f|0)<(d|0):(g|0)>(d|0))?1:(i|0)>-1?(c|-2147483648|0)>=(h|0):(c^-2147483648|0)<(h|0)){k=1;return k|0}}else{d=h<<1;c=i*3|0}e=Fd(+(c-h|0)*.14285714285714285)|0;b[a>>2]=e;f=Fd(+(d+i|0)*.14285714285714285)|0;b[k>>2]=f;b[j>>2]=0;d=(f|0)<(e|0);c=d?e:f;d=d?f:e;if((d|0)<0){if((d|0)==-2147483648?1:(c|0)>0?(2147483647-c|0)<(d|0):(-2147483648-c|0)>(d|0))I(27795,26892,354,26903);if((c|0)>-1?(c|-2147483648|0)>=(d|0):(c^-2147483648|0)<(d|0))I(27795,26892,354,26903)}c=f-e|0;if((e|0)<0){d=0-e|0;b[k>>2]=c;b[j>>2]=d;b[a>>2]=0;e=0}else{c=f;d=0}if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[j>>2]=d;b[k>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[k>>2]=f;b[j>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0){k=0;return k|0}b[a>>2]=f-e;b[k>>2]=c-e;b[j>>2]=d-e;k=0;return k|0}function Ta(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+8|0;f=b[h>>2]|0;g=(b[a>>2]|0)-f|0;i=a+4|0;f=(b[i>>2]|0)-f|0;if(g>>>0>715827881|f>>>0>715827881){d=(g|0)>0;if(d?(2147483647-g|0)<(g|0):(-2147483648-g|0)>(g|0)){i=1;return i|0}c=g<<1;e=(f|0)>0;if(e?(2147483647-f|0)<(f|0):(-2147483648-f|0)>(f|0)){i=1;return i|0}j=f<<1;if(e?(2147483647-j|0)<(f|0):(-2147483648-j|0)>(f|0)){j=1;return j|0}if(d?(2147483647-c|0)<(f|0):(-2147483648-c|0)>(f|0)){j=1;return j|0}d=f*3|0;if((f|0)>-1?(d|-2147483648|0)>=(g|0):(d^-2147483648|0)<(g|0)){j=1;return j|0}}else{d=f*3|0;c=g<<1}e=Fd(+(c+f|0)*.14285714285714285)|0;b[a>>2]=e;f=Fd(+(d-g|0)*.14285714285714285)|0;b[i>>2]=f;b[h>>2]=0;d=(f|0)<(e|0);c=d?e:f;d=d?f:e;if((d|0)<0){if((d|0)==-2147483648?1:(c|0)>0?(2147483647-c|0)<(d|0):(-2147483648-c|0)>(d|0))I(27795,26892,402,26917);if((c|0)>-1?(c|-2147483648|0)>=(d|0):(c^-2147483648|0)<(d|0))I(27795,26892,402,26917)}c=f-e|0;if((e|0)<0){d=0-e|0;b[i>>2]=c;b[h>>2]=d;b[a>>2]=0;e=0}else{c=f;d=0}if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0){j=0;return j|0}b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;j=0;return j|0}function Ua(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=Fd(+((c*3|0)-d|0)*.14285714285714285)|0;b[a>>2]=e;c=Fd(+((d<<1)+c|0)*.14285714285714285)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Va(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;d=b[h>>2]|0;c=(b[a>>2]|0)-d|0;i=a+4|0;d=(b[i>>2]|0)-d|0;e=Fd(+((c<<1)+d|0)*.14285714285714285)|0;b[a>>2]=e;c=Fd(+((d*3|0)-c|0)*.14285714285714285)|0;b[i>>2]=c;b[h>>2]=0;d=c-e|0;if((e|0)<0){g=0-e|0;b[i>>2]=d;b[h>>2]=g;b[a>>2]=0;c=d;e=0;d=g}else d=0;if((c|0)<0){e=e-c|0;b[a>>2]=e;d=d-c|0;b[h>>2]=d;b[i>>2]=0;c=0}g=e-d|0;f=c-d|0;if((d|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;c=f;f=g;d=0}else f=e;e=(c|0)<(f|0)?c:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0)return;b[a>>2]=f-e;b[i>>2]=c-e;b[h>>2]=d-e;return}function Wa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c*3|0)|0;b[a>>2]=f;d=e+(d*3|0)|0;b[h>>2]=d;c=(e*3|0)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function Xa(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c*3|0)+f|0;f=d+(f*3|0)|0;b[a>>2]=f;b[h>>2]=e;c=(d*3|0)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function Ya(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;if((c+-1|0)>>>0>=6)return;f=(b[15440+(c*12|0)>>2]|0)+(b[a>>2]|0)|0;b[a>>2]=f;i=a+4|0;e=(b[15440+(c*12|0)+4>>2]|0)+(b[i>>2]|0)|0;b[i>>2]=e;h=a+8|0;c=(b[15440+(c*12|0)+8>>2]|0)+(b[h>>2]|0)|0;b[h>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[i>>2]=d;b[h>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[h>>2]=c;b[i>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[i>>2]=f;b[h>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[i>>2]=f-d;b[h>>2]=c-d;return}function Za(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=c+f|0;f=d+f|0;b[a>>2]=f;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function _a(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;e=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;f=e+c|0;b[a>>2]=f;e=d+e|0;b[h>>2]=e;c=d+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;e=0}else{d=e;e=f}if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function $a(a){a=a|0;switch(a|0){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:{}}return a|0}function ab(a){a=a|0;switch(a|0){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:{}}return a|0}function bb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b[a>>2]|0;h=a+4|0;d=b[h>>2]|0;i=a+8|0;e=b[i>>2]|0;f=d+(c<<1)|0;b[a>>2]=f;d=e+(d<<1)|0;b[h>>2]=d;c=(e<<1)+c|0;b[i>>2]=c;e=d-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=e;b[i>>2]=c;b[a>>2]=0;d=e;e=0}else e=f;if((d|0)<0){e=e-d|0;b[a>>2]=e;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=e-c|0;f=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=f;b[i>>2]=0;e=g;c=0}else f=d;d=(f|0)<(e|0)?f:e;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=e-d;b[h>>2]=f-d;b[i>>2]=c-d;return}function cb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=b[a>>2]|0;h=a+4|0;c=b[h>>2]|0;i=a+8|0;d=b[i>>2]|0;e=(c<<1)+f|0;f=d+(f<<1)|0;b[a>>2]=f;b[h>>2]=e;c=(d<<1)+c|0;b[i>>2]=c;d=e-f|0;if((f|0)<0){c=c-f|0;b[h>>2]=d;b[i>>2]=c;b[a>>2]=0;f=0}else d=e;if((d|0)<0){f=f-d|0;b[a>>2]=f;c=c-d|0;b[i>>2]=c;b[h>>2]=0;d=0}g=f-c|0;e=d-c|0;if((c|0)<0){b[a>>2]=g;b[h>>2]=e;b[i>>2]=0;f=g;c=0}else e=d;d=(e|0)<(f|0)?e:f;d=(c|0)<(d|0)?c:d;if((d|0)<=0)return;b[a>>2]=f-d;b[h>>2]=e-d;b[i>>2]=c-d;return}function db(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=(b[a>>2]|0)-(b[c>>2]|0)|0;i=(h|0)<0;e=(b[a+4>>2]|0)-(b[c+4>>2]|0)-(i?h:0)|0;g=(e|0)<0;f=(i?0-h|0:0)+(b[a+8>>2]|0)-(b[c+8>>2]|0)+(g?0-e|0:0)|0;a=(f|0)<0;c=a?0:f;d=(g?0:e)-(a?f:0)|0;f=(i?0:h)-(g?e:0)-(a?f:0)|0;a=(d|0)<(f|0)?d:f;a=(c|0)<(a|0)?c:a;e=(a|0)>0;c=c-(e?a:0)|0;d=d-(e?a:0)|0;a=f-(e?a:0)|0;a=(a|0)>-1?a:0-a|0;d=(d|0)>-1?d:0-d|0;c=(c|0)>-1?c:0-c|0;c=(d|0)>(c|0)?d:c;return ((a|0)>(c|0)?a:c)|0}function eb(a,c){a=a|0;c=c|0;var d=0;d=b[a+8>>2]|0;b[c>>2]=(b[a>>2]|0)-d;b[c+4>>2]=(b[a+4>>2]|0)-d;return}function fb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=b[a>>2]|0;b[c>>2]=e;f=b[a+4>>2]|0;h=c+4|0;b[h>>2]=f;i=c+8|0;b[i>>2]=0;d=(f|0)<(e|0);a=d?e:f;d=d?f:e;if((d|0)<0){if((d|0)==-2147483648?1:(a|0)>0?(2147483647-a|0)<(d|0):(-2147483648-a|0)>(d|0)){c=1;return c|0}if((a|0)>-1?(a|-2147483648|0)>=(d|0):(a^-2147483648|0)<(d|0)){c=1;return c|0}}a=f-e|0;if((e|0)<0){d=0-e|0;b[h>>2]=a;b[i>>2]=d;b[c>>2]=0;e=0}else{a=f;d=0}if((a|0)<0){e=e-a|0;b[c>>2]=e;d=d-a|0;b[i>>2]=d;b[h>>2]=0;a=0}g=e-d|0;f=a-d|0;if((d|0)<0){b[c>>2]=g;b[h>>2]=f;b[i>>2]=0;a=f;f=g;d=0}else f=e;e=(a|0)<(f|0)?a:f;e=(d|0)<(e|0)?d:e;if((e|0)<=0){c=0;return c|0}b[c>>2]=f-e;b[h>>2]=a-e;b[i>>2]=d-e;c=0;return c|0}function gb(a){a=a|0;var c=0,d=0,e=0,f=0;c=a+8|0;f=b[c>>2]|0;d=f-(b[a>>2]|0)|0;b[a>>2]=d;e=a+4|0;a=(b[e>>2]|0)-f|0;b[e>>2]=a;b[c>>2]=0-(a+d);return}function hb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=b[a>>2]|0;c=0-d|0;b[a>>2]=c;h=a+8|0;b[h>>2]=0;i=a+4|0;e=b[i>>2]|0;f=e+d|0;if((d|0)>0){b[i>>2]=f;b[h>>2]=d;b[a>>2]=0;c=0;e=f}else d=0;if((e|0)<0){g=c-e|0;b[a>>2]=g;d=d-e|0;b[h>>2]=d;b[i>>2]=0;f=g-d|0;c=0-d|0;if((d|0)<0){b[a>>2]=f;b[i>>2]=c;b[h>>2]=0;e=c;d=0}else{e=0;f=g}}else f=c;c=(e|0)<(f|0)?e:f;c=(d|0)<(c|0)?d:c;if((c|0)<=0)return;b[a>>2]=f-c;b[i>>2]=e-c;b[h>>2]=d-c;return}function ib(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=T;T=T+64|0;l=m;i=m+56|0;if(!(0==0&(c&2013265920|0)==134217728&(0==0&(e&2013265920|0)==134217728))){f=5;T=m;return f|0}if((a|0)==(d|0)&(c|0)==(e|0)){b[f>>2]=0;f=0;T=m;return f|0}h=Td(a|0,c|0,52)|0;H()|0;h=h&15;k=Td(d|0,e|0,52)|0;H()|0;if((h|0)!=(k&15|0)){f=12;T=m;return f|0}g=h+-1|0;if(h>>>0>1){Ib(a,c,g,l)|0;Ib(d,e,g,i)|0;k=l;j=b[k>>2]|0;k=b[k+4>>2]|0;a:do if((j|0)==(b[i>>2]|0)?(k|0)==(b[i+4>>2]|0):0){h=(h^15)*3|0;g=Td(a|0,c|0,h|0)|0;H()|0;g=g&7;h=Td(d|0,e|0,h|0)|0;H()|0;h=h&7;do if(!((g|0)==0|(h|0)==0))if((g|0)==7)g=5;else{if((g|0)==1|(h|0)==1?Kb(j,k)|0:0){g=5;break}if((b[15536+(g<<2)>>2]|0)!=(h|0)?(b[15568+(g<<2)>>2]|0)!=(h|0):0)break a;b[f>>2]=1;g=0}else{b[f>>2]=1;g=0}while(0);f=g;T=m;return f|0}while(0)}g=l;h=g+56|0;do{b[g>>2]=0;g=g+4|0}while((g|0)<(h|0));aa(a,c,1,l)|0;c=l;if(((((!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)?(c=l+8|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+16|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+24|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+32|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+40|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0){g=l+48|0;g=((b[g>>2]|0)==(d|0)?(b[g+4>>2]|0)==(e|0):0)&1}else g=1;b[f>>2]=g;f=0;T=m;return f|0}function jb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;d=ia(a,c,d,e)|0;if((d|0)==7){f=11;return f|0}e=Ud(d|0,0,56)|0;c=c&-2130706433|(H()|0)|268435456;b[f>>2]=a|e;b[f+4>>2]=c;f=0;return f|0}function kb(a,c,d){a=a|0;c=c|0;d=d|0;if(!(0==0&(c&2013265920|0)==268435456)){d=6;return d|0}b[d>>2]=a;b[d+4>>2]=c&-2130706433|134217728;d=0;return d|0}function lb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=T;T=T+16|0;e=f;b[e>>2]=0;if(!(0==0&(c&2013265920|0)==268435456)){e=6;T=f;return e|0}g=Td(a|0,c|0,56)|0;H()|0;e=ea(a,c&-2130706433|134217728,g&7,e,d)|0;T=f;return e|0}function mb(a,b){a=a|0;b=b|0;var c=0;c=Td(a|0,b|0,56)|0;H()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}if(0==0&(b&117440512|0)==16777216&(Kb(a,c)|0)!=0){c=0;return c|0}c=Fb(a,c)|0;return c|0}function nb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=T;T=T+16|0;e=f;if(!(0==0&(c&2013265920|0)==268435456)){e=6;T=f;return e|0}g=c&-2130706433|134217728;h=d;b[h>>2]=a;b[h+4>>2]=g;b[e>>2]=0;c=Td(a|0,c|0,56)|0;H()|0;e=ea(a,g,c&7,e,d+8|0)|0;T=f;return e|0}function ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=(Kb(a,c)|0)==0;c=c&-2130706433;e=d;b[e>>2]=f?a:0;b[e+4>>2]=f?c|285212672:0;e=d+8|0;b[e>>2]=a;b[e+4>>2]=c|301989888;e=d+16|0;b[e>>2]=a;b[e+4>>2]=c|318767104;e=d+24|0;b[e>>2]=a;b[e+4>>2]=c|335544320;e=d+32|0;b[e>>2]=a;b[e+4>>2]=c|352321536;d=d+40|0;b[d>>2]=a;b[d+4>>2]=c|369098752;return 0}function pb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=T;T=T+16|0;f=h;g=c&-2130706433|134217728;if(!(0==0&(c&2013265920|0)==268435456)){g=6;T=h;return g|0}e=Td(a|0,c|0,56)|0;H()|0;e=rd(a,g,e&7)|0;if((e|0)==-1){b[d>>2]=0;g=6;T=h;return g|0}if($b(a,g,f)|0)I(27795,26932,282,26947);c=Td(a|0,c|0,52)|0;H()|0;c=c&15;if(!(Kb(a,g)|0))zb(f,c,e,2,d);else vb(f,c,e,2,d);g=0;T=h;return g|0}function qb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T;T=T+16|0;e=d;rb(a,b,c,e);La(e,c+4|0);T=d;return}function rb(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0,k=0;j=T;T=T+16|0;k=j;sb(a,d,k);h=+w(+(1.0-+e[k>>3]*.5));if(h<1.0e-16){b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;b[f+12>>2]=0;T=j;return}k=b[d>>2]|0;g=+e[15920+(k*24|0)>>3];g=+lc(g-+lc(+rc(15600+(k<<4)|0,a)));if(!(Yb(c)|0))i=g;else i=+lc(g+-.3334731722518321);g=+v(+h)*2.618033988749896;if((c|0)>0){a=0;do{g=g*2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}h=+t(+i)*g;e[f>>3]=h;i=+u(+i)*g;e[f+8>>3]=i;T=j;return}function sb(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0;h=T;T=T+32|0;g=h;qd(a,g);b[c>>2]=0;e[d>>3]=5.0;f=+pd(16400,g);if(f<+e[d>>3]){b[c>>2]=0;e[d>>3]=f}f=+pd(16424,g);if(f<+e[d>>3]){b[c>>2]=1;e[d>>3]=f}f=+pd(16448,g);if(f<+e[d>>3]){b[c>>2]=2;e[d>>3]=f}f=+pd(16472,g);if(f<+e[d>>3]){b[c>>2]=3;e[d>>3]=f}f=+pd(16496,g);if(f<+e[d>>3]){b[c>>2]=4;e[d>>3]=f}f=+pd(16520,g);if(f<+e[d>>3]){b[c>>2]=5;e[d>>3]=f}f=+pd(16544,g);if(f<+e[d>>3]){b[c>>2]=6;e[d>>3]=f}f=+pd(16568,g);if(f<+e[d>>3]){b[c>>2]=7;e[d>>3]=f}f=+pd(16592,g);if(f<+e[d>>3]){b[c>>2]=8;e[d>>3]=f}f=+pd(16616,g);if(f<+e[d>>3]){b[c>>2]=9;e[d>>3]=f}f=+pd(16640,g);if(f<+e[d>>3]){b[c>>2]=10;e[d>>3]=f}f=+pd(16664,g);if(f<+e[d>>3]){b[c>>2]=11;e[d>>3]=f}f=+pd(16688,g);if(f<+e[d>>3]){b[c>>2]=12;e[d>>3]=f}f=+pd(16712,g);if(f<+e[d>>3]){b[c>>2]=13;e[d>>3]=f}f=+pd(16736,g);if(f<+e[d>>3]){b[c>>2]=14;e[d>>3]=f}f=+pd(16760,g);if(f<+e[d>>3]){b[c>>2]=15;e[d>>3]=f}f=+pd(16784,g);if(f<+e[d>>3]){b[c>>2]=16;e[d>>3]=f}f=+pd(16808,g);if(f<+e[d>>3]){b[c>>2]=17;e[d>>3]=f}f=+pd(16832,g);if(f<+e[d>>3]){b[c>>2]=18;e[d>>3]=f}f=+pd(16856,g);if(!(f<+e[d>>3])){T=h;return}b[c>>2]=19;e[d>>3]=f;T=h;return}function tb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0.0,i=0.0,j=0.0;h=+md(a);if(h<1.0e-16){c=15600+(c<<4)|0;b[g>>2]=b[c>>2];b[g+4>>2]=b[c+4>>2];b[g+8>>2]=b[c+8>>2];b[g+12>>2]=b[c+12>>2];return}i=+z(+(+e[a+8>>3]),+(+e[a>>3]));if((d|0)>0){a=0;do{h=h*.37796447300922725;a=a+1|0}while((a|0)!=(d|0))}j=h*.3333333333333333;if(!f){h=+y(+(h*.381966011250105));if(Yb(d)|0)i=+lc(i+.3334731722518321)}else{d=(Yb(d)|0)==0;h=+y(+((d?j:j*.37796447300922725)*.381966011250105))}sc(15600+(c<<4)|0,+lc(+e[15920+(c*24|0)>>3]-i),h,g);return}function ub(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;e=T;T=T+16|0;f=e;Na(a+4|0,f);tb(f,b[a>>2]|0,c,0,d);T=e;return}function vb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,J=0.0;G=T;T=T+272|0;h=G+256|0;u=G+240|0;D=G;E=G+224|0;F=G+208|0;v=G+176|0;w=G+160|0;x=G+192|0;y=G+144|0;z=G+128|0;A=G+112|0;B=G+96|0;C=G+80|0;b[h>>2]=c;b[u>>2]=b[a>>2];b[u+4>>2]=b[a+4>>2];b[u+8>>2]=b[a+8>>2];b[u+12>>2]=b[a+12>>2];wb(u,h,D);b[g>>2]=0;u=f+d+((f|0)==5&1)|0;if((u|0)<=(d|0)){T=G;return}k=b[h>>2]|0;l=E+4|0;m=v+4|0;n=d+5|0;o=16880+(k<<2)|0;p=16960+(k<<2)|0;q=z+8|0;r=A+8|0;s=B+8|0;t=F+4|0;j=d;a:while(1){i=D+(((j|0)%5|0)<<4)|0;b[F>>2]=b[i>>2];b[F+4>>2]=b[i+4>>2];b[F+8>>2]=b[i+8>>2];b[F+12>>2]=b[i+12>>2];do{}while((xb(F,k,0,1)|0)==2);if((j|0)>(d|0)&(Yb(c)|0)!=0){b[v>>2]=b[F>>2];b[v+4>>2]=b[F+4>>2];b[v+8>>2]=b[F+8>>2];b[v+12>>2]=b[F+12>>2];Na(l,w);f=b[v>>2]|0;h=b[17040+(f*80|0)+(b[E>>2]<<2)>>2]|0;b[v>>2]=b[18640+(f*80|0)+(h*20|0)>>2];i=b[18640+(f*80|0)+(h*20|0)+16>>2]|0;if((i|0)>0){a=0;do{Za(m);a=a+1|0}while((a|0)<(i|0))}i=18640+(f*80|0)+(h*20|0)+4|0;b[x>>2]=b[i>>2];b[x+4>>2]=b[i+4>>2];b[x+8>>2]=b[i+8>>2];Qa(x,(b[o>>2]|0)*3|0);Oa(m,x,m);Ma(m);Na(m,y);H=+(b[p>>2]|0);e[z>>3]=H*3.0;e[q>>3]=0.0;J=H*-1.5;e[A>>3]=J;e[r>>3]=H*2.598076211353316;e[B>>3]=J;e[s>>3]=H*-2.598076211353316;switch(b[17040+((b[v>>2]|0)*80|0)+(b[F>>2]<<2)>>2]|0){case 1:{a=A;f=z;break}case 3:{a=B;f=A;break}case 2:{a=z;f=B;break}default:{a=12;break a}}nd(w,y,f,a,C);tb(C,b[v>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}if((j|0)<(n|0)){Na(t,v);tb(v,b[F>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1};b[E>>2]=b[F>>2];b[E+4>>2]=b[F+4>>2];b[E+8>>2]=b[F+8>>2];b[E+12>>2]=b[F+12>>2];j=j+1|0;if((j|0)>=(u|0)){a=3;break}}if((a|0)==3){T=G;return}else if((a|0)==12)I(26970,27017,572,27027)}function wb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=T;T=T+128|0;e=j+64|0;f=j;g=e;h=20240;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20304;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Yb(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;bb(f);cb(f);if(Yb(b[c>>2]|0)|0){Xa(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Oa(f,e,c);Ma(c);b[d+16>>2]=b[a>>2];c=d+20|0;Oa(f,e+12|0,c);Ma(c);b[d+32>>2]=b[a>>2];c=d+36|0;Oa(f,e+24|0,c);Ma(c);b[d+48>>2]=b[a>>2];c=d+52|0;Oa(f,e+36|0,c);Ma(c);b[d+64>>2]=b[a>>2];d=d+68|0;Oa(f,e+48|0,d);Ma(d);T=j;return}function xb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=T;T=T+32|0;n=p+12|0;i=p;o=a+4|0;m=b[16960+(c<<2)>>2]|0;l=(e|0)!=0;m=l?m*3|0:m;f=b[o>>2]|0;k=a+8|0;h=b[k>>2]|0;if(l){g=a+12|0;e=b[g>>2]|0;f=h+f+e|0;if((f|0)==(m|0)){o=1;T=p;return o|0}else j=g}else{j=a+12|0;e=b[j>>2]|0;f=h+f+e|0}if((f|0)<=(m|0)){o=0;T=p;return o|0}do if((e|0)>0){e=b[a>>2]|0;if((h|0)>0){g=18640+(e*80|0)+60|0;e=a;break}e=18640+(e*80|0)+40|0;if(!d){g=e;e=a}else{Ka(n,m,0,0);Pa(o,n,i);_a(i);Oa(i,n,o);g=e;e=a}}else{g=18640+((b[a>>2]|0)*80|0)+20|0;e=a}while(0);b[e>>2]=b[g>>2];f=g+16|0;if((b[f>>2]|0)>0){e=0;do{Za(o);e=e+1|0}while((e|0)<(b[f>>2]|0))}a=g+4|0;b[n>>2]=b[a>>2];b[n+4>>2]=b[a+4>>2];b[n+8>>2]=b[a+8>>2];c=b[16880+(c<<2)>>2]|0;Qa(n,l?c*3|0:c);Oa(o,n,o);Ma(o);if(l)e=((b[k>>2]|0)+(b[o>>2]|0)+(b[j>>2]|0)|0)==(m|0)?1:2;else e=2;o=e;T=p;return o|0}function yb(a,b){a=a|0;b=b|0;var c=0;do c=xb(a,b,0,1)|0;while((c|0)==2);return c|0}function zb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0,D=0.0;B=T;T=T+240|0;h=B+224|0;x=B+208|0;y=B;z=B+192|0;A=B+176|0;s=B+160|0;t=B+144|0;u=B+128|0;v=B+112|0;w=B+96|0;b[h>>2]=c;b[x>>2]=b[a>>2];b[x+4>>2]=b[a+4>>2];b[x+8>>2]=b[a+8>>2];b[x+12>>2]=b[a+12>>2];Ab(x,h,y);b[g>>2]=0;r=f+d+((f|0)==6&1)|0;if((r|0)<=(d|0)){T=B;return}k=b[h>>2]|0;l=d+6|0;m=16960+(k<<2)|0;n=t+8|0;o=u+8|0;p=v+8|0;q=z+4|0;i=0;j=d;f=-1;a:while(1){h=(j|0)%6|0;a=y+(h<<4)|0;b[z>>2]=b[a>>2];b[z+4>>2]=b[a+4>>2];b[z+8>>2]=b[a+8>>2];b[z+12>>2]=b[a+12>>2];a=i;i=xb(z,k,0,1)|0;if((j|0)>(d|0)&(Yb(c)|0)!=0?((a|0)!=1?(b[z>>2]|0)!=(f|0):0):0){Na(y+(((h+5|0)%6|0)<<4)+4|0,A);Na(y+(h<<4)+4|0,s);C=+(b[m>>2]|0);e[t>>3]=C*3.0;e[n>>3]=0.0;D=C*-1.5;e[u>>3]=D;e[o>>3]=C*2.598076211353316;e[v>>3]=D;e[p>>3]=C*-2.598076211353316;h=b[x>>2]|0;switch(b[17040+(h*80|0)+(((f|0)==(h|0)?b[z>>2]|0:f)<<2)>>2]|0){case 1:{a=u;f=t;break}case 3:{a=v;f=u;break}case 2:{a=t;f=v;break}default:{a=8;break a}}nd(A,s,f,a,w);if(!(od(A,w)|0)?!(od(s,w)|0):0){tb(w,b[x>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}}if((j|0)<(l|0)){Na(q,A);tb(A,b[z>>2]|0,k,1,g+8+(b[g>>2]<<4)|0);b[g>>2]=(b[g>>2]|0)+1}j=j+1|0;if((j|0)>=(r|0)){a=3;break}else f=b[z>>2]|0}if((a|0)==3){T=B;return}else if((a|0)==8)I(27054,27017,737,27099)}function Ab(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=T;T=T+160|0;e=j+80|0;f=j;g=e;h=20368;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20448;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));i=(Yb(b[c>>2]|0)|0)==0;e=i?e:f;f=a+4|0;bb(f);cb(f);if(Yb(b[c>>2]|0)|0){Xa(f);b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];c=d+4|0;Oa(f,e,c);Ma(c);b[d+16>>2]=b[a>>2];c=d+20|0;Oa(f,e+12|0,c);Ma(c);b[d+32>>2]=b[a>>2];c=d+36|0;Oa(f,e+24|0,c);Ma(c);b[d+48>>2]=b[a>>2];c=d+52|0;Oa(f,e+36|0,c);Ma(c);b[d+64>>2]=b[a>>2];c=d+68|0;Oa(f,e+48|0,c);Ma(c);b[d+80>>2]=b[a>>2];d=d+84|0;Oa(f,e+60|0,d);Ma(d);T=j;return}function Bb(a,b){a=a|0;b=b|0;b=Td(a|0,b|0,52)|0;H()|0;return b&15|0}function Cb(a,b){a=a|0;b=b|0;b=Td(a|0,b|0,45)|0;H()|0;return b&127|0}function Db(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;if((d+-1|0)>>>0>14){e=4;return e|0}d=Td(a|0,c|0,(15-d|0)*3|0)|0;H()|0;b[e>>2]=d&7;e=0;return e|0}function Eb(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(c>>>0>15){f=4;return f|0}if(d>>>0>121){f=17;return f|0}i=Ud(c|0,0,52)|0;g=H()|0;j=Ud(d|0,0,45)|0;g=g|(H()|0)|134225919;a:do if((c|0)>=1){j=1;i=(a[20528+d>>0]|0)!=0;h=-1;while(1){d=b[e+(j+-1<<2)>>2]|0;if(d>>>0>6){g=18;d=10;break}if(!((d|0)==0|i^1))if((d|0)==1){g=19;d=10;break}else i=0;l=(15-j|0)*3|0;k=Ud(7,0,l|0)|0;g=g&~(H()|0);d=Ud(d|0,((d|0)<0)<<31>>31|0,l|0)|0;h=d|h&~k;g=H()|0|g;if((j|0)<(c|0))j=j+1|0;else break a}if((d|0)==10)return g|0}else h=-1;while(0);l=f;b[l>>2]=h;b[l+4>>2]=g;l=0;return l|0}function Fb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(!(0==0&(c&-16777216|0)==134217728)){b=0;return b|0}e=Td(b|0,c|0,52)|0;H()|0;e=e&15;d=Td(b|0,c|0,45)|0;H()|0;d=d&127;if(d>>>0>121){b=0;return b|0}h=(e^15)*3|0;f=Td(b|0,c|0,h|0)|0;h=Ud(f|0,H()|0,h|0)|0;f=H()|0;g=Kd(-1227133514,-1171,h|0,f|0)|0;if(!((h&613566756&g|0)==0&(f&4681&(H()|0)|0)==0)){h=0;return h|0}h=(e*3|0)+19|0;g=Ud(~b|0,~c|0,h|0)|0;h=Td(g|0,H()|0,h|0)|0;if(!((e|0)==15|(h|0)==0&(H()|0)==0)){h=0;return h|0}if(!(a[20528+d>>0]|0)){h=1;return h|0}c=c&8191;if((b|0)==0&(c|0)==0){h=1;return h|0}else{h=Vd(b|0,c|0,0)|0;H()|0;return ((63-h|0)%3|0|0)!=0|0}return 0}function Gb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(((0==0&(c&-16777216|0)==134217728?(e=Td(b|0,c|0,52)|0,H()|0,e=e&15,d=Td(b|0,c|0,45)|0,H()|0,d=d&127,d>>>0<=121):0)?(h=(e^15)*3|0,f=Td(b|0,c|0,h|0)|0,h=Ud(f|0,H()|0,h|0)|0,f=H()|0,g=Kd(-1227133514,-1171,h|0,f|0)|0,(h&613566756&g|0)==0&(f&4681&(H()|0)|0)==0):0)?(h=(e*3|0)+19|0,g=Ud(~b|0,~c|0,h|0)|0,h=Td(g|0,H()|0,h|0)|0,(e|0)==15|(h|0)==0&(H()|0)==0):0){if(!(a[20528+d>>0]|0)){h=1;return h|0}d=c&8191;if((b|0)==0&(d|0)==0){h=1;return h|0}h=Vd(b|0,d|0,0)|0;H()|0;if((63-h|0)%3|0|0){h=1;return h|0}}if(mb(b,c)|0){h=1;return h|0}h=(wd(b,c)|0)!=0&1;return h|0}function Hb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=Ud(c|0,0,52)|0;g=H()|0;d=Ud(d|0,0,45)|0;d=g|(H()|0)|134225919;if((c|0)<1){g=-1;e=d;c=a;b[c>>2]=g;a=a+4|0;b[a>>2]=e;return}g=1;f=-1;while(1){h=(15-g|0)*3|0;i=Ud(7,0,h|0)|0;d=d&~(H()|0);h=Ud(e|0,0,h|0)|0;f=f&~i|h;d=d|(H()|0);if((g|0)==(c|0))break;else g=g+1|0}i=a;h=i;b[h>>2]=f;i=i+4|0;b[i>>2]=d;return}function Ib(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=Td(a|0,c|0,52)|0;H()|0;g=g&15;if(d>>>0>15){e=4;return e|0}if((g|0)<(d|0)){e=12;return e|0}if((g|0)==(d|0)){b[e>>2]=a;b[e+4>>2]=c;e=0;return e|0}f=Ud(d|0,0,52)|0;f=f|a;a=H()|0|c&-15728641;if((g|0)>(d|0))do{c=Ud(7,0,(14-d|0)*3|0)|0;d=d+1|0;f=c|f;a=H()|0|a}while((d|0)<(g|0));b[e>>2]=f;b[e+4>>2]=a;e=0;return e|0}function Jb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Td(a|0,c|0,52)|0;H()|0;g=g&15;if(!((d|0)<16&(g|0)<=(d|0))){e=4;return e|0}f=d-g|0;d=Td(a|0,c|0,45)|0;H()|0;a:do if(!(oa(d&127)|0)){d=Rc(7,0,f,((f|0)<0)<<31>>31)|0;f=H()|0}else{b:do if(g|0){d=1;while(1){h=Ud(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((H()|0)&c|0)==0))break;if(d>>>0>>0)d=d+1|0;else break b}d=Rc(7,0,f,((f|0)<0)<<31>>31)|0;f=H()|0;break a}while(0);d=Rc(7,0,f,((f|0)<0)<<31>>31)|0;d=Pd(d|0,H()|0,5,0)|0;d=Jd(d|0,H()|0,-5,-1)|0;d=Nd(d|0,H()|0,6,0)|0;d=Jd(d|0,H()|0,1,0)|0;f=H()|0}while(0);h=e;b[h>>2]=d;b[h+4>>2]=f;h=0;return h|0}function Kb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Td(a|0,b|0,45)|0;H()|0;if(!(oa(e&127)|0)){e=0;return e|0}e=Td(a|0,b|0,52)|0;H()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=Td(a|0,b|0,(15-d|0)*3|0)|0;H()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function Lb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=T;T=T+16|0;g=h;ic(g,a,c,d);c=g;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){T=h;return 0}f=0;d=0;do{i=e+(f<<3)|0;b[i>>2]=a;b[i+4>>2]=c;f=Jd(f|0,d|0,1,0)|0;d=H()|0;kc(g);i=g;a=b[i>>2]|0;c=b[i+4>>2]|0}while(!((a|0)==0&(c|0)==0));T=h;return 0}function Mb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)<(c|0)){c=b;d=a;G(c|0);return d|0}c=Ud(-1,-1,((d-c|0)*3|0)+3|0)|0;d=Ud(~c|0,~(H()|0)|0,(15-d|0)*3|0)|0;c=~(H()|0)&b;d=~d&a;G(c|0);return d|0}function Nb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0;f=Td(a|0,c|0,52)|0;H()|0;f=f&15;if(!((d|0)<16&(f|0)<=(d|0))){e=4;return e|0}if((f|0)<(d|0)){f=Ud(-1,-1,((d+-1-f|0)*3|0)+3|0)|0;f=Ud(~f|0,~(H()|0)|0,(15-d|0)*3|0)|0;c=~(H()|0)&c;a=~f&a}f=Ud(d|0,0,52)|0;d=c&-15728641|(H()|0);b[e>>2]=a|f;b[e+4>>2]=d;e=0;return e|0}function Ob(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if((d|0)==0&(e|0)==0){E=0;return E|0}f=a;g=b[f>>2]|0;f=b[f+4>>2]|0;if(0==0&(f&15728640|0)==0){if(!((e|0)>0|(e|0)==0&d>>>0>0)){E=0;return E|0}E=c;b[E>>2]=g;b[E+4>>2]=f;if((d|0)==1&(e|0)==0){E=0;return E|0}f=1;g=0;do{C=a+(f<<3)|0;D=b[C+4>>2]|0;E=c+(f<<3)|0;b[E>>2]=b[C>>2];b[E+4>>2]=D;f=Jd(f|0,g|0,1,0)|0;g=H()|0}while((g|0)<(e|0)|(g|0)==(e|0)&f>>>0>>0);f=0;return f|0}B=d<<3;D=Gd(B)|0;if(!D){E=13;return E|0}Zd(D|0,a|0,B|0)|0;C=Id(d,8)|0;if(!C){Hd(D);E=13;return E|0}a:while(1){f=D;k=b[f>>2]|0;f=b[f+4>>2]|0;z=Td(k|0,f|0,52)|0;H()|0;z=z&15;A=z+-1|0;y=(z|0)!=0;x=(e|0)>0|(e|0)==0&d>>>0>0;b:do if(y&x){t=Ud(A|0,0,52)|0;u=H()|0;if(A>>>0>15){if(!((k|0)==0&(f|0)==0)){E=16;break a}g=0;a=0;while(1){g=Jd(g|0,a|0,1,0)|0;a=H()|0;if(!((a|0)<(e|0)|(a|0)==(e|0)&g>>>0>>0))break b;h=D+(g<<3)|0;w=b[h>>2]|0;h=b[h+4>>2]|0;if(!((w|0)==0&(h|0)==0)){f=h;E=16;break a}}}i=k;a=f;g=0;h=0;while(1){if(!((i|0)==0&(a|0)==0)){if(!(0==0&(a&117440512|0)==0)){E=21;break a}l=Td(i|0,a|0,52)|0;H()|0;l=l&15;if((l|0)<(A|0)){f=12;E=27;break a}if((l|0)!=(A|0)){i=i|t;a=a&-15728641|u;if(l>>>0>=z>>>0){j=A;do{w=Ud(7,0,(14-j|0)*3|0)|0;j=j+1|0;i=w|i;a=H()|0|a}while(j>>>0>>0)}}n=Rd(i|0,a|0,d|0,e|0)|0;o=H()|0;j=C+(n<<3)|0;l=j;m=b[l>>2]|0;l=b[l+4>>2]|0;if(!((m|0)==0&(l|0)==0)){r=0;s=0;do{if((r|0)>(e|0)|(r|0)==(e|0)&s>>>0>d>>>0){E=31;break a}if((m|0)==(i|0)&(l&-117440513|0)==(a|0)){p=Td(m|0,l|0,56)|0;H()|0;p=p&7;q=p+1|0;w=Td(m|0,l|0,45)|0;H()|0;c:do if(!(oa(w&127)|0))l=7;else{m=Td(m|0,l|0,52)|0;H()|0;m=m&15;if(!m){l=6;break}l=1;while(1){w=Ud(7,0,(15-l|0)*3|0)|0;if(!((w&i|0)==0&((H()|0)&a|0)==0)){l=7;break c}if(l>>>0>>0)l=l+1|0;else{l=6;break}}}while(0);if((p+2|0)>>>0>l>>>0){E=41;break a}w=Ud(q|0,0,56)|0;a=H()|0|a&-117440513;v=j;b[v>>2]=0;b[v+4>>2]=0;i=w|i}else{n=Jd(n|0,o|0,1,0)|0;n=Qd(n|0,H()|0,d|0,e|0)|0;o=H()|0}s=Jd(s|0,r|0,1,0)|0;r=H()|0;j=C+(n<<3)|0;l=j;m=b[l>>2]|0;l=b[l+4>>2]|0}while(!((m|0)==0&(l|0)==0))}w=j;b[w>>2]=i;b[w+4>>2]=a}g=Jd(g|0,h|0,1,0)|0;h=H()|0;if(!((h|0)<(e|0)|(h|0)==(e|0)&g>>>0>>0))break b;a=D+(g<<3)|0;i=b[a>>2]|0;a=b[a+4>>2]|0}}while(0);w=Jd(d|0,e|0,5,0)|0;v=H()|0;if(v>>>0<0|(v|0)==0&w>>>0<11){E=85;break}w=Nd(d|0,e|0,6,0)|0;H()|0;w=Id(w,8)|0;if(!w){E=48;break}do if(x){q=0;a=0;p=0;r=0;while(1){l=C+(q<<3)|0;h=l;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((g|0)==0&(h|0)==0)){m=Td(g|0,h|0,56)|0;H()|0;m=m&7;i=m+1|0;n=h&-117440513;v=Td(g|0,h|0,45)|0;H()|0;d:do if(oa(v&127)|0){o=Td(g|0,h|0,52)|0;H()|0;o=o&15;if(o|0){j=1;while(1){v=Ud(7,0,(15-j|0)*3|0)|0;if(!((g&v|0)==0&(n&(H()|0)|0)==0))break d;if(j>>>0>>0)j=j+1|0;else break}}h=Ud(i|0,0,56)|0;g=h|g;h=H()|0|n;i=l;b[i>>2]=g;b[i+4>>2]=h;i=m+2|0}while(0);if((i|0)==7){v=w+(a<<3)|0;b[v>>2]=g;b[v+4>>2]=h&-117440513;a=Jd(a|0,p|0,1,0)|0;v=H()|0}else v=p}else v=p;q=Jd(q|0,r|0,1,0)|0;r=H()|0;if(!((r|0)<(e|0)|(r|0)==(e|0)&q>>>0>>0))break;else p=v}if(x){s=A>>>0>15;t=Ud(A|0,0,52)|0;u=H()|0;if(!y){g=0;j=0;i=0;h=0;while(1){if(!((k|0)==0&(f|0)==0)){A=c+(g<<3)|0;b[A>>2]=k;b[A+4>>2]=f;g=Jd(g|0,j|0,1,0)|0;j=H()|0}i=Jd(i|0,h|0,1,0)|0;h=H()|0;if(!((h|0)<(e|0)|(h|0)==(e|0)&i>>>0>>0))break;f=D+(i<<3)|0;k=b[f>>2]|0;f=b[f+4>>2]|0}f=v;break}g=0;j=0;h=0;i=0;while(1){do if(!((k|0)==0&(f|0)==0)){o=Td(k|0,f|0,52)|0;H()|0;o=o&15;if(s|(o|0)<(A|0)){E=80;break a}if((o|0)!=(A|0)){l=k|t;m=f&-15728641|u;if(o>>>0>=z>>>0){n=A;do{y=Ud(7,0,(14-n|0)*3|0)|0;n=n+1|0;l=y|l;m=H()|0|m}while(n>>>0>>0)}}else{l=k;m=f}p=Rd(l|0,m|0,d|0,e|0)|0;n=0;o=0;r=H()|0;do{if((n|0)>(e|0)|(n|0)==(e|0)&o>>>0>d>>>0){E=81;break a}y=C+(p<<3)|0;q=b[y+4>>2]|0;if((q&-117440513|0)==(m|0)?(b[y>>2]|0)==(l|0):0){E=65;break}y=Jd(p|0,r|0,1,0)|0;p=Qd(y|0,H()|0,d|0,e|0)|0;r=H()|0;o=Jd(o|0,n|0,1,0)|0;n=H()|0;y=C+(p<<3)|0}while(!((b[y>>2]|0)==(l|0)?(b[y+4>>2]|0)==(m|0):0));if((E|0)==65?(E=0,0==0&(q&117440512|0)==100663296):0)break;y=c+(g<<3)|0;b[y>>2]=k;b[y+4>>2]=f;g=Jd(g|0,j|0,1,0)|0;j=H()|0}while(0);h=Jd(h|0,i|0,1,0)|0;i=H()|0;if(!((i|0)<(e|0)|(i|0)==(e|0)&h>>>0>>0))break;f=D+(h<<3)|0;k=b[f>>2]|0;f=b[f+4>>2]|0}f=v}else{g=0;f=v}}else{g=0;a=0;f=0}while(0);_d(C|0,0,B|0)|0;Zd(D|0,w|0,a<<3|0)|0;Hd(w);if((a|0)==0&(f|0)==0){E=89;break}else{c=c+(g<<3)|0;e=f;d=a}}if((E|0)==16)if(0==0&(f&117440512|0)==0){f=4;E=27}else E=21;else if((E|0)==31)I(27795,27122,620,27132);else if((E|0)==41){Hd(D);Hd(C);E=10;return E|0}else if((E|0)==48){Hd(D);Hd(C);E=13;return E|0}else if((E|0)==80)I(27795,27122,711,27132);else if((E|0)==81)I(27795,27122,723,27132);else if((E|0)==85){Zd(c|0,D|0,d<<3|0)|0;E=89}if((E|0)==21){Hd(D);Hd(C);E=5;return E|0}else if((E|0)==27){Hd(D);Hd(C);E=f;return E|0}else if((E|0)==89){Hd(D);Hd(C);E=0;return E|0}return 0}function Pb(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=T;T=T+16|0;p=q;if(!((d|0)>0|(d|0)==0&c>>>0>0)){p=0;T=q;return p|0}if((h|0)>=16){p=12;T=q;return p|0}n=0;o=0;m=0;i=0;a:while(1){k=a+(n<<3)|0;j=b[k>>2]|0;k=b[k+4>>2]|0;l=Td(j|0,k|0,52)|0;H()|0;if((l&15|0)>(h|0)){i=12;j=11;break}ic(p,j,k,h);l=p;k=b[l>>2]|0;l=b[l+4>>2]|0;if((k|0)==0&(l|0)==0)j=m;else{j=m;do{if(!((i|0)<(g|0)|(i|0)==(g|0)&j>>>0>>0)){j=10;break a}m=e+(j<<3)|0;b[m>>2]=k;b[m+4>>2]=l;j=Jd(j|0,i|0,1,0)|0;i=H()|0;kc(p);m=p;k=b[m>>2]|0;l=b[m+4>>2]|0}while(!((k|0)==0&(l|0)==0))}n=Jd(n|0,o|0,1,0)|0;o=H()|0;if(!((o|0)<(d|0)|(o|0)==(d|0)&n>>>0>>0)){i=0;j=11;break}else m=j}if((j|0)==10){p=14;T=q;return p|0}else if((j|0)==11){T=q;return i|0}return 0}function Qb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=T;T=T+16|0;m=n;a:do if((d|0)>0|(d|0)==0&c>>>0>0){k=0;h=0;g=0;l=0;while(1){j=a+(k<<3)|0;i=b[j>>2]|0;j=b[j+4>>2]|0;if(!((i|0)==0&(j|0)==0)){j=(Jb(i,j,e,m)|0)==0;i=m;h=Jd(b[i>>2]|0,b[i+4>>2]|0,h|0,g|0)|0;g=H()|0;if(!j){g=12;break}}k=Jd(k|0,l|0,1,0)|0;l=H()|0;if(!((l|0)<(d|0)|(l|0)==(d|0)&k>>>0>>0))break a}T=n;return g|0}else{h=0;g=0}while(0);b[f>>2]=h;b[f+4>>2]=g;f=0;T=n;return f|0}function Rb(a,b){a=a|0;b=b|0;b=Td(a|0,b|0,52)|0;H()|0;return b&1|0}function Sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=Td(a|0,b|0,52)|0;H()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=Td(a|0,b|0,(15-d|0)*3|0)|0;H()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Tb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Td(a|0,b|0,52)|0;H()|0;i=i&15;if(!i){h=b;i=a;G(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Ud(7,0,f|0)|0;e=H()|0;g=Td(a|0,b|0,f|0)|0;H()|0;f=Ud($a(g&7)|0,0,f|0)|0;g=H()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Td(a|0,b|0,52)|0;H()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Td(a|0,b|0,(15-c|0)*3|0)|0;H()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){g=(15-c|0)*3|0;e=Td(a|0,b|0,g|0)|0;H()|0;f=Ud(7,0,g|0)|0;b=b&~(H()|0);g=Ud($a(e&7)|0,0,g|0)|0;a=a&~f|g;b=b|(H()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}G(b|0);return a|0}function Ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Td(a|0,b|0,52)|0;H()|0;d=d&15;if(!d){c=b;d=a;G(c|0);return d|0}c=1;while(1){f=(15-c|0)*3|0;g=Td(a|0,b|0,f|0)|0;H()|0;e=Ud(7,0,f|0)|0;b=b&~(H()|0);f=Ud($a(g&7)|0,0,f|0)|0;a=f|a&~e;b=H()|0|b;if(c>>>0>>0)c=c+1|0;else break}G(b|0);return a|0}function Vb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Td(a|0,b|0,52)|0;H()|0;i=i&15;if(!i){h=b;i=a;G(h|0);return i|0}h=1;c=0;while(1){f=(15-h|0)*3|0;d=Ud(7,0,f|0)|0;e=H()|0;g=Td(a|0,b|0,f|0)|0;H()|0;f=Ud(ab(g&7)|0,0,f|0)|0;g=H()|0;a=f|a&~d;b=g|b&~e;a:do if(!c)if(!((f&d|0)==0&(g&e|0)==0)){d=Td(a|0,b|0,52)|0;H()|0;d=d&15;if(!d)c=1;else{c=1;b:while(1){g=Td(a|0,b|0,(15-c|0)*3|0)|0;H()|0;switch(g&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}c=1;while(1){e=(15-c|0)*3|0;f=Ud(7,0,e|0)|0;g=b&~(H()|0);b=Td(a|0,b|0,e|0)|0;H()|0;b=Ud(ab(b&7)|0,0,e|0)|0;a=a&~f|b;b=g|(H()|0);if(c>>>0>>0)c=c+1|0;else{c=1;break}}}}else c=0;while(0);if(h>>>0>>0)h=h+1|0;else break}G(b|0);return a|0}function Wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=Td(a|0,b|0,52)|0;H()|0;d=d&15;if(!d){c=b;d=a;G(c|0);return d|0}c=1;while(1){g=(15-c|0)*3|0;f=Ud(7,0,g|0)|0;e=b&~(H()|0);b=Td(a|0,b|0,g|0)|0;H()|0;b=Ud(ab(b&7)|0,0,g|0)|0;a=b|a&~f;b=H()|0|e;if(c>>>0>>0)c=c+1|0;else break}G(b|0);return a|0}function Xb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=T;T=T+64|0;i=j+40|0;e=j+24|0;f=j+12|0;g=j;Ud(c|0,0,52)|0;d=H()|0|134225919;if(!c){if((b[a+4>>2]|0)>2){h=0;i=0;G(h|0);T=j;return i|0}if((b[a+8>>2]|0)>2){h=0;i=0;G(h|0);T=j;return i|0}if((b[a+12>>2]|0)>2){h=0;i=0;G(h|0);T=j;return i|0}Ud(qa(a)|0,0,45)|0;h=H()|0|d;i=-1;G(h|0);T=j;return i|0};b[i>>2]=b[a>>2];b[i+4>>2]=b[a+4>>2];b[i+8>>2]=b[a+8>>2];b[i+12>>2]=b[a+12>>2];h=i+4|0;if((c|0)>0){a=-1;while(1){b[e>>2]=b[h>>2];b[e+4>>2]=b[h+4>>2];b[e+8>>2]=b[h+8>>2];if(!(c&1)){Va(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];Xa(f)}else{Ua(h);b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];b[f+8>>2]=b[h+8>>2];Wa(f)}Pa(e,f,g);Ma(g);l=(15-c|0)*3|0;k=Ud(7,0,l|0)|0;d=d&~(H()|0);l=Ud(Ra(g)|0,0,l|0)|0;a=l|a&~k;d=H()|0|d;if((c|0)>1)c=c+-1|0;else break}}else a=-1;a:do if(((b[h>>2]|0)<=2?(b[i+8>>2]|0)<=2:0)?(b[i+12>>2]|0)<=2:0){e=qa(i)|0;c=Ud(e|0,0,45)|0;c=c|a;a=H()|0|d&-1040385;g=ra(i)|0;if(!(oa(e)|0)){if((g|0)<=0)break;f=0;while(1){e=Td(c|0,a|0,52)|0;H()|0;e=e&15;if(e){d=1;while(1){l=(15-d|0)*3|0;i=Td(c|0,a|0,l|0)|0;H()|0;k=Ud(7,0,l|0)|0;a=a&~(H()|0);l=Ud($a(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(H()|0);if(d>>>0>>0)d=d+1|0;else break}}f=f+1|0;if((f|0)==(g|0))break a}}f=Td(c|0,a|0,52)|0;H()|0;f=f&15;b:do if(f){d=1;c:while(1){l=Td(c|0,a|0,(15-d|0)*3|0)|0;H()|0;switch(l&7){case 1:break c;case 0:break;default:break b}if(d>>>0>>0)d=d+1|0;else break b}if(ua(e,b[i>>2]|0)|0){d=1;while(1){i=(15-d|0)*3|0;k=Ud(7,0,i|0)|0;l=a&~(H()|0);a=Td(c|0,a|0,i|0)|0;H()|0;a=Ud(ab(a&7)|0,0,i|0)|0;c=c&~k|a;a=l|(H()|0);if(d>>>0>>0)d=d+1|0;else break}}else{d=1;while(1){l=(15-d|0)*3|0;i=Td(c|0,a|0,l|0)|0;H()|0;k=Ud(7,0,l|0)|0;a=a&~(H()|0);l=Ud($a(i&7)|0,0,l|0)|0;c=c&~k|l;a=a|(H()|0);if(d>>>0>>0)d=d+1|0;else break}}}while(0);if((g|0)>0){d=0;do{c=Tb(c,a)|0;a=H()|0;d=d+1|0}while((d|0)!=(g|0))}}else{c=0;a=0}while(0);k=a;l=c;G(k|0);T=j;return l|0}function Yb(a){a=a|0;return (a|0)%2|0|0}function Zb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=T;T=T+16|0;e=f;if(c>>>0>15){e=4;T=f;return e|0}if(0==0?(b[a+4>>2]&2146435072|0)==2146435072:0){e=3;T=f;return e|0}if(0==0?(b[a+8+4>>2]&2146435072|0)==2146435072:0){e=3;T=f;return e|0}qb(a,c,e);c=Xb(e,c)|0;e=H()|0;b[d>>2]=c;b[d+4>>2]=e;if((c|0)==0&(e|0)==0)I(27795,27122,1050,27145);e=0;T=f;return e|0}function _b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+4|0;g=Td(a|0,c|0,52)|0;H()|0;g=g&15;h=Td(a|0,c|0,45)|0;H()|0;e=(g|0)==0;if(!(oa(h&127)|0)){if(e){h=0;return h|0}if((b[f>>2]|0)==0?(b[d+8>>2]|0)==0:0)e=(b[d+12>>2]|0)!=0&1;else e=1}else if(e){h=1;return h|0}else e=1;d=1;while(1){if(!(d&1))Xa(f);else Wa(f);h=Td(a|0,c|0,(15-d|0)*3|0)|0;H()|0;Ya(f,h&7);if(d>>>0>>0)d=d+1|0;else break}return e|0}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=T;T=T+16|0;j=l;k=Td(a|0,c|0,45)|0;H()|0;k=k&127;if(k>>>0>121){b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;b[d+12>>2]=0;k=5;T=l;return k|0}a:do if((oa(k)|0)!=0?(g=Td(a|0,c|0,52)|0,H()|0,g=g&15,(g|0)!=0):0){e=1;b:while(1){i=Td(a|0,c|0,(15-e|0)*3|0)|0;H()|0;switch(i&7){case 5:break b;case 0:break;default:{e=c;break a}}if(e>>>0>>0)e=e+1|0;else{e=c;break a}}f=1;e=c;while(1){c=(15-f|0)*3|0;h=Ud(7,0,c|0)|0;i=e&~(H()|0);e=Td(a|0,e|0,c|0)|0;H()|0;e=Ud(ab(e&7)|0,0,c|0)|0;a=a&~h|e;e=i|(H()|0);if(f>>>0>>0)f=f+1|0;else break}}else e=c;while(0);i=7696+(k*28|0)|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];if(!(_b(a,e,d)|0)){k=0;T=l;return k|0}h=d+4|0;b[j>>2]=b[h>>2];b[j+4>>2]=b[h+4>>2];b[j+8>>2]=b[h+8>>2];g=Td(a|0,e|0,52)|0;H()|0;i=g&15;if(!(g&1))g=i;else{Xa(h);g=i+1|0}if(!(oa(k)|0))e=0;else{c:do if(!i)e=0;else{c=1;while(1){f=Td(a|0,e|0,(15-c|0)*3|0)|0;H()|0;f=f&7;if(f|0){e=f;break c}if(c>>>0>>0)c=c+1|0;else{e=0;break}}}while(0);e=(e|0)==4&1}if(!(xb(d,g,e,0)|0)){if((g|0)!=(i|0)){b[h>>2]=b[j>>2];b[h+4>>2]=b[j+4>>2];b[h+8>>2]=b[j+8>>2]}}else{if(oa(k)|0)do{}while((xb(d,g,0,0)|0)!=0);if((g|0)!=(i|0))Va(h)}k=0;T=l;return k|0}function ac(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;f=T;T=T+16|0;d=f;e=$b(a,b,d)|0;if(e|0){T=f;return e|0}e=Td(a|0,b|0,52)|0;H()|0;ub(d,e&15,c);e=0;T=f;return e|0}function bc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=T;T=T+16|0;f=g;d=$b(a,b,f)|0;if(d|0){f=d;T=g;return f|0}d=Td(a|0,b|0,45)|0;H()|0;d=(oa(d&127)|0)==0;e=Td(a|0,b|0,52)|0;H()|0;e=e&15;a:do if(!d){if(e|0){d=1;while(1){h=Ud(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((H()|0)&b|0)==0))break a;if(d>>>0>>0)d=d+1|0;else break}}vb(f,e,0,5,c);h=0;T=g;return h|0}while(0);zb(f,e,0,6,c);h=0;T=g;return h|0}function cc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=Td(a|0,c|0,45)|0;H()|0;if(!(oa(f&127)|0)){f=2;b[d>>2]=f;return 0}f=Td(a|0,c|0,52)|0;H()|0;f=f&15;if(!f){f=5;b[d>>2]=f;return 0}e=1;while(1){g=Ud(7,0,(15-e|0)*3|0)|0;if(!((g&a|0)==0&((H()|0)&c|0)==0)){e=2;a=6;break}if(e>>>0>>0)e=e+1|0;else{e=5;a=6;break}}if((a|0)==6){b[d>>2]=e;return 0}return 0}function dc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=T;T=T+128|0;k=m+112|0;g=m+96|0;l=m;f=Td(a|0,c|0,52)|0;H()|0;i=f&15;b[k>>2]=i;h=Td(a|0,c|0,45)|0;H()|0;h=h&127;a:do if(oa(h)|0){if(i|0){e=1;while(1){j=Ud(7,0,(15-e|0)*3|0)|0;if(!((j&a|0)==0&((H()|0)&c|0)==0)){f=0;break a}if(e>>>0>>0)e=e+1|0;else break}}if(!(f&1)){j=Ud(i+1|0,0,52)|0;l=H()|0|c&-15728641;k=Ud(7,0,(14-i|0)*3|0)|0;l=dc((j|a)&~k,l&~(H()|0),d)|0;T=m;return l|0}else f=1}else f=0;while(0);e=$b(a,c,g)|0;if(!e){if(f){wb(g,k,l);j=5}else{Ab(g,k,l);j=6}b:do if(oa(h)|0)if(!i)a=5;else{e=1;while(1){h=Ud(7,0,(15-e|0)*3|0)|0;if(!((h&a|0)==0&((H()|0)&c|0)==0)){a=2;break b}if(e>>>0>>0)e=e+1|0;else{a=5;break}}}else a=2;while(0);_d(d|0,-1,a<<2|0)|0;c:do if(f){g=0;while(1){h=l+(g<<4)|0;yb(h,b[k>>2]|0)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}else{g=0;while(1){h=l+(g<<4)|0;xb(h,b[k>>2]|0,0,1)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}while(0)}l=e;T=m;return l|0}function ec(){return 12}function fc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(a>>>0>15){i=4;return i|0}Ud(a|0,0,52)|0;i=H()|0|134225919;if(!a){d=0;e=0;do{if(oa(e)|0){Ud(e|0,0,45)|0;h=i|(H()|0);a=c+(d<<3)|0;b[a>>2]=-1;b[a+4>>2]=h;d=d+1|0}e=e+1|0}while((e|0)!=122);d=0;return d|0}d=0;h=0;do{if(oa(h)|0){Ud(h|0,0,45)|0;e=1;f=-1;g=i|(H()|0);while(1){j=Ud(7,0,(15-e|0)*3|0)|0;f=f&~j;g=g&~(H()|0);if((e|0)==(a|0))break;else e=e+1|0}j=c+(d<<3)|0;b[j>>2]=f;b[j+4>>2]=g;d=d+1|0}h=h+1|0}while((h|0)!=122);d=0;return d|0}function gc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=T;T=T+16|0;r=t;s=Td(a|0,c|0,52)|0;H()|0;s=s&15;if(d>>>0>15){s=4;T=t;return s|0}if((s|0)<(d|0)){s=12;T=t;return s|0}if((s|0)!=(d|0)){g=Ud(d|0,0,52)|0;g=g|a;i=H()|0|c&-15728641;if((s|0)>(d|0)){j=d;do{q=Ud(7,0,(14-j|0)*3|0)|0;j=j+1|0;g=q|g;i=H()|0|i}while((j|0)<(s|0));q=g}else q=g}else{q=a;i=c}p=Td(q|0,i|0,45)|0;H()|0;a:do if(oa(p&127)|0){j=Td(q|0,i|0,52)|0;H()|0;j=j&15;if(j|0){g=1;while(1){p=Ud(7,0,(15-g|0)*3|0)|0;if(!((p&q|0)==0&((H()|0)&i|0)==0)){k=33;break a}if(g>>>0>>0)g=g+1|0;else break}}p=e;b[p>>2]=0;b[p+4>>2]=0;if((s|0)>(d|0)){p=c&-15728641;o=s;while(1){n=o;o=o+-1|0;if(o>>>0>15|(s|0)<(o|0)){k=19;break}if((s|0)!=(o|0)){g=Ud(o|0,0,52)|0;g=g|a;j=H()|0|p;if((s|0)<(n|0))m=g;else{k=o;do{m=Ud(7,0,(14-k|0)*3|0)|0;k=k+1|0;g=m|g;j=H()|0|j}while((k|0)<(s|0));m=g}}else{m=a;j=c}l=Td(m|0,j|0,45)|0;H()|0;if(!(oa(l&127)|0))g=0;else{l=Td(m|0,j|0,52)|0;H()|0;l=l&15;b:do if(!l)g=0;else{k=1;while(1){g=Td(m|0,j|0,(15-k|0)*3|0)|0;H()|0;g=g&7;if(g|0)break b;if(k>>>0>>0)k=k+1|0;else{g=0;break}}}while(0);g=(g|0)==0&1}j=Td(a|0,c|0,(15-n|0)*3|0)|0;H()|0;j=j&7;if((j|0)==7){f=5;k=42;break}g=(g|0)!=0;if((j|0)==1&g){f=5;k=42;break}m=j+(((j|0)!=0&g)<<31>>31)|0;if(m|0){k=s-n|0;k=Rc(7,0,k,((k|0)<0)<<31>>31)|0;l=H()|0;if(g){g=Pd(k|0,l|0,5,0)|0;g=Jd(g|0,H()|0,-5,-1)|0;g=Nd(g|0,H()|0,6,0)|0;g=Jd(g|0,H()|0,1,0)|0;j=H()|0}else{g=k;j=l}n=m+-1|0;n=Pd(k|0,l|0,n|0,((n|0)<0)<<31>>31|0)|0;n=Jd(g|0,j|0,n|0,H()|0)|0;m=H()|0;l=e;l=Jd(n|0,m|0,b[l>>2]|0,b[l+4>>2]|0)|0;m=H()|0;n=e;b[n>>2]=l;b[n+4>>2]=m}if((o|0)<=(d|0)){k=37;break}}if((k|0)==19)I(27795,27122,1367,27158);else if((k|0)==37){h=e;f=b[h+4>>2]|0;h=b[h>>2]|0;break}else if((k|0)==42){T=t;return f|0}}else{f=0;h=0}}else k=33;while(0);c:do if((k|0)==33){p=e;b[p>>2]=0;b[p+4>>2]=0;if((s|0)>(d|0)){g=s;while(1){f=Td(a|0,c|0,(15-g|0)*3|0)|0;H()|0;f=f&7;if((f|0)==7){f=5;break}h=s-g|0;h=Rc(7,0,h,((h|0)<0)<<31>>31)|0;f=Pd(h|0,H()|0,f|0,0)|0;h=H()|0;p=e;h=Jd(b[p>>2]|0,b[p+4>>2]|0,f|0,h|0)|0;f=H()|0;p=e;b[p>>2]=h;b[p+4>>2]=f;g=g+-1|0;if((g|0)<=(d|0))break c}T=t;return f|0}else{f=0;h=0}}while(0);if(Jb(q,i,s,r)|0)I(27795,27122,1327,27173);s=r;r=b[s+4>>2]|0;if(((f|0)>-1|(f|0)==-1&h>>>0>4294967295)&((r|0)>(f|0)|((r|0)==(f|0)?(b[s>>2]|0)>>>0>h>>>0:0))){s=0;T=t;return s|0}else I(27795,27122,1407,27158);return 0}function hc(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=T;T=T+16|0;h=m;if(f>>>0>15){g=4;T=m;return g|0}i=Td(d|0,e|0,52)|0;H()|0;i=i&15;if((i|0)>(f|0)){g=12;T=m;return g|0}if(Jb(d,e,f,h)|0)I(27795,27122,1327,27173);l=h;k=b[l+4>>2]|0;if(!(((c|0)>-1|(c|0)==-1&a>>>0>4294967295)&((k|0)>(c|0)|((k|0)==(c|0)?(b[l>>2]|0)>>>0>a>>>0:0)))){g=2;T=m;return g|0}l=f-i|0;f=Ud(f|0,0,52)|0;j=H()|0|e&-15728641;k=g;b[k>>2]=f|d;b[k+4>>2]=j;k=Td(d|0,e|0,45)|0;H()|0;a:do if(oa(k&127)|0){if(i|0){h=1;while(1){k=Ud(7,0,(15-h|0)*3|0)|0;if(!((k&d|0)==0&((H()|0)&e|0)==0))break a;if(h>>>0>>0)h=h+1|0;else break}}if((l|0)<1){g=0;T=m;return g|0}k=i^15;e=-1;j=1;h=1;while(1){i=l-j|0;i=Rc(7,0,i,((i|0)<0)<<31>>31)|0;d=H()|0;do if(h){h=Pd(i|0,d|0,5,0)|0;h=Jd(h|0,H()|0,-5,-1)|0;h=Nd(h|0,H()|0,6,0)|0;f=H()|0;if((c|0)>(f|0)|(c|0)==(f|0)&a>>>0>h>>>0){c=Jd(a|0,c|0,-1,-1)|0;c=Kd(c|0,H()|0,h|0,f|0)|0;h=H()|0;n=g;p=b[n>>2]|0;n=b[n+4>>2]|0;q=(k+e|0)*3|0;o=Ud(7,0,q|0)|0;n=n&~(H()|0);e=Nd(c|0,h|0,i|0,d|0)|0;a=H()|0;f=Jd(e|0,a|0,2,0)|0;q=Ud(f|0,H()|0,q|0)|0;n=H()|0|n;f=g;b[f>>2]=q|p&~o;b[f+4>>2]=n;a=Pd(e|0,a|0,i|0,d|0)|0;a=Kd(c|0,h|0,a|0,H()|0)|0;h=0;c=H()|0;break}else{q=g;o=b[q>>2]|0;q=b[q+4>>2]|0;p=Ud(7,0,(k+e|0)*3|0)|0;q=q&~(H()|0);h=g;b[h>>2]=o&~p;b[h+4>>2]=q;h=1;break}}else{o=g;f=b[o>>2]|0;o=b[o+4>>2]|0;e=(k+e|0)*3|0;n=Ud(7,0,e|0)|0;o=o&~(H()|0);q=Nd(a|0,c|0,i|0,d|0)|0;h=H()|0;e=Ud(q|0,h|0,e|0)|0;o=H()|0|o;p=g;b[p>>2]=e|f&~n;b[p+4>>2]=o;h=Pd(q|0,h|0,i|0,d|0)|0;a=Kd(a|0,c|0,h|0,H()|0)|0;h=0;c=H()|0}while(0);if((l|0)>(j|0)){e=~j;j=j+1|0}else{c=0;break}}T=m;return c|0}while(0);if((l|0)<1){q=0;T=m;return q|0}f=i^15;h=1;while(1){p=l-h|0;p=Rc(7,0,p,((p|0)<0)<<31>>31)|0;q=H()|0;j=g;d=b[j>>2]|0;j=b[j+4>>2]|0;i=(f-h|0)*3|0;e=Ud(7,0,i|0)|0;j=j&~(H()|0);n=Nd(a|0,c|0,p|0,q|0)|0;o=H()|0;i=Ud(n|0,o|0,i|0)|0;j=H()|0|j;k=g;b[k>>2]=i|d&~e;b[k+4>>2]=j;q=Pd(n|0,o|0,p|0,q|0)|0;a=Kd(a|0,c|0,q|0,H()|0)|0;c=H()|0;if((l|0)<=(h|0)){c=0;break}else h=h+1|0}T=m;return c|0}function ic(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Td(c|0,d|0,52)|0;H()|0;f=f&15;if((c|0)==0&(d|0)==0|((e|0)>15|(f|0)>(e|0))){g=-1;c=-1;d=0;f=0}else{c=Mb(c,d,f+1|0,e)|0;h=(H()|0)&-15728641;d=Ud(e|0,0,52)|0;d=c|d;h=h|(H()|0);c=(Kb(d,h)|0)==0;g=f;c=c?-1:e;f=h}h=a;b[h>>2]=d;b[h+4>>2]=f;b[a+8>>2]=g;b[a+12>>2]=c;return}function jc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=Td(a|0,c|0,52)|0;H()|0;f=f&15;g=e+8|0;b[g>>2]=f;if((a|0)==0&(c|0)==0|((d|0)>15|(f|0)>(d|0))){d=e;b[d>>2]=0;b[d+4>>2]=0;b[g>>2]=-1;b[e+12>>2]=-1;return}a=Mb(a,c,f+1|0,d)|0;g=(H()|0)&-15728641;f=Ud(d|0,0,52)|0;f=a|f;g=g|(H()|0);a=e;b[a>>2]=f;b[a+4>>2]=g;a=e+12|0;if(!(Kb(f,g)|0)){b[a>>2]=-1;return}else{b[a>>2]=d;return}}function kc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a;c=b[d>>2]|0;d=b[d+4>>2]|0;if((c|0)==0&(d|0)==0)return;e=Td(c|0,d|0,52)|0;H()|0;e=e&15;i=Ud(1,0,(e^15)*3|0)|0;c=Jd(i|0,H()|0,c|0,d|0)|0;d=H()|0;i=a;b[i>>2]=c;b[i+4>>2]=d;i=a+8|0;h=b[i>>2]|0;if((e|0)<(h|0))return;j=a+12|0;g=e;while(1){if((g|0)==(h|0)){e=5;break}k=(g|0)==(b[j>>2]|0);f=(15-g|0)*3|0;e=Td(c|0,d|0,f|0)|0;H()|0;e=e&7;if(k&((e|0)==1&0==0)){e=7;break}if(!((e|0)==7&0==0)){e=10;break}k=Ud(1,0,f|0)|0;c=Jd(c|0,d|0,k|0,H()|0)|0;d=H()|0;k=a;b[k>>2]=c;b[k+4>>2]=d;if((g|0)>(h|0))g=g+-1|0;else{e=10;break}}if((e|0)==5){k=a;b[k>>2]=0;b[k+4>>2]=0;b[i>>2]=-1;b[j>>2]=-1;return}else if((e|0)==7){h=Ud(1,0,f|0)|0;h=Jd(c|0,d|0,h|0,H()|0)|0;i=H()|0;k=a;b[k>>2]=h;b[k+4>>2]=i;b[j>>2]=g+-1;return}else if((e|0)==10)return}function lc(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function mc(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.7453292519943298e-11)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.7453292519943298e-11;return b|0}function nc(a,b){a=+a;b=b|0;switch(b|0){case 1:{a=a<0.0?a+6.283185307179586:a;break}case 2:{a=a>0.0?a+-6.283185307179586:a;break}default:{}}return +a}function oc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0)}function pc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475)}function qc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+u(+((f-d)*.5));c=+u(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+t(+f)*+t(+d)*c);return +(+z(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475*1.0e3)}function rc(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0,h=0.0;g=+e[b>>3];d=+t(+g);f=+e[b+8>>3]-+e[a+8>>3];h=d*+u(+f);c=+e[a>>3];return +(+z(+h,+(+u(+g)*+t(+c)-+t(+f)*(d*+u(+c)))))}function sc(a,c,d,f){a=a|0;c=+c;d=+d;f=f|0;var g=0,h=0.0,i=0.0,j=0.0;if(d<1.0e-16){b[f>>2]=b[a>>2];b[f+4>>2]=b[a+4>>2];b[f+8>>2]=b[a+8>>2];b[f+12>>2]=b[a+12>>2];return}h=c<0.0?c+6.283185307179586:c;h=!(c>=6.283185307179586)?h:h+-6.283185307179586;do if(h<1.0e-16){c=+e[a>>3]+d;e[f>>3]=c;g=f}else{g=+q(+(h+-3.141592653589793))<1.0e-16;c=+e[a>>3];if(g){c=c-d;e[f>>3]=c;g=f;break}i=+t(+d);d=+u(+d);c=i*+u(+c)+ +t(+h)*(d*+t(+c));c=c>1.0?1.0:c;c=+x(+(c<-1.0?-1.0:c));e[f>>3]=c;if(+q(+(c+-1.5707963267948966))<1.0e-16){e[f>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[f>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}j=1.0/+t(+c);h=d*+u(+h)*j;d=+e[a>>3];c=j*((i-+u(+c)*+u(+d))/+t(+d));i=h>1.0?1.0:h;c=c>1.0?1.0:c;c=+e[a+8>>3]+ +z(+(i<-1.0?-1.0:i),+(c<-1.0?-1.0:c));if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}while(0);if(+q(+(c+-1.5707963267948966))<1.0e-16){e[g>>3]=1.5707963267948966;e[f+8>>3]=0.0;return}if(+q(+(c+1.5707963267948966))<1.0e-16){e[g>>3]=-1.5707963267948966;e[f+8>>3]=0.0;return}c=+e[a+8>>3];if(c>3.141592653589793)do c=c+-6.283185307179586;while(c>3.141592653589793);if(c<-3.141592653589793)do c=c+6.283185307179586;while(c<-3.141592653589793);e[f+8>>3]=c;return}function tc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20656+(a<<3)>>3];b=0;return b|0}function uc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20784+(a<<3)>>3];b=0;return b|0}function vc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20912+(a<<3)>>3];b=0;return b|0}function wc(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[21040+(a<<3)>>3];b=0;return b|0}function xc(a,c){a=a|0;c=c|0;var d=0;if(a>>>0>15){c=4;return c|0}d=Rc(7,0,a,((a|0)<0)<<31>>31)|0;d=Pd(d|0,H()|0,120,0)|0;a=H()|0;b[c>>2]=d|2;b[c+4>>2]=a;c=0;return c|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+e[b>>3];l=+e[a>>3];j=+u(+((n-l)*.5));g=+e[b+8>>3];k=+e[a+8>>3];h=+u(+((g-k)*.5));i=+t(+l);m=+t(+n);h=j*j+h*(m*i*h);h=+z(+(+r(+h)),+(+r(+(1.0-h))))*2.0;j=+e[c>>3];n=+u(+((j-n)*.5));d=+e[c+8>>3];g=+u(+((d-g)*.5));f=+t(+j);g=n*n+g*(m*f*g);g=+z(+(+r(+g)),+(+r(+(1.0-g))))*2.0;j=+u(+((l-j)*.5));d=+u(+((k-d)*.5));d=j*j+d*(i*f*d);d=+z(+(+r(+d)),+(+r(+(1.0-d))))*2.0;f=(h+g+d)*.5;return +(+y(+(+r(+(+v(+(f*.5))*+v(+((f-h)*.5))*+v(+((f-g)*.5))*+v(+((f-d)*.5))))))*4.0)}function zc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0,i=0,j=0;j=T;T=T+192|0;h=j+168|0;i=j;g=ac(a,c,h)|0;if(g|0){d=g;T=j;return d|0}if(bc(a,c,i)|0)I(27795,27190,415,27199);c=b[i>>2]|0;if((c|0)>0){f=+yc(i+8|0,i+8+(((c|0)!=1&1)<<4)|0,h)+0.0;if((c|0)!=1){a=1;do{g=a;a=a+1|0;f=f+ +yc(i+8+(g<<4)|0,i+8+(((a|0)%(c|0)|0)<<4)|0,h)}while((a|0)<(c|0))}}else f=0.0;e[d>>3]=f;d=0;T=j;return d|0}function Ac(a,b,c){a=a|0;b=b|0;c=c|0;a=zc(a,b,c)|0;if(a|0)return a|0;e[c>>3]=+e[c>>3]*6371.007180918475*6371.007180918475;return a|0}function Bc(a,b,c){a=a|0;b=b|0;c=c|0;a=zc(a,b,c)|0;if(a|0)return a|0;e[c>>3]=+e[c>>3]*6371.007180918475*6371.007180918475*1.0e3*1.0e3;return a|0}function Cc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=T;T=T+176|0;i=j;a=pb(a,c,i)|0;if(a|0){i=a;T=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;T=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+f)*+t(+l)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)<(c|0));e[d>>3]=h;i=0;T=j;return i|0}function Dc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=T;T=T+176|0;i=j;a=pb(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;e[d>>3]=h;T=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;e[d>>3]=h;T=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;e[d>>3]=m;T=j;return i|0}function Ec(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=T;T=T+176|0;i=j;a=pb(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;T=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;T=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+u(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+u(+((g-k)*.5));k=m*m+k*(+t(+l)*+t(+f)*k);h=h+ +z(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;m=m*1.0e3;e[d>>3]=m;T=j;return i|0}function Fc(a){a=a|0;var c=0,d=0,e=0;c=Id(1,12)|0;if(!c)I(27280,27235,49,27293);d=a+4|0;e=b[d>>2]|0;if(e|0){e=e+8|0;b[e>>2]=c;b[d>>2]=c;return c|0}if(b[a>>2]|0)I(27310,27235,61,27333);e=a;b[e>>2]=c;b[d>>2]=c;return c|0}function Gc(a,c){a=a|0;c=c|0;var d=0,e=0;e=Gd(24)|0;if(!e)I(27347,27235,78,27361);b[e>>2]=b[c>>2];b[e+4>>2]=b[c+4>>2];b[e+8>>2]=b[c+8>>2];b[e+12>>2]=b[c+12>>2];b[e+16>>2]=0;c=a+4|0;d=b[c>>2]|0;if(d|0){b[d+16>>2]=e;b[c>>2]=e;return e|0}if(b[a>>2]|0)I(27376,27235,82,27361);b[a>>2]=e;b[c>>2]=e;return e|0}function Hc(a){a=a|0;var c=0,d=0,e=0,f=0;if(!a)return;e=1;while(1){c=b[a>>2]|0;if(c|0)do{d=b[c>>2]|0;if(d|0)do{f=d;d=b[d+16>>2]|0;Hd(f)}while((d|0)!=0);f=c;c=b[c+8>>2]|0;Hd(f)}while((c|0)!=0);c=a;a=b[a+8>>2]|0;if(!e)Hd(c);if(!a)break;else e=0}return}function Ic(a){a=a|0;var c=0,d=0,f=0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0;g=a+8|0;if(b[g>>2]|0){K=1;return K|0}f=b[a>>2]|0;if(!f){K=0;return K|0}c=f;d=0;do{d=d+1|0;c=b[c+8>>2]|0}while((c|0)!=0);if(d>>>0<2){K=0;return K|0}H=Gd(d<<2)|0;if(!H)I(27396,27235,317,27415);G=Gd(d<<5)|0;if(!G)I(27437,27235,321,27415);b[a>>2]=0;z=a+4|0;b[z>>2]=0;b[g>>2]=0;d=0;F=0;y=0;n=0;a:while(1){m=b[f>>2]|0;if(m){h=0.0;i=m;do{k=+e[i+8>>3];c=i;i=b[i+16>>2]|0;l=(i|0)==0;g=l?m:i;j=+e[g+8>>3];if(+q(+(k-j))>3.141592653589793){K=14;break}h=h+(j-k)*(+e[c>>3]+ +e[g>>3])}while(!l);if((K|0)==14){K=0;h=0.0;c=m;do{x=+e[c+8>>3];E=c+16|0;D=b[E>>2]|0;D=(D|0)==0?m:D;w=+e[D+8>>3];h=h+(+e[c>>3]+ +e[D>>3])*((w<0.0?w+6.283185307179586:w)-(x<0.0?x+6.283185307179586:x));c=b[((c|0)==0?f:E)>>2]|0}while((c|0)!=0)}if(h>0.0){b[H+(F<<2)>>2]=f;F=F+1|0;g=y;c=n}else K=19}else K=19;if((K|0)==19){K=0;do if(!d)if(!n)if(!(b[a>>2]|0)){g=z;i=a;c=f;d=a;break}else{K=27;break a}else{g=z;i=n+8|0;c=f;d=a;break}else{c=d+8|0;if(b[c>>2]|0){K=21;break a}d=Id(1,12)|0;if(!d){K=23;break a}b[c>>2]=d;g=d+4|0;i=d;c=n}while(0);b[i>>2]=f;b[g>>2]=f;i=G+(y<<5)|0;l=b[f>>2]|0;if(l){m=G+(y<<5)+8|0;e[m>>3]=1797693134862315708145274.0e284;n=G+(y<<5)+24|0;e[n>>3]=1797693134862315708145274.0e284;e[i>>3]=-1797693134862315708145274.0e284;o=G+(y<<5)+16|0;e[o>>3]=-1797693134862315708145274.0e284;u=1797693134862315708145274.0e284;v=-1797693134862315708145274.0e284;g=0;p=l;k=1797693134862315708145274.0e284;s=1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;j=-1797693134862315708145274.0e284;while(1){h=+e[p>>3];x=+e[p+8>>3];p=b[p+16>>2]|0;r=(p|0)==0;w=+e[(r?l:p)+8>>3];if(h>3]=h;k=h}if(x>3]=x;s=x}if(h>t)e[i>>3]=h;else h=t;if(x>j){e[o>>3]=x;j=x}u=x>0.0&xv?x:v;g=g|+q(+(x-w))>3.141592653589793;if(r)break;else t=h}if(g){e[o>>3]=v;e[n>>3]=u}}else{b[i>>2]=0;b[i+4>>2]=0;b[i+8>>2]=0;b[i+12>>2]=0;b[i+16>>2]=0;b[i+20>>2]=0;b[i+24>>2]=0;b[i+28>>2]=0}g=y+1|0}E=f+8|0;f=b[E>>2]|0;b[E>>2]=0;if(!f){K=45;break}else{y=g;n=c}}if((K|0)==21)I(27213,27235,35,27247);else if((K|0)==23)I(27267,27235,37,27247);else if((K|0)==27)I(27310,27235,61,27333);else if((K|0)==45){b:do if((F|0)>0){E=(g|0)==0;C=g<<2;D=(a|0)==0;B=0;c=0;while(1){A=b[H+(B<<2)>>2]|0;if(!E){y=Gd(C)|0;if(!y){K=50;break}z=Gd(C)|0;if(!z){K=52;break}c:do if(!D){g=0;d=0;i=a;while(1){f=G+(g<<5)|0;if(Jc(b[i>>2]|0,f,b[A>>2]|0)|0){b[y+(d<<2)>>2]=i;b[z+(d<<2)>>2]=f;r=d+1|0}else r=d;i=b[i+8>>2]|0;if(!i)break;else{g=g+1|0;d=r}}if((r|0)>0){f=b[y>>2]|0;if((r|0)==1)d=f;else{o=0;p=-1;d=f;n=f;while(1){l=b[n>>2]|0;f=0;i=0;while(1){g=b[b[y+(i<<2)>>2]>>2]|0;if((g|0)==(l|0))m=f;else m=f+((Jc(g,b[z+(i<<2)>>2]|0,b[l>>2]|0)|0)&1)|0;i=i+1|0;if((i|0)==(r|0))break;else f=m}g=(m|0)>(p|0);d=g?n:d;f=o+1|0;if((f|0)==(r|0))break c;o=f;p=g?m:p;n=b[y+(f<<2)>>2]|0}}}else d=0}else d=0;while(0);Hd(y);Hd(z);if(d){g=d+4|0;f=b[g>>2]|0;if(!f){if(b[d>>2]|0){K=70;break}}else d=f+8|0;b[d>>2]=A;b[g>>2]=A}else K=73}else K=73;if((K|0)==73){K=0;c=b[A>>2]|0;if(c|0)do{z=c;c=b[c+16>>2]|0;Hd(z)}while((c|0)!=0);Hd(A);c=1}B=B+1|0;if((B|0)>=(F|0)){J=c;break b}}if((K|0)==50)I(27452,27235,249,27471);else if((K|0)==52)I(27490,27235,252,27471);else if((K|0)==70)I(27310,27235,61,27333)}else J=0;while(0);Hd(H);Hd(G);K=J;return K|0}return 0}function Jc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;if(!(Ca(c,d)|0)){a=0;return a|0}c=Aa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;a=b[a>>2]|0;if(!a){a=0;return a|0}if(c){c=0;l=g;d=a;a:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;l=j==l|i==l?l+-2.220446049250313e-16:l;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}else{c=0;l=g;d=a;b:while(1){while(1){i=+e[d>>3];g=+e[d+8>>3];d=d+16|0;m=b[d>>2]|0;m=(m|0)==0?a:m;h=+e[m>>3];j=+e[m+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=b[d>>2]|0;if(!d){d=22;break b}}l=i==l|g==l?l+-2.220446049250313e-16:l;if(i+(g-i)*((f-h)/(k-h))>l)c=c^1;d=b[d>>2]|0;if(!d){d=22;break}}if((d|0)==22)return c|0}return 0}function Kc(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=T;T=T+32|0;t=u+16|0;s=u;h=Td(c|0,d|0,52)|0;H()|0;h=h&15;p=Td(e|0,f|0,52)|0;H()|0;if((h|0)!=(p&15|0)){t=12;T=u;return t|0}l=Td(c|0,d|0,45)|0;H()|0;l=l&127;m=Td(e|0,f|0,45)|0;H()|0;m=m&127;if(l>>>0>121|m>>>0>121){t=5;T=u;return t|0}p=(l|0)!=(m|0);if(p){j=wa(l,m)|0;if((j|0)==7){t=1;T=u;return t|0}k=wa(m,l)|0;if((k|0)==7)I(27514,27538,161,27548);else{q=j;i=k}}else{q=0;i=0}n=oa(l)|0;o=oa(m)|0;b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;do if(!q){_b(e,f,t)|0;if((n|0)!=0&(o|0)!=0){if((m|0)!=(l|0))I(27621,27538,261,27548);i=Sb(c,d)|0;h=Sb(e,f)|0;if(!((i|0)==7|(h|0)==7))if(!(a[22e3+(i*7|0)+h>>0]|0)){i=b[21168+(i*28|0)+(h<<2)>>2]|0;if((i|0)>0){j=t+4|0;h=0;do{_a(j);h=h+1|0}while((h|0)!=(i|0));r=51}else r=51}else h=1;else h=5}else r=51}else{m=b[4272+(l*28|0)+(q<<2)>>2]|0;j=(m|0)>0;if(!o)if(j){l=0;k=e;j=f;do{k=Wb(k,j)|0;j=H()|0;i=ab(i)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}else if(j){l=0;k=e;j=f;do{k=Vb(k,j)|0;j=H()|0;i=ab(i)|0;if((i|0)==1)i=ab(1)|0;l=l+1|0}while((l|0)!=(m|0));m=i;l=k;k=j}else{m=i;l=e;k=f}_b(l,k,t)|0;if(!p)I(27563,27538,191,27548);j=(n|0)!=0;i=(o|0)!=0;if(j&i)I(27590,27538,192,27548);if(!j)if(i){i=Sb(l,k)|0;if((i|0)==7){h=5;break}if(a[22e3+(i*7|0)+m>>0]|0){h=1;break}l=0;k=b[21168+(m*28|0)+(i<<2)>>2]|0}else{l=0;k=0}else{i=Sb(c,d)|0;if((i|0)==7){h=5;break}if(a[22e3+(i*7|0)+q>>0]|0){h=1;break}k=b[21168+(i*28|0)+(q<<2)>>2]|0;l=k}if((l|k|0)<0)h=5;else{if((k|0)>0){j=t+4|0;i=0;do{_a(j);i=i+1|0}while((i|0)!=(k|0))};b[s>>2]=0;b[s+4>>2]=0;b[s+8>>2]=0;Ya(s,q);if(h|0)while(1){if(!(Yb(h)|0))Xa(s);else Wa(s);if((h|0)>1)h=h+-1|0;else break}if((l|0)>0){h=0;do{_a(s);h=h+1|0}while((h|0)!=(l|0))}r=t+4|0;Oa(r,s,r);Ma(r);r=51}}while(0);if((r|0)==51){h=t+4|0;b[g>>2]=b[h>>2];b[g+4>>2]=b[h+4>>2];b[g+8>>2]=b[h+8>>2];h=0}t=h;T=u;return t|0}function Lc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=T;T=T+48|0;k=q+36|0;h=q+24|0;i=q+12|0;j=q;f=Td(a|0,c|0,52)|0;H()|0;f=f&15;n=Td(a|0,c|0,45)|0;H()|0;n=n&127;if(n>>>0>121){e=5;T=q;return e|0}l=oa(n)|0;Ud(f|0,0,52)|0;r=H()|0|134225919;g=e;b[g>>2]=-1;b[g+4>>2]=r;if(!f){f=Ra(d)|0;if((f|0)==7){r=1;T=q;return r|0}f=va(n,f)|0;if((f|0)==127){r=1;T=q;return r|0}o=Ud(f|0,0,45)|0;p=H()|0;n=e;p=b[n+4>>2]&-1040385|p;r=e;b[r>>2]=b[n>>2]|o;b[r+4>>2]=p;r=0;T=q;return r|0};b[k>>2]=b[d>>2];b[k+4>>2]=b[d+4>>2];b[k+8>>2]=b[d+8>>2];d=f;while(1){g=d;d=d+-1|0;b[h>>2]=b[k>>2];b[h+4>>2]=b[k+4>>2];b[h+8>>2]=b[k+8>>2];if(!(Yb(g)|0)){f=Ta(k)|0;if(f|0){d=13;break};b[i>>2]=b[k>>2];b[i+4>>2]=b[k+4>>2];b[i+8>>2]=b[k+8>>2];Xa(i)}else{f=Sa(k)|0;if(f|0){d=13;break};b[i>>2]=b[k>>2];b[i+4>>2]=b[k+4>>2];b[i+8>>2]=b[k+8>>2];Wa(i)}Pa(h,i,j);Ma(j);f=e;t=b[f>>2]|0;f=b[f+4>>2]|0;u=(15-g|0)*3|0;s=Ud(7,0,u|0)|0;f=f&~(H()|0);u=Ud(Ra(j)|0,0,u|0)|0;f=H()|0|f;r=e;b[r>>2]=u|t&~s;b[r+4>>2]=f;if((g|0)<=1){d=14;break}}a:do if((d|0)!=13)if((d|0)==14)if(((b[k>>2]|0)<=1?(b[k+4>>2]|0)<=1:0)?(b[k+8>>2]|0)<=1:0){d=Ra(k)|0;f=va(n,d)|0;if((f|0)==127)j=0;else j=oa(f)|0;b:do if(!d)if((l|0)!=0&(j|0)!=0){d=Sb(a,c)|0;g=e;g=Sb(b[g>>2]|0,b[g+4>>2]|0)|0;if((d|0)==7|(g|0)==7){f=5;break a}g=b[21376+(d*28|0)+(g<<2)>>2]|0;if((g|0)<0){f=5;break a}if(!g)d=59;else{i=e;d=0;h=b[i>>2]|0;i=b[i+4>>2]|0;do{h=Ub(h,i)|0;i=H()|0;u=e;b[u>>2]=h;b[u+4>>2]=i;d=d+1|0}while((d|0)<(g|0));d=58}}else d=58;else{if(l){f=Sb(a,c)|0;if((f|0)==7){f=5;break a}g=b[21376+(f*28|0)+(d<<2)>>2]|0;if((g|0)>0){f=d;d=0;do{f=$a(f)|0;d=d+1|0}while((d|0)!=(g|0))}else f=d;if((f|0)==1){f=9;break a}d=va(n,f)|0;if((d|0)==127)I(27648,27538,411,27678);if(!(oa(d)|0)){p=d;o=g;m=f}else I(27693,27538,412,27678)}else{p=f;o=0;m=d}i=b[4272+(n*28|0)+(m<<2)>>2]|0;if((i|0)<=-1)I(27724,27538,419,27678);if(!j){if((o|0)<0){f=5;break a}if(o|0){g=e;f=0;d=b[g>>2]|0;g=b[g+4>>2]|0;do{d=Ub(d,g)|0;g=H()|0;u=e;b[u>>2]=d;b[u+4>>2]=g;f=f+1|0}while((f|0)<(o|0))}if((i|0)<=0){f=p;d=58;break}g=e;f=0;d=b[g>>2]|0;g=b[g+4>>2]|0;while(1){d=Ub(d,g)|0;g=H()|0;u=e;b[u>>2]=d;b[u+4>>2]=g;f=f+1|0;if((f|0)==(i|0)){f=p;d=58;break b}}}h=wa(p,n)|0;if((h|0)==7)I(27514,27538,428,27678);f=e;d=b[f>>2]|0;f=b[f+4>>2]|0;if((i|0)>0){g=0;do{d=Ub(d,f)|0;f=H()|0;u=e;b[u>>2]=d;b[u+4>>2]=f;g=g+1|0}while((g|0)!=(i|0))}f=Sb(d,f)|0;if((f|0)==7)I(27795,27538,440,27678);d=pa(p)|0;d=b[(d?21792:21584)+(h*28|0)+(f<<2)>>2]|0;if((d|0)<0)I(27795,27538,454,27678);if(!d){f=p;d=58}else{h=e;f=0;g=b[h>>2]|0;h=b[h+4>>2]|0;do{g=Tb(g,h)|0;h=H()|0;u=e;b[u>>2]=g;b[u+4>>2]=h;f=f+1|0}while((f|0)<(d|0));f=p;d=58}}while(0);if((d|0)==58)if(j)d=59;if((d|0)==59){u=e;if((Sb(b[u>>2]|0,b[u+4>>2]|0)|0)==1){f=9;break}}u=e;s=b[u>>2]|0;u=b[u+4>>2]&-1040385;t=Ud(f|0,0,45)|0;u=u|(H()|0);f=e;b[f>>2]=s|t;b[f+4>>2]=u;f=0}else f=1;while(0);u=f;T=q;return u|0}function Mc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=T;T=T+16|0;g=h;if(!e){a=Kc(a,b,c,d,g)|0;if(!a){eb(g,f);a=0}}else a=15;T=h;return a|0}function Nc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=T;T=T+16|0;f=g;if(!d){c=fb(c,f)|0;if(!c)c=Lc(a,b,f,e)|0}else c=15;T=g;return c|0}function Oc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=T;T=T+32|0;h=j+12|0;i=j;g=Kc(a,c,a,c,h)|0;if(g|0){i=g;T=j;return i|0}a=Kc(a,c,d,e,i)|0;if(a|0){i=a;T=j;return i|0}h=db(h,i)|0;i=f;b[i>>2]=h;b[i+4>>2]=((h|0)<0)<<31>>31;i=0;T=j;return i|0}function Pc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=T;T=T+32|0;h=j+12|0;i=j;g=Kc(a,c,a,c,h)|0;if(!g){g=Kc(a,c,d,e,i)|0;if(!g){e=db(h,i)|0;e=Jd(e|0,((e|0)<0)<<31>>31|0,1,0)|0;h=H()|0;i=f;b[i>>2]=e;b[i+4>>2]=h;i=0;T=j;return i|0}}i=g;T=j;return i|0}function Qc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=T;T=T+48|0;x=z+24|0;h=z+12|0;y=z;g=Kc(a,c,a,c,x)|0;if(!g){g=Kc(a,c,d,e,h)|0;if(!g){v=db(x,h)|0;w=((v|0)<0)<<31>>31;b[x>>2]=0;b[x+4>>2]=0;b[x+8>>2]=0;b[h>>2]=0;b[h+4>>2]=0;b[h+8>>2]=0;if(Kc(a,c,a,c,x)|0)I(27795,27538,692,27747);if(Kc(a,c,d,e,h)|0)I(27795,27538,697,27747);gb(x);gb(h);l=(v|0)==0?0.0:1.0/+(v|0);d=b[x>>2]|0;r=l*+((b[h>>2]|0)-d|0);s=x+4|0;e=b[s>>2]|0;t=l*+((b[h+4>>2]|0)-e|0);u=x+8|0;g=b[u>>2]|0;l=l*+((b[h+8>>2]|0)-g|0);b[y>>2]=d;m=y+4|0;b[m>>2]=e;n=y+8|0;b[n>>2]=g;a:do if((v|0)<0)g=0;else{o=0;p=0;while(1){j=+(p>>>0)+4294967296.0*+(o|0);A=r*j+ +(d|0);i=t*j+ +(e|0);j=l*j+ +(g|0);d=~~+Yd(+A);h=~~+Yd(+i);g=~~+Yd(+j);A=+q(+(+(d|0)-A));i=+q(+(+(h|0)-i));j=+q(+(+(g|0)-j));do if(!(A>i&A>j)){k=0-d|0;if(i>j){e=k-g|0;break}else{e=h;g=k-h|0;break}}else{d=0-(h+g)|0;e=h}while(0);b[y>>2]=d;b[m>>2]=e;b[n>>2]=g;hb(y);g=Lc(a,c,y,f+(p<<3)|0)|0;if(g|0)break a;if(!((o|0)<(w|0)|(o|0)==(w|0)&p>>>0>>0)){g=0;break a}d=Jd(p|0,o|0,1,0)|0;e=H()|0;o=e;p=d;d=b[x>>2]|0;e=b[s>>2]|0;g=b[u>>2]|0}}while(0);y=g;T=z;return y|0}}y=g;T=z;return y|0}function Rc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)==0&(d|0)==0){e=0;f=1;G(e|0);return f|0}f=a;e=b;a=1;b=0;do{g=(c&1|0)==0&0==0;a=Pd((g?1:f)|0,(g?0:e)|0,a|0,b|0)|0;b=H()|0;c=Sd(c|0,d|0,1)|0;d=H()|0;f=Pd(f|0,e|0,f|0,e|0)|0;e=H()|0}while(!((c|0)==0&(d|0)==0));G(b|0);return a|0}function Sc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=T;T=T+16|0;h=j;i=Td(a|0,c|0,52)|0;H()|0;i=i&15;do if(!i){g=Td(a|0,c|0,45)|0;H()|0;g=g&127;if(g>>>0>121){i=5;T=j;return i|0}else{h=22064+(g<<5)|0;b[d>>2]=b[h>>2];b[d+4>>2]=b[h+4>>2];b[d+8>>2]=b[h+8>>2];b[d+12>>2]=b[h+12>>2];b[d+16>>2]=b[h+16>>2];b[d+20>>2]=b[h+20>>2];b[d+24>>2]=b[h+24>>2];b[d+28>>2]=b[h+28>>2];break}}else{g=ac(a,c,h)|0;if(!g){l=+e[h>>3];k=1.0/+t(+l);m=+e[25968+(i<<3)>>3];e[d>>3]=l+m;e[d+8>>3]=l-m;l=+e[h+8>>3];k=m*k;e[d+16>>3]=k+l;e[d+24>>3]=l-k;break}i=g;T=j;return i|0}while(0);Ja(d,f?1.4:1.1);f=26096+(i<<3)|0;if((b[f>>2]|0)==(a|0)?(b[f+4>>2]|0)==(c|0):0)e[d>>3]=1.5707963267948966;i=26224+(i<<3)|0;if((b[i>>2]|0)==(a|0)?(b[i+4>>2]|0)==(c|0):0)e[d+8>>3]=-1.5707963267948966;if(!(+e[d>>3]==1.5707963267948966)?!(+e[d+8>>3]==-1.5707963267948966):0){i=0;T=j;return i|0}e[d+16>>3]=3.141592653589793;e[d+24>>3]=-3.141592653589793;i=0;T=j;return i|0}function Tc(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=T;T=T+48|0;i=l+32|0;h=l+40|0;j=l;Hb(i,0,0,0);k=b[i>>2]|0;i=b[i+4>>2]|0;do if(e>>>0<=15){g=_c(f)|0;if(g|0){f=j;b[f>>2]=0;b[f+4>>2]=0;b[j+8>>2]=g;b[j+12>>2]=-1;f=j+16|0;k=j+29|0;b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;a[f+12>>0]=0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}g=Id((b[d+8>>2]|0)+1|0,32)|0;if(!g){f=j;b[f>>2]=0;b[f+4>>2]=0;b[j+8>>2]=13;b[j+12>>2]=-1;f=j+16|0;k=j+29|0;b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;a[f+12>>0]=0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}else{$c(d,g);m=j;b[m>>2]=k;b[m+4>>2]=i;b[j+8>>2]=0;b[j+12>>2]=e;b[j+16>>2]=f;b[j+20>>2]=d;b[j+24>>2]=g;a[j+28>>0]=0;k=j+29|0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}}else{k=j;b[k>>2]=0;b[k+4>>2]=0;b[j+8>>2]=4;b[j+12>>2]=-1;k=j+16|0;m=j+29|0;b[k>>2]=0;b[k+4>>2]=0;b[k+8>>2]=0;a[k+12>>0]=0;a[m>>0]=a[h>>0]|0;a[m+1>>0]=a[h+1>>0]|0;a[m+2>>0]=a[h+2>>0]|0}while(0);Uc(j);b[c>>2]=b[j>>2];b[c+4>>2]=b[j+4>>2];b[c+8>>2]=b[j+8>>2];b[c+12>>2]=b[j+12>>2];b[c+16>>2]=b[j+16>>2];b[c+20>>2]=b[j+20>>2];b[c+24>>2]=b[j+24>>2];b[c+28>>2]=b[j+28>>2];T=l;return}function Uc(c){c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=T;T=T+336|0;p=w+168|0;q=w;f=c;e=b[f>>2]|0;f=b[f+4>>2]|0;if((e|0)==0&(f|0)==0){T=w;return}d=c+28|0;if(!(a[d>>0]|0))a[d>>0]=1;else{e=Vc(e,f)|0;f=H()|0}v=c+20|0;if(!(b[b[v>>2]>>2]|0)){d=c+24|0;e=b[d>>2]|0;if(e|0)Hd(e);u=c;b[u>>2]=0;b[u+4>>2]=0;b[c+8>>2]=0;b[v>>2]=0;b[c+12>>2]=-1;b[c+16>>2]=0;b[d>>2]=0;T=w;return}u=c+16|0;d=b[u>>2]|0;g=d&15;a:do if(!((e|0)==0&(f|0)==0)){r=c+12|0;n=(g|0)==3;m=d&255;k=(g|1|0)==3;o=c+24|0;l=(g+-1|0)>>>0<3;i=(g|2|0)==3;j=q+8|0;b:while(1){h=Td(e|0,f|0,52)|0;H()|0;h=h&15;if((h|0)==(b[r>>2]|0)){switch(m&15){case 0:case 2:case 3:{g=ac(e,f,p)|0;if(g|0){s=15;break b}if(ad(b[v>>2]|0,b[o>>2]|0,p)|0){s=19;break b}break}default:{}}if(k?(g=b[(b[v>>2]|0)+4>>2]|0,b[p>>2]=b[g>>2],b[p+4>>2]=b[g+4>>2],b[p+8>>2]=b[g+8>>2],b[p+12>>2]=b[g+12>>2],Ca(26832,p)|0):0){if(Zb(b[(b[v>>2]|0)+4>>2]|0,h,q)|0){s=25;break}g=q;if((b[g>>2]|0)==(e|0)?(b[g+4>>2]|0)==(f|0):0){s=29;break}}if(l){g=bc(e,f,p)|0;if(g|0){s=32;break}if(Sc(e,f,q,0)|0){s=36;break}if(i?bd(b[v>>2]|0,b[o>>2]|0,p,q)|0:0){s=42;break}if(k?dd(b[v>>2]|0,b[o>>2]|0,p,q)|0:0){s=42;break}}if(n){d=Sc(e,f,p,1)|0;g=b[o>>2]|0;if(d|0){s=45;break}if(Da(g,p)|0){Ga(q,p);if(Fa(p,b[o>>2]|0)|0){s=53;break}if(ad(b[v>>2]|0,b[o>>2]|0,j)|0){s=53;break}if(dd(b[v>>2]|0,b[o>>2]|0,q,p)|0){s=53;break}}}}do if((h|0)<(b[r>>2]|0)){d=Sc(e,f,p,1)|0;g=b[o>>2]|0;if(d|0){s=58;break b}if(!(Da(g,p)|0)){s=73;break}if(Fa(b[o>>2]|0,p)|0?(Ga(q,p),bd(b[v>>2]|0,b[o>>2]|0,q,p)|0):0){s=65;break b}e=Nb(e,f,h+1|0,q)|0;if(e|0){s=67;break b}f=q;e=b[f>>2]|0;f=b[f+4>>2]|0}else s=73;while(0);if((s|0)==73){s=0;e=Vc(e,f)|0;f=H()|0}if((e|0)==0&(f|0)==0){t=o;break a}}switch(s|0){case 15:{d=b[o>>2]|0;if(d|0)Hd(d);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=g;s=20;break}case 19:{b[c>>2]=e;b[c+4>>2]=f;s=20;break}case 25:{I(27795,27761,470,27772);break}case 29:{b[c>>2]=e;b[c+4>>2]=f;T=w;return}case 32:{d=b[o>>2]|0;if(d|0)Hd(d);t=c;b[t>>2]=0;b[t+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=g;T=w;return}case 36:{I(27795,27761,493,27772);break}case 42:{b[c>>2]=e;b[c+4>>2]=f;T=w;return}case 45:{if(g|0)Hd(g);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=d;s=55;break}case 53:{b[c>>2]=e;b[c+4>>2]=f;s=55;break}case 58:{if(g|0)Hd(g);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=d;s=71;break}case 65:{b[c>>2]=e;b[c+4>>2]=f;s=71;break}case 67:{d=b[o>>2]|0;if(d|0)Hd(d);t=c;b[t>>2]=0;b[t+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=e;T=w;return}}if((s|0)==20){T=w;return}else if((s|0)==55){T=w;return}else if((s|0)==71){T=w;return}}else t=c+24|0;while(0);d=b[t>>2]|0;if(d|0)Hd(d);s=c;b[s>>2]=0;b[s+4>>2]=0;b[c+8>>2]=0;b[v>>2]=0;b[c+12>>2]=-1;b[u>>2]=0;b[t>>2]=0;T=w;return}function Vc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=T;T=T+16|0;l=m;e=Td(a|0,c|0,52)|0;H()|0;e=e&15;d=Td(a|0,c|0,45)|0;H()|0;do if(e){while(1){d=Ud(e+4095|0,0,52)|0;f=H()|0|c&-15728641;g=(15-e|0)*3|0;h=Ud(7,0,g|0)|0;i=H()|0;d=d|a|h;f=f|i;j=Td(a|0,c|0,g|0)|0;H()|0;j=j&7;e=e+-1|0;if(j>>>0<6)break;if(!e){k=4;break}else{c=f;a=d}}if((k|0)==4){d=Td(d|0,f|0,45)|0;H()|0;break}l=(j|0)==0&(Kb(d,f)|0)!=0;l=Ud((l?2:1)+j|0,0,g|0)|0;k=H()|0|c&~i;l=l|a&~h;G(k|0);T=m;return l|0}while(0);d=d&127;if(d>>>0>120){k=0;l=0;G(k|0);T=m;return l|0}Hb(l,0,d+1|0,0);k=b[l+4>>2]|0;l=b[l>>2]|0;G(k|0);T=m;return l|0}function Wc(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=T;T=T+160|0;m=r+80|0;i=r+64|0;n=r+112|0;q=r;Tc(m,a,c,d);k=m;ic(i,b[k>>2]|0,b[k+4>>2]|0,c);k=i;j=b[k>>2]|0;k=b[k+4>>2]|0;h=b[m+8>>2]|0;o=n+4|0;b[o>>2]=b[m>>2];b[o+4>>2]=b[m+4>>2];b[o+8>>2]=b[m+8>>2];b[o+12>>2]=b[m+12>>2];b[o+16>>2]=b[m+16>>2];b[o+20>>2]=b[m+20>>2];b[o+24>>2]=b[m+24>>2];b[o+28>>2]=b[m+28>>2];o=q;b[o>>2]=j;b[o+4>>2]=k;o=q+8|0;b[o>>2]=h;a=q+12|0;c=n;d=a+36|0;do{b[a>>2]=b[c>>2];a=a+4|0;c=c+4|0}while((a|0)<(d|0));n=q+48|0;b[n>>2]=b[i>>2];b[n+4>>2]=b[i+4>>2];b[n+8>>2]=b[i+8>>2];b[n+12>>2]=b[i+12>>2];if((j|0)==0&(k|0)==0){q=h;T=r;return q|0}d=q+16|0;l=q+24|0;m=q+28|0;h=0;i=0;c=j;a=k;do{if(!((h|0)<(f|0)|(h|0)==(f|0)&i>>>0>>0)){p=4;break}k=i;i=Jd(i|0,h|0,1,0)|0;h=H()|0;k=g+(k<<3)|0;b[k>>2]=c;b[k+4>>2]=a;kc(n);a=n;c=b[a>>2]|0;a=b[a+4>>2]|0;if((c|0)==0&(a|0)==0){Uc(d);c=d;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){p=10;break}jc(a,c,b[m>>2]|0,n);a=n;c=b[a>>2]|0;a=b[a+4>>2]|0}k=q;b[k>>2]=c;b[k+4>>2]=a}while(!((c|0)==0&(a|0)==0));if((p|0)==4){a=q+40|0;c=b[a>>2]|0;if(c|0)Hd(c);p=q+16|0;b[p>>2]=0;b[p+4>>2]=0;b[l>>2]=0;b[q+36>>2]=0;b[m>>2]=-1;b[q+32>>2]=0;b[a>>2]=0;jc(0,0,0,n);b[q>>2]=0;b[q+4>>2]=0;b[o>>2]=0;q=14;T=r;return q|0}else if((p|0)==10){b[q>>2]=0;b[q+4>>2]=0;b[o>>2]=b[l>>2]}q=b[o>>2]|0;T=r;return q|0}function Xc(c,d,f,g){c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,r=0;o=T;T=T+48|0;l=o+32|0;k=o+40|0;m=o;if(!(b[c>>2]|0)){n=g;b[n>>2]=0;b[n+4>>2]=0;n=0;T=o;return n|0}Hb(l,0,0,0);j=l;h=b[j>>2]|0;j=b[j+4>>2]|0;do if(d>>>0>15){n=m;b[n>>2]=0;b[n+4>>2]=0;b[m+8>>2]=4;b[m+12>>2]=-1;n=m+16|0;f=m+29|0;b[n>>2]=0;b[n+4>>2]=0;b[n+8>>2]=0;a[n+12>>0]=0;a[f>>0]=a[k>>0]|0;a[f+1>>0]=a[k+1>>0]|0;a[f+2>>0]=a[k+2>>0]|0;f=4;n=9}else{f=_c(f)|0;if(f|0){l=m;b[l>>2]=0;b[l+4>>2]=0;b[m+8>>2]=f;b[m+12>>2]=-1;l=m+16|0;n=m+29|0;b[l>>2]=0;b[l+4>>2]=0;b[l+8>>2]=0;a[l+12>>0]=0;a[n>>0]=a[k>>0]|0;a[n+1>>0]=a[k+1>>0]|0;a[n+2>>0]=a[k+2>>0]|0;n=9;break}f=Id((b[c+8>>2]|0)+1|0,32)|0;if(!f){n=m;b[n>>2]=0;b[n+4>>2]=0;b[m+8>>2]=13;b[m+12>>2]=-1;n=m+16|0;f=m+29|0;b[n>>2]=0;b[n+4>>2]=0;b[n+8>>2]=0;a[n+12>>0]=0;a[f>>0]=a[k>>0]|0;a[f+1>>0]=a[k+1>>0]|0;a[f+2>>0]=a[k+2>>0]|0;f=13;n=9;break}$c(c,f);r=m;b[r>>2]=h;b[r+4>>2]=j;j=m+8|0;b[j>>2]=0;b[m+12>>2]=d;b[m+20>>2]=c;b[m+24>>2]=f;a[m+28>>0]=0;h=m+29|0;a[h>>0]=a[k>>0]|0;a[h+1>>0]=a[k+1>>0]|0;a[h+2>>0]=a[k+2>>0]|0;b[m+16>>2]=3;p=+Ba(f);p=p*+za(f);i=+q(+(+e[f>>3]));i=p/+t(+(+Xd(+i,+(+q(+(+e[f+8>>3]))))))*6371.007180918475*6371.007180918475;h=m+12|0;f=b[h>>2]|0;a:do if((f|0)>0)do{tc(f+-1|0,l)|0;if(!(i/+e[l>>3]>10.0))break a;r=b[h>>2]|0;f=r+-1|0;b[h>>2]=f}while((r|0)>1);while(0);Uc(m);h=g;b[h>>2]=0;b[h+4>>2]=0;h=m;f=b[h>>2]|0;h=b[h+4>>2]|0;if(!((f|0)==0&(h|0)==0))do{Jb(f,h,d,l)|0;k=l;c=g;k=Jd(b[c>>2]|0,b[c+4>>2]|0,b[k>>2]|0,b[k+4>>2]|0)|0;c=H()|0;r=g;b[r>>2]=k;b[r+4>>2]=c;Uc(m);r=m;f=b[r>>2]|0;h=b[r+4>>2]|0}while(!((f|0)==0&(h|0)==0));f=b[j>>2]|0}while(0);r=f;T=o;return r|0}function Yc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0;if(!(Ca(c,d)|0)){o=0;return o|0}c=Aa(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;o=b[a>>2]|0;if((o|0)<=0){o=0;return o|0}n=b[a+4>>2]|0;if(c){c=0;m=g;d=-1;a=0;a:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break a}else{a=l;l=d;d=a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;m=j==m|i==m?m+-2.220446049250313e-16:m;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}else{c=0;m=g;d=-1;a=0;b:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break b}else{a=l;l=d;d=a}}m=i==m|g==m?m+-2.220446049250313e-16:m;if(i+(g-i)*((f-h)/(k-h))>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}return 0}function Zc(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0;r=b[a>>2]|0;if(!r){b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0;return}s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)<=0)return;o=b[a+4>>2]|0;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;n=0;a=-1;h=1797693134862315708145274.0e284;i=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;f=-1797693134862315708145274.0e284;p=0;while(1){d=+e[o+(p<<4)>>3];j=+e[o+(p<<4)+8>>3];a=a+2|0;g=+e[o+(((a|0)==(r|0)?0:a)<<4)+8>>3];if(d>3]=d;h=d}if(j>3]=j;i=j}if(d>k)e[c>>3]=d;else d=k;if(j>f){e[u>>3]=j;f=j}l=j>0.0&jm?j:m;n=n|+q(+(j-g))>3.141592653589793;a=p+1|0;if((a|0)==(r|0))break;else{v=p;k=d;p=a;a=v}}if(!n)return;e[u>>3]=m;e[t>>3]=l;return}function _c(a){a=a|0;return (a>>>0<4?0:15)|0}function $c(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;r=b[a>>2]|0;if(r){s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)>0){g=b[a+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;f=0;d=-1;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;n=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;v=0;while(1){h=+e[g+(v<<4)>>3];m=+e[g+(v<<4)+8>>3];z=d+2|0;j=+e[g+(((z|0)==(r|0)?0:z)<<4)+8>>3];if(h>3]=h;k=h}if(m>3]=m;l=m}if(h>n)e[c>>3]=h;else h=n;if(m>i){e[u>>3]=m;i=m}o=m>0.0&mp?m:p;f=f|+q(+(m-j))>3.141592653589793;d=v+1|0;if((d|0)==(r|0))break;else{z=v;n=h;v=d;d=z}}if(f){e[u>>3]=p;e[t>>3]=o}}}else{b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0}z=a+8|0;d=b[z>>2]|0;if((d|0)<=0)return;y=a+12|0;x=0;do{g=b[y>>2]|0;f=x;x=x+1|0;t=c+(x<<5)|0;u=b[g+(f<<3)>>2]|0;if(u){v=c+(x<<5)+8|0;e[v>>3]=1797693134862315708145274.0e284;a=c+(x<<5)+24|0;e[a>>3]=1797693134862315708145274.0e284;e[t>>3]=-1797693134862315708145274.0e284;w=c+(x<<5)+16|0;e[w>>3]=-1797693134862315708145274.0e284;if((u|0)>0){r=b[g+(f<<3)+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;g=0;f=-1;s=0;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){h=+e[r+(s<<4)>>3];n=+e[r+(s<<4)+8>>3];f=f+2|0;j=+e[r+(((f|0)==(u|0)?0:f)<<4)+8>>3];if(h>3]=h;k=h}if(n>3]=n;l=n}if(h>m)e[t>>3]=h;else h=m;if(n>i){e[w>>3]=n;i=n}o=n>0.0&np?n:p;g=g|+q(+(n-j))>3.141592653589793;f=s+1|0;if((f|0)==(u|0))break;else{A=s;s=f;m=h;f=A}}if(g){e[w>>3]=p;e[a>>3]=o}}}else{b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;b[t+16>>2]=0;b[t+20>>2]=0;b[t+24>>2]=0;b[t+28>>2]=0;d=b[z>>2]|0}}while((x|0)<(d|0));return}function ad(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(Yc(a,c,d)|0)){f=0;return f|0}f=a+8|0;if((b[f>>2]|0)<=0){f=1;return f|0}e=a+12|0;a=0;while(1){g=a;a=a+1|0;if(Yc((b[e>>2]|0)+(g<<3)|0,c+(a<<5)|0,d)|0){a=0;e=6;break}if((a|0)>=(b[f>>2]|0)){a=1;e=6;break}}if((e|0)==6)return a|0;return 0}function bd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=T;T=T+16|0;i=k;h=d+8|0;if(!(Yc(a,c,h)|0)){j=0;T=k;return j|0}j=a+8|0;a:do if((b[j>>2]|0)>0){g=a+12|0;f=0;while(1){l=f;f=f+1|0;if(Yc((b[g>>2]|0)+(l<<3)|0,c+(f<<5)|0,h)|0){f=0;break}if((f|0)>=(b[j>>2]|0))break a}T=k;return f|0}while(0);if(cd(a,c,d,e)|0){l=0;T=k;return l|0}b[i>>2]=b[d>>2];b[i+4>>2]=h;f=b[j>>2]|0;b:do if((f|0)>0){a=a+12|0;h=0;g=f;while(1){f=b[a>>2]|0;if((b[f+(h<<3)>>2]|0)>0){if(Yc(i,e,b[f+(h<<3)+4>>2]|0)|0){f=0;break b}f=h+1|0;if(cd((b[a>>2]|0)+(h<<3)|0,c+(f<<5)|0,d,e)|0){f=0;break b}g=b[j>>2]|0}else f=h+1|0;if((f|0)<(g|0))h=f;else{f=1;break}}}else f=1;while(0);l=f;T=k;return l|0}function cd(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0;y=T;T=T+176|0;u=y+172|0;g=y+168|0;v=y;if(!(Da(c,f)|0)){a=0;T=y;return a|0}Ea(c,f,u,g);Zd(v|0,d|0,168)|0;if((b[d>>2]|0)>0){c=0;do{z=v+8+(c<<4)+8|0;t=+nc(+e[z>>3],b[g>>2]|0);e[z>>3]=t;c=c+1|0}while((c|0)<(b[d>>2]|0))}r=+e[f>>3];s=+e[f+8>>3];t=+nc(+e[f+16>>3],b[g>>2]|0);p=+nc(+e[f+24>>3],b[g>>2]|0);a:do if((b[a>>2]|0)>0){f=a+4|0;g=b[v>>2]|0;if((g|0)<=0){c=0;while(1){c=c+1|0;if((c|0)>=(b[a>>2]|0)){c=0;break a}}}d=0;while(1){c=b[f>>2]|0;o=+e[c+(d<<4)>>3];q=+nc(+e[c+(d<<4)+8>>3],b[u>>2]|0);c=b[f>>2]|0;d=d+1|0;z=(d|0)%(b[a>>2]|0)|0;h=+e[c+(z<<4)>>3];i=+nc(+e[c+(z<<4)+8>>3],b[u>>2]|0);if(((!(o>=r)|!(h>=r)?!(o<=s)|!(h<=s):0)?!(q<=p)|!(i<=p):0)?!(q>=t)|!(i>=t):0){n=h-o;l=i-q;c=0;do{A=c;c=c+1|0;z=(c|0)==(g|0)?0:c;h=+e[v+8+(A<<4)+8>>3];i=+e[v+8+(z<<4)+8>>3]-h;j=+e[v+8+(A<<4)>>3];k=+e[v+8+(z<<4)>>3]-j;m=n*i-l*k;if((m!=0.0?(w=q-h,x=o-j,k=(w*k-i*x)/m,!(k<0.0|k>1.0)):0)?(m=(n*w-l*x)/m,m>=0.0&m<=1.0):0){c=1;break a}}while((c|0)<(g|0))}if((d|0)>=(b[a>>2]|0)){c=0;break}}}else c=0;while(0);A=c;T=y;return A|0}function dd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(cd(a,c,d,e)|0){g=1;return g|0}g=a+8|0;if((b[g>>2]|0)<=0){g=0;return g|0}f=a+12|0;a=0;while(1){h=a;a=a+1|0;if(cd((b[f>>2]|0)+(h<<3)|0,c+(a<<5)|0,d,e)|0){a=1;f=6;break}if((a|0)>=(b[g>>2]|0)){a=0;f=6;break}}if((f|0)==6)return a|0;return 0}function ed(){return 8}function fd(){return 16}function gd(){return 168}function hd(){return 8}function id(){return 16}function jd(){return 12}function kd(){return 8}function ld(a){a=a|0;return +(+((b[a>>2]|0)>>>0)+4294967296.0*+(b[a+4>>2]|0))}function md(a){a=a|0;var b=0.0,c=0.0;c=+e[a>>3];b=+e[a+8>>3];return +(+r(+(c*c+b*b)))}function nd(a,b,c,d,f){a=a|0;b=b|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+e[a>>3];j=+e[b>>3]-k;i=+e[a+8>>3];h=+e[b+8>>3]-i;m=+e[c>>3];g=+e[d>>3]-m;n=+e[c+8>>3];l=+e[d+8>>3]-n;g=(g*(i-n)-(k-m)*l)/(j*l-h*g);e[f>>3]=k+j*g;e[f+8>>3]=i+h*g;return}function od(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.1920928955078125e-07)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.1920928955078125e-07;return b|0}function pd(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;f=+e[a>>3]-+e[b>>3];d=+e[a+8>>3]-+e[b+8>>3];c=+e[a+16>>3]-+e[b+16>>3];return +(f*f+d*d+c*c)}function qd(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[a>>3];d=+t(+c);c=+u(+c);e[b+16>>3]=c;c=+e[a+8>>3];f=d*+t(+c);e[b>>3]=f;c=d*+u(+c);e[b+8>>3]=c;return}function rd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=T;T=T+16|0;f=g;e=Kb(a,c)|0;if((d+-1|0)>>>0>5){f=-1;T=g;return f|0}e=(e|0)!=0;if((d|0)==1&e){f=-1;T=g;return f|0}do if(!(sd(a,c,f)|0))if(e){e=((b[26352+(d<<2)>>2]|0)+5-(b[f>>2]|0)|0)%5|0;break}else{e=((b[26384+(d<<2)>>2]|0)+6-(b[f>>2]|0)|0)%6|0;break}else e=-1;while(0);f=e;T=g;return f|0}function sd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=T;T=T+32|0;i=l+16|0;j=l;e=$b(a,c,i)|0;if(e|0){d=e;T=l;return d|0}g=Cb(a,c)|0;k=Sb(a,c)|0;sa(g,j);e=ta(g,b[i>>2]|0)|0;do if(oa(g)|0){do switch(g|0){case 4:{f=0;break}case 14:{f=1;break}case 24:{f=2;break}case 38:{f=3;break}case 49:{f=4;break}case 58:{f=5;break}case 63:{f=6;break}case 72:{f=7;break}case 83:{f=8;break}case 97:{f=9;break}case 107:{f=10;break}case 117:{f=11;break}default:I(27795,27797,75,27806)}while(0);h=b[26416+(f*24|0)+8>>2]|0;c=b[26416+(f*24|0)+16>>2]|0;a=b[i>>2]|0;if((a|0)!=(b[j>>2]|0)){j=pa(g)|0;a=b[i>>2]|0;if(j|(a|0)==(c|0))e=(e+1|0)%6|0}if((k|0)==3&(a|0)==(c|0)){e=(e+5|0)%6|0;break}if((k|0)==5&(a|0)==(h|0))e=(e+1|0)%6|0}while(0);b[d>>2]=e;d=0;T=l;return d|0}function td(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=T;T=T+32|0;t=u+24|0;r=u+20|0;p=u+8|0;o=u+16|0;n=u;j=(Kb(a,c)|0)==0;j=j?6:5;l=Td(a|0,c|0,52)|0;H()|0;l=l&15;if(j>>>0<=d>>>0){e=2;T=u;return e|0}m=(l|0)==0;if(!m?(q=Ud(7,0,(l^15)*3|0)|0,(q&a|0)==0&((H()|0)&c|0)==0):0)f=d;else g=4;a:do if((g|0)==4){f=(Kb(a,c)|0)!=0;if(((f?4:5)|0)<(d|0)){e=1;T=u;return e|0}if(sd(a,c,t)|0){e=1;T=u;return e|0}g=(b[t>>2]|0)+d|0;if(f)f=26704+(((g|0)%5|0)<<2)|0;else f=26736+(((g|0)%6|0)<<2)|0;q=b[f>>2]|0;if((q|0)==7){e=1;T=u;return e|0}b[r>>2]=0;f=ea(a,c,q,r,p)|0;do if(!f){i=p;k=b[i>>2]|0;i=b[i+4>>2]|0;h=i>>>0>>0|(i|0)==(c|0)&k>>>0>>0;g=h?k:a;h=h?i:c;if(!m?(m=Ud(7,0,(l^15)*3|0)|0,(k&m|0)==0&(i&(H()|0)|0)==0):0)f=d;else{i=(d+-1+j|0)%(j|0)|0;f=Kb(a,c)|0;if((i|0)<0)I(27795,27797,248,27822);j=(f|0)!=0;if(((j?4:5)|0)<(i|0))I(27795,27797,248,27822);if(sd(a,c,t)|0)I(27795,27797,248,27822);f=(b[t>>2]|0)+i|0;if(j)f=26704+(((f|0)%5|0)<<2)|0;else f=26736+(((f|0)%6|0)<<2)|0;i=b[f>>2]|0;if((i|0)==7)I(27795,27797,248,27822);b[o>>2]=0;f=ea(a,c,i,o,n)|0;if(f|0)break;k=n;j=b[k>>2]|0;k=b[k+4>>2]|0;do if(k>>>0>>0|(k|0)==(h|0)&j>>>0>>0){if(!(Kb(j,k)|0))g=b[26800+((((b[o>>2]|0)+(b[26768+(i<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else g=ia(j,k,a,c)|0;f=Kb(j,k)|0;if((g+-1|0)>>>0>5){f=-1;g=j;h=k;break}f=(f|0)!=0;if((g|0)==1&f){f=-1;g=j;h=k;break}do if(!(sd(j,k,t)|0))if(f){f=((b[26352+(g<<2)>>2]|0)+5-(b[t>>2]|0)|0)%5|0;break}else{f=((b[26384+(g<<2)>>2]|0)+6-(b[t>>2]|0)|0)%6|0;break}else f=-1;while(0);g=j;h=k}else f=d;while(0);i=p;k=b[i>>2]|0;i=b[i+4>>2]|0}if((g|0)==(k|0)&(h|0)==(i|0)){j=(Kb(k,i)|0)!=0;if(j)a=ia(k,i,a,c)|0;else a=b[26800+((((b[r>>2]|0)+(b[26768+(q<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;f=Kb(k,i)|0;if((a+-1|0)>>>0<=5?(s=(f|0)!=0,!((a|0)==1&s)):0)do if(!(sd(k,i,t)|0))if(s){f=((b[26352+(a<<2)>>2]|0)+5-(b[t>>2]|0)|0)%5|0;break}else{f=((b[26384+(a<<2)>>2]|0)+6-(b[t>>2]|0)|0)%6|0;break}else f=-1;while(0);else f=-1;f=f+1|0;f=(f|0)==6|j&(f|0)==5?0:f}c=h;a=g;break a}while(0);e=f;T=u;return e|0}while(0);s=Ud(f|0,0,56)|0;t=H()|0|c&-2130706433|536870912;b[e>>2]=s|a;b[e+4>>2]=t;e=0;T=u;return e|0}function ud(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(Kb(a,c)|0)==0;e=td(a,c,0,d)|0;f=(e|0)==0;if(g){if(!f){g=e;return g|0}e=td(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=td(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=td(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=td(a,c,4,d+32|0)|0;if(!e)return td(a,c,5,d+40|0)|0;else{g=e;return g|0}}if(!f){g=e;return g|0}e=td(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=td(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=td(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=td(a,c,4,d+32|0)|0;if(e|0){g=e;return g|0}g=d+40|0;b[g>>2]=0;b[g+4>>2]=0;g=0;return g|0}function vd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=T;T=T+192|0;f=j;g=j+168|0;h=Td(a|0,c|0,56)|0;H()|0;h=h&7;i=c&-2130706433|134217728;e=$b(a,i,g)|0;if(e|0){i=e;T=j;return i|0}c=Td(a|0,c|0,52)|0;H()|0;c=c&15;if(!(Kb(a,i)|0))zb(g,c,h,1,f);else vb(g,c,h,1,f);i=f+8|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];i=0;T=j;return i|0}function wd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;f=T;T=T+16|0;d=f;if(!(0==0&(c&2013265920|0)==536870912)){e=0;T=f;return e|0}e=c&-2130706433|134217728;if(!(Fb(a,e)|0)){e=0;T=f;return e|0}g=Td(a|0,c|0,56)|0;H()|0;g=(td(a,e,g&7,d)|0)==0;e=d;e=g&((b[e>>2]|0)==(a|0)?(b[e+4>>2]|0)==(c|0):0)&1;T=f;return e|0}function xd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)>0){e=Id(c,4)|0;b[a>>2]=e;if(!e)I(27835,27858,40,27872)}else b[a>>2]=0;b[a+4>>2]=c;b[a+8>>2]=0;b[a+12>>2]=d;return}function yd(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;g=a+4|0;h=a+12|0;i=a+8|0;a:while(1){d=b[g>>2]|0;c=0;while(1){if((c|0)>=(d|0))break a;f=b[a>>2]|0;j=b[f+(c<<2)>>2]|0;if(!j)c=c+1|0;else break}c=f+(~~(+q(+(+s(10.0,+(+(15-(b[h>>2]|0)|0)))*(+e[j>>3]+ +e[j+8>>3])))%+(d|0))>>>0<<2)|0;d=b[c>>2]|0;b:do if(d|0){f=j+32|0;if((d|0)==(j|0))b[c>>2]=b[f>>2];else{d=d+32|0;c=b[d>>2]|0;if(!c)break;while(1){if((c|0)==(j|0))break;d=c+32|0;c=b[d>>2]|0;if(!c)break b}b[d>>2]=b[f>>2]}Hd(j);b[i>>2]=(b[i>>2]|0)+-1}while(0)}Hd(b[a>>2]|0);return}function zd(a){a=a|0;var c=0,d=0,e=0;e=b[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0)){c=0;d=4;break}c=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!c)d=d+1|0;else{d=4;break}}if((d|0)==4)return c|0;return 0}function Ad(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;d=(b[a>>2]|0)+(d<<2)|0;f=b[d>>2]|0;if(!f){h=1;return h|0}h=c+32|0;do if((f|0)!=(c|0)){d=b[f+32>>2]|0;if(!d){h=1;return h|0}g=d;while(1){if((g|0)==(c|0)){g=8;break}d=b[g+32>>2]|0;if(!d){d=1;g=10;break}else{f=g;g=d}}if((g|0)==8){b[f+32>>2]=b[h>>2];break}else if((g|0)==10)return d|0}else b[d>>2]=b[h>>2];while(0);Hd(c);h=a+8|0;b[h>>2]=(b[h>>2]|0)+-1;h=0;return h|0}function Bd(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;h=Gd(40)|0;if(!h)I(27888,27858,98,27901);b[h>>2]=b[c>>2];b[h+4>>2]=b[c+4>>2];b[h+8>>2]=b[c+8>>2];b[h+12>>2]=b[c+12>>2];g=h+16|0;b[g>>2]=b[d>>2];b[g+4>>2]=b[d+4>>2];b[g+8>>2]=b[d+8>>2];b[g+12>>2]=b[d+12>>2];b[h+32>>2]=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=(b[a>>2]|0)+(g<<2)|0;f=b[g>>2]|0;do if(!f)b[g>>2]=h;else{while(1){if(mc(f,c)|0?mc(f+16|0,d)|0:0)break;g=b[f+32>>2]|0;f=(g|0)==0?f:g;if(!(b[f+32>>2]|0)){i=10;break}}if((i|0)==10){b[f+32>>2]=h;break}Hd(h);i=f;return i|0}while(0);i=a+8|0;b[i>>2]=(b[i>>2]|0)+1;i=h;return i|0}function Cd(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0;g=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;g=b[(b[a>>2]|0)+(g<<2)>>2]|0;if(!g){d=0;return d|0}if(!d){a=g;while(1){if(mc(a,c)|0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0}a=g;while(1){if(mc(a,c)|0?mc(a+16|0,d)|0:0){f=10;break}a=b[a+32>>2]|0;if(!a){a=0;f=10;break}}if((f|0)==10)return a|0;return 0}function Dd(a,c){a=a|0;c=c|0;var d=0;d=~~(+q(+(+s(10.0,+(+(15-(b[a+12>>2]|0)|0)))*(+e[c>>3]+ +e[c+8>>3])))%+(b[a+4>>2]|0))>>>0;a=b[(b[a>>2]|0)+(d<<2)>>2]|0;if(!a){d=0;return d|0}while(1){if(mc(a,c)|0){c=5;break}a=b[a+32>>2]|0;if(!a){a=0;c=5;break}}if((c|0)==5)return a|0;return 0}function Ed(){return 27920}function Fd(a){a=+a;return ~~+$d(+a)|0} -function Gd(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=T;T=T+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=b[6981]|0;d=m>>>a;if(d&3|0){c=(d&1^1)+a|0;a=27964+(c<<1<<2)|0;d=a+8|0;e=b[d>>2]|0;f=e+8|0;g=b[f>>2]|0;if((g|0)==(a|0))b[6981]=m&~(1<>2]=a;b[d>>2]=g}v=c<<3;b[e+4>>2]=v|3;v=e+v+4|0;b[v>>2]=b[v>>2]|1;v=f;T=w;return v|0}l=b[6983]|0;if(k>>>0>l>>>0){if(d|0){c=2<>>12&16;c=c>>>i;d=c>>>5&8;c=c>>>d;g=c>>>2&4;c=c>>>g;a=c>>>1&2;c=c>>>a;e=c>>>1&1;e=(d|i|g|a|e)+(c>>>e)|0;c=27964+(e<<1<<2)|0;a=c+8|0;g=b[a>>2]|0;i=g+8|0;d=b[i>>2]|0;if((d|0)==(c|0)){a=m&~(1<>2]=c;b[a>>2]=d;a=m}v=e<<3;h=v-k|0;b[g+4>>2]=k|3;f=g+k|0;b[f+4>>2]=h|1;b[g+v>>2]=h;if(l|0){e=b[6986]|0;c=l>>>3;d=27964+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[6983]=h;b[6986]=f;v=i;T=w;return v|0}g=b[6982]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=b[28228+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(b[j+4>>2]&-8)-k|0;while(1){a=b[d+16>>2]|0;if(!a){a=b[d+20>>2]|0;if(!a)break}h=(b[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){d=0;break}}while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);do if(f|0){c=b[i+28>>2]|0;a=28228+(c<<2)|0;if((i|0)==(b[a>>2]|0)){b[a>>2]=d;if(!d){b[6982]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}b[d+24>>2]=f;c=b[i+16>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}c=b[i+20>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[h+4>>2]=j|1;b[h+j>>2]=j;if(l|0){e=b[6986]|0;c=l>>>3;d=27964+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[6983]=j;b[6986]=h}v=i+8|0;T=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=b[6982]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=b[28228+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(b[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=b[d+20>>2]|0;d=b[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=b[28228+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(b[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=b[g+16>>2]|0;if(!d)d=b[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((b[6983]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){c=0;break}}while(1){f=c+20|0;d=b[f>>2]|0;if(!d){f=c+16|0;d=b[f>>2]|0;if(!d)break;else{c=d;a=f}}else{c=d;a=f}}b[a>>2]=0}else{v=b[i+8>>2]|0;b[v+12>>2]=c;b[c+8>>2]=v}while(0);do if(g){a=b[i+28>>2]|0;d=28228+(a<<2)|0;if((i|0)==(b[d>>2]|0)){b[d>>2]=c;if(!c){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=c;if(!c)break}b[c+24>>2]=g;a=b[i+16>>2]|0;if(a|0){b[c+16>>2]=a;b[a+24>>2]=c}a=b[i+20>>2]|0;if(a){b[c+20>>2]=a;b[a+24>>2]=c}}while(0);b:do if(h>>>0<16){v=h+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[l+4>>2]=h|1;b[l+h>>2]=h;c=h>>>3;if(h>>>0<256){d=27964+(c<<1<<2)|0;a=b[6981]|0;c=1<>2]|0}b[a>>2]=l;b[c+12>>2]=l;b[l+8>>2]=c;b[l+12>>2]=d;break}c=h>>>8;if(c)if(h>>>0>16777215)d=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;c=28228+(d<<2)|0;b[l+28>>2]=d;a=l+16|0;b[a+4>>2]=0;b[a>>2]=0;a=1<>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break}c=b[c>>2]|0;c:do if((b[c+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(h|0)){c=a;break c}else{e=e<<1;c=a}}b[d>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break b}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=l;b[u>>2]=l;b[l+8>>2]=v;b[l+12>>2]=c;b[l+24>>2]=0}while(0);v=i+8|0;T=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=b[6983]|0;if(d>>>0>=m>>>0){c=d-m|0;a=b[6986]|0;if(c>>>0>15){v=a+m|0;b[6986]=v;b[6983]=c;b[v+4>>2]=c|1;b[a+d>>2]=c;b[a+4>>2]=m|3}else{b[6983]=0;b[6986]=0;b[a+4>>2]=d|3;v=a+d+4|0;b[v>>2]=b[v>>2]|1}v=a+8|0;T=w;return v|0}h=b[6984]|0;if(h>>>0>m>>>0){t=h-m|0;b[6984]=t;v=b[6987]|0;u=v+m|0;b[6987]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;T=w;return v|0}if(!(b[7099]|0)){b[7101]=4096;b[7100]=4096;b[7102]=-1;b[7103]=-1;b[7104]=0;b[7092]=0;b[7099]=n&-16^1431655768;a=4096}else a=b[7101]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;T=w;return v|0}a=b[7091]|0;if(a|0?(l=b[7089]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;T=w;return v|0}d:do if(!(b[7092]&4)){d=b[6987]|0;e:do if(d){e=28372;while(1){n=b[e>>2]|0;if(n>>>0<=d>>>0?(n+(b[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=b[e+8>>2]|0;if(!a){q=128;break e}else e=a}c=g-h&f;if(c>>>0<2147483647){a=ae(c|0)|0;if((a|0)==((b[e>>2]|0)+(b[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=c;g=a;q=145;break d}}else{e=a;q=136}}else c=0}else q=128;while(0);do if((q|0)==128){d=ae(0)|0;if((d|0)!=(-1|0)?(c=d,o=b[7100]|0,p=o+-1|0,c=((p&c|0)==0?0:(p+c&0-o)-c|0)+k|0,o=b[7089]|0,p=c+o|0,c>>>0>m>>>0&c>>>0<2147483647):0){n=b[7091]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){c=0;break}a=ae(c|0)|0;if((a|0)==(d|0)){h=c;g=d;q=145;break d}else{e=a;q=136}}else c=0}while(0);do if((q|0)==136){d=0-c|0;if(!(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){c=0;break}else{h=c;g=e;q=145;break d}a=b[7101]|0;a=j-c+a&0-a;if(a>>>0>=2147483647){h=c;g=e;q=145;break d}if((ae(a|0)|0)==(-1|0)){ae(d|0)|0;c=0;break}else{h=a+c|0;g=e;q=145;break d}}while(0);b[7092]=b[7092]|4;q=143}else{c=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=ae(k|0)|0,p=ae(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:c;g=t;q=145}if((q|0)==145){c=(b[7089]|0)+h|0;b[7089]=c;if(c>>>0>(b[7090]|0)>>>0)b[7090]=c;j=b[6987]|0;f:do if(j){c=28372;while(1){a=b[c>>2]|0;d=b[c+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=b[c+8>>2]|0;if(!e)break;else c=e}if(((q|0)==154?(u=c+4|0,(b[c+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){b[u>>2]=d+h;v=(b[6984]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;b[6987]=u;b[6984]=t;b[u+4>>2]=t|1;b[j+v+4>>2]=40;b[6988]=b[7103];break}if(g>>>0<(b[6985]|0)>>>0)b[6985]=g;d=g+h|0;c=28372;while(1){if((b[c>>2]|0)==(d|0)){q=162;break}a=b[c+8>>2]|0;if(!a)break;else c=a}if((q|0)==162?(b[c+12>>2]&8|0)==0:0){b[c>>2]=g;l=c+4|0;b[l>>2]=(b[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;c=d+8|0;c=d+((c&7|0)==0?0:0-c&7)|0;k=l+m|0;i=c-l-m|0;b[l+4>>2]=m|3;g:do if((j|0)==(c|0)){v=(b[6984]|0)+i|0;b[6984]=v;b[6987]=k;b[k+4>>2]=v|1}else{if((b[6986]|0)==(c|0)){v=(b[6983]|0)+i|0;b[6983]=v;b[6986]=k;b[k+4>>2]=v|1;b[k+v>>2]=v;break}a=b[c+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=b[c+8>>2]|0;d=b[c+12>>2]|0;if((d|0)==(a|0)){b[6981]=b[6981]&~(1<>2]=d;b[d+8>>2]=a;break}}else{g=b[c+24>>2]|0;a=b[c+12>>2]|0;do if((a|0)==(c|0)){d=c+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{v=b[c+8>>2]|0;b[v+12>>2]=a;b[a+8>>2]=v}while(0);if(!g)break;d=b[c+28>>2]|0;e=28228+(d<<2)|0;do if((b[e>>2]|0)!=(c|0)){v=g+16|0;b[((b[v>>2]|0)==(c|0)?v:g+20|0)>>2]=a;if(!a)break h}else{b[e>>2]=a;if(a|0)break;b[6982]=b[6982]&~(1<>2]=g;d=c+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(!d)break;b[a+20>>2]=d;b[d+24>>2]=a}while(0);c=c+h|0;f=h+i|0}else f=i;c=c+4|0;b[c>>2]=b[c>>2]&-2;b[k+4>>2]=f|1;b[k+f>>2]=f;c=f>>>3;if(f>>>0<256){d=27964+(c<<1<<2)|0;a=b[6981]|0;c=1<>2]|0}b[a>>2]=k;b[c+12>>2]=k;b[k+8>>2]=c;b[k+12>>2]=d;break}c=f>>>8;do if(!c)e=0;else{if(f>>>0>16777215){e=31;break}u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);c=28228+(e<<2)|0;b[k+28>>2]=e;a=k+16|0;b[a+4>>2]=0;b[a>>2]=0;a=b[6982]|0;d=1<>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break}c=b[c>>2]|0;i:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break i}else{e=e<<1;c=a}}b[d>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break g}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=k;b[u>>2]=k;b[k+8>>2]=v;b[k+12>>2]=c;b[k+24>>2]=0}while(0);v=l+8|0;T=w;return v|0}c=28372;while(1){a=b[c>>2]|0;if(a>>>0<=j>>>0?(v=a+(b[c+4>>2]|0)|0,v>>>0>j>>>0):0)break;c=b[c+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;c=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;b[6987]=u;b[6984]=t;b[u+4>>2]=t|1;b[g+d+4>>2]=40;b[6988]=b[7103];d=a+4|0;b[d>>2]=27;b[c>>2]=b[7093];b[c+4>>2]=b[7094];b[c+8>>2]=b[7095];b[c+12>>2]=b[7096];b[7093]=g;b[7094]=h;b[7096]=0;b[7095]=c;c=a+24|0;do{u=c;c=c+4|0;b[c>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;b[d>>2]=b[d>>2]&-2;b[j+4>>2]=g|1;b[a>>2]=g;c=g>>>3;if(g>>>0<256){d=27964+(c<<1<<2)|0;a=b[6981]|0;c=1<>2]|0}b[a>>2]=j;b[c+12>>2]=j;b[j+8>>2]=c;b[j+12>>2]=d;break}c=g>>>8;if(c)if(g>>>0>16777215)e=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=28228+(e<<2)|0;b[j+28>>2]=e;b[j+20>>2]=0;b[f>>2]=0;c=b[6982]|0;a=1<>2]=j;b[j+24>>2]=d;b[j+12>>2]=j;b[j+8>>2]=j;break}c=b[d>>2]|0;j:do if((b[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(g|0)){c=a;break j}else{e=e<<1;c=a}}b[d>>2]=j;b[j+24>>2]=c;b[j+12>>2]=j;b[j+8>>2]=j;break f}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=j;b[u>>2]=j;b[j+8>>2]=v;b[j+12>>2]=c;b[j+24>>2]=0}}else{v=b[6985]|0;if((v|0)==0|g>>>0>>0)b[6985]=g;b[7093]=g;b[7094]=h;b[7096]=0;b[6990]=b[7099];b[6989]=-1;b[6994]=27964;b[6993]=27964;b[6996]=27972;b[6995]=27972;b[6998]=27980;b[6997]=27980;b[7e3]=27988;b[6999]=27988;b[7002]=27996;b[7001]=27996;b[7004]=28004;b[7003]=28004;b[7006]=28012;b[7005]=28012;b[7008]=28020;b[7007]=28020;b[7010]=28028;b[7009]=28028;b[7012]=28036;b[7011]=28036;b[7014]=28044;b[7013]=28044;b[7016]=28052;b[7015]=28052;b[7018]=28060;b[7017]=28060;b[7020]=28068;b[7019]=28068;b[7022]=28076;b[7021]=28076;b[7024]=28084;b[7023]=28084;b[7026]=28092;b[7025]=28092;b[7028]=28100;b[7027]=28100;b[7030]=28108;b[7029]=28108;b[7032]=28116;b[7031]=28116;b[7034]=28124;b[7033]=28124;b[7036]=28132;b[7035]=28132;b[7038]=28140;b[7037]=28140;b[7040]=28148;b[7039]=28148;b[7042]=28156;b[7041]=28156;b[7044]=28164;b[7043]=28164;b[7046]=28172;b[7045]=28172;b[7048]=28180;b[7047]=28180;b[7050]=28188;b[7049]=28188;b[7052]=28196;b[7051]=28196;b[7054]=28204;b[7053]=28204;b[7056]=28212;b[7055]=28212;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;b[6987]=u;b[6984]=t;b[u+4>>2]=t|1;b[g+v+4>>2]=40;b[6988]=b[7103]}while(0);c=b[6984]|0;if(c>>>0>m>>>0){t=c-m|0;b[6984]=t;v=b[6987]|0;u=v+m|0;b[6987]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;T=w;return v|0}}v=Ed()|0;b[v>>2]=12;v=0;T=w;return v|0}function Hd(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=b[6985]|0;a=b[a+-4>>2]|0;c=a&-8;j=d+c|0;do if(!(a&1)){e=b[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+c|0;if(h>>>0>>0)return;if((b[6986]|0)==(h|0)){a=j+4|0;c=b[a>>2]|0;if((c&3|0)!=3){i=h;c=g;break}b[6983]=g;b[a>>2]=c&-2;b[h+4>>2]=g|1;b[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=b[h+8>>2]|0;c=b[h+12>>2]|0;if((c|0)==(a|0)){b[6981]=b[6981]&~(1<>2]=c;b[c+8>>2]=a;i=h;c=g;break}}f=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0}else{i=b[h+8>>2]|0;b[i+12>>2]=a;b[a+8>>2]=i}while(0);if(f){c=b[h+28>>2]|0;d=28228+(c<<2)|0;if((b[d>>2]|0)==(h|0)){b[d>>2]=a;if(!a){b[6982]=b[6982]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;c=g;break}}b[a+24>>2]=f;c=h+16|0;d=b[c>>2]|0;if(d|0){b[a+16>>2]=d;b[d+24>>2]=a}c=b[c+4>>2]|0;if(c){b[a+20>>2]=c;b[c+24>>2]=a;i=h;c=g}else{i=h;c=g}}else{i=h;c=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=b[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((b[6987]|0)==(j|0)){j=(b[6984]|0)+c|0;b[6984]=j;b[6987]=i;b[i+4>>2]=j|1;if((i|0)!=(b[6986]|0))return;b[6986]=0;b[6983]=0;return}if((b[6986]|0)==(j|0)){j=(b[6983]|0)+c|0;b[6983]=j;b[6986]=h;b[i+4>>2]=j|1;b[h+j>>2]=j;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){c=b[j+8>>2]|0;a=b[j+12>>2]|0;if((a|0)==(c|0)){b[6981]=b[6981]&~(1<>2]=a;b[a+8>>2]=c;break}}else{g=b[j+24>>2]|0;a=b[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){d=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0;d=a}else{d=b[j+8>>2]|0;b[d+12>>2]=a;b[a+8>>2]=d;d=a}while(0);if(g|0){a=b[j+28>>2]|0;c=28228+(a<<2)|0;if((b[c>>2]|0)==(j|0)){b[c>>2]=d;if(!d){b[6982]=b[6982]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;a=j+16|0;c=b[a>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}a=b[a+4>>2]|0;if(a|0){b[d+20>>2]=a;b[a+24>>2]=d}}}while(0);b[i+4>>2]=f|1;b[h+f>>2]=f;if((i|0)==(b[6986]|0)){b[6983]=f;return}}else{b[a>>2]=e&-2;b[i+4>>2]=c|1;b[h+c>>2]=c;f=c}a=f>>>3;if(f>>>0<256){d=27964+(a<<1<<2)|0;c=b[6981]|0;a=1<>2]|0}b[c>>2]=i;b[a+12>>2]=i;b[i+8>>2]=a;b[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=28228+(e<<2)|0;b[i+28>>2]=e;b[i+20>>2]=0;b[i+16>>2]=0;c=b[6982]|0;d=1<>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i}else{a=b[a>>2]|0;b:do if((b[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;c=b[d>>2]|0;if(!c)break;if((b[c+4>>2]&-8|0)==(f|0)){a=c;break b}else{e=e<<1;a=c}}b[d>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i;break a}while(0);h=a+8|0;j=b[h>>2]|0;b[j+12>>2]=i;b[h>>2]=i;b[i+8>>2]=j;b[i+12>>2]=a;b[i+24>>2]=0}while(0);j=(b[6989]|0)+-1|0;b[6989]=j;if(j|0)return;a=28380;while(1){a=b[a>>2]|0;if(!a)break;else a=a+8|0}b[6989]=-1;return}function Id(a,c){a=a|0;c=c|0;var d=0;if(a){d=B(c,a)|0;if((c|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(c|0)?d:-1}else d=0;a=Gd(d)|0;if(!a)return a|0;if(!(b[a+-4>>2]&3))return a|0;_d(a|0,0,d|0)|0;return a|0}function Jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (G(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function Kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (G(d|0),a-c>>>0|0)|0}function Ld(a){a=a|0;return (a?31-(E(a^a-1)|0)|0:32)|0}function Md(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=c;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){b[f>>2]=(l>>>0)%(h>>>0);b[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (G(n|0),f)|0}else{if(!g){n=0;f=0;return (G(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=c&0;n=0;f=0;return (G(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(E(i|0)|0)-(E(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;c=g-31>>31;h=m;a=l>>>(m>>>0)&c|k<>>(m>>>0)&c;g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;n=0;f=0;return (G(n|0),f)|0}g=h-1|0;if(g&h|0){i=(E(h|0)|0)+33-(E(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;c=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&c;c=c&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){b[f>>2]=g&l;b[f+4>>2]=0}if((h|0)==1){o=j|c&0;p=a|0|0;return (G(o|0),p)|0}else{p=Ld(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (G(o|0),p)|0}}else{if(g){if(f|0){b[f>>2]=(k>>>0)%(h>>>0);b[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (G(o|0),p)|0}if(!l){if(f|0){b[f>>2]=0;b[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (G(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){b[f>>2]=a|0;b[f+4>>2]=g&k|c&0}o=0;p=k>>>((Ld(i|0)|0)>>>0);return (G(o|0),p)|0}g=(E(i|0)|0)-(E(k|0)|0)|0;if(g>>>0<=30){c=g+1|0;i=31-g|0;h=c;a=k<>>(c>>>0);c=k>>>(c>>>0);g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;o=0;p=0;return (G(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=Jd(m|0,l|0,-1,-1)|0;d=H()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|c<<1|0;Kd(k|0,d|0,e|0,n|0)|0;p=H()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=Kd(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;c=H()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){b[f>>2]=a;b[f+4>>2]=c}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (G(o|0),p)|0}function Nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=Kd(j^a|0,i^b|0,j|0,i|0)|0;g=H()|0;a=f^j;b=e^i;return Kd((Md(h,g,Kd(f^c|0,e^d|0,f|0,e|0)|0,H()|0,0)|0)^a|0,(H()|0)^b|0,a|0,b|0)|0}function Od(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=B(e,f)|0;d=a>>>16;a=(c>>>16)+(B(e,d)|0)|0;e=b>>>16;b=B(e,f)|0;return (G((a>>>16)+(B(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function Pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=Od(e,f)|0;a=H()|0;return (G((B(b,f)|0)+(B(d,e)|0)+a|a&0|0),c|0|0)|0}function Qd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=T;T=T+16|0;i=f|0;h=c>>31|((c|0)<0?-1:0)<<1;g=((c|0)<0?-1:0)>>31|((c|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=Kd(h^a|0,g^c|0,h|0,g|0)|0;c=H()|0;Md(a,c,Kd(k^d|0,j^e|0,k|0,j|0)|0,H()|0,i)|0;e=Kd(b[i>>2]^h|0,b[i+4>>2]^g|0,h|0,g|0)|0;d=H()|0;T=f;return (G(d|0),e)|0}function Rd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=T;T=T+16|0;f=g|0;Md(a,c,d,e,f)|0;T=g;return (G(b[f+4>>2]|0),b[f>>2]|0)|0}function Sd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G(b>>c|0);return a>>>c|(b&(1<>c-32|0}function Td(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function Ud(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){G(b<>>32-c|0);return a<=0.0?+p(a+.5):+A(a-.5)}function Zd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){L(c|0,d|0,e|0)|0;return c|0}h=c|0;g=c+e|0;if((c&3)==(d&3)){while(c&3){if(!e)return h|0;a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((c|0)<=(f|0)){b[c>>2]=b[d>>2];b[c+4>>2]=b[d+4>>2];b[c+8>>2]=b[d+8>>2];b[c+12>>2]=b[d+12>>2];b[c+16>>2]=b[d+16>>2];b[c+20>>2]=b[d+20>>2];b[c+24>>2]=b[d+24>>2];b[c+28>>2]=b[d+28>>2];b[c+32>>2]=b[d+32>>2];b[c+36>>2]=b[d+36>>2];b[c+40>>2]=b[d+40>>2];b[c+44>>2]=b[d+44>>2];b[c+48>>2]=b[d+48>>2];b[c+52>>2]=b[d+52>>2];b[c+56>>2]=b[d+56>>2];b[c+60>>2]=b[d+60>>2];c=c+64|0;d=d+64|0}while((c|0)<(e|0)){b[c>>2]=b[d>>2];c=c+4|0;d=d+4|0}}else{e=g-4|0;while((c|0)<(e|0)){a[c>>0]=a[d>>0]|0;a[c+1>>0]=a[d+1>>0]|0;a[c+2>>0]=a[d+2>>0]|0;a[c+3>>0]=a[d+3>>0]|0;c=c+4|0;d=d+4|0}}while((c|0)<(g|0)){a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}return h|0}function _d(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c+e|0;d=d&255;if((e|0)>=67){while(c&3){a[c>>0]=d;c=c+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((c|0)<=(g|0)){b[c>>2]=i;b[c+4>>2]=i;b[c+8>>2]=i;b[c+12>>2]=i;b[c+16>>2]=i;b[c+20>>2]=i;b[c+24>>2]=i;b[c+28>>2]=i;b[c+32>>2]=i;b[c+36>>2]=i;b[c+40>>2]=i;b[c+44>>2]=i;b[c+48>>2]=i;b[c+52>>2]=i;b[c+56>>2]=i;b[c+60>>2]=i;c=c+64|0}while((c|0)<(f|0)){b[c>>2]=i;c=c+4|0}}while((c|0)<(h|0)){a[c>>0]=d;c=c+1|0}return h-e|0}function $d(a){a=+a;return a>=0.0?+p(a+.5):+A(a-.5)}function ae(a){a=a|0;var c=0,d=0,e=0;e=K()|0;d=b[g>>2]|0;c=d+a|0;if((a|0)>0&(c|0)<(d|0)|(c|0)<0){N(c|0)|0;J(12);return -1}if((c|0)>(e|0))if(!(M(c|0)|0)){J(12);return -1}b[g>>2]=c;return d|0} +function X(a){a=a|0;var b=0;b=S;S=S+a|0;S=S+15&-16;return b|0}function Y(){return S|0}function Z(a){a=a|0;S=a}function _(a,b){a=a|0;b=b|0;S=a;T=b}function $(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;if((a|0)<0){c=2;return c|0}if((a|0)>13780509){c=bc(15,c)|0;return c|0}else{d=((a|0)<0)<<31>>31;f=pd(a|0,d|0,3,0)|0;e=G()|0;d=jd(a|0,d|0,1,0)|0;d=pd(f|0,e|0,d|0,G()|0)|0;d=jd(d|0,G()|0,1,0)|0;a=G()|0;b[c>>2]=d;b[c+4>>2]=a;c=0;return c|0}return 0}function aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ba(a,b,c,d,0)|0}function ba(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=S;S=S+16|0;h=j;if(!(ca(a,c,d,e,f)|0)){e=0;S=j;return e|0}do if((d|0)>=0){if((d|0)>13780509){g=bc(15,h)|0;if(g|0)break;i=h;h=b[i>>2]|0;i=b[i+4>>2]|0}else{g=((d|0)<0)<<31>>31;k=pd(d|0,g|0,3,0)|0;i=G()|0;g=jd(d|0,g|0,1,0)|0;g=pd(k|0,i|0,g|0,G()|0)|0;g=jd(g|0,G()|0,1,0)|0;i=G()|0;b[h>>2]=g;b[h+4>>2]=i;h=g}Bd(e|0,0,h<<3|0)|0;if(f|0){Bd(f|0,0,h<<2|0)|0;g=da(a,c,d,e,f,h,i,0)|0;break}g=fd(h,4)|0;if(!g)g=13;else{k=da(a,c,d,e,g,h,i,0)|0;ed(g);g=k}}else g=2;while(0);k=g;S=j;return k|0}function ca(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;o=q;p=q+8|0;n=o;b[n>>2]=a;b[n+4>>2]=c;if((d|0)<0){p=2;S=q;return p|0}g=e;b[g>>2]=a;b[g+4>>2]=c;g=(f|0)!=0;if(g)b[f>>2]=0;if(rb(a,c)|0){p=9;S=q;return p|0}b[p>>2]=0;a:do if((d|0)>=1)if(g){l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=ea(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(rb(g,c)|0){g=9;break a}}g=ea(g,c,b[26864+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;b[f+(l<<2)>>2]=n;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(rb(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else{l=1;k=0;m=0;n=1;g=a;while(1){if(!(k|m)){g=ea(g,c,4,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;if(rb(g,c)|0){g=9;break a}}g=ea(g,c,b[26864+(m<<2)>>2]|0,p,o)|0;if(g|0)break a;c=o;g=b[c>>2]|0;c=b[c+4>>2]|0;a=e+(l<<3)|0;b[a>>2]=g;b[a+4>>2]=c;a=k+1|0;h=(a|0)==(n|0);i=m+1|0;j=(i|0)==6;if(rb(g,c)|0){g=9;break a}n=n+(j&h&1)|0;if((n|0)>(d|0)){g=0;break}else{l=l+1|0;k=h?0:a;m=h?(j?0:i):m}}}else g=0;while(0);p=g;S=q;return p|0}function da(a,c,d,e,f,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;q=S;S=S+16|0;o=q+8|0;p=q;j=rd(a|0,c|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;r=m;s=b[r>>2]|0;r=b[r+4>>2]|0;k=(s|0)==(a|0)&(r|0)==(c|0);if(!((s|0)==0&(r|0)==0|k))do{j=jd(j|0,l|0,1,0)|0;j=qd(j|0,G()|0,g|0,h|0)|0;l=G()|0;m=e+(j<<3)|0;s=m;r=b[s>>2]|0;s=b[s+4>>2]|0;k=(r|0)==(a|0)&(s|0)==(c|0)}while(!((r|0)==0&(s|0)==0|k));j=f+(j<<2)|0;if(k?(b[j>>2]|0)<=(i|0):0){s=0;S=q;return s|0}s=m;b[s>>2]=a;b[s+4>>2]=c;b[j>>2]=i;if((i|0)>=(d|0)){s=0;S=q;return s|0}k=i+1|0;b[o>>2]=0;j=ea(a,c,2,o,p)|0;switch(j|0){case 9:{n=9;break}case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(!j)n=9;break}default:{}}a:do if((n|0)==9){b[o>>2]=0;j=ea(a,c,3,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,1,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,5,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,4,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}b[o>>2]=0;j=ea(a,c,6,o,p)|0;switch(j|0){case 9:break;case 0:{j=p;j=da(b[j>>2]|0,b[j+4>>2]|0,d,e,f,g,h,k)|0;if(j|0)break a;break}default:break a}s=0;S=q;return s|0}while(0);s=j;S=q;return s|0}function ea(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(d>>>0>6){f=1;return f|0}h=(b[e>>2]|0)%6|0;b[e>>2]=h;a:do if((h|0)>0){g=0;while(1){switch(d|0){case 1:{d=5;break}case 5:{d=4;break}case 4:{d=6;break}case 6:{d=2;break}case 2:{d=3;break}case 3:{d=1;break}default:{}}g=g+1|0;if((g|0)==(h|0))break a}}while(0);m=td(a|0,c|0,45)|0;G()|0;l=m&127;if(l>>>0>121){f=5;return f|0}j=zb(a,c)|0;g=td(a|0,c|0,52)|0;G()|0;g=g&15;b:do if(!g)k=15;else{while(1){h=(15-g|0)*3|0;i=td(a|0,c|0,h|0)|0;G()|0;i=i&7;if((i|0)==7){c=5;break}p=(Fb(g)|0)==0;g=g+-1|0;n=ud(7,0,h|0)|0;c=c&~(G()|0);o=ud(b[(p?432:16)+(i*28|0)+(d<<2)>>2]|0,0,h|0)|0;h=G()|0;d=b[(p?640:224)+(i*28|0)+(d<<2)>>2]|0;a=o|a&~n;c=h|c;if(!d){d=0;break b}if(!g){k=15;break b}}return c|0}while(0);if((k|0)==15){p=b[848+(l*28|0)+(d<<2)>>2]|0;o=ud(p|0,0,45)|0;a=o|a;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+(d<<2)>>2]|0;if((p&127|0)==127){p=ud(b[848+(l*28|0)+20>>2]|0,0,45)|0;c=G()|0|c&-1040385;d=b[4272+(l*28|0)+20>>2]|0;a=Bb(p|a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1}}i=td(a|0,c|0,45)|0;G()|0;i=i&127;c:do if(!(ra(i)|0)){if((d|0)>0){g=0;do{a=Bb(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}}else{d:do if((zb(a,c)|0)==1){if((l|0)!=(i|0))if(xa(i,b[7696+(l*28|0)>>2]|0)|0){a=Db(a,c)|0;h=1;c=G()|0;break}else H(27634,26928,533,26936);switch(j|0){case 3:{a=Bb(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+1;h=0;break d}case 5:{a=Db(a,c)|0;c=G()|0;b[e>>2]=(b[e>>2]|0)+5;h=0;break d}case 0:{p=9;return p|0}default:{p=1;return p|0}}}else h=0;while(0);if((d|0)>0){g=0;do{a=Ab(a,c)|0;c=G()|0;g=g+1|0}while((g|0)!=(d|0))}if((l|0)!=(i|0)){if(!(sa(i)|0)){if((h|0)!=0|(zb(a,c)|0)!=5)break;b[e>>2]=(b[e>>2]|0)+1;break}switch(m&127){case 8:case 118:break c;default:{}}if((zb(a,c)|0)!=3)b[e>>2]=(b[e>>2]|0)+1}}while(0);b[e>>2]=((b[e>>2]|0)+d|0)%6|0;p=f;b[p>>2]=a;b[p+4>>2]=c;p=0;return p|0}function fa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!(ga(a,b,c,d)|0)){d=0;return d|0}Bd(d|0,0,c*48|0)|0;d=ha(a,b,c,d)|0;return d|0}function ga(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+16|0;n=p;o=p+8|0;m=n;b[m>>2]=a;b[m+4>>2]=c;if((d|0)<0){o=2;S=p;return o|0}if(!d){o=e;b[o>>2]=a;b[o+4>>2]=c;o=0;S=p;return o|0}b[o>>2]=0;a:do if(!(rb(a,c)|0)){f=0;m=a;do{a=ea(m,c,4,o,n)|0;if(a|0)break a;c=n;m=b[c>>2]|0;c=b[c+4>>2]|0;f=f+1|0;if(rb(m,c)|0){a=9;break a}}while((f|0)<(d|0));l=e;b[l>>2]=m;b[l+4>>2]=c;l=d+-1|0;k=0;a=1;do{f=26864+(k<<2)|0;if((k|0)==5){h=b[f>>2]|0;g=0;f=a;while(1){a=n;a=ea(b[a>>2]|0,b[a+4>>2]|0,h,o,n)|0;if(a|0)break a;if((g|0)!=(l|0)){j=n;i=b[j>>2]|0;j=b[j+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=i;b[a+4>>2]=j;if(!(rb(i,j)|0))a=f+1|0;else{a=9;break a}}else a=f;g=g+1|0;if((g|0)>=(d|0))break;else f=a}}else{h=n;j=b[f>>2]|0;i=0;f=a;g=b[h>>2]|0;h=b[h+4>>2]|0;while(1){a=ea(g,h,j,o,n)|0;if(a|0)break a;h=n;g=b[h>>2]|0;h=b[h+4>>2]|0;a=e+(f<<3)|0;b[a>>2]=g;b[a+4>>2]=h;a=f+1|0;if(rb(g,h)|0){a=9;break a}i=i+1|0;if((i|0)>=(d|0))break;else f=a}}k=k+1|0}while(k>>>0<6);a=n;a=((m|0)==(b[a>>2]|0)?(c|0)==(b[a+4>>2]|0):0)?0:9}else a=9;while(0);o=a;S=p;return o|0}function ha(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=S;S=S+16|0;h=m;if(!d){b[e>>2]=a;b[e+4>>2]=c;e=0;S=m;return e|0}do if((d|0)>=0){if((d|0)>13780509){f=bc(15,h)|0;if(f|0)break;g=h;f=b[g>>2]|0;g=b[g+4>>2]|0}else{f=((d|0)<0)<<31>>31;l=pd(d|0,f|0,3,0)|0;g=G()|0;f=jd(d|0,f|0,1,0)|0;f=pd(l|0,g|0,f|0,G()|0)|0;f=jd(f|0,G()|0,1,0)|0;g=G()|0;l=h;b[l>>2]=f;b[l+4>>2]=g}k=fd(f,8)|0;if(!k)f=13;else{l=fd(f,4)|0;if(!l){ed(k);f=13;break}f=da(a,c,d,k,l,f,g,0)|0;if(f|0){ed(k);ed(l);break}c=b[h>>2]|0;h=b[h+4>>2]|0;if((h|0)>0|(h|0)==0&c>>>0>0){f=0;i=0;j=0;do{a=k+(i<<3)|0;g=b[a>>2]|0;a=b[a+4>>2]|0;if(!((g|0)==0&(a|0)==0)?(b[l+(i<<2)>>2]|0)==(d|0):0){n=e+(f<<3)|0;b[n>>2]=g;b[n+4>>2]=a;f=f+1|0}i=jd(i|0,j|0,1,0)|0;j=G()|0}while((j|0)<(h|0)|(j|0)==(h|0)&i>>>0>>0)}ed(k);ed(l);f=0}}else f=2;while(0);n=f;S=m;return n|0}function ia(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+16|0;g=i;h=i+8|0;f=(rb(a,c)|0)==0;f=f?1:2;while(1){b[h>>2]=0;k=(ea(a,c,f,h,g)|0)==0;j=g;if(k&((b[j>>2]|0)==(d|0)?(b[j+4>>2]|0)==(e|0):0)){a=4;break}f=f+1|0;if(f>>>0>=7){f=7;a=4;break}}if((a|0)==4){S=i;return f|0}return 0}function ja(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+48|0;f=i+16|0;g=i+8|0;h=i;d=yc(d)|0;if(d|0){h=d;S=i;return h|0}k=a;j=b[k+4>>2]|0;d=g;b[d>>2]=b[k>>2];b[d+4>>2]=j;xc(g,f);d=Ka(f,c,h)|0;if(!d){c=b[g>>2]|0;g=b[a+8>>2]|0;if((g|0)>0){f=b[a+12>>2]|0;d=0;do{c=(b[f+(d<<3)>>2]|0)+c|0;d=d+1|0}while((d|0)<(g|0))}d=h;f=b[d>>2]|0;d=b[d+4>>2]|0;g=((c|0)<0)<<31>>31;if((d|0)<(g|0)|(d|0)==(g|0)&f>>>0>>0){d=h;b[d>>2]=c;b[d+4>>2]=g;d=g}else c=f;j=jd(c|0,d|0,12,0)|0;k=G()|0;d=h;b[d>>2]=j;b[d+4>>2]=k;d=e;b[d>>2]=j;b[d+4>>2]=k;d=0}k=d;S=i;return k|0}function ka(a,c,d,f,g,h,i){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0;I=S;S=S+64|0;D=I+48|0;E=I+32|0;F=I+24|0;x=I+8|0;y=I;k=b[a>>2]|0;if((k|0)<=0){H=0;S=I;return H|0}z=a+4|0;A=D+8|0;B=E+8|0;C=x+8|0;j=0;v=0;while(1){l=b[z>>2]|0;u=l+(v<<4)|0;b[D>>2]=b[u>>2];b[D+4>>2]=b[u+4>>2];b[D+8>>2]=b[u+8>>2];b[D+12>>2]=b[u+12>>2];if((v|0)==(k+-1|0)){b[E>>2]=b[l>>2];b[E+4>>2]=b[l+4>>2];b[E+8>>2]=b[l+8>>2];b[E+12>>2]=b[l+12>>2]}else{u=l+(v+1<<4)|0;b[E>>2]=b[u>>2];b[E+4>>2]=b[u+4>>2];b[E+8>>2]=b[u+8>>2];b[E+12>>2]=b[u+12>>2]}k=La(D,E,f,F)|0;a:do if(!k){k=F;l=b[k>>2]|0;k=b[k+4>>2]|0;if((k|0)>0|(k|0)==0&l>>>0>0){t=0;u=0;b:while(1){K=1.0/(+(l>>>0)+4294967296.0*+(k|0));M=+e[D>>3];k=kd(l|0,k|0,t|0,u|0)|0;L=+(k>>>0)+4294967296.0*+(G()|0);J=+(t>>>0)+4294967296.0*+(u|0);e[x>>3]=K*(M*L)+K*(+e[E>>3]*J);e[C>>3]=K*(+e[A>>3]*L)+K*(+e[B>>3]*J);k=Gb(x,f,y)|0;if(k|0){j=k;break}s=y;r=b[s>>2]|0;s=b[s+4>>2]|0;o=rd(r|0,s|0,c|0,d|0)|0;m=G()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;c:do if((l|0)==0&(n|0)==0){w=k;H=16}else{p=0;q=0;while(1){if((p|0)>(d|0)|(p|0)==(d|0)&q>>>0>c>>>0){j=1;break b}if((l|0)==(r|0)&(n|0)==(s|0))break c;k=jd(o|0,m|0,1,0)|0;o=qd(k|0,G()|0,c|0,d|0)|0;m=G()|0;q=jd(q|0,p|0,1,0)|0;p=G()|0;k=i+(o<<3)|0;n=k;l=b[n>>2]|0;n=b[n+4>>2]|0;if((l|0)==0&(n|0)==0){w=k;H=16;break}}}while(0);if((H|0)==16?(H=0,!((r|0)==0&(s|0)==0)):0){q=w;b[q>>2]=r;b[q+4>>2]=s;q=h+(b[g>>2]<<3)|0;b[q>>2]=r;b[q+4>>2]=s;q=g;q=jd(b[q>>2]|0,b[q+4>>2]|0,1,0)|0;r=G()|0;s=g;b[s>>2]=q;b[s+4>>2]=r}t=jd(t|0,u|0,1,0)|0;u=G()|0;k=F;l=b[k>>2]|0;k=b[k+4>>2]|0;if(!((k|0)>(u|0)|(k|0)==(u|0)&l>>>0>t>>>0)){l=1;break a}}l=0}else l=1}else{l=0;j=k}while(0);v=v+1|0;if(!l){H=21;break}k=b[a>>2]|0;if((v|0)>=(k|0)){j=0;H=21;break}}if((H|0)==21){S=I;return j|0}return 0}function la(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,H=0,I=0,J=0,K=0;K=S;S=S+112|0;F=K+80|0;j=K+72|0;H=K;I=K+56|0;f=yc(d)|0;if(f|0){J=f;S=K;return J|0}k=a+8|0;J=dd((b[k>>2]<<5)+32|0)|0;if(!J){J=13;S=K;return J|0}zc(a,J);f=yc(d)|0;if(!f){D=a;E=b[D+4>>2]|0;f=j;b[f>>2]=b[D>>2];b[f+4>>2]=E;xc(j,F);f=Ka(F,c,H)|0;if(!f){f=b[j>>2]|0;g=b[k>>2]|0;if((g|0)>0){h=b[a+12>>2]|0;d=0;do{f=(b[h+(d<<3)>>2]|0)+f|0;d=d+1|0}while((d|0)!=(g|0));d=f}else d=f;f=H;g=b[f>>2]|0;f=b[f+4>>2]|0;h=((d|0)<0)<<31>>31;if((f|0)<(h|0)|(f|0)==(h|0)&g>>>0>>0){f=H;b[f>>2]=d;b[f+4>>2]=h;f=h}else d=g;D=jd(d|0,f|0,12,0)|0;E=G()|0;f=H;b[f>>2]=D;b[f+4>>2]=E;f=0}else{D=0;E=0}if(!f){d=fd(D,8)|0;if(!d){ed(J);J=13;S=K;return J|0}i=fd(D,8)|0;if(!i){ed(J);ed(d);J=13;S=K;return J|0}B=F;b[B>>2]=0;b[B+4>>2]=0;B=a;C=b[B+4>>2]|0;f=j;b[f>>2]=b[B>>2];b[f+4>>2]=C;f=ka(j,D,E,c,F,d,i)|0;a:do if(!f){b:do if((b[k>>2]|0)>0){h=a+12|0;g=0;while(1){f=ka((b[h>>2]|0)+(g<<3)|0,D,E,c,F,d,i)|0;g=g+1|0;if(f|0)break;if((g|0)>=(b[k>>2]|0))break b}ed(d);ed(i);ed(J);break a}while(0);if((E|0)>0|(E|0)==0&D>>>0>0)Bd(i|0,0,D<<3|0)|0;C=F;B=b[C+4>>2]|0;c:do if((B|0)>0|(B|0)==0&(b[C>>2]|0)>>>0>0){y=d;z=i;A=d;B=i;C=d;f=d;v=d;w=i;x=i;d=i;d:while(1){r=0;s=0;t=0;u=0;g=0;h=0;while(1){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));c=y+(r<<3)|0;k=b[c>>2]|0;c=b[c+4>>2]|0;if(ca(k,c,1,H,0)|0){i=H;j=i+56|0;do{b[i>>2]=0;i=i+4|0}while((i|0)<(j|0));i=fd(7,4)|0;if(i|0){da(k,c,1,H,i,7,0,0)|0;ed(i)}}q=0;while(1){p=H+(q<<3)|0;o=b[p>>2]|0;p=b[p+4>>2]|0;e:do if((o|0)==0&(p|0)==0){i=g;j=h}else{l=rd(o|0,p|0,D|0,E|0)|0;k=G()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0;if(!((j|0)==0&(c|0)==0)){m=0;n=0;do{if((m|0)>(E|0)|(m|0)==(E|0)&n>>>0>D>>>0)break d;if((j|0)==(o|0)&(c|0)==(p|0)){i=g;j=h;break e}i=jd(l|0,k|0,1,0)|0;l=qd(i|0,G()|0,D|0,E|0)|0;k=G()|0;n=jd(n|0,m|0,1,0)|0;m=G()|0;i=e+(l<<3)|0;c=i;j=b[c>>2]|0;c=b[c+4>>2]|0}while(!((j|0)==0&(c|0)==0))}if((o|0)==0&(p|0)==0){i=g;j=h;break}Jb(o,p,I)|0;if(Ac(a,J,I)|0){n=jd(g|0,h|0,1,0)|0;h=G()|0;m=i;b[m>>2]=o;b[m+4>>2]=p;g=z+(g<<3)|0;b[g>>2]=o;b[g+4>>2]=p;g=n}i=g;j=h}while(0);q=q+1|0;if(q>>>0>=7)break;else{g=i;h=j}}r=jd(r|0,s|0,1,0)|0;s=G()|0;t=jd(t|0,u|0,1,0)|0;u=G()|0;h=F;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((u|0)<(h|0)|(u|0)==(h|0)&t>>>0>>0))break;else{g=i;h=j}}if((h|0)>0|(h|0)==0&g>>>0>0){g=0;h=0;do{u=y+(g<<3)|0;b[u>>2]=0;b[u+4>>2]=0;g=jd(g|0,h|0,1,0)|0;h=G()|0;u=F;t=b[u+4>>2]|0}while((h|0)<(t|0)|((h|0)==(t|0)?g>>>0<(b[u>>2]|0)>>>0:0))}u=F;b[u>>2]=i;b[u+4>>2]=j;if((j|0)>0|(j|0)==0&i>>>0>0){q=d;r=x;s=C;t=w;u=z;d=v;x=f;w=A;v=q;f=r;C=B;B=s;A=t;z=y;y=u}else break c}ed(A);ed(B);ed(J);f=1;break a}else f=i;while(0);ed(J);ed(d);ed(f);f=0}else{ed(d);ed(i);ed(J)}while(0);J=f;S=K;return J|0}}ed(J);J=f;S=K;return J|0}function ma(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=S;S=S+16|0;h=i;a=Na(a,c,((c|0)<0)<<31>>31,h)|0;if(a|0){h=a;S=i;return h|0}g=gc(h,d)|0;d=h+4|0;if((b[h>>2]|0)>0){c=0;do{f=b[d>>2]|0;e=f+(c<<4)+4|0;ed(b[e>>2]|0);b[e>>2]=0;b[f+(c<<4)>>2]=0;e=f+(c<<4)+8|0;f=f+(c<<4)+12|0;if((b[e>>2]|0)>0){a=0;do{j=b[f>>2]|0;k=j+(a<<3)+4|0;ed(b[k>>2]|0);b[k>>2]=0;b[j+(a<<3)>>2]=0;a=a+1|0}while((a|0)<(b[e>>2]|0))}ed(b[f>>2]|0);b[f>>2]=0;b[e>>2]=0;c=c+1|0}while((c|0)<(b[h>>2]|0))}ed(b[d>>2]|0);b[d>>2]=0;b[h>>2]=0;k=g;S=i;return k|0}function na(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0;i=b[a>>2]|0;if((i|0)<=0){g=0.0;f=0.0;i=g<0.0;f=12.566370614359172-f;f=g+f;g=i?f:g;e[c>>3]=g;return 0}h=b[a+4>>2]|0;a=(i|0)!=1&1;j=+e[h>>3]*.5+.7853981633974483;g=+e[h+(a<<4)>>3]*.5+.7853981633974483;d=+t(+j)*+t(+g);f=+e[h+(a<<4)+8>>3]-+e[h+8>>3];d=+y(+(+t(+f)*d),+(+s(+j)*+s(+g)+ +s(+f)*d))*-2.0;f=d+0.0;d=f-d;if((i|0)==1){j=f;g=d;i=j<0.0;g=12.566370614359172-g;g=j+g;j=i?g:j;e[c>>3]=j;return 0}a=1;g=f;while(1){m=a;a=a+1|0;n=(a|0)%(i|0)|0;l=+e[h+(m<<4)>>3]*.5+.7853981633974483;k=+e[h+(n<<4)>>3]*.5+.7853981633974483;f=+t(+l)*+t(+k);j=+e[h+(n<<4)+8>>3]-+e[h+(m<<4)+8>>3];d=+y(+(+t(+j)*f),+(+s(+l)*+s(+k)+ +s(+j)*f))*-2.0-d;f=g+d;d=f-g-d;if((a|0)>=(i|0))break;else g=f}n=f<0.0;l=12.566370614359172-d;l=f+l;l=n?l:f;e[c>>3]=l;return 0}function oa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=S;S=S+192|0;e=h+176|0;f=h;g=h+168|0;a=Kb(a,c,f)|0;if(a|0){g=a;S=h;return g|0}b[g>>2]=b[f>>2];b[g+4>>2]=f+8;b[e>>2]=b[g>>2];b[e+4>>2]=b[g+4>>2];na(e,d)|0;g=0;S=h;return g|0}function pa(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;i=S;S=S+192|0;f=i+176|0;g=i;h=i+168|0;a=Kb(a,c,g)|0;if(!a){b[h>>2]=b[g>>2];b[h+4>>2]=g+8;b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];na(f,d)|0;e[d>>3]=+e[d>>3]*40589732.49931477;h=0;S=i;return h|0}else{h=a;S=i;return h|0}return 0}function qa(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0,i=0;i=S;S=S+192|0;f=i+176|0;g=i;h=i+168|0;a=Kb(a,c,g)|0;if(!a){b[h>>2]=b[g>>2];b[h+4>>2]=g+8;b[f>>2]=b[h>>2];b[f+4>>2]=b[h+4>>2];na(f,d)|0;e[d>>3]=+e[d>>3]*40589732.49931477*1.0e6;h=0;S=i;return h|0}else{h=a;S=i;return h|0}return 0}function ra(a){a=a|0;if(a>>>0>121){a=0;return a|0}a=b[7696+(a*28|0)+16>>2]|0;return a|0}function sa(a){a=a|0;return (a|0)==4|(a|0)==117|0}function ta(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)>>2]|0}function ua(a){a=a|0;return b[11120+((b[a>>2]|0)*216|0)+((b[a+4>>2]|0)*72|0)+((b[a+8>>2]|0)*24|0)+(b[a+12>>2]<<3)+4>>2]|0}function va(a,c){a=a|0;c=c|0;a=7696+(a*28|0)|0;b[c>>2]=b[a>>2];b[c+4>>2]=b[a+4>>2];b[c+8>>2]=b[a+8>>2];b[c+12>>2]=b[a+12>>2];return}function wa(a,c){a=a|0;c=c|0;var d=0,e=0;if(c>>>0>20){c=-1;return c|0}do if((b[11120+(c*216|0)>>2]|0)!=(a|0))if((b[11120+(c*216|0)+8>>2]|0)!=(a|0))if((b[11120+(c*216|0)+16>>2]|0)!=(a|0))if((b[11120+(c*216|0)+24>>2]|0)!=(a|0))if((b[11120+(c*216|0)+32>>2]|0)!=(a|0))if((b[11120+(c*216|0)+40>>2]|0)!=(a|0))if((b[11120+(c*216|0)+48>>2]|0)!=(a|0))if((b[11120+(c*216|0)+56>>2]|0)!=(a|0))if((b[11120+(c*216|0)+64>>2]|0)!=(a|0))if((b[11120+(c*216|0)+72>>2]|0)!=(a|0))if((b[11120+(c*216|0)+80>>2]|0)!=(a|0))if((b[11120+(c*216|0)+88>>2]|0)!=(a|0))if((b[11120+(c*216|0)+96>>2]|0)!=(a|0))if((b[11120+(c*216|0)+104>>2]|0)!=(a|0))if((b[11120+(c*216|0)+112>>2]|0)!=(a|0))if((b[11120+(c*216|0)+120>>2]|0)!=(a|0))if((b[11120+(c*216|0)+128>>2]|0)!=(a|0))if((b[11120+(c*216|0)+136>>2]|0)==(a|0)){a=2;d=1;e=2}else{if((b[11120+(c*216|0)+144>>2]|0)==(a|0)){a=0;d=2;e=0;break}if((b[11120+(c*216|0)+152>>2]|0)==(a|0)){a=0;d=2;e=1;break}if((b[11120+(c*216|0)+160>>2]|0)==(a|0)){a=0;d=2;e=2;break}if((b[11120+(c*216|0)+168>>2]|0)==(a|0)){a=1;d=2;e=0;break}if((b[11120+(c*216|0)+176>>2]|0)==(a|0)){a=1;d=2;e=1;break}if((b[11120+(c*216|0)+184>>2]|0)==(a|0)){a=1;d=2;e=2;break}if((b[11120+(c*216|0)+192>>2]|0)==(a|0)){a=2;d=2;e=0;break}if((b[11120+(c*216|0)+200>>2]|0)==(a|0)){a=2;d=2;e=1;break}if((b[11120+(c*216|0)+208>>2]|0)==(a|0)){a=2;d=2;e=2;break}else a=-1;return a|0}else{a=2;d=1;e=1}else{a=2;d=1;e=0}else{a=1;d=1;e=2}else{a=1;d=1;e=1}else{a=1;d=1;e=0}else{a=0;d=1;e=2}else{a=0;d=1;e=1}else{a=0;d=1;e=0}else{a=2;d=0;e=2}else{a=2;d=0;e=1}else{a=2;d=0;e=0}else{a=1;d=0;e=2}else{a=1;d=0;e=1}else{a=1;d=0;e=0}else{a=0;d=0;e=2}else{a=0;d=0;e=1}else{a=0;d=0;e=0}while(0);c=b[11120+(c*216|0)+(d*72|0)+(a*24|0)+(e<<3)+4>>2]|0;return c|0}function xa(a,c){a=a|0;c=c|0;if((b[7696+(a*28|0)+20>>2]|0)==(c|0)){c=1;return c|0}c=(b[7696+(a*28|0)+24>>2]|0)==(c|0);return c|0}function ya(a,c){a=a|0;c=c|0;return b[848+(a*28|0)+(c<<2)>>2]|0}function za(a,c){a=a|0;c=c|0;if((b[848+(a*28|0)>>2]|0)==(c|0)){c=0;return c|0}if((b[848+(a*28|0)+4>>2]|0)==(c|0)){c=1;return c|0}if((b[848+(a*28|0)+8>>2]|0)==(c|0)){c=2;return c|0}if((b[848+(a*28|0)+12>>2]|0)==(c|0)){c=3;return c|0}if((b[848+(a*28|0)+16>>2]|0)==(c|0)){c=4;return c|0}if((b[848+(a*28|0)+20>>2]|0)==(c|0)){c=5;return c|0}else return ((b[848+(a*28|0)+24>>2]|0)==(c|0)?6:7)|0;return 0}function Aa(){return 122}function Ba(a){a=a|0;var c=0,d=0,e=0;c=0;do{ud(c|0,0,45)|0;e=G()|0|134225919;d=a+(c<<3)|0;b[d>>2]=-1;b[d+4>>2]=e;c=c+1|0}while((c|0)!=122);return 0}function Ca(a){a=a|0;var b=0.0,c=0.0,d=0.0;d=+e[a+16>>3];c=+e[a+24>>3];b=d-c;return +(d>3]<+e[a+24>>3]|0}function Ea(a){a=a|0;return +(+e[a>>3]-+e[a+8>>3])}function Fa(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0;c=+e[b>>3];if(!(c>=+e[a+8>>3])){b=0;return b|0}if(!(c<=+e[a>>3])){b=0;return b|0}d=+e[a+16>>3];c=+e[a+24>>3];f=+e[b+8>>3];b=f>=c;a=f<=d&1;if(d>3]<+e[b+8>>3]){d=0;return d|0}if(+e[a+8>>3]>+e[b>>3]){d=0;return d|0}g=+e[a+16>>3];c=a+24|0;l=+e[c>>3];h=g>3];f=b+24|0;j=+e[f>>3];i=k>3],b)){i=0;return i|0}l=+Vb(+e[c>>3],a);if(l>+Vb(+e[d>>3],b)){i=0;return i|0}i=1;return i|0}function Ha(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0;h=+e[a+16>>3];k=+e[a+24>>3];a=h>3];i=+e[c+24>>3];g=j>2]=a?(g|c?1:2):0;b[f>>2]=g?(a?1:c?2:1):0;return}function Ia(a,b){a=a|0;b=b|0;var c=0,d=0,f=0,g=0.0,h=0,i=0,j=0.0,k=0.0,l=0.0;if(+e[a>>3]<+e[b>>3]){d=0;return d|0}if(+e[a+8>>3]>+e[b+8>>3]){d=0;return d|0}d=a+16|0;j=+e[d>>3];g=+e[a+24>>3];h=j>3];f=b+24|0;k=+e[f>>3];i=l>3],b))){i=0;return i|0}l=+Vb(+e[d>>3],a);i=l>=+Vb(+e[c>>3],b);return i|0}function Ja(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0;g=S;S=S+176|0;f=g;b[f>>2]=4;j=+e[c>>3];e[f+8>>3]=j;h=+e[c+16>>3];e[f+16>>3]=h;e[f+24>>3]=j;j=+e[c+24>>3];e[f+32>>3]=j;i=+e[c+8>>3];e[f+40>>3]=i;e[f+48>>3]=j;e[f+56>>3]=i;e[f+64>>3]=h;c=f+72|0;d=c+96|0;do{b[c>>2]=0;c=c+4|0}while((c|0)<(d|0));zd(a|0,f|0,168)|0;S=g;return}function Ka(a,c,d){a=a|0;c=c|0;d=d|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,r=0,s=0,t=0,u=0.0,v=0.0;t=S;S=S+288|0;n=t+264|0;o=t+96|0;m=t;k=m;l=k+96|0;do{b[k>>2]=0;k=k+4|0}while((k|0)<(l|0));c=Ob(c,m)|0;if(c|0){s=c;S=t;return s|0}l=m;m=b[l>>2]|0;l=b[l+4>>2]|0;Jb(m,l,n)|0;Kb(m,l,o)|0;j=+Xb(n,o+8|0);e[n>>3]=+e[a>>3];l=n+8|0;e[l>>3]=+e[a+16>>3];e[o>>3]=+e[a+8>>3];m=o+8|0;e[m>>3]=+e[a+24>>3];h=+Xb(n,o);v=+e[l>>3]-+e[m>>3];i=+q(+v);u=+e[n>>3]-+e[o>>3];g=+q(+u);if(!(v==0.0|u==0.0)?(v=+wd(+i,+g),v=+z(+(h*h/+xd(+(v/+xd(+i,+g)),3.0)/(j*(j*2.59807621135)*.8))),e[f>>3]=v,r=~~v>>>0,s=+q(v)>=1.0?(v>0.0?~~+B(+p(v/4294967296.0),4294967295.0)>>>0:~~+z((v-+(~~v>>>0))/4294967296.0)>>>0):0,!(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0)):0){o=(r|0)==0&(s|0)==0;c=d;b[c>>2]=o?1:r;b[c+4>>2]=o?0:s;c=0}else c=1;s=c;S=t;return s|0}function La(a,c,d,g){a=a|0;c=c|0;d=d|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=S;S=S+288|0;j=m+264|0;k=m+96|0;l=m;h=l;i=h+96|0;do{b[h>>2]=0;h=h+4|0}while((h|0)<(i|0));d=Ob(d,l)|0;if(d|0){g=d;S=m;return g|0}d=l;h=b[d>>2]|0;d=b[d+4>>2]|0;Jb(h,d,j)|0;Kb(h,d,k)|0;n=+Xb(j,k+8|0);n=+z(+(+Xb(a,c)/(n*2.0)));e[f>>3]=n;d=~~n>>>0;h=+q(n)>=1.0?(n>0.0?~~+B(+p(n/4294967296.0),4294967295.0)>>>0:~~+z((n-+(~~n>>>0))/4294967296.0)>>>0):0;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0){g=1;S=m;return g|0}l=(d|0)==0&(h|0)==0;b[g>>2]=l?1:d;b[g+4>>2]=l?0:h;g=0;S=m;return g|0}function Ma(a,b){a=a|0;b=+b;var c=0,d=0.0,f=0.0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0.0;g=a+16|0;h=+e[g>>3];c=a+24|0;f=+e[c>>3];d=h-f;d=h>3];i=a+8|0;j=+e[i>>3];l=k-j;d=(d*b-d)*.5;b=(l*b-l)*.5;k=k+b;e[a>>3]=k>1.5707963267948966?1.5707963267948966:k;b=j-b;e[i>>3]=b<-1.5707963267948966?-1.5707963267948966:b;b=h+d;b=b>3.141592653589793?b+-6.283185307179586:b;e[g>>3]=b<-3.141592653589793?b+6.283185307179586:b;b=f-d;b=b>3.141592653589793?b+-6.283185307179586:b;e[c>>3]=b<-3.141592653589793?b+6.283185307179586:b;return}function Na(c,d,f,g){c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,I=0;I=S;S=S+224|0;C=I;y=I+48|0;l=(f|0)>0|(f|0)==0&d>>>0>0;if(l&(f>>>0>0|(f|0)==0&d>>>0>17895697)){F=14;S=I;return F|0}if((f|0)<0){F=2;S=I;return F|0}if((d|0)==0&(f|0)==0){b[g>>2]=0;b[g+4>>2]=0;F=0;S=I;return F|0}h=c;h=ib(b[h>>2]|0,b[h+4>>2]|0)|0;j=0;k=0;while(1){i=c+(j<<3)|0;F=i;if(!(mb(b[F>>2]|0,b[F+4>>2]|0)|0)){h=5;D=159;break}F=i;F=(ib(b[F>>2]|0,b[F+4>>2]|0)|0)==(h|0);j=jd(j|0,k|0,1,0)|0;k=G()|0;if(!F){h=12;D=159;break}if(!((k|0)<(f|0)|(k|0)==(f|0)&j>>>0>>0)){D=8;break}}if((D|0)==8){do if((f|0)>0|(f|0)==0&d>>>0>1){h=d<<3;j=dd(h)|0;if(!j){F=13;S=I;return F|0}zd(j|0,c|0,h|0)|0;Wc(j,d,8,1);h=1;i=0;while(1){E=j+(h<<3)|0;F=j+(h+-1<<3)|0;F=(b[E>>2]|0)==(b[F>>2]|0)?(b[E+4>>2]|0)==(b[F+4>>2]|0):0;h=jd(h|0,i|0,1,0)|0;i=G()|0;if(F)break;if(!((i|0)<(f|0)|(i|0)==(f|0)&h>>>0>>0)){D=14;break}}if((D|0)==14){ed(j);break}ed(j);F=10;S=I;return F|0}while(0);h=pd(d|0,f|0,6,0)|0;i=G()|0;if(l){j=0;k=0;do{F=c+(k<<3)|0;F=((rb(b[F>>2]|0,b[F+4>>2]|0)|0)!=0)<<31>>31;h=jd(h|0,i|0,F|0,((F|0)<0)<<31>>31|0)|0;i=G()|0;k=jd(k|0,j|0,1,0)|0;j=G()|0}while((j|0)<(f|0)|(j|0)==(f|0)&k>>>0>>0);x=h;w=i}else{x=h;w=i}u=pd(x|0,w|0,10,0)|0;v=G()|0;E=dd(x<<5)|0;if(!E){F=13;S=I;return F|0}F=fd(u,4)|0;if(!F){ed(E);F=13;S=I;return F|0}a:do if(l){B=c;if(Ya(b[B>>2]|0,b[B+4>>2]|0,C)|0)H(27634,26956,108,26975);q=E;r=0;s=0;h=0;t=0;while(1){l=C;l=(b[l>>2]|0)==0&(b[l+4>>2]|0)==0;i=l?26990:26995;j=l?5:6;k=l?0:0;l=C+((l&1)<<3)|0;m=jd(j|0,k|0,-1,-1)|0;n=G()|0;o=0;p=0;do{A=l+(o<<3)|0;z=b[A+4>>2]|0;B=q+(o<<5)|0;b[B>>2]=b[A>>2];b[B+4>>2]=z;a[q+(o<<5)+9>>0]=0;a[q+(o<<5)+8>>0]=0;b[q+(o<<5)+20>>2]=q;B=q+(o<<5)+24|0;b[B>>2]=1;b[B+4>>2]=0;B=a[i+o>>0]|0;z=jd(m|0,n|0,o|0,p|0)|0;z=rd(z|0,G()|0,j|0,k|0)|0;G()|0;z=a[i+z>>0]|0;o=jd(o|0,p|0,1,0)|0;p=G()|0;A=a[i+((o|0)==(j|0)&(p|0)==(k|0)?0:o)>>0]|0;B=B&255;b[q+(B<<5)+16>>2]=q+((z&255)<<5);b[q+(B<<5)+12>>2]=q+((A&255)<<5)}while(p>>>0>>0|(p|0)==(k|0)&o>>>0>>0);r=jd(r|0,s|0,1,0)|0;s=G()|0;h=jd(j|0,k|0,h|0,t|0)|0;t=G()|0;if(!((s|0)<(f|0)|(s|0)==(f|0)&r>>>0>>0))break a;B=c+(r<<3)|0;if(Ya(b[B>>2]|0,b[B+4>>2]|0,C)|0)break;else q=E+(h<<5)|0}H(27634,26956,108,26975)}while(0);if((w|0)>0|(w|0)==0&x>>>0>0){k=0;l=0;do{i=E+(k<<5)|0;j=b[i>>2]|0;i=b[i+4>>2]|0;h=td(j|0,i|0,30)|0;i=pd(h^j|0,(G()|0)^i|0,484763065,-1084733587)|0;j=G()|0;h=td(i|0,j|0,27)|0;j=pd(h^i|0,(G()|0)^j|0,321982955,-1798288965)|0;i=G()|0;h=td(j|0,i|0,31)|0;i=rd(h^j|0,(G()|0)^i|0,u|0,v|0)|0;j=G()|0;h=F+(i<<2)|0;if(b[h>>2]|0)do{h=jd(i|0,j|0,1,0)|0;i=qd(h|0,G()|0,u|0,v|0)|0;j=G()|0;h=F+(i<<2)|0}while((b[h>>2]|0)!=0);b[h>>2]=E+(k<<5);k=jd(k|0,l|0,1,0)|0;l=G()|0}while((l|0)<(w|0)|(l|0)==(w|0)&k>>>0>>0);o=0;p=0;do{k=E+(o<<5)|0;l=E+(o<<5)+9|0;if(!(a[l>>0]|0)){B=k;if(_a(b[B>>2]|0,b[B+4>>2]|0,C)|0){D=39;break}n=C;m=b[n>>2]|0;n=b[n+4>>2]|0;i=td(m|0,n|0,30)|0;i=pd(i^m|0,(G()|0)^n|0,484763065,-1084733587)|0;j=G()|0;h=td(i|0,j|0,27)|0;j=pd(h^i|0,(G()|0)^j|0,321982955,-1798288965)|0;i=G()|0;h=td(j|0,i|0,31)|0;i=rd(h^j|0,(G()|0)^i|0,u|0,v|0)|0;j=G()|0;h=b[F+(i<<2)>>2]|0;b:do if(h|0){while(1){B=h;if((b[B>>2]|0)==(m|0)?(b[B+4>>2]|0)==(n|0):0)break;h=jd(i|0,j|0,1,0)|0;i=qd(h|0,G()|0,u|0,v|0)|0;j=G()|0;h=b[F+(i<<2)>>2]|0;if(!h)break b}a[l>>0]=1;a[h+9>>0]=1;i=h+16|0;B=E+(o<<5)+12|0;b[(b[B>>2]|0)+16>>2]=b[i>>2];f=h+12|0;A=b[E+(o<<5)+16>>2]|0;b[A+12>>2]=b[f>>2];b[(b[f>>2]|0)+16>>2]=A;b[(b[i>>2]|0)+12>>2]=b[B>>2];i=Pa(k)|0;B=Pa(h)|0;h=i+24|0;f=b[h+4>>2]|0;A=B+24|0;z=b[A+4>>2]|0;A=(f|0)<(z|0)|((f|0)==(z|0)?(b[h>>2]|0)>>>0<(b[A>>2]|0)>>>0:0);h=A?i:B;i=A?B:i;if((i|0)!=(h|0)){z=h+24|0;B=i+24|0;A=B;z=jd(b[A>>2]|0,b[A+4>>2]|0,b[z>>2]|0,b[z+4>>2]|0)|0;A=G()|0;b[B>>2]=z;b[B+4>>2]=A;b[h+20>>2]=i}}while(0)}o=jd(o|0,p|0,1,0)|0;p=G()|0}while((p|0)<(w|0)|(p|0)==(w|0)&o>>>0>>0);if((D|0)==39)H(27634,26956,258,27001);h=0;i=0;do{a[E+(h<<5)+8>>0]=0;h=jd(h|0,i|0,1,0)|0;i=G()|0}while((i|0)<(w|0)|(i|0)==(w|0)&h>>>0>>0);m=0;j=0;l=0;n=0;while(1){h=E+(m<<5)|0;if((a[E+(m<<5)+8>>0]|0)==0?(a[E+(m<<5)+9>>0]|0)==0:0){k=h;i=b[k>>2]|0;k=b[k+4>>2]|0;do{a[h+8>>0]=1;h=b[h+12>>2]|0;B=h}while(!((b[B>>2]|0)==(i|0)?(b[B+4>>2]|0)==(k|0):0));j=jd(j|0,l|0,1,0)|0;k=G()|0}else k=l;m=jd(m|0,n|0,1,0)|0;n=G()|0;if(!((n|0)<(w|0)|(n|0)==(w|0)&m>>>0>>0))break;else l=k}h=0;i=0;do{a[E+(h<<5)+8>>0]=0;h=jd(h|0,i|0,1,0)|0;i=G()|0}while((i|0)<(w|0)|(i|0)==(w|0)&h>>>0>>0);A=j;z=k;h=1}else{A=0;z=0;h=0}B=dd(A*24|0)|0;c:do if(B|0){d:do if(h){c=0;u=0;f=0;d=0;e:while(1){h=E+(c<<5)|0;if((a[E+(c<<5)+8>>0]|0)==0?(a[E+(c<<5)+9>>0]|0)==0:0){t=h;s=b[t>>2]|0;t=b[t+4>>2]|0;i=0;j=0;do{i=jd(i|0,j|0,2,0)|0;j=G()|0;h=b[h+12>>2]|0;v=h}while(!((b[v>>2]|0)==(s|0)?(b[v+4>>2]|0)==(t|0):0));r=dd(i<<4)|0;if(!r)break;i=s;j=t;q=0;p=0;k=0;l=0;do{if(Za(i,j,y)|0){D=69;break e}v=b[y>>2]|0;n=v+-1|0;o=((n|0)<0)<<31>>31;if((v|0)>1){j=k;m=0;i=l;k=0;do{v=r+(j<<4)|0;l=y+8+(m<<4)|0;b[v>>2]=b[l>>2];b[v+4>>2]=b[l+4>>2];b[v+8>>2]=b[l+8>>2];b[v+12>>2]=b[l+12>>2];j=jd(j|0,i|0,1,0)|0;i=G()|0;m=jd(m|0,k|0,1,0)|0;k=G()|0}while((k|0)<(o|0)|(k|0)==(o|0)&m>>>0>>0);k=j;l=i}q=jd(q|0,p|0,n|0,o|0)|0;p=G()|0;a[h+8>>0]=1;h=b[h+12>>2]|0;j=h;i=b[j>>2]|0;j=b[j+4>>2]|0}while(!((i|0)==(s|0)&(j|0)==(t|0)));i=gd(r,q<<4)|0;if(!i){D=75;break}t=Pa(h)|0;v=b[t+4>>2]|0;h=B+(f*24|0)|0;b[h>>2]=b[t>>2];b[h+4>>2]=v;h=B+(f*24|0)+16|0;b[h>>2]=q;b[B+(f*24|0)+20>>2]=i;b[C>>2]=b[h>>2];b[C+4>>2]=b[h+4>>2];na(C,B+(f*24|0)+8|0)|0;i=jd(f|0,u|0,1,0)|0;h=G()|0}else{i=f;h=u}c=jd(c|0,d|0,1,0)|0;d=G()|0;if(!((d|0)<(w|0)|(d|0)==(w|0)&c>>>0>>0))break d;else{u=h;f=i}}if((D|0)==69)H(27634,26956,351,27016);else if((D|0)==75)ed(r);if((u|0)>0|(u|0)==0&f>>>0>0){k=0;l=0;h=f;j=u;while(1){i=b[B+(k*24|0)+20>>2]|0;if(!i)i=j;else{ed(i);i=u;h=f}k=jd(k|0,l|0,1,0)|0;l=G()|0;if(!((l|0)<(i|0)|(l|0)==(i|0)&k>>>0>>0))break;else j=i}}ed(B);break c}while(0);Wc(B,A,24,2);f:do if((A|0)==0&(z|0)==0){v=dd(192)|0;if(v|0){b[v+16>>2]=0;b[v+20>>2]=0;p=v+8|0;b[p>>2]=3;h=dd(48)|0;q=v+12|0;b[q>>2]=h;if(h|0){b[h>>2]=b[3860];b[h+4>>2]=b[3861];b[h+8>>2]=b[3862];b[h+12>>2]=b[3863];o=h+16|0;b[o>>2]=b[3864];b[o+4>>2]=b[3865];b[o+8>>2]=b[3866];b[o+12>>2]=b[3867];o=h+32|0;b[o>>2]=b[3868];b[o+4>>2]=b[3869];b[o+8>>2]=b[3870];b[o+12>>2]=b[3871];b[C>>2]=b[p>>2];b[C+4>>2]=b[p+4>>2];na(C,v)|0;b[v+40>>2]=0;b[v+44>>2]=0;o=v+32|0;b[o>>2]=3;h=dd(48)|0;r=v+36|0;b[r>>2]=h;do if(!h){k=0;l=1}else{b[h>>2]=b[3872];b[h+4>>2]=b[3873];b[h+8>>2]=b[3874];b[h+12>>2]=b[3875];n=h+16|0;b[n>>2]=b[3876];b[n+4>>2]=b[3877];b[n+8>>2]=b[3878];b[n+12>>2]=b[3879];n=h+32|0;b[n>>2]=b[3880];b[n+4>>2]=b[3881];b[n+8>>2]=b[3882];b[n+12>>2]=b[3883];b[C>>2]=b[o>>2];b[C+4>>2]=b[o+4>>2];na(C,v+24|0)|0;b[v+64>>2]=0;b[v+68>>2]=0;n=v+56|0;b[n>>2]=3;h=dd(48)|0;s=v+60|0;b[s>>2]=h;if(!h){k=0;l=2;break};b[h>>2]=b[3884];b[h+4>>2]=b[3885];b[h+8>>2]=b[3886];b[h+12>>2]=b[3887];m=h+16|0;b[m>>2]=b[3888];b[m+4>>2]=b[3889];b[m+8>>2]=b[3890];b[m+12>>2]=b[3891];m=h+32|0;b[m>>2]=b[3892];b[m+4>>2]=b[3893];b[m+8>>2]=b[3894];b[m+12>>2]=b[3895];b[C>>2]=b[n>>2];b[C+4>>2]=b[n+4>>2];na(C,v+48|0)|0;b[v+88>>2]=0;b[v+92>>2]=0;m=v+80|0;b[m>>2]=3;h=dd(48)|0;t=v+84|0;b[t>>2]=h;if(!h){k=0;l=3;break};b[h>>2]=b[3896];b[h+4>>2]=b[3897];b[h+8>>2]=b[3898];b[h+12>>2]=b[3899];l=h+16|0;b[l>>2]=b[3900];b[l+4>>2]=b[3901];b[l+8>>2]=b[3902];b[l+12>>2]=b[3903];l=h+32|0;b[l>>2]=b[3904];b[l+4>>2]=b[3905];b[l+8>>2]=b[3906];b[l+12>>2]=b[3907];b[C>>2]=b[m>>2];b[C+4>>2]=b[m+4>>2];na(C,v+72|0)|0;b[v+112>>2]=0;b[v+116>>2]=0;l=v+104|0;b[l>>2]=3;h=dd(48)|0;c=v+108|0;b[c>>2]=h;if(!h){k=0;l=4;break};b[h>>2]=b[3908];b[h+4>>2]=b[3909];b[h+8>>2]=b[3910];b[h+12>>2]=b[3911];k=h+16|0;b[k>>2]=b[3912];b[k+4>>2]=b[3913];b[k+8>>2]=b[3914];b[k+12>>2]=b[3915];k=h+32|0;b[k>>2]=b[3916];b[k+4>>2]=b[3917];b[k+8>>2]=b[3918];b[k+12>>2]=b[3919];b[C>>2]=b[l>>2];b[C+4>>2]=b[l+4>>2];na(C,v+96|0)|0;b[v+136>>2]=0;b[v+140>>2]=0;k=v+128|0;b[k>>2]=3;h=dd(48)|0;d=v+132|0;b[d>>2]=h;if(!h){k=0;l=5;break};b[h>>2]=b[3920];b[h+4>>2]=b[3921];b[h+8>>2]=b[3922];b[h+12>>2]=b[3923];j=h+16|0;b[j>>2]=b[3924];b[j+4>>2]=b[3925];b[j+8>>2]=b[3926];b[j+12>>2]=b[3927];j=h+32|0;b[j>>2]=b[3928];b[j+4>>2]=b[3929];b[j+8>>2]=b[3930];b[j+12>>2]=b[3931];b[C>>2]=b[k>>2];b[C+4>>2]=b[k+4>>2];na(C,v+120|0)|0;b[v+160>>2]=0;b[v+164>>2]=0;j=v+152|0;b[j>>2]=3;h=dd(48)|0;f=v+156|0;b[f>>2]=h;if(!h){k=0;l=6;break};b[h>>2]=b[3932];b[h+4>>2]=b[3933];b[h+8>>2]=b[3934];b[h+12>>2]=b[3935];i=h+16|0;b[i>>2]=b[3936];b[i+4>>2]=b[3937];b[i+8>>2]=b[3938];b[i+12>>2]=b[3939];i=h+32|0;b[i>>2]=b[3940];b[i+4>>2]=b[3941];b[i+8>>2]=b[3942];b[i+12>>2]=b[3943];b[C>>2]=b[j>>2];b[C+4>>2]=b[j+4>>2];na(C,v+144|0)|0;b[v+184>>2]=0;b[v+188>>2]=0;i=v+176|0;b[i>>2]=3;h=dd(48)|0;u=v+180|0;b[u>>2]=h;if(!h){k=0;l=7;break};b[h>>2]=b[3944];b[h+4>>2]=b[3945];b[h+8>>2]=b[3946];b[h+12>>2]=b[3947];y=h+16|0;b[y>>2]=b[3948];b[y+4>>2]=b[3949];b[y+8>>2]=b[3950];b[y+12>>2]=b[3951];h=h+32|0;b[h>>2]=b[3952];b[h+4>>2]=b[3953];b[h+8>>2]=b[3954];b[h+12>>2]=b[3955];b[C>>2]=b[i>>2];b[C+4>>2]=b[i+4>>2];na(C,v+168|0)|0;Wc(v,8,24,3);h=dd(128)|0;b[g+4>>2]=h;if(h|0){b[g>>2]=8;b[h>>2]=b[p>>2];b[h+4>>2]=b[p+4>>2];b[h+8>>2]=b[p+8>>2];b[h+12>>2]=b[p+12>>2];D=h+16|0;b[D>>2]=b[o>>2];b[D+4>>2]=b[o+4>>2];b[D+8>>2]=b[o+8>>2];b[D+12>>2]=b[o+12>>2];D=h+32|0;b[D>>2]=b[n>>2];b[D+4>>2]=b[n+4>>2];b[D+8>>2]=b[n+8>>2];b[D+12>>2]=b[n+12>>2];D=h+48|0;b[D>>2]=b[m>>2];b[D+4>>2]=b[m+4>>2];b[D+8>>2]=b[m+8>>2];b[D+12>>2]=b[m+12>>2];D=h+64|0;b[D>>2]=b[l>>2];b[D+4>>2]=b[l+4>>2];b[D+8>>2]=b[l+8>>2];b[D+12>>2]=b[l+12>>2];D=h+80|0;b[D>>2]=b[k>>2];b[D+4>>2]=b[k+4>>2];b[D+8>>2]=b[k+8>>2];b[D+12>>2]=b[k+12>>2];D=h+96|0;b[D>>2]=b[j>>2];b[D+4>>2]=b[j+4>>2];b[D+8>>2]=b[j+8>>2];b[D+12>>2]=b[j+12>>2];D=h+112|0;b[D>>2]=b[i>>2];b[D+4>>2]=b[i+4>>2];b[D+8>>2]=b[i+8>>2];b[D+12>>2]=b[i+12>>2];ed(v);D=158;break f}h=b[q>>2]|0;if(h|0)ed(h);h=b[r>>2]|0;if(h|0)ed(h);h=b[s>>2]|0;if(h|0)ed(h);h=b[t>>2]|0;if(h|0)ed(h);h=b[c>>2]|0;if(h|0)ed(h);h=b[d>>2]|0;if(h|0)ed(h);h=b[f>>2]|0;if(h|0)ed(h);h=b[u>>2]|0;if(h|0)ed(h);ed(v);break f}while(0);h=0;j=0;do{i=b[v+(h*24|0)+12>>2]|0;if(i|0)ed(i);h=jd(h|0,j|0,1,0)|0;j=G()|0}while(j>>>0>>0|(j|0)==(k|0)&h>>>0>>0)}ed(v);D=152}}else{if((z|0)>0|(z|0)==0&A>>>0>0){j=0;k=0;l=0;i=0;h=0;m=0;do{y=B+(j*24|0)|0;C=k;k=b[y>>2]|0;D=l;l=b[y+4>>2]|0;i=jd(i|0,h|0,((k|0)!=(C|0)|(l|0)!=(D|0))&1|0,0)|0;h=G()|0;j=jd(j|0,m|0,1,0)|0;m=G()|0}while((m|0)<(z|0)|(m|0)==(z|0)&j>>>0>>0);t=i;s=h}else{t=0;s=0}c=dd(t*24|0)|0;if(c){g:do if((z|0)>=0){p=0;q=0;i=0;j=0;r=0;k=0;while(1){if(!((p|0)==(A|0)&(q|0)==(z|0))?(C=B+(i*24|0)|0,D=B+(p*24|0)|0,(b[C>>2]|0)==(b[D>>2]|0)?(b[C+4>>2]|0)==(b[D+4>>2]|0):0):0)h=r;else{n=B+(i*24|0)|0;D=kd(p|0,q|0,i|0,j|0)|0;C=G()|0;o=jd(D|0,C|0,-1,-1)|0;j=G()|0;if((C|0)>0|(C|0)==0&D>>>0>1){h=dd(o<<3)|0;if(!h)break;l=0;m=0;do{D=l;l=jd(l|0,m|0,1,0)|0;m=G()|0;y=n+(l*24|0)+16|0;C=b[y+4>>2]|0;D=h+(D<<3)|0;b[D>>2]=b[y>>2];b[D+4>>2]=C}while((m|0)<(j|0)|(m|0)==(j|0)&l>>>0>>0)}else h=0;C=B+(i*24|0)+16|0;D=b[C+4>>2]|0;j=c+(k*24|0)+8|0;b[j>>2]=b[C>>2];b[j+4>>2]=D;b[c+(k*24|0)+16>>2]=o;b[c+(k*24|0)+20>>2]=h;e[c+(k*24|0)>>3]=+e[B+(i*24|0)+8>>3];k=jd(k|0,r|0,1,0)|0;i=p;j=q;h=G()|0}D=p;p=jd(p|0,q|0,1,0)|0;C=q;q=G()|0;if(!((C|0)<(z|0)|(C|0)==(z|0)&D>>>0>>0))break g;else r=h}if((r|0)>0|(r|0)==0&k>>>0>0){h=0;j=0;do{i=b[c+(h*24|0)+20>>2]|0;if(i|0)ed(i);h=jd(h|0,j|0,1,0)|0;j=G()|0}while((j|0)<(r|0)|(j|0)==(r|0)&h>>>0>>0)}ed(c);D=152;break f}while(0);Wc(c,t,24,3);h=dd(t<<4)|0;j=g+4|0;b[j>>2]=h;if(!h){if((s|0)>0|(s|0)==0&t>>>0>0){h=0;j=0;do{i=b[c+(h*24|0)+20>>2]|0;if(i|0)ed(i);h=jd(h|0,j|0,1,0)|0;j=G()|0}while((j|0)<(s|0)|(j|0)==(s|0)&h>>>0>>0)}ed(c);D=152;break}else{b[g>>2]=t;do if((s|0)>0|(s|0)==0&t>>>0>0){g=c+8|0;b[h>>2]=b[g>>2];b[h+4>>2]=b[g+4>>2];b[h+8>>2]=b[g+8>>2];b[h+12>>2]=b[g+12>>2];if((t|0)==1&(s|0)==0)break;g=h+16|0;D=c+32|0;b[g>>2]=b[D>>2];b[g+4>>2]=b[D+4>>2];b[g+8>>2]=b[D+8>>2];b[g+12>>2]=b[D+12>>2];if(!((s|0)>0|(s|0)==0&t>>>0>2))break;h=2;i=0;do{g=(b[j>>2]|0)+(h<<4)|0;D=c+(h*24|0)+8|0;b[g>>2]=b[D>>2];b[g+4>>2]=b[D+4>>2];b[g+8>>2]=b[D+8>>2];b[g+12>>2]=b[D+12>>2];h=jd(h|0,i|0,1,0)|0;i=G()|0}while((i|0)<(s|0)|(i|0)==(s|0)&h>>>0>>0)}while(0);ed(c);D=158;break}}else D=152}while(0);if((D|0)==158){ed(E);ed(F);ed(B);F=0;S=I;return F|0}if((D|0)==152?(z|0)>0|(z|0)==0&A>>>0>0:0){k=0;l=0;h=A;j=z;while(1){i=b[B+(k*24|0)+20>>2]|0;if(!i)i=j;else{ed(i);i=z;h=A}k=jd(k|0,l|0,1,0)|0;l=G()|0;if(!((l|0)<(i|0)|(l|0)==(i|0)&k>>>0>>0))break;else j=i}}ed(B);ed(E);ed(F);F=13;S=I;return F|0}while(0);ed(E);ed(F);F=13;S=I;return F|0}else if((D|0)==159){S=I;return h|0}return 0}function Oa(a,c){a=a|0;c=c|0;var d=0,e=0;e=a;a=b[e>>2]|0;e=b[e+4>>2]|0;d=c;c=b[d>>2]|0;d=b[d+4>>2]|0;return (e>>>0>>0|(e|0)==(d|0)&a>>>0>>0?-1:(e>>>0>d>>>0|(e|0)==(d|0)&a>>>0>c>>>0)&1)|0}function Pa(a){a=a|0;var c=0,d=0;c=a+20|0;d=b[c>>2]|0;if((d|0)==(a|0))return a|0;else{d=Pa(d)|0;b[c>>2]=d;return d|0}return 0}function Qa(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0,h=0,i=0,j=0;j=a;i=b[j>>2]|0;j=b[j+4>>2]|0;h=c;g=b[h>>2]|0;h=b[h+4>>2]|0;if(j>>>0>>0|(j|0)==(h|0)&i>>>0>>0){c=-1;return c|0}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c=1;return c|0}f=+e[a+8>>3];d=+e[c+8>>3];if(fd&1;return c|0}function Ra(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+e[a>>3];c=+e[b>>3];return (d>c?-1:d>2]=0;f=0;S=m;return f|0}h=td(a|0,c|0,52)|0;G()|0;h=h&15;k=td(d|0,e|0,52)|0;G()|0;if((h|0)!=(k&15|0)){f=12;S=m;return f|0}g=h+-1|0;if(h>>>0>1){pb(a,c,g,l)|0;pb(d,e,g,i)|0;k=l;j=b[k>>2]|0;k=b[k+4>>2]|0;a:do if((j|0)==(b[i>>2]|0)?(k|0)==(b[i+4>>2]|0):0){h=(h^15)*3|0;g=td(a|0,c|0,h|0)|0;G()|0;g=g&7;h=td(d|0,e|0,h|0)|0;G()|0;h=h&7;do if(!((g|0)==0|(h|0)==0))if((g|0)==7)g=5;else{if((g|0)==1|(h|0)==1?rb(j,k)|0:0){g=5;break}if((b[15824+(g<<2)>>2]|0)!=(h|0)?(b[15856+(g<<2)>>2]|0)!=(h|0):0)break a;b[f>>2]=1;g=0}else{b[f>>2]=1;g=0}while(0);f=g;S=m;return f|0}while(0)}g=l;h=g+56|0;do{b[g>>2]=0;g=g+4|0}while((g|0)<(h|0));aa(a,c,1,l)|0;c=l;if(((((!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)?(c=l+8|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+16|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+24|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+32|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0)?(c=l+40|0,!((b[c>>2]|0)==(d|0)?(b[c+4>>2]|0)==(e|0):0)):0){g=l+48|0;g=((b[g>>2]|0)==(d|0)?(b[g+4>>2]|0)==(e|0):0)&1}else g=1;b[f>>2]=g;f=0;S=m;return f|0}function Ta(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;d=ia(a,c,d,e)|0;if((d|0)==7){f=11;return f|0}e=ud(d|0,0,56)|0;c=c&-2130706433|(G()|0)|268435456;b[f>>2]=a|e;b[f+4>>2]=c;f=0;return f|0}function Ua(a,c,d){a=a|0;c=c|0;d=d|0;if(!(0==0&(c&2013265920|0)==268435456)){d=6;return d|0}b[d>>2]=a;b[d+4>>2]=c&-2130706433|134217728;d=0;return d|0}function Va(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=S;S=S+16|0;e=f;b[e>>2]=0;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=td(a|0,c|0,56)|0;G()|0;e=ea(a,c&-2130706433|134217728,g&7,e,d)|0;S=f;return e|0}function Wa(a,b){a=a|0;b=b|0;var c=0;c=td(a|0,b|0,56)|0;G()|0;switch(c&7){case 0:case 7:{c=0;return c|0}default:{}}c=b&-2130706433|134217728;if(!(0==0&(b&2013265920|0)==268435456)){c=0;return c|0}if(0==0&(b&117440512|0)==16777216&(rb(a,c)|0)!=0){c=0;return c|0}c=mb(a,c)|0;return c|0}function Xa(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=S;S=S+16|0;e=f;if(!(0==0&(c&2013265920|0)==268435456)){e=6;S=f;return e|0}g=c&-2130706433|134217728;h=d;b[h>>2]=a;b[h+4>>2]=g;b[e>>2]=0;c=td(a|0,c|0,56)|0;G()|0;e=ea(a,g,c&7,e,d+8|0)|0;S=f;return e|0}function Ya(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=(rb(a,c)|0)==0;c=c&-2130706433;e=d;b[e>>2]=f?a:0;b[e+4>>2]=f?c|285212672:0;e=d+8|0;b[e>>2]=a;b[e+4>>2]=c|301989888;e=d+16|0;b[e>>2]=a;b[e+4>>2]=c|318767104;e=d+24|0;b[e>>2]=a;b[e+4>>2]=c|335544320;e=d+32|0;b[e>>2]=a;b[e+4>>2]=c|352321536;d=d+40|0;b[d>>2]=a;b[d+4>>2]=c|369098752;return 0}function Za(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=S;S=S+16|0;f=h;g=c&-2130706433|134217728;if(!(0==0&(c&2013265920|0)==268435456)){g=6;S=h;return g|0}e=td(a|0,c|0,56)|0;G()|0;e=Pc(a,g,e&7)|0;if((e|0)==-1){b[d>>2]=0;g=6;S=h;return g|0}if(Ib(a,g,f)|0)H(27634,27035,282,27050);c=td(a|0,c|0,52)|0;G()|0;c=c&15;if(!(rb(a,g)|0))gb(f,c,e,2,d);else cb(f,c,e,2,d);g=0;S=h;return g|0}function _a(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;h=S;S=S+16|0;e=h+8|0;f=h;g=c&-2130706433|134217728;if(!(0==0&(c&2013265920|0)==268435456)){d=6;S=h;return d|0}b[e>>2]=0;c=td(a|0,c|0,56)|0;G()|0;c=ea(a,g,c&7,e,f)|0;if(c|0){d=c;S=h;return d|0}e=b[f>>2]|0;f=b[f+4>>2]|0;c=ia(e,f,a,g)|0;if((c|0)==7){d=11;S=h;return d|0}a=ud(c|0,0,56)|0;g=f&-2130706433|(G()|0)|268435456;b[d>>2]=e|a;b[d+4>>2]=g;d=0;S=h;return d|0}function $a(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0,h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,w=0.0,x=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;b[d>>2]=0;l=+e[a>>3];m=+e[a+8>>3];k=+e[a+16>>3];g=0;h=5.0;f=5.0;a=0;do{x=+e[15888+(g*24|0)>>3]-l;w=+e[15888+(g*24|0)+8>>3]-m;i=+e[15888+(g*24|0)+16>>3]-k;i=x*x+w*w+i*i;if(i>2]=g;h=i;a=g;f=i}g=g+1|0}while((g|0)!=20);h=+v(+(1.0-h*.5));if(h<1.0e-16){k=0.0;i=0.0}else{D=+e[16368+(a*24|0)>>3];B=+e[15888+(a*24|0)>>3];C=+e[15888+(a*24|0)+8>>3];A=+e[15888+(a*24|0)+16>>3];E=-(A+(B*0.0+C*0.0));i=B*E+0.0;x=C*E+0.0;E=A*E+1.0;z=+r(+(E*E+(i*i+x*x)));z=z>0.0?1.0/z:0.0;i=i*z;x=x*z;z=E*z;E=-(l*B+m*C+k*A);w=l+B*E;f=m+C*E;l=k+A*E;m=+r(+(l*l+(w*w+f*f)));m=m>0.0?1.0/m:0.0;w=w*m;f=f*m;m=l*m;f=+Ub(D-+Ub(+y(+(m*(C*i-B*x)+(w*(A*x-C*z)+f*(B*z-A*i))),+(z*m+(i*w+x*f)))));if(!(Fb(c)|0))i=f;else i=+Ub(f+-.3334731722518321);f=+u(+h)*2.618033988749896;if((c|0)>0){a=0;do{f=f*2.6457513110645907;a=a+1|0}while((a|0)!=(c|0))}k=+s(+i)*f;i=+t(+i)*f}c=d+4|0;p=d+12|0;b[p>>2]=0;h=+q(+i)*1.1547005383792515;f=+q(+k)+h*.5;a=~~f;g=~~h;f=f-+(a|0);h=h-+(g|0);do if(f<.5)if(f<.3333333333333333){b[c>>2]=a;if(h<(f+1.0)*.5){b[d+8>>2]=g;break}else{g=g+1|0;b[d+8>>2]=g;break}}else{E=1.0-f;g=(!(h>2]=g;if(E<=h&h>2]=a;break}else{b[c>>2]=a;break}}else{if(!(f<.6666666666666666)){a=a+1|0;b[c>>2]=a;if(h>2]=g;break}else{g=g+1|0;b[d+8>>2]=g;break}}if(h<1.0-f){b[d+8>>2]=g;if(f*2.0+-1.0>2]=a;break}}else{g=g+1|0;b[d+8>>2]=g}a=a+1|0;b[c>>2]=a}while(0);do if(k<0.0)if(!(g&1)){o=(g|0)/2|0;o=kd(a|0,((a|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;a=~~(+(a|0)-(+(o>>>0)+4294967296.0*+(G()|0))*2.0);b[c>>2]=a;o=c;break}else{o=(g+1|0)/2|0;o=kd(a|0,((a|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;a=~~(+(a|0)-((+(o>>>0)+4294967296.0*+(G()|0))*2.0+1.0));b[c>>2]=a;o=c;break}else o=c;while(0);n=d+8|0;c=0-g|0;if(i<0.0){d=a-((g<<1|1|0)/2|0)|0;b[o>>2]=d;b[n>>2]=c;g=c}else d=a;a=g-d|0;c=0-d|0;if((d|0)<0){b[n>>2]=a;b[p>>2]=c;b[o>>2]=0;j=0}else{a=g;j=d;c=0}d=j-a|0;g=c-a|0;if((a|0)<0){b[o>>2]=d;b[p>>2]=g;b[n>>2]=0;j=d;a=0}else g=c;d=j-g|0;c=a-g|0;if((g|0)<0){b[o>>2]=d;b[n>>2]=c;b[p>>2]=0;g=0}else{c=a;d=j}a=(c|0)<(d|0)?c:d;a=(g|0)<(a|0)?g:a;if((a|0)<=0)return;b[o>>2]=d-a;b[n>>2]=c-a;b[p>>2]=g-a;return}function ab(a,c,d){a=a|0;c=c|0;d=d|0;var f=0,g=0,h=0.0,i=0;f=S;S=S+16|0;g=f;i=b[a+12>>2]|0;h=+((b[a+8>>2]|0)-i|0);e[g>>3]=+((b[a+4>>2]|0)-i|0)-h*.5;e[g+8>>3]=h*.8660254037844386;bb(g,b[a>>2]|0,c,0,d);S=f;return}function bb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,u=0.0,v=0.0;h=+Mc(a);if(h<1.0e-16){c=15888+(c*24|0)|0;b[g>>2]=b[c>>2];b[g+4>>2]=b[c+4>>2];b[g+8>>2]=b[c+8>>2];b[g+12>>2]=b[c+12>>2];b[g+16>>2]=b[c+16>>2];b[g+20>>2]=b[c+20>>2];return}i=+y(+(+e[a+8>>3]),+(+e[a>>3]));if((d|0)>0){a=0;do{h=h*.37796447300922725;a=a+1|0}while((a|0)!=(d|0))}j=h*.3333333333333333;if(!f){h=+x(+(h*.381966011250105));if(Fb(d)|0)i=+Ub(i+.3334731722518321)}else{d=(Fb(d)|0)==0;h=+x(+((d?j:j*.37796447300922725)*.381966011250105))}n=+Ub(+e[16368+(c*24|0)>>3]-i);j=+e[15888+(c*24|0)>>3];m=+e[15888+(c*24|0)+8>>3];u=+e[15888+(c*24|0)+16>>3];p=-(u+(j*0.0+m*0.0));l=j*p+0.0;i=m*p+0.0;p=u*p+1.0;o=+r(+(p*p+(l*l+i*i)));o=o>0.0?1.0/o:0.0;l=l*o;i=i*o;o=p*o;p=+s(+n);n=+t(+n);v=+s(+h);q=+t(+h);k=v*j+q*(p*l+n*(u*i-m*o));h=v*m+q*(p*i+n*(j*o-u*l));i=v*u+q*(p*o+n*(m*l-j*i));j=+r(+(i*i+(k*k+h*h)));j=j>0.0?1.0/j:0.0;e[g>>3]=k*j;e[g+8>>3]=h*j;e[g+16>>3]=i*j;return}function cb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,z=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,T=0,U=0,V=0,W=0.0,X=0,Y=0,Z=0,_=0,$=0.0;V=S;S=S+256|0;h=V+240|0;K=V+224|0;R=V;T=V+208|0;U=V+192|0;L=V+168|0;M=V+152|0;N=V+136|0;O=V+120|0;P=V+104|0;Q=V+80|0;b[h>>2]=c;b[K>>2]=b[a>>2];b[K+4>>2]=b[a+4>>2];b[K+8>>2]=b[a+8>>2];b[K+12>>2]=b[a+12>>2];db(K,h,R);b[g>>2]=0;K=f+d+((f|0)==5&1)|0;if((K|0)<=(d|0)){S=V;return}x=b[h>>2]|0;v=T+4|0;t=T+8|0;u=T+12|0;z=U+8|0;B=d+5|0;C=16848+(x<<2)|0;D=L+8|0;E=16928+(x<<2)|0;F=M+8|0;G=N+8|0;I=O+8|0;J=U+8|0;p=L+8|0;r=L+16|0;q=Q+8|0;s=Q+16|0;o=d;f=0;i=0;j=0;k=0;a:while(1){n=R+(((o|0)%5|0)<<4)|0;b[T>>2]=b[n>>2];b[T+4>>2]=b[n+4>>2];b[T+8>>2]=b[n+8>>2];b[T+12>>2]=b[n+12>>2];do{}while((eb(T,x,0,1)|0)==2);if((o|0)>(d|0)&(Fb(c)|0)!=0){n=b[T>>2]|0;a=b[v>>2]|0;l=b[t>>2]|0;h=b[u>>2]|0;W=+(j-k|0);e[U>>3]=+(i-k|0)-W*.5;e[z>>3]=W*.8660254037844386;k=b[17008+(n*80|0)+(f<<2)>>2]|0;m=b[18608+(n*80|0)+(k*20|0)>>2]|0;j=b[18608+(n*80|0)+(k*20|0)+16>>2]|0;if((j|0)>0){i=0;f=l;do{Z=h+a|0;_=(Z|0)<0;l=f+a-(_?Z:0)|0;Y=(l|0)<0;X=h+f-(_?Z:0)-(Y?l:0)|0;h=(X|0)<0;a=(_?0:Z)-(Y?l:0)-(h?X:0)|0;f=(Y?0:l)-(h?X:0)|0;X=h?0:X;h=(f|0)<(a|0)?f:a;h=(X|0)<(h|0)?X:h;l=(h|0)>0;a=a-(l?h:0)|0;f=f-(l?h:0)|0;h=X-(l?h:0)|0;i=i+1|0}while((i|0)<(j|0))}else f=l;_=(b[C>>2]|0)*3|0;X=(A(_,b[18608+(n*80|0)+(k*20|0)+4>>2]|0)|0)+a|0;l=(A(_,b[18608+(n*80|0)+(k*20|0)+8>>2]|0)|0)+f|0;_=(A(_,b[18608+(n*80|0)+(k*20|0)+12>>2]|0)|0)+h|0;k=(X|0)<0;l=l-(k?X:0)|0;Y=(l|0)<0;_=_+(k?0-X|0:0)+(Y?0-l|0:0)|0;Z=(_|0)<0;X=(k?0:X)-(Y?l:0)-(Z?_:0)|0;l=(Y?0:l)-(Z?_:0)|0;_=Z?0:_;Z=(l|0)<(X|0)?l:X;Z=(_|0)<(Z|0)?_:Z;Y=(Z|0)>0;_=_-(Y?Z:0)|0;W=+(l-(Y?Z:0)-_|0);e[L>>3]=+(X-(Y?Z:0)-_|0)-W*.5;e[D>>3]=W*.8660254037844386;W=+(b[E>>2]|0);e[M>>3]=W*3.0;e[F>>3]=0.0;$=W*-1.5;e[N>>3]=$;e[G>>3]=W*2.598076211353316;e[O>>3]=$;e[I>>3]=W*-2.598076211353316;switch(b[17008+(m*80|0)+(n<<2)>>2]|0){case 1:{a=N;f=M;break}case 3:{a=O;f=N;break}case 2:{a=M;f=O;break}default:{a=12;break a}}Nc(U,L,f,a,P);bb(P,m,x,1,Q);_=b[g>>2]|0;W=+w(+(+e[s>>3]));$=+y(+(+e[q>>3]),+(+e[Q>>3]));e[g+8+(_<<4)>>3]=W;e[g+8+(_<<4)+8>>3]=$;b[g>>2]=(b[g>>2]|0)+1}if((o|0)<(B|0)){_=b[u>>2]|0;W=+((b[t>>2]|0)-_|0);e[U>>3]=+((b[v>>2]|0)-_|0)-W*.5;e[J>>3]=W*.8660254037844386;bb(U,b[T>>2]|0,x,1,L);_=b[g>>2]|0;W=+w(+(+e[r>>3]));$=+y(+(+e[p>>3]),+(+e[L>>3]));e[g+8+(_<<4)>>3]=W;e[g+8+(_<<4)+8>>3]=$;b[g>>2]=(b[g>>2]|0)+1}o=o+1|0;if((o|0)>=(K|0)){a=3;break}else{f=b[T>>2]|0;i=b[v>>2]|0;j=b[t>>2]|0;k=b[u>>2]|0}}if((a|0)==3){S=V;return}else if((a|0)==12)H(27073,27120,599,27130)}function db(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+128|0;e=p+64|0;f=p;g=e;h=20208;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20272;i=g+60|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));l=(Fb(b[c>>2]|0)|0)==0;l=l?e:f;o=a+4|0;g=b[o>>2]|0;m=a+8|0;e=b[m>>2]|0;n=a+12|0;f=b[n>>2]|0;h=e+(g<<1)|0;b[o>>2]=h;e=f+(e<<1)|0;b[m>>2]=e;g=(f<<1)+g|0;b[n>>2]=g;f=e-h|0;i=g-h|0;if((h|0)<0){b[m>>2]=f;b[n>>2]=i;b[o>>2]=0;e=f;h=0;g=i}i=h-e|0;f=g-e|0;if((e|0)<0){b[o>>2]=i;b[n>>2]=f;b[m>>2]=0;e=0}else{f=g;i=h}h=i-f|0;g=e-f|0;if((f|0)<0){b[o>>2]=h;b[m>>2]=g;b[n>>2]=0;f=0}else{g=e;h=i}e=(g|0)<(h|0)?g:h;e=(f|0)<(e|0)?f:e;if((e|0)>0){f=f-e|0;g=g-e|0;h=h-e|0;b[o>>2]=h;b[m>>2]=g;b[n>>2]=f}j=(g<<1)+h|0;i=f+(h<<1)|0;b[o>>2]=i;b[m>>2]=j;g=(f<<1)+g|0;b[n>>2]=g;e=j-i|0;f=g-i|0;if((i|0)<0){b[m>>2]=e;b[n>>2]=f;b[o>>2]=0;i=0;g=f}else e=j;h=i-e|0;f=g-e|0;if((e|0)<0){b[o>>2]=h;b[n>>2]=f;b[m>>2]=0;i=h;e=0}else f=g;h=i-f|0;g=e-f|0;if((f|0)<0){b[o>>2]=h;b[m>>2]=g;b[n>>2]=0;f=0}else{g=e;h=i}e=(g|0)<(h|0)?g:h;e=(f|0)<(e|0)?f:e;if((e|0)>0){b[o>>2]=h-e;b[m>>2]=g-e;b[n>>2]=f-e}if(Fb(b[c>>2]|0)|0){g=b[o>>2]|0;h=b[m>>2]|0;f=b[n>>2]|0;e=(h*3|0)+g|0;g=f+(g*3|0)|0;b[o>>2]=g;b[m>>2]=e;h=(f*3|0)+h|0;b[n>>2]=h;f=e-g|0;i=h-g|0;if((g|0)<0){b[m>>2]=f;b[n>>2]=i;b[o>>2]=0;e=f;j=0}else{j=g;i=h}g=j-e|0;f=i-e|0;if((e|0)<0){b[o>>2]=g;b[n>>2]=f;b[m>>2]=0;j=g;h=0}else{h=e;f=i}g=j-f|0;e=h-f|0;if((f|0)<0){b[o>>2]=g;b[m>>2]=e;b[n>>2]=0;h=e;f=0}else g=j;e=(h|0)<(g|0)?h:g;e=(f|0)<(e|0)?f:e;if((e|0)>0){b[o>>2]=g-e;b[m>>2]=h-e;b[n>>2]=f-e}b[c>>2]=(b[c>>2]|0)+1}b[d>>2]=b[a>>2];f=b[m>>2]|0;e=b[n>>2]|0;c=b[l+4>>2]|0;k=b[l+8>>2]|0;h=(b[l>>2]|0)+(b[o>>2]|0)|0;j=d+4|0;b[j>>2]=h;f=c+f|0;c=d+8|0;b[c>>2]=f;e=k+e|0;k=d+12|0;b[k>>2]=e;g=f-h|0;if((h|0)<0){e=e-h|0;b[c>>2]=g;b[k>>2]=e;b[j>>2]=0;f=g;h=0}if((f|0)<0){h=h-f|0;b[j>>2]=h;e=e-f|0;b[k>>2]=e;b[c>>2]=0;f=0}i=h-e|0;g=f-e|0;if((e|0)<0){b[j>>2]=i;b[c>>2]=g;b[k>>2]=0;h=i;e=0}else g=f;f=(g|0)<(h|0)?g:h;f=(e|0)<(f|0)?e:f;if((f|0)>0){b[j>>2]=h-f;b[c>>2]=g-f;b[k>>2]=e-f}b[d+16>>2]=b[a>>2];f=b[m>>2]|0;e=b[n>>2]|0;c=b[l+16>>2]|0;k=b[l+20>>2]|0;h=(b[l+12>>2]|0)+(b[o>>2]|0)|0;j=d+20|0;b[j>>2]=h;f=c+f|0;c=d+24|0;b[c>>2]=f;e=k+e|0;k=d+28|0;b[k>>2]=e;g=f-h|0;if((h|0)<0){e=e-h|0;b[c>>2]=g;b[k>>2]=e;b[j>>2]=0;f=g;h=0}if((f|0)<0){h=h-f|0;b[j>>2]=h;e=e-f|0;b[k>>2]=e;b[c>>2]=0;f=0}i=h-e|0;g=f-e|0;if((e|0)<0){b[j>>2]=i;b[c>>2]=g;b[k>>2]=0;h=i;e=0}else g=f;f=(g|0)<(h|0)?g:h;f=(e|0)<(f|0)?e:f;if((f|0)>0){b[j>>2]=h-f;b[c>>2]=g-f;b[k>>2]=e-f}b[d+32>>2]=b[a>>2];f=b[m>>2]|0;e=b[n>>2]|0;c=b[l+28>>2]|0;k=b[l+32>>2]|0;h=(b[l+24>>2]|0)+(b[o>>2]|0)|0;j=d+36|0;b[j>>2]=h;f=c+f|0;c=d+40|0;b[c>>2]=f;e=k+e|0;k=d+44|0;b[k>>2]=e;g=f-h|0;if((h|0)<0){e=e-h|0;b[c>>2]=g;b[k>>2]=e;b[j>>2]=0;f=g;h=0}if((f|0)<0){h=h-f|0;b[j>>2]=h;e=e-f|0;b[k>>2]=e;b[c>>2]=0;f=0}i=h-e|0;g=f-e|0;if((e|0)<0){b[j>>2]=i;b[c>>2]=g;b[k>>2]=0;h=i;e=0}else g=f;f=(g|0)<(h|0)?g:h;f=(e|0)<(f|0)?e:f;if((f|0)>0){b[j>>2]=h-f;b[c>>2]=g-f;b[k>>2]=e-f}b[d+48>>2]=b[a>>2];f=b[m>>2]|0;e=b[n>>2]|0;c=b[l+40>>2]|0;k=b[l+44>>2]|0;h=(b[l+36>>2]|0)+(b[o>>2]|0)|0;j=d+52|0;b[j>>2]=h;f=c+f|0;c=d+56|0;b[c>>2]=f;e=k+e|0;k=d+60|0;b[k>>2]=e;g=f-h|0;if((h|0)<0){e=e-h|0;b[c>>2]=g;b[k>>2]=e;b[j>>2]=0;f=g;h=0}if((f|0)<0){h=h-f|0;b[j>>2]=h;e=e-f|0;b[k>>2]=e;b[c>>2]=0;f=0}i=h-e|0;g=f-e|0;if((e|0)<0){b[j>>2]=i;b[c>>2]=g;b[k>>2]=0;h=i;e=0}else g=f;f=(g|0)<(h|0)?g:h;f=(e|0)<(f|0)?e:f;if((f|0)>0){b[j>>2]=h-f;b[c>>2]=g-f;b[k>>2]=e-f}b[d+64>>2]=b[a>>2];g=b[m>>2]|0;e=b[n>>2]|0;k=b[l+52>>2]|0;j=b[l+56>>2]|0;h=(b[l+48>>2]|0)+(b[o>>2]|0)|0;c=d+68|0;b[c>>2]=h;g=k+g|0;k=d+72|0;b[k>>2]=g;e=j+e|0;j=d+76|0;b[j>>2]=e;f=g-h|0;if((h|0)<0){e=e-h|0;b[k>>2]=f;b[j>>2]=e;b[c>>2]=0;g=0}else{f=g;g=h}if((f|0)<0){g=g-f|0;b[c>>2]=g;e=e-f|0;b[j>>2]=e;b[k>>2]=0;f=0}i=g-e|0;h=f-e|0;if((e|0)<0){b[c>>2]=i;b[k>>2]=h;b[j>>2]=0;g=i;e=0}else h=f;f=(h|0)<(g|0)?h:g;f=(e|0)<(f|0)?e:f;if((f|0)<=0){S=p;return}b[c>>2]=g-f;b[k>>2]=h-f;b[j>>2]=e-f;S=p;return}function eb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=b[16928+(c<<2)>>2]|0;m=(e|0)!=0;n=m?n*3|0:n;l=a+4|0;i=b[l>>2]|0;k=a+8|0;g=b[k>>2]|0;if(m){h=a+12|0;e=b[h>>2]|0;f=g+i+e|0;if((f|0)==(n|0)){n=1;return n|0}else j=h}else{j=a+12|0;f=b[j>>2]|0;e=f;f=g+i+f|0}if((f|0)<=(n|0)){n=0;return n|0}do if((e|0)>0){f=b[a>>2]|0;if((g|0)>0){f=18608+(f*80|0)+60|0;h=i;break}f=18608+(f*80|0)+40|0;if(!d)h=i;else{h=i-n|0;d=g+h|0;o=(d|0)<0;g=e+g-(o?d:0)|0;i=(g|0)<0;e=e+h-(o?d:0)-(i?g:0)|0;h=(e|0)<0;d=(o?0:d)-(i?g:0)-(h?e:0)|0;g=(i?0:g)-(h?e:0)|0;e=h?0:e;h=(g|0)<(d|0)?g:d;h=(e|0)<(h|0)?e:h;i=(h|0)>0;g=g-(i?h:0)|0;e=e-(i?h:0)|0;h=d-(i?h:0)+n|0;b[l>>2]=h;b[k>>2]=g;b[j>>2]=e}}else{f=18608+((b[a>>2]|0)*80|0)+20|0;h=i}while(0);b[a>>2]=b[f>>2];i=b[f+16>>2]|0;if((i|0)>0){d=0;do{o=e+h|0;p=(o|0)<0;s=p?o:0;q=g+h-s|0;r=(q|0)<0;a=r?q:0;h=e+g-s-a|0;g=(h|0)<0;e=g?0:h;h=g?h:0;g=(r?0:q)-h|0;h=(p?0:o)-a-h|0;a=(g|0)<(h|0)?g:h;a=(e|0)<(a|0)?e:a;if((a|0)>0){h=h-a|0;g=g-a|0;e=e-a|0}d=d+1|0}while((d|0)<(i|0));b[l>>2]=h;b[k>>2]=g;b[j>>2]=e}q=b[16848+(c<<2)>>2]|0;q=m?q*3|0:q;r=A(q,b[f+8>>2]|0)|0;s=A(q,b[f+12>>2]|0)|0;h=(A(q,b[f+4>>2]|0)|0)+h|0;b[l>>2]=h;g=r+g|0;b[k>>2]=g;e=s+e|0;b[j>>2]=e;f=g-h|0;if((h|0)<0){e=e-h|0;b[k>>2]=f;b[j>>2]=e;b[l>>2]=0;g=0}else{f=g;g=h}if((f|0)<0){a=g-f|0;b[l>>2]=a;e=e-f|0;b[j>>2]=e;b[k>>2]=0;h=0}else{a=g;h=f}g=a-e|0;f=h-e|0;if((e|0)<0){b[l>>2]=g;b[k>>2]=f;b[j>>2]=0;e=0}else{f=h;g=a}h=(f|0)<(g|0)?f:g;h=(e|0)<(h|0)?e:h;if((h|0)>0){g=g-h|0;f=f-h|0;e=e-h|0;b[l>>2]=g;b[k>>2]=f;b[j>>2]=e}if(!m){s=2;return s|0}s=(f+g+e|0)==(n|0)?1:2;return s|0}function fb(a,b){a=a|0;b=b|0;var c=0;do c=eb(a,b,0,1)|0;while((c|0)==2);return c|0}function gb(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,T=0;P=S;S=S+272|0;h=P+256|0;i=P+240|0;M=P;N=P+224|0;O=P+208|0;E=P+184|0;F=P+168|0;G=P+152|0;I=P+136|0;J=P+120|0;K=P+96|0;b[h>>2]=c;b[i>>2]=b[a>>2];b[i+4>>2]=b[a+4>>2];b[i+8>>2]=b[a+8>>2];b[i+12>>2]=b[a+12>>2];hb(i,h,M);b[g>>2]=0;D=f+d+((f|0)==6&1)|0;if((D|0)<=(d|0)){S=P;return}t=b[h>>2]|0;u=d+6|0;v=O+8|0;x=E+8|0;z=16928+(t<<2)|0;A=F+8|0;B=G+8|0;C=I+8|0;r=b[i>>2]|0;o=N+4|0;p=N+8|0;q=N+12|0;s=O+8|0;k=E+8|0;m=E+16|0;l=K+8|0;n=K+16|0;i=0;j=d;f=-1;a:while(1){h=(j|0)%6|0;a=M+(h<<4)|0;b[N>>2]=b[a>>2];b[N+4>>2]=b[a+4>>2];b[N+8>>2]=b[a+8>>2];b[N+12>>2]=b[a+12>>2];a=i;i=eb(N,t,0,1)|0;if((j|0)>(d|0)&(Fb(c)|0)!=0?(L=b[N>>2]|0,(a|0)!=1&(L|0)!=(f|0)):0){T=(h+5|0)%6|0;a=b[M+(T<<4)+12>>2]|0;Q=+((b[M+(T<<4)+8>>2]|0)-a|0);e[O>>3]=+((b[M+(T<<4)+4>>2]|0)-a|0)-Q*.5;e[v>>3]=Q*.8660254037844386;a=b[M+(h<<4)+12>>2]|0;Q=+((b[M+(h<<4)+8>>2]|0)-a|0);e[E>>3]=+((b[M+(h<<4)+4>>2]|0)-a|0)-Q*.5;e[x>>3]=Q*.8660254037844386;Q=+(b[z>>2]|0);e[F>>3]=Q*3.0;e[A>>3]=0.0;R=Q*-1.5;e[G>>3]=R;e[B>>3]=Q*2.598076211353316;e[I>>3]=R;e[C>>3]=Q*-2.598076211353316;switch(b[17008+(r*80|0)+(((f|0)==(r|0)?L:f)<<2)>>2]|0){case 1:{a=G;f=F;break}case 3:{a=I;f=G;break}case 2:{a=F;f=I;break}default:{a=8;break a}}Nc(O,E,f,a,J);if(!(Oc(O,J)|0)?!(Oc(E,J)|0):0){bb(J,r,t,1,K);T=b[g>>2]|0;Q=+w(+(+e[n>>3]));R=+y(+(+e[l>>3]),+(+e[K>>3]));e[g+8+(T<<4)>>3]=Q;e[g+8+(T<<4)+8>>3]=R;b[g>>2]=(b[g>>2]|0)+1}}if((j|0)<(u|0)){T=b[q>>2]|0;Q=+((b[p>>2]|0)-T|0);e[O>>3]=+((b[o>>2]|0)-T|0)-Q*.5;e[s>>3]=Q*.8660254037844386;bb(O,b[N>>2]|0,t,1,E);T=b[g>>2]|0;Q=+w(+(+e[m>>3]));R=+y(+(+e[k>>3]),+(+e[E>>3]));e[g+8+(T<<4)>>3]=Q;e[g+8+(T<<4)+8>>3]=R;b[g>>2]=(b[g>>2]|0)+1}j=j+1|0;if((j|0)>=(D|0)){a=3;break}else f=b[N>>2]|0}if((a|0)==3){S=P;return}else if((a|0)==8)H(27157,27120,766,27202)}function hb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+160|0;e=q+80|0;f=q;g=e;h=20336;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));g=f;h=20416;i=g+72|0;do{b[g>>2]=b[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));m=(Fb(b[c>>2]|0)|0)==0;m=m?e:f;p=a+4|0;g=b[p>>2]|0;n=a+8|0;e=b[n>>2]|0;o=a+12|0;f=b[o>>2]|0;h=e+(g<<1)|0;b[p>>2]=h;e=f+(e<<1)|0;b[n>>2]=e;g=(f<<1)+g|0;b[o>>2]=g;f=e-h|0;i=g-h|0;if((h|0)<0){b[n>>2]=f;b[o>>2]=i;b[p>>2]=0;e=f;h=0;g=i}i=h-e|0;f=g-e|0;if((e|0)<0){b[p>>2]=i;b[o>>2]=f;b[n>>2]=0;e=0}else{f=g;i=h}h=i-f|0;g=e-f|0;if((f|0)<0){b[p>>2]=h;b[n>>2]=g;b[o>>2]=0;f=0}else{g=e;h=i}e=(g|0)<(h|0)?g:h;e=(f|0)<(e|0)?f:e;if((e|0)>0){f=f-e|0;g=g-e|0;h=h-e|0;b[p>>2]=h;b[n>>2]=g;b[o>>2]=f}j=(g<<1)+h|0;i=f+(h<<1)|0;b[p>>2]=i;b[n>>2]=j;g=(f<<1)+g|0;b[o>>2]=g;e=j-i|0;f=g-i|0;if((i|0)<0){b[n>>2]=e;b[o>>2]=f;b[p>>2]=0;i=0;g=f}else e=j;h=i-e|0;f=g-e|0;if((e|0)<0){b[p>>2]=h;b[o>>2]=f;b[n>>2]=0;i=h;e=0}else f=g;h=i-f|0;g=e-f|0;if((f|0)<0){b[p>>2]=h;b[n>>2]=g;b[o>>2]=0;f=0}else{g=e;h=i}e=(g|0)<(h|0)?g:h;e=(f|0)<(e|0)?f:e;if((e|0)>0){b[p>>2]=h-e;b[n>>2]=g-e;b[o>>2]=f-e}if(Fb(b[c>>2]|0)|0){g=b[p>>2]|0;h=b[n>>2]|0;f=b[o>>2]|0;e=(h*3|0)+g|0;g=f+(g*3|0)|0;b[p>>2]=g;b[n>>2]=e;h=(f*3|0)+h|0;b[o>>2]=h;f=e-g|0;i=h-g|0;if((g|0)<0){b[n>>2]=f;b[o>>2]=i;b[p>>2]=0;e=f;j=0}else{j=g;i=h}g=j-e|0;f=i-e|0;if((e|0)<0){b[p>>2]=g;b[o>>2]=f;b[n>>2]=0;j=g;h=0}else{h=e;f=i}g=j-f|0;e=h-f|0;if((f|0)<0){b[p>>2]=g;b[n>>2]=e;b[o>>2]=0;h=e;f=0}else g=j;e=(h|0)<(g|0)?h:g;e=(f|0)<(e|0)?f:e;if((e|0)>0){b[p>>2]=g-e;b[n>>2]=h-e;b[o>>2]=f-e}b[c>>2]=(b[c>>2]|0)+1}j=0;do{b[d+(j<<4)>>2]=b[a>>2];f=b[n>>2]|0;e=b[o>>2]|0;k=b[m+(j*12|0)+4>>2]|0;l=b[m+(j*12|0)+8>>2]|0;h=(b[m+(j*12|0)>>2]|0)+(b[p>>2]|0)|0;c=d+(j<<4)+4|0;b[c>>2]=h;f=k+f|0;k=d+(j<<4)+8|0;b[k>>2]=f;e=l+e|0;l=d+(j<<4)+12|0;b[l>>2]=e;g=f-h|0;if((h|0)<0){e=e-h|0;b[k>>2]=g;b[l>>2]=e;b[c>>2]=0;f=g;h=0}if((f|0)<0){h=h-f|0;b[c>>2]=h;e=e-f|0;b[l>>2]=e;b[k>>2]=0;f=0}i=h-e|0;g=f-e|0;if((e|0)<0){b[c>>2]=i;b[k>>2]=g;b[l>>2]=0;h=i;e=0}else g=f;f=(g|0)<(h|0)?g:h;f=(e|0)<(f|0)?e:f;if((f|0)>0){b[c>>2]=h-f;b[k>>2]=g-f;b[l>>2]=e-f}j=j+1|0}while((j|0)!=6);S=q;return}function ib(a,b){a=a|0;b=b|0;b=td(a|0,b|0,52)|0;G()|0;return b&15|0}function jb(a,b){a=a|0;b=b|0;b=td(a|0,b|0,45)|0;G()|0;return b&127|0}function kb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;if((d+-1|0)>>>0>14){e=4;return e|0}d=td(a|0,c|0,(15-d|0)*3|0)|0;G()|0;b[e>>2]=d&7;e=0;return e|0}function lb(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;if(c>>>0>15){f=4;return f|0}if(d>>>0>121){f=17;return f|0}i=ud(c|0,0,52)|0;g=G()|0;j=ud(d|0,0,45)|0;g=g|(G()|0)|134225919;a:do if((c|0)>=1){j=1;i=(a[20496+d>>0]|0)!=0;h=-1;while(1){d=b[e+(j+-1<<2)>>2]|0;if(d>>>0>6){g=18;d=10;break}if(!((d|0)==0|i^1))if((d|0)==1){g=19;d=10;break}else i=0;l=(15-j|0)*3|0;k=ud(7,0,l|0)|0;g=g&~(G()|0);d=ud(d|0,((d|0)<0)<<31>>31|0,l|0)|0;h=d|h&~k;g=G()|0|g;if((j|0)<(c|0))j=j+1|0;else break a}if((d|0)==10)return g|0}else h=-1;while(0);l=f;b[l>>2]=h;b[l+4>>2]=g;l=0;return l|0}function mb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(!(0==0&(c&-16777216|0)==134217728)){b=0;return b|0}e=td(b|0,c|0,52)|0;G()|0;e=e&15;d=td(b|0,c|0,45)|0;G()|0;d=d&127;if(d>>>0>121){b=0;return b|0}h=(e^15)*3|0;f=td(b|0,c|0,h|0)|0;h=ud(f|0,G()|0,h|0)|0;f=G()|0;g=kd(-1227133514,-1171,h|0,f|0)|0;if(!((h&613566756&g|0)==0&(f&4681&(G()|0)|0)==0)){h=0;return h|0}h=(e*3|0)+19|0;g=ud(~b|0,~c|0,h|0)|0;h=td(g|0,G()|0,h|0)|0;if(!((e|0)==15|(h|0)==0&(G()|0)==0)){h=0;return h|0}if(!(a[20496+d>>0]|0)){h=1;return h|0}c=c&8191;if((b|0)==0&(c|0)==0){h=1;return h|0}else{h=vd(b|0,c|0,0)|0;G()|0;return ((63-h|0)%3|0|0)!=0|0}return 0}function nb(b,c){b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;if(((0==0&(c&-16777216|0)==134217728?(e=td(b|0,c|0,52)|0,G()|0,e=e&15,d=td(b|0,c|0,45)|0,G()|0,d=d&127,d>>>0<=121):0)?(h=(e^15)*3|0,f=td(b|0,c|0,h|0)|0,h=ud(f|0,G()|0,h|0)|0,f=G()|0,g=kd(-1227133514,-1171,h|0,f|0)|0,(h&613566756&g|0)==0&(f&4681&(G()|0)|0)==0):0)?(h=(e*3|0)+19|0,g=ud(~b|0,~c|0,h|0)|0,h=td(g|0,G()|0,h|0)|0,(e|0)==15|(h|0)==0&(G()|0)==0):0){if(!(a[20496+d>>0]|0)){h=1;return h|0}d=c&8191;if((b|0)==0&(d|0)==0){h=1;return h|0}h=vd(b|0,d|0,0)|0;G()|0;if((63-h|0)%3|0|0){h=1;return h|0}}if(Wa(b,c)|0){h=1;return h|0}h=(Uc(b,c)|0)!=0&1;return h|0}function ob(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=ud(c|0,0,52)|0;g=G()|0;d=ud(d|0,0,45)|0;d=g|(G()|0)|134225919;if((c|0)<1){g=-1;e=d;c=a;b[c>>2]=g;a=a+4|0;b[a>>2]=e;return}g=1;f=-1;while(1){h=(15-g|0)*3|0;i=ud(7,0,h|0)|0;d=d&~(G()|0);h=ud(e|0,0,h|0)|0;f=f&~i|h;d=d|(G()|0);if((g|0)==(c|0))break;else g=g+1|0}i=a;h=i;b[h>>2]=f;i=i+4|0;b[i>>2]=d;return}function pb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=td(a|0,c|0,52)|0;G()|0;g=g&15;if(d>>>0>15){e=4;return e|0}if((g|0)<(d|0)){e=12;return e|0}if((g|0)==(d|0)){b[e>>2]=a;b[e+4>>2]=c;e=0;return e|0}f=ud(d|0,0,52)|0;f=f|a;a=G()|0|c&-15728641;if((g|0)>(d|0))do{c=ud(7,0,(14-d|0)*3|0)|0;d=d+1|0;f=c|f;a=G()|0|a}while((d|0)<(g|0));b[e>>2]=f;b[e+4>>2]=a;e=0;return e|0}function qb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=td(a|0,c|0,52)|0;G()|0;g=g&15;if(!((d|0)<16&(g|0)<=(d|0))){e=4;return e|0}f=d-g|0;d=td(a|0,c|0,45)|0;G()|0;a:do if(!(ra(d&127)|0)){d=pc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0}else{b:do if(g|0){d=1;while(1){h=ud(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0))break;if(d>>>0>>0)d=d+1|0;else break b}d=pc(7,0,f,((f|0)<0)<<31>>31)|0;f=G()|0;break a}while(0);d=pc(7,0,f,((f|0)<0)<<31>>31)|0;d=pd(d|0,G()|0,5,0)|0;d=jd(d|0,G()|0,-5,-1)|0;d=nd(d|0,G()|0,6,0)|0;d=jd(d|0,G()|0,1,0)|0;f=G()|0}while(0);h=e;b[h>>2]=d;b[h+4>>2]=f;h=0;return h|0}function rb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=td(a|0,b|0,45)|0;G()|0;if(!(ra(e&127)|0)){e=0;return e|0}e=td(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!e)c=0;else{d=1;while(1){c=td(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0)break a;if(d>>>0>>0)d=d+1|0;else{c=0;break}}}while(0);e=(c|0)==0&1;return e|0}function sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=S;S=S+16|0;g=h;Rb(g,a,c,d);c=g;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){S=h;return 0}f=0;d=0;do{i=e+(f<<3)|0;b[i>>2]=a;b[i+4>>2]=c;f=jd(f|0,d|0,1,0)|0;d=G()|0;Tb(g);i=g;a=b[i>>2]|0;c=b[i+4>>2]|0}while(!((a|0)==0&(c|0)==0));S=h;return 0}function tb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)<(c|0)){c=b;d=a;F(c|0);return d|0}c=ud(-1,-1,((d-c|0)*3|0)+3|0)|0;d=ud(~c|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&b;d=~d&a;F(c|0);return d|0}function ub(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0;f=td(a|0,c|0,52)|0;G()|0;f=f&15;if(!((d|0)<16&(f|0)<=(d|0))){e=4;return e|0}if((f|0)<(d|0)){f=ud(-1,-1,((d+-1-f|0)*3|0)+3|0)|0;f=ud(~f|0,~(G()|0)|0,(15-d|0)*3|0)|0;c=~(G()|0)&c;a=~f&a}f=ud(d|0,0,52)|0;d=c&-15728641|(G()|0);b[e>>2]=a|f;b[e+4>>2]=d;e=0;return e|0}function vb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if((d|0)==0&(e|0)==0){E=0;return E|0}f=a;g=b[f>>2]|0;f=b[f+4>>2]|0;if(0==0&(f&15728640|0)==0){if(!((e|0)>0|(e|0)==0&d>>>0>0)){E=0;return E|0}E=c;b[E>>2]=g;b[E+4>>2]=f;if((d|0)==1&(e|0)==0){E=0;return E|0}f=1;g=0;do{C=a+(f<<3)|0;D=b[C+4>>2]|0;E=c+(f<<3)|0;b[E>>2]=b[C>>2];b[E+4>>2]=D;f=jd(f|0,g|0,1,0)|0;g=G()|0}while((g|0)<(e|0)|(g|0)==(e|0)&f>>>0>>0);f=0;return f|0}B=d<<3;D=dd(B)|0;if(!D){E=13;return E|0}zd(D|0,a|0,B|0)|0;C=fd(d,8)|0;if(!C){ed(D);E=13;return E|0}a:while(1){f=D;k=b[f>>2]|0;f=b[f+4>>2]|0;z=td(k|0,f|0,52)|0;G()|0;z=z&15;A=z+-1|0;y=(z|0)!=0;x=(e|0)>0|(e|0)==0&d>>>0>0;b:do if(y&x){t=ud(A|0,0,52)|0;u=G()|0;if(A>>>0>15){if(!((k|0)==0&(f|0)==0)){E=16;break a}g=0;a=0;while(1){g=jd(g|0,a|0,1,0)|0;a=G()|0;if(!((a|0)<(e|0)|(a|0)==(e|0)&g>>>0>>0))break b;h=D+(g<<3)|0;w=b[h>>2]|0;h=b[h+4>>2]|0;if(!((w|0)==0&(h|0)==0)){f=h;E=16;break a}}}i=k;a=f;g=0;h=0;while(1){if(!((i|0)==0&(a|0)==0)){if(!(0==0&(a&117440512|0)==0)){E=21;break a}l=td(i|0,a|0,52)|0;G()|0;l=l&15;if((l|0)<(A|0)){f=12;E=27;break a}if((l|0)!=(A|0)){i=i|t;a=a&-15728641|u;if(l>>>0>=z>>>0){j=A;do{w=ud(7,0,(14-j|0)*3|0)|0;j=j+1|0;i=w|i;a=G()|0|a}while(j>>>0>>0)}}n=rd(i|0,a|0,d|0,e|0)|0;o=G()|0;j=C+(n<<3)|0;l=j;m=b[l>>2]|0;l=b[l+4>>2]|0;if(!((m|0)==0&(l|0)==0)){r=0;s=0;do{if((r|0)>(e|0)|(r|0)==(e|0)&s>>>0>d>>>0){E=31;break a}if((m|0)==(i|0)&(l&-117440513|0)==(a|0)){p=td(m|0,l|0,56)|0;G()|0;p=p&7;q=p+1|0;w=td(m|0,l|0,45)|0;G()|0;c:do if(!(ra(w&127)|0))l=7;else{m=td(m|0,l|0,52)|0;G()|0;m=m&15;if(!m){l=6;break}l=1;while(1){w=ud(7,0,(15-l|0)*3|0)|0;if(!((w&i|0)==0&((G()|0)&a|0)==0)){l=7;break c}if(l>>>0>>0)l=l+1|0;else{l=6;break}}}while(0);if((p+2|0)>>>0>l>>>0){E=41;break a}w=ud(q|0,0,56)|0;a=G()|0|a&-117440513;v=j;b[v>>2]=0;b[v+4>>2]=0;i=w|i}else{n=jd(n|0,o|0,1,0)|0;n=qd(n|0,G()|0,d|0,e|0)|0;o=G()|0}s=jd(s|0,r|0,1,0)|0;r=G()|0;j=C+(n<<3)|0;l=j;m=b[l>>2]|0;l=b[l+4>>2]|0}while(!((m|0)==0&(l|0)==0))}w=j;b[w>>2]=i;b[w+4>>2]=a}g=jd(g|0,h|0,1,0)|0;h=G()|0;if(!((h|0)<(e|0)|(h|0)==(e|0)&g>>>0>>0))break b;a=D+(g<<3)|0;i=b[a>>2]|0;a=b[a+4>>2]|0}}while(0);w=jd(d|0,e|0,5,0)|0;v=G()|0;if(v>>>0<0|(v|0)==0&w>>>0<11){E=85;break}w=nd(d|0,e|0,6,0)|0;G()|0;w=fd(w,8)|0;if(!w){E=48;break}do if(x){q=0;a=0;p=0;r=0;while(1){l=C+(q<<3)|0;h=l;g=b[h>>2]|0;h=b[h+4>>2]|0;if(!((g|0)==0&(h|0)==0)){m=td(g|0,h|0,56)|0;G()|0;m=m&7;i=m+1|0;n=h&-117440513;v=td(g|0,h|0,45)|0;G()|0;d:do if(ra(v&127)|0){o=td(g|0,h|0,52)|0;G()|0;o=o&15;if(o|0){j=1;while(1){v=ud(7,0,(15-j|0)*3|0)|0;if(!((g&v|0)==0&(n&(G()|0)|0)==0))break d;if(j>>>0>>0)j=j+1|0;else break}}h=ud(i|0,0,56)|0;g=h|g;h=G()|0|n;i=l;b[i>>2]=g;b[i+4>>2]=h;i=m+2|0}while(0);if((i|0)==7){v=w+(a<<3)|0;b[v>>2]=g;b[v+4>>2]=h&-117440513;a=jd(a|0,p|0,1,0)|0;v=G()|0}else v=p}else v=p;q=jd(q|0,r|0,1,0)|0;r=G()|0;if(!((r|0)<(e|0)|(r|0)==(e|0)&q>>>0>>0))break;else p=v}if(x){s=A>>>0>15;t=ud(A|0,0,52)|0;u=G()|0;if(!y){g=0;j=0;i=0;h=0;while(1){if(!((k|0)==0&(f|0)==0)){A=c+(g<<3)|0;b[A>>2]=k;b[A+4>>2]=f;g=jd(g|0,j|0,1,0)|0;j=G()|0}i=jd(i|0,h|0,1,0)|0;h=G()|0;if(!((h|0)<(e|0)|(h|0)==(e|0)&i>>>0>>0))break;f=D+(i<<3)|0;k=b[f>>2]|0;f=b[f+4>>2]|0}f=v;break}g=0;j=0;h=0;i=0;while(1){do if(!((k|0)==0&(f|0)==0)){o=td(k|0,f|0,52)|0;G()|0;o=o&15;if(s|(o|0)<(A|0)){E=80;break a}if((o|0)!=(A|0)){l=k|t;m=f&-15728641|u;if(o>>>0>=z>>>0){n=A;do{y=ud(7,0,(14-n|0)*3|0)|0;n=n+1|0;l=y|l;m=G()|0|m}while(n>>>0>>0)}}else{l=k;m=f}p=rd(l|0,m|0,d|0,e|0)|0;n=0;o=0;r=G()|0;do{if((n|0)>(e|0)|(n|0)==(e|0)&o>>>0>d>>>0){E=81;break a}y=C+(p<<3)|0;q=b[y+4>>2]|0;if((q&-117440513|0)==(m|0)?(b[y>>2]|0)==(l|0):0){E=65;break}y=jd(p|0,r|0,1,0)|0;p=qd(y|0,G()|0,d|0,e|0)|0;r=G()|0;o=jd(o|0,n|0,1,0)|0;n=G()|0;y=C+(p<<3)|0}while(!((b[y>>2]|0)==(l|0)?(b[y+4>>2]|0)==(m|0):0));if((E|0)==65?(E=0,0==0&(q&117440512|0)==100663296):0)break;y=c+(g<<3)|0;b[y>>2]=k;b[y+4>>2]=f;g=jd(g|0,j|0,1,0)|0;j=G()|0}while(0);h=jd(h|0,i|0,1,0)|0;i=G()|0;if(!((i|0)<(e|0)|(i|0)==(e|0)&h>>>0>>0))break;f=D+(h<<3)|0;k=b[f>>2]|0;f=b[f+4>>2]|0}f=v}else{g=0;f=v}}else{g=0;a=0;f=0}while(0);Bd(C|0,0,B|0)|0;zd(D|0,w|0,a<<3|0)|0;ed(w);if((a|0)==0&(f|0)==0){E=89;break}else{c=c+(g<<3)|0;e=f;d=a}}if((E|0)==16)if(0==0&(f&117440512|0)==0){f=4;E=27}else E=21;else if((E|0)==31)H(27634,27225,620,27235);else if((E|0)==41){ed(D);ed(C);E=10;return E|0}else if((E|0)==48){ed(D);ed(C);E=13;return E|0}else if((E|0)==80)H(27634,27225,711,27235);else if((E|0)==81)H(27634,27225,723,27235);else if((E|0)==85){zd(c|0,D|0,d<<3|0)|0;E=89}if((E|0)==21){ed(D);ed(C);E=5;return E|0}else if((E|0)==27){ed(D);ed(C);E=f;return E|0}else if((E|0)==89){ed(D);ed(C);E=0;return E|0}return 0}function wb(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=S;S=S+16|0;p=q;if(!((d|0)>0|(d|0)==0&c>>>0>0)){p=0;S=q;return p|0}if((h|0)>=16){p=12;S=q;return p|0}n=0;o=0;m=0;i=0;a:while(1){k=a+(n<<3)|0;j=b[k>>2]|0;k=b[k+4>>2]|0;l=td(j|0,k|0,52)|0;G()|0;if((l&15|0)>(h|0)){i=12;j=11;break}Rb(p,j,k,h);l=p;k=b[l>>2]|0;l=b[l+4>>2]|0;if((k|0)==0&(l|0)==0)j=m;else{j=m;do{if(!((i|0)<(g|0)|(i|0)==(g|0)&j>>>0>>0)){j=10;break a}m=e+(j<<3)|0;b[m>>2]=k;b[m+4>>2]=l;j=jd(j|0,i|0,1,0)|0;i=G()|0;Tb(p);m=p;k=b[m>>2]|0;l=b[m+4>>2]|0}while(!((k|0)==0&(l|0)==0))}n=jd(n|0,o|0,1,0)|0;o=G()|0;if(!((o|0)<(d|0)|(o|0)==(d|0)&n>>>0>>0)){i=0;j=11;break}else m=j}if((j|0)==10){p=14;S=q;return p|0}else if((j|0)==11){S=q;return i|0}return 0}function xb(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=S;S=S+16|0;m=n;a:do if((d|0)>0|(d|0)==0&c>>>0>0){k=0;h=0;g=0;l=0;while(1){j=a+(k<<3)|0;i=b[j>>2]|0;j=b[j+4>>2]|0;if(!((i|0)==0&(j|0)==0)){j=(qb(i,j,e,m)|0)==0;i=m;h=jd(b[i>>2]|0,b[i+4>>2]|0,h|0,g|0)|0;g=G()|0;if(!j){g=12;break}}k=jd(k|0,l|0,1,0)|0;l=G()|0;if(!((l|0)<(d|0)|(l|0)==(d|0)&k>>>0>>0))break a}S=n;return g|0}else{h=0;g=0}while(0);b[f>>2]=h;b[f+4>>2]=g;f=0;S=n;return f|0}function yb(a,b){a=a|0;b=b|0;b=td(a|0,b|0,52)|0;G()|0;return b&1|0}function zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;e=td(a|0,b|0,52)|0;G()|0;e=e&15;if(!e){e=0;return e|0}d=1;while(1){c=td(a|0,b|0,(15-d|0)*3|0)|0;G()|0;c=c&7;if(c|0){d=5;break}if(d>>>0>>0)d=d+1|0;else{c=0;d=5;break}}if((d|0)==5)return c|0;return 0}function Ab(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=td(a|0,b|0,52)|0;G()|0;k=k&15;if(!k){j=b;k=a;F(j|0);return k|0}j=1;c=0;while(1){d=(15-j|0)*3|0;h=ud(7,0,d|0)|0;i=G()|0;f=a&~h;g=b&~i;a=td(a|0,b|0,d|0)|0;G()|0;switch(a&7){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:a=a&7}d=ud(a|0,0,d|0)|0;e=G()|0;a=d|f;b=e|g;a:do if(!c)if(!((d&h|0)==0&(e&i|0)==0)){g=td(a|0,b|0,52)|0;G()|0;g=g&15;if(!g)c=1;else{c=1;b:while(1){i=td(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(i&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}f=1;while(1){e=(15-f|0)*3|0;c=td(a|0,b|0,e|0)|0;G()|0;d=ud(7,0,e|0)|0;d=a&~d;b=b&~(G()|0);switch(c&7){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:a=c&7}a=ud(a|0,0,e|0)|0;a=a|d;b=G()|0|b;if(f>>>0>>0)f=f+1|0;else{c=1;break a}}}}else c=0;while(0);if(j>>>0>>0)j=j+1|0;else break}F(b|0);return a|0}function Bb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=td(a|0,b|0,52)|0;G()|0;g=g&15;if(!g){f=b;g=a;F(f|0);return g|0}f=1;while(1){e=(15-f|0)*3|0;c=td(a|0,b|0,e|0)|0;G()|0;d=ud(7,0,e|0)|0;d=a&~d;b=b&~(G()|0);switch(c&7){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:a=c&7}a=ud(a|0,0,e|0)|0;a=a|d;b=G()|0|b;if(f>>>0>>0)f=f+1|0;else break}F(b|0);return a|0}function Cb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=td(a|0,b|0,52)|0;G()|0;k=k&15;if(!k){j=b;k=a;F(j|0);return k|0}j=1;c=0;while(1){d=(15-j|0)*3|0;h=ud(7,0,d|0)|0;i=G()|0;f=a&~h;g=b&~i;a=td(a|0,b|0,d|0)|0;G()|0;switch(a&7){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:a=a&7}d=ud(a|0,0,d|0)|0;e=G()|0;a=d|f;b=e|g;a:do if(!c)if(!((d&h|0)==0&(e&i|0)==0)){g=td(a|0,b|0,52)|0;G()|0;g=g&15;if(!g)c=1;else{c=1;b:while(1){i=td(a|0,b|0,(15-c|0)*3|0)|0;G()|0;switch(i&7){case 1:break b;case 0:break;default:{c=1;break a}}if(c>>>0>>0)c=c+1|0;else{c=1;break a}}f=1;while(1){c=(15-f|0)*3|0;d=ud(7,0,c|0)|0;d=a&~d;e=b&~(G()|0);a=td(a|0,b|0,c|0)|0;G()|0;switch(a&7){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:a=a&7}a=ud(a|0,0,c|0)|0;a=a|d;b=G()|0|e;if(f>>>0>>0)f=f+1|0;else{c=1;break a}}}}else c=0;while(0);if(j>>>0>>0)j=j+1|0;else break}F(b|0);return a|0}function Db(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;g=td(a|0,b|0,52)|0;G()|0;g=g&15;if(!g){f=b;g=a;F(f|0);return g|0}f=1;while(1){d=(15-f|0)*3|0;c=ud(7,0,d|0)|0;c=a&~c;e=b&~(G()|0);a=td(a|0,b|0,d|0)|0;G()|0;switch(a&7){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:a=a&7}a=ud(a|0,0,d|0)|0;a=a|c;b=G()|0|e;if(f>>>0>>0)f=f+1|0;else break}F(b|0);return a|0}function Eb(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=S;S=S+16|0;u=v;ud(c|0,0,52)|0;d=G()|0|134225919;if(!c){if((b[a+4>>2]|0)>2){t=0;u=0;F(t|0);S=v;return u|0}if((b[a+8>>2]|0)>2){t=0;u=0;F(t|0);S=v;return u|0}if((b[a+12>>2]|0)>2){t=0;u=0;F(t|0);S=v;return u|0}ud(ta(a)|0,0,45)|0;t=G()|0|d;u=-1;F(t|0);S=v;return u|0};b[u>>2]=b[a>>2];b[u+4>>2]=b[a+4>>2];b[u+8>>2]=b[a+8>>2];b[u+12>>2]=b[a+12>>2];t=u+4|0;a:do if((c|0)>0){q=u+8|0;r=u+12|0;p=c;m=b[q>>2]|0;n=b[r>>2]|0;c=-1;l=b[u+4>>2]|0;while(1){o=p;p=p+-1|0;a=l-n|0;e=m-n|0;if(!(o&1)){i=cd(+((a<<1)+e|0)*.14285714285714285)|0;b[t>>2]=i;f=cd(+((e*3|0)-a|0)*.14285714285714285)|0;b[q>>2]=f;b[r>>2]=0;e=f-i|0;a=0-i|0;if((i|0)<0){b[q>>2]=e;b[r>>2]=a;b[t>>2]=0;f=e;i=0}else a=0;h=i-f|0;e=a-f|0;if((f|0)<0){b[t>>2]=h;b[r>>2]=e;b[q>>2]=0;g=e;f=0}else{g=a;h=i}a=h-g|0;e=f-g|0;if((g|0)<0){b[t>>2]=a;b[q>>2]=e;b[r>>2]=0;f=e;g=0}else a=h;e=(f|0)<(a|0)?f:a;e=(g|0)<(e|0)?g:e;if((e|0)>0){g=g-e|0;f=f-e|0;a=a-e|0;b[t>>2]=a;b[q>>2]=f;b[r>>2]=g}x=g+(a*3|0)|0;y=(x|0)<0;k=(f*3|0)+a-(y?x:0)|0;j=(k|0)<0;e=(g*3|0)+f-(y?x:0)-(j?k:0)|0;i=(e|0)<0;w=i?0:e;h=(j?0:k)-(i?e:0)|0;e=(y?0:x)-(j?k:0)-(i?e:0)|0;i=(h|0)<(e|0)?h:e;i=(w|0)<(i|0)?w:i;k=(i|0)>0;j=k?i:0;h=h-(k?i:0)|0;i=w-(k?i:0)|0;k=g}else{g=cd(+((a*3|0)-e|0)*.14285714285714285)|0;b[t>>2]=g;a=cd(+((e<<1)+a|0)*.14285714285714285)|0;b[q>>2]=a;b[r>>2]=0;e=a-g|0;f=0-g|0;if((g|0)<0){b[q>>2]=e;b[r>>2]=f;b[t>>2]=0;a=e;h=0}else{h=g;f=0}g=h-a|0;e=f-a|0;if((a|0)<0){b[t>>2]=g;b[r>>2]=e;b[q>>2]=0;h=g;g=0}else{e=f;g=a}a=h-e|0;f=g-e|0;if((e|0)<0){b[t>>2]=a;b[q>>2]=f;b[r>>2]=0;g=0}else{f=g;a=h;g=e}e=(f|0)<(a|0)?f:a;e=(g|0)<(e|0)?g:e;if((e|0)>0){g=g-e|0;f=f-e|0;a=a-e|0;b[t>>2]=a;b[q>>2]=f;b[r>>2]=g}x=f+(a*3|0)|0;w=(x|0)<0;k=g+(f*3|0)-(w?x:0)|0;j=(k|0)<0;e=(g*3|0)+a-(w?x:0)-(j?k:0)|0;i=(e|0)<0;y=i?0:e;h=(j?0:k)-(i?e:0)|0;e=(w?0:x)-(j?k:0)-(i?e:0)|0;i=(h|0)<(e|0)?h:e;i=(y|0)<(i|0)?y:i;k=(i|0)>0;j=k?i:0;h=h-(k?i:0)|0;i=y-(k?i:0)|0;k=g}e=l+(j-e)|0;g=(e|0)<0;j=m-h-(g?e:0)|0;h=(j|0)<0;n=n-i+(g?0-e|0:0)+(h?0-j|0:0)|0;l=(n|0)<0;i=l?0:n;y=(h?0:j)-(l?n:0)|0;n=(g?0:e)-(h?j:0)-(l?n:0)|0;l=(y|0)<(n|0)?y:n;l=(i|0)<(l|0)?i:l;j=(l|0)>0;n=n-(j?l:0)|0;h=(15-o|0)*3|0;e=ud(7,0,h|0)|0;e=c&~e;g=d&~(G()|0);m=(n|0)<0;x=m?n:0;y=y-(j?l:0)-x|0;w=(y|0)<0;x=(w?0-y|0:0)+(i-(j?l:0)-x)|0;d=(x|0)<0;c=d?0:x;x=d?x:0;d=(w?0:y)-x|0;x=(m?0:n)-(w?y:0)-x|0;y=(d|0)<(x|0)?d:x;y=(c|0)<(y|0)?c:y;y=(y|0)>0?y:0;c=c-y|0;d=d-y|0;b:do switch(x-y|0){case 0:switch(d|0){case 0:{c=(c|0)==0?0:(c|0)==1?1:7;break b}case 1:{c=(c|0)==0?2:(c|0)==1?3:7;break b}default:{s=36;break b}}case 1:switch(d|0){case 0:{c=(c|0)==0?4:(c|0)==1?5:7;break b}case 1:if(!c){c=6;break b}else{s=36;break b}default:{s=36;break b}}default:s=36}while(0);if((s|0)==36){s=0;c=7}c=ud(c|0,0,h|0)|0;c=c|e;d=G()|0|g;if((o|0)<=1)break a;else{m=f;n=k;l=a}}}else{c=-1;a=b[t>>2]|0}while(0);c:do if(((a|0)<=2?(b[u+8>>2]|0)<=2:0)?(b[u+12>>2]|0)<=2:0){e=ta(u)|0;a=ud(e|0,0,45)|0;c=a|c;a=G()|0|d&-1040385;j=ua(u)|0;if(!(ra(e)|0)){if((j|0)<=0)break;i=0;while(1){h=td(c|0,a|0,52)|0;G()|0;h=h&15;d:do if(h){g=1;while(1){f=(15-g|0)*3|0;d=td(c|0,a|0,f|0)|0;G()|0;e=ud(7,0,f|0)|0;c=c&~e;e=a&~(G()|0);switch(d&7){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:a=d&7}a=ud(a|0,0,f|0)|0;c=a|c;a=G()|0|e;if(g>>>0>>0)g=g+1|0;else break d}}while(0);i=i+1|0;if((i|0)==(j|0))break c}}h=td(c|0,a|0,52)|0;G()|0;h=h&15;e:do if(h){d=1;f:while(1){y=td(c|0,a|0,(15-d|0)*3|0)|0;G()|0;switch(y&7){case 1:break f;case 0:break;default:break e}if(d>>>0>>0)d=d+1|0;else break e}if(xa(e,b[u>>2]|0)|0){g=1;while(1){d=(15-g|0)*3|0;e=ud(7,0,d|0)|0;e=c&~e;f=a&~(G()|0);a=td(c|0,a|0,d|0)|0;G()|0;switch(a&7){case 1:{a=3;break}case 3:{a=2;break}case 2:{a=6;break}case 6:{a=4;break}case 4:{a=5;break}case 5:{a=1;break}default:a=a&7}c=ud(a|0,0,d|0)|0;c=c|e;a=G()|0|f;if(g>>>0>>0)g=g+1|0;else break e}}else{g=1;while(1){f=(15-g|0)*3|0;d=td(c|0,a|0,f|0)|0;G()|0;e=ud(7,0,f|0)|0;c=c&~e;e=a&~(G()|0);switch(d&7){case 1:{a=5;break}case 5:{a=4;break}case 4:{a=6;break}case 6:{a=2;break}case 2:{a=3;break}case 3:{a=1;break}default:a=d&7}a=ud(a|0,0,f|0)|0;c=a|c;a=G()|0|e;if(g>>>0>>0)g=g+1|0;else break e}}}while(0);if((j|0)>0){d=0;do{c=Ab(c,a)|0;a=G()|0;d=d+1|0}while((d|0)!=(j|0))}}else{c=0;a=0}while(0);x=a;y=c;F(x|0);S=v;return y|0}function Fb(a){a=a|0;return (a|0)%2|0|0}function Gb(a,c,d){a=a|0;c=c|0;d=d|0;var g=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=S;S=S+64|0;k=n+24|0;l=n+48|0;m=n;if(c>>>0>15){m=4;S=n;return m|0}i=+e[a>>3];e[f>>3]=i;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0){m=3;S=n;return m|0}g=+e[a+8>>3];e[f>>3]=g;if(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0){m=3;S=n;return m|0}h=+s(+i);o=h*+s(+g);h=h*+t(+g);g=+t(+i);e[m>>3]=o;e[m+8>>3]=h;e[m+16>>3]=g;e[f>>3]=o;do if(!(0==0?(b[f+4>>2]&2146435072|0)==2146435072:0)?(e[f>>3]=g,a=b[f+4>>2]|0,e[f>>3]=h,!((0==0?(b[f+4>>2]&2146435072|0)==2146435072:0)|0==0&(a&2146435072|0)==2146435072)):0){b[k>>2]=b[m>>2];b[k+4>>2]=b[m+4>>2];b[k+8>>2]=b[m+8>>2];b[k+12>>2]=b[m+12>>2];b[k+16>>2]=b[m+16>>2];b[k+20>>2]=b[m+20>>2];$a(k,c,l);l=Eb(l,c)|0;m=G()|0;b[d>>2]=l;b[d+4>>2]=m;if((l|0)==0&(m|0)==0)H(27634,27225,1073,27248);else{j=0;break}}else j=2;while(0);m=j;S=n;return m|0}function Hb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=d+4|0;p=td(a|0,c|0,52)|0;G()|0;p=p&15;n=td(a|0,c|0,45)|0;G()|0;e=(p|0)==0;if(!(ra(n&127)|0)){if(e){p=0;return p|0}if((b[o>>2]|0)==0?(b[d+8>>2]|0)==0:0)e=(b[d+12>>2]|0)!=0&1;else e=1}else if(e){p=1;return p|0}else e=1;n=d+8|0;m=d+12|0;l=1;d=b[o>>2]|0;h=b[n>>2]|0;g=b[m>>2]|0;while(1){f=d*3|0;i=h*3|0;k=g*3|0;if(!(l&1)){j=i+d|0;i=g+f|0;b[o>>2]=i;b[n>>2]=j;f=k+h|0;b[m>>2]=f;d=j-i|0;g=f-i|0;if((i|0)<0){b[n>>2]=d;b[m>>2]=g;b[o>>2]=0;i=0;f=g}else d=j;h=i-d|0;g=f-d|0;if((d|0)<0){b[o>>2]=h;b[m>>2]=g;b[n>>2]=0;i=h;f=0}else{g=f;f=d}d=i-g|0;h=f-g|0;if((g|0)<0){b[o>>2]=d;b[n>>2]=h;b[m>>2]=0;g=0}else{h=f;d=i}f=(h|0)<(d|0)?h:d;f=(g|0)<(f|0)?g:f;if((f|0)>0){g=g-f|0;h=h-f|0;d=d-f|0;b[o>>2]=d;b[n>>2]=h;b[m>>2]=g}}else{j=h+f|0;b[o>>2]=j;g=g+i|0;b[n>>2]=g;f=k+d|0;b[m>>2]=f;d=g-j|0;h=f-j|0;if((j|0)<0){b[n>>2]=d;b[m>>2]=h;b[o>>2]=0;i=0;f=h}else{d=g;i=j}h=i-d|0;g=f-d|0;if((d|0)<0){b[o>>2]=h;b[m>>2]=g;b[n>>2]=0;i=h;f=0}else{g=f;f=d}d=i-g|0;h=f-g|0;if((g|0)<0){b[o>>2]=d;b[n>>2]=h;b[m>>2]=0;g=0}else{h=f;d=i}f=(h|0)<(d|0)?h:d;f=(g|0)<(f|0)?g:f;if((f|0)>0){g=g-f|0;h=h-f|0;d=d-f|0;b[o>>2]=d;b[n>>2]=h;b[m>>2]=g}}f=td(a|0,c|0,(15-l|0)*3|0)|0;G()|0;f=f&7;if((f+-1|0)>>>0<6){j=b[22032+(f*12|0)+4>>2]|0;k=b[22032+(f*12|0)+8>>2]|0;i=(b[22032+(f*12|0)>>2]|0)+d|0;b[o>>2]=i;h=j+h|0;b[n>>2]=h;d=k+g|0;b[m>>2]=d;g=h-i|0;f=d-i|0;if((i|0)<0){b[n>>2]=g;b[m>>2]=f;b[o>>2]=0;i=0;d=f;h=g}f=i-h|0;g=d-h|0;if((h|0)<0){b[o>>2]=f;b[m>>2]=g;b[n>>2]=0;i=f;h=0}else g=d;d=i-g|0;f=h-g|0;if((g|0)<0){b[o>>2]=d;b[n>>2]=f;b[m>>2]=0;h=f;g=0}else d=i;f=(h|0)<(d|0)?h:d;f=(g|0)<(f|0)?g:f;if((f|0)>0){g=g-f|0;h=h-f|0;d=d-f|0;b[o>>2]=d;b[n>>2]=h;b[m>>2]=g}}if(l>>>0

>>0)l=l+1|0;else break}return e|0}function Ib(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=S;S=S+16|0;m=p;n=td(a|0,c|0,45)|0;G()|0;n=n&127;if(n>>>0>121){b[d>>2]=0;b[d+4>>2]=0;b[d+8>>2]=0;b[d+12>>2]=0;o=5;S=p;return o|0}a:do if((ra(n)|0)!=0?(i=td(a|0,c|0,52)|0,G()|0,i=i&15,(i|0)!=0):0){e=1;b:while(1){o=td(a|0,c|0,(15-e|0)*3|0)|0;G()|0;switch(o&7){case 5:break b;case 0:break;default:{k=c;break a}}if(e>>>0>>0)e=e+1|0;else{k=c;break a}}h=1;e=c;while(1){c=(15-h|0)*3|0;f=ud(7,0,c|0)|0;f=a&~f;g=e&~(G()|0);e=td(a|0,e|0,c|0)|0;G()|0;switch(e&7){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}default:e=e&7}a=ud(e|0,0,c|0)|0;a=a|f;e=G()|0|g;if(h>>>0>>0)h=h+1|0;else{k=e;break a}}}else k=c;while(0);o=7696+(n*28|0)|0;b[d>>2]=b[o>>2];b[d+4>>2]=b[o+4>>2];b[d+8>>2]=b[o+8>>2];b[d+12>>2]=b[o+12>>2];if(!(Hb(a,k,d)|0)){o=0;S=p;return o|0}o=d+4|0;b[m>>2]=b[o>>2];b[m+4>>2]=b[o+4>>2];b[m+8>>2]=b[o+8>>2];j=td(a|0,k|0,52)|0;G()|0;l=j&15;if(!(j&1))f=l;else{g=b[o>>2]|0;i=d+8|0;f=b[i>>2]|0;j=d+12|0;c=b[j>>2]|0;e=(f*3|0)+g|0;g=c+(g*3|0)|0;b[o>>2]=g;b[i>>2]=e;f=(c*3|0)+f|0;b[j>>2]=f;c=e-g|0;h=f-g|0;if((g|0)<0){b[i>>2]=c;b[j>>2]=h;b[o>>2]=0;e=c;g=0;f=h}h=g-e|0;c=f-e|0;if((e|0)<0){b[o>>2]=h;b[j>>2]=c;b[i>>2]=0;e=0}else{c=f;h=g}g=h-c|0;f=e-c|0;if((c|0)<0){b[o>>2]=g;b[i>>2]=f;b[j>>2]=0;c=0}else{f=e;g=h}e=(f|0)<(g|0)?f:g;e=(c|0)<(e|0)?c:e;if((e|0)>0){b[o>>2]=g-e;b[i>>2]=f-e;b[j>>2]=c-e}f=l+1|0}if(!(ra(n)|0))e=0;else{c:do if(!l)e=0;else{c=1;while(1){e=td(a|0,k|0,(15-c|0)*3|0)|0;G()|0;e=e&7;if(e|0)break c;if(c>>>0>>0)c=c+1|0;else{e=0;break}}}while(0);e=(e|0)==4&1}if(!(eb(d,f,e,0)|0)){if((f|0)!=(l|0)){b[o>>2]=b[m>>2];b[o+4>>2]=b[m+4>>2];b[o+8>>2]=b[m+8>>2]}}else{if(ra(n)|0)do{}while((eb(d,f,0,0)|0)!=0);if((f|0)!=(l|0)){i=d+12|0;a=b[i>>2]|0;e=(b[o>>2]|0)-a|0;h=d+8|0;a=(b[h>>2]|0)-a|0;c=cd(+((e<<1)+a|0)*.14285714285714285)|0;b[o>>2]=c;e=cd(+((a*3|0)-e|0)*.14285714285714285)|0;b[h>>2]=e;b[i>>2]=0;a=e-c|0;f=0-c|0;if((c|0)<0){b[h>>2]=a;b[i>>2]=f;b[o>>2]=0;e=a;c=0}else f=0;g=c-e|0;a=f-e|0;if((e|0)<0){b[o>>2]=g;b[i>>2]=a;b[h>>2]=0;c=g;e=0}else a=f;g=c-a|0;f=e-a|0;if((a|0)<0){b[o>>2]=g;b[h>>2]=f;b[i>>2]=0;c=g;a=0}else f=e;e=(f|0)<(c|0)?f:c;e=(a|0)<(e|0)?a:e;if((e|0)>0){b[o>>2]=c-e;b[h>>2]=f-e;b[i>>2]=a-e}}}o=0;S=p;return o|0}function Jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,f=0,g=0,h=0,i=0.0,j=0.0;h=S;S=S+48|0;d=h+24|0;f=h;g=Ib(a,b,d)|0;if(!g){g=td(a|0,b|0,52)|0;G()|0;ab(d,g&15,f);j=+w(+(+e[f+16>>3]));i=+y(+(+e[f+8>>3]),+(+e[f>>3]));e[c>>3]=j;e[c+8>>3]=i;g=0;S=h;return g|0}else{S=h;return g|0}return 0}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;g=S;S=S+16|0;f=g;d=Ib(a,b,f)|0;if(d|0){f=d;S=g;return f|0}d=td(a|0,b|0,45)|0;G()|0;d=(ra(d&127)|0)==0;e=td(a|0,b|0,52)|0;G()|0;e=e&15;a:do if(!d){if(e|0){d=1;while(1){h=ud(7,0,(15-d|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&b|0)==0))break a;if(d>>>0>>0)d=d+1|0;else break}}cb(f,e,0,5,c);h=0;S=g;return h|0}while(0);gb(f,e,0,6,c);h=0;S=g;return h|0}function Lb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=td(a|0,c|0,45)|0;G()|0;if(!(ra(f&127)|0)){f=2;b[d>>2]=f;return 0}f=td(a|0,c|0,52)|0;G()|0;f=f&15;if(!f){f=5;b[d>>2]=f;return 0}e=1;while(1){g=ud(7,0,(15-e|0)*3|0)|0;if(!((g&a|0)==0&((G()|0)&c|0)==0)){e=2;a=6;break}if(e>>>0>>0)e=e+1|0;else{e=5;a=6;break}}if((a|0)==6){b[d>>2]=e;return 0}return 0}function Mb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+128|0;k=m+112|0;g=m+96|0;l=m;f=td(a|0,c|0,52)|0;G()|0;i=f&15;b[k>>2]=i;h=td(a|0,c|0,45)|0;G()|0;h=h&127;a:do if(ra(h)|0){if(i|0){e=1;while(1){j=ud(7,0,(15-e|0)*3|0)|0;if(!((j&a|0)==0&((G()|0)&c|0)==0)){f=0;break a}if(e>>>0>>0)e=e+1|0;else break}}if(!(f&1)){j=ud(i+1|0,0,52)|0;l=G()|0|c&-15728641;k=ud(7,0,(14-i|0)*3|0)|0;l=Mb((j|a)&~k,l&~(G()|0),d)|0;S=m;return l|0}else f=1}else f=0;while(0);e=Ib(a,c,g)|0;if(!e){if(f){db(g,k,l);j=5}else{hb(g,k,l);j=6}b:do if(ra(h)|0)if(!i)a=5;else{e=1;while(1){h=ud(7,0,(15-e|0)*3|0)|0;if(!((h&a|0)==0&((G()|0)&c|0)==0)){a=2;break b}if(e>>>0>>0)e=e+1|0;else{a=5;break}}}else a=2;while(0);Bd(d|0,-1,a<<2|0)|0;c:do if(f){g=0;while(1){h=l+(g<<4)|0;fb(h,b[k>>2]|0)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}else{g=0;while(1){h=l+(g<<4)|0;eb(h,b[k>>2]|0,0,1)|0;h=b[h>>2]|0;i=b[d>>2]|0;if((i|0)==-1|(i|0)==(h|0))e=d;else{f=0;do{f=f+1|0;if(f>>>0>=a>>>0){e=1;break c}e=d+(f<<2)|0;i=b[e>>2]|0}while(!((i|0)==-1|(i|0)==(h|0)))}b[e>>2]=h;g=g+1|0;if(g>>>0>=j>>>0){e=0;break}}}while(0)}l=e;S=m;return l|0}function Nb(){return 12}function Ob(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(a>>>0>15){i=4;return i|0}ud(a|0,0,52)|0;i=G()|0|134225919;if(!a){d=0;e=0;do{if(ra(e)|0){ud(e|0,0,45)|0;h=i|(G()|0);a=c+(d<<3)|0;b[a>>2]=-1;b[a+4>>2]=h;d=d+1|0}e=e+1|0}while((e|0)!=122);d=0;return d|0}d=0;h=0;do{if(ra(h)|0){ud(h|0,0,45)|0;e=1;f=-1;g=i|(G()|0);while(1){j=ud(7,0,(15-e|0)*3|0)|0;f=f&~j;g=g&~(G()|0);if((e|0)==(a|0))break;else e=e+1|0}j=c+(d<<3)|0;b[j>>2]=f;b[j+4>>2]=g;d=d+1|0}h=h+1|0}while((h|0)!=122);d=0;return d|0}function Pb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=S;S=S+16|0;r=t;s=td(a|0,c|0,52)|0;G()|0;s=s&15;if(d>>>0>15){s=4;S=t;return s|0}if((s|0)<(d|0)){s=12;S=t;return s|0}if((s|0)!=(d|0)){g=ud(d|0,0,52)|0;g=g|a;i=G()|0|c&-15728641;if((s|0)>(d|0)){j=d;do{q=ud(7,0,(14-j|0)*3|0)|0;j=j+1|0;g=q|g;i=G()|0|i}while((j|0)<(s|0));q=g}else q=g}else{q=a;i=c}p=td(q|0,i|0,45)|0;G()|0;a:do if(ra(p&127)|0){j=td(q|0,i|0,52)|0;G()|0;j=j&15;if(j|0){g=1;while(1){p=ud(7,0,(15-g|0)*3|0)|0;if(!((p&q|0)==0&((G()|0)&i|0)==0)){k=33;break a}if(g>>>0>>0)g=g+1|0;else break}}p=e;b[p>>2]=0;b[p+4>>2]=0;if((s|0)>(d|0)){p=c&-15728641;o=s;while(1){n=o;o=o+-1|0;if(o>>>0>15|(s|0)<(o|0)){k=19;break}if((s|0)!=(o|0)){g=ud(o|0,0,52)|0;g=g|a;j=G()|0|p;if((s|0)<(n|0))m=g;else{k=o;do{m=ud(7,0,(14-k|0)*3|0)|0;k=k+1|0;g=m|g;j=G()|0|j}while((k|0)<(s|0));m=g}}else{m=a;j=c}l=td(m|0,j|0,45)|0;G()|0;if(!(ra(l&127)|0))g=0;else{l=td(m|0,j|0,52)|0;G()|0;l=l&15;b:do if(!l)g=0;else{k=1;while(1){g=td(m|0,j|0,(15-k|0)*3|0)|0;G()|0;g=g&7;if(g|0)break b;if(k>>>0>>0)k=k+1|0;else{g=0;break}}}while(0);g=(g|0)==0&1}j=td(a|0,c|0,(15-n|0)*3|0)|0;G()|0;j=j&7;if((j|0)==7){f=5;k=42;break}g=(g|0)!=0;if((j|0)==1&g){f=5;k=42;break}m=j+(((j|0)!=0&g)<<31>>31)|0;if(m|0){k=s-n|0;k=pc(7,0,k,((k|0)<0)<<31>>31)|0;l=G()|0;if(g){g=pd(k|0,l|0,5,0)|0;g=jd(g|0,G()|0,-5,-1)|0;g=nd(g|0,G()|0,6,0)|0;g=jd(g|0,G()|0,1,0)|0;j=G()|0}else{g=k;j=l}n=m+-1|0;n=pd(k|0,l|0,n|0,((n|0)<0)<<31>>31|0)|0;n=jd(g|0,j|0,n|0,G()|0)|0;m=G()|0;l=e;l=jd(n|0,m|0,b[l>>2]|0,b[l+4>>2]|0)|0;m=G()|0;n=e;b[n>>2]=l;b[n+4>>2]=m}if((o|0)<=(d|0)){k=37;break}}if((k|0)==19)H(27634,27225,1407,27259);else if((k|0)==37){h=e;f=b[h+4>>2]|0;h=b[h>>2]|0;break}else if((k|0)==42){S=t;return f|0}}else{f=0;h=0}}else k=33;while(0);c:do if((k|0)==33){p=e;b[p>>2]=0;b[p+4>>2]=0;if((s|0)>(d|0)){g=s;while(1){f=td(a|0,c|0,(15-g|0)*3|0)|0;G()|0;f=f&7;if((f|0)==7){f=5;break}h=s-g|0;h=pc(7,0,h,((h|0)<0)<<31>>31)|0;f=pd(h|0,G()|0,f|0,0)|0;h=G()|0;p=e;h=jd(b[p>>2]|0,b[p+4>>2]|0,f|0,h|0)|0;f=G()|0;p=e;b[p>>2]=h;b[p+4>>2]=f;g=g+-1|0;if((g|0)<=(d|0))break c}S=t;return f|0}else{f=0;h=0}}while(0);if(qb(q,i,s,r)|0)H(27634,27225,1367,27274);s=r;r=b[s+4>>2]|0;if(((f|0)>-1|(f|0)==-1&h>>>0>4294967295)&((r|0)>(f|0)|((r|0)==(f|0)?(b[s>>2]|0)>>>0>h>>>0:0))){s=0;S=t;return s|0}else H(27634,27225,1447,27259);return 0}function Qb(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;m=S;S=S+16|0;h=m;if(f>>>0>15){g=4;S=m;return g|0}i=td(d|0,e|0,52)|0;G()|0;i=i&15;if((i|0)>(f|0)){g=12;S=m;return g|0}if(qb(d,e,f,h)|0)H(27634,27225,1367,27274);l=h;k=b[l+4>>2]|0;if(!(((c|0)>-1|(c|0)==-1&a>>>0>4294967295)&((k|0)>(c|0)|((k|0)==(c|0)?(b[l>>2]|0)>>>0>a>>>0:0)))){g=2;S=m;return g|0}l=f-i|0;f=ud(f|0,0,52)|0;j=G()|0|e&-15728641;k=g;b[k>>2]=f|d;b[k+4>>2]=j;k=td(d|0,e|0,45)|0;G()|0;a:do if(ra(k&127)|0){if(i|0){h=1;while(1){k=ud(7,0,(15-h|0)*3|0)|0;if(!((k&d|0)==0&((G()|0)&e|0)==0))break a;if(h>>>0>>0)h=h+1|0;else break}}if((l|0)<1){g=0;S=m;return g|0}k=i^15;e=-1;j=1;h=1;while(1){i=l-j|0;i=pc(7,0,i,((i|0)<0)<<31>>31)|0;d=G()|0;do if(h){h=pd(i|0,d|0,5,0)|0;h=jd(h|0,G()|0,-5,-1)|0;h=nd(h|0,G()|0,6,0)|0;f=G()|0;if((c|0)>(f|0)|(c|0)==(f|0)&a>>>0>h>>>0){c=jd(a|0,c|0,-1,-1)|0;c=kd(c|0,G()|0,h|0,f|0)|0;h=G()|0;n=g;p=b[n>>2]|0;n=b[n+4>>2]|0;q=(k+e|0)*3|0;o=ud(7,0,q|0)|0;n=n&~(G()|0);e=nd(c|0,h|0,i|0,d|0)|0;a=G()|0;f=jd(e|0,a|0,2,0)|0;q=ud(f|0,G()|0,q|0)|0;n=G()|0|n;f=g;b[f>>2]=q|p&~o;b[f+4>>2]=n;a=pd(e|0,a|0,i|0,d|0)|0;a=kd(c|0,h|0,a|0,G()|0)|0;h=0;c=G()|0;break}else{q=g;o=b[q>>2]|0;q=b[q+4>>2]|0;p=ud(7,0,(k+e|0)*3|0)|0;q=q&~(G()|0);h=g;b[h>>2]=o&~p;b[h+4>>2]=q;h=1;break}}else{o=g;f=b[o>>2]|0;o=b[o+4>>2]|0;e=(k+e|0)*3|0;n=ud(7,0,e|0)|0;o=o&~(G()|0);q=nd(a|0,c|0,i|0,d|0)|0;h=G()|0;e=ud(q|0,h|0,e|0)|0;o=G()|0|o;p=g;b[p>>2]=e|f&~n;b[p+4>>2]=o;h=pd(q|0,h|0,i|0,d|0)|0;a=kd(a|0,c|0,h|0,G()|0)|0;h=0;c=G()|0}while(0);if((l|0)>(j|0)){e=~j;j=j+1|0}else{c=0;break}}S=m;return c|0}while(0);if((l|0)<1){q=0;S=m;return q|0}f=i^15;h=1;while(1){p=l-h|0;p=pc(7,0,p,((p|0)<0)<<31>>31)|0;q=G()|0;j=g;d=b[j>>2]|0;j=b[j+4>>2]|0;i=(f-h|0)*3|0;e=ud(7,0,i|0)|0;j=j&~(G()|0);n=nd(a|0,c|0,p|0,q|0)|0;o=G()|0;i=ud(n|0,o|0,i|0)|0;j=G()|0|j;k=g;b[k>>2]=i|d&~e;b[k+4>>2]=j;q=pd(n|0,o|0,p|0,q|0)|0;a=kd(a|0,c|0,q|0,G()|0)|0;c=G()|0;if((l|0)<=(h|0)){c=0;break}else h=h+1|0}S=m;return c|0}function Rb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=td(c|0,d|0,52)|0;G()|0;f=f&15;if((c|0)==0&(d|0)==0|((e|0)>15|(f|0)>(e|0))){g=-1;c=-1;d=0;f=0}else{c=tb(c,d,f+1|0,e)|0;h=(G()|0)&-15728641;d=ud(e|0,0,52)|0;d=c|d;h=h|(G()|0);c=(rb(d,h)|0)==0;g=f;c=c?-1:e;f=h}h=a;b[h>>2]=d;b[h+4>>2]=f;b[a+8>>2]=g;b[a+12>>2]=c;return}function Sb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=td(a|0,c|0,52)|0;G()|0;f=f&15;g=e+8|0;b[g>>2]=f;if((a|0)==0&(c|0)==0|((d|0)>15|(f|0)>(d|0))){d=e;b[d>>2]=0;b[d+4>>2]=0;b[g>>2]=-1;b[e+12>>2]=-1;return}a=tb(a,c,f+1|0,d)|0;g=(G()|0)&-15728641;f=ud(d|0,0,52)|0;f=a|f;g=g|(G()|0);a=e;b[a>>2]=f;b[a+4>>2]=g;a=e+12|0;if(!(rb(f,g)|0)){b[a>>2]=-1;return}else{b[a>>2]=d;return}}function Tb(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a;c=b[d>>2]|0;d=b[d+4>>2]|0;if((c|0)==0&(d|0)==0)return;e=td(c|0,d|0,52)|0;G()|0;e=e&15;i=ud(1,0,(e^15)*3|0)|0;c=jd(i|0,G()|0,c|0,d|0)|0;d=G()|0;i=a;b[i>>2]=c;b[i+4>>2]=d;i=a+8|0;h=b[i>>2]|0;if((e|0)<(h|0))return;j=a+12|0;g=e;while(1){if((g|0)==(h|0)){e=5;break}k=(g|0)==(b[j>>2]|0);f=(15-g|0)*3|0;e=td(c|0,d|0,f|0)|0;G()|0;e=e&7;if(k&((e|0)==1&0==0)){e=7;break}if(!((e|0)==7&0==0)){e=10;break}k=ud(1,0,f|0)|0;c=jd(c|0,d|0,k|0,G()|0)|0;d=G()|0;k=a;b[k>>2]=c;b[k+4>>2]=d;if((g|0)>(h|0))g=g+-1|0;else{e=10;break}}if((e|0)==5){k=a;b[k>>2]=0;b[k+4>>2]=0;b[i>>2]=-1;b[j>>2]=-1;return}else if((e|0)==7){h=ud(1,0,f|0)|0;h=jd(c|0,d|0,h|0,G()|0)|0;i=G()|0;k=a;b[k>>2]=h;b[k+4>>2]=i;b[j>>2]=g+-1;return}else if((e|0)==10)return}function Ub(a){a=+a;var b=0.0;b=a<0.0?a+6.283185307179586:a;return +(!(a>=6.283185307179586)?b:b+-6.283185307179586)}function Vb(a,b){a=+a;b=b|0;switch(b|0){case 1:{a=a<0.0?a+6.283185307179586:a;break}case 2:{a=a>0.0?a+-6.283185307179586:a;break}default:{}}return +a}function Wb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+t(+((f-d)*.5));c=+t(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+s(+f)*+s(+d)*c);return +(+y(+(+r(+c)),+(+r(+(1.0-c))))*2.0)}function Xb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+t(+((f-d)*.5));c=+t(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+s(+f)*+s(+d)*c);return +(+y(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475)}function Yb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,f=0.0,g=0.0;f=+e[b>>3];d=+e[a>>3];g=+t(+((f-d)*.5));c=+t(+((+e[b+8>>3]-+e[a+8>>3])*.5));c=g*g+c*(+s(+f)*+s(+d)*c);return +(+y(+(+r(+c)),+(+r(+(1.0-c))))*2.0*6371.007180918475*1.0e3)}function Zb(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20624+(a<<3)>>3];b=0;return b|0}function _b(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20752+(a<<3)>>3];b=0;return b|0}function $b(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[20880+(a<<3)>>3];b=0;return b|0}function ac(a,b){a=a|0;b=b|0;if(a>>>0>15){b=4;return b|0}e[b>>3]=+e[21008+(a<<3)>>3];b=0;return b|0}function bc(a,c){a=a|0;c=c|0;var d=0;if(a>>>0>15){c=4;return c|0}d=pc(7,0,a,((a|0)<0)<<31>>31)|0;d=pd(d|0,G()|0,120,0)|0;a=G()|0;b[c>>2]=d|2;b[c+4>>2]=a;c=0;return c|0}function cc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=Za(a,c,i)|0;if(a|0){i=a;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+t(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+t(+((g-k)*.5));k=m*m+k*(+s(+f)*+s(+l)*k);h=h+ +y(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)<(c|0));e[d>>3]=h;i=0;S=j;return i|0}function dc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=Za(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+t(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+t(+((g-k)*.5));k=m*m+k*(+s(+l)*+s(+f)*k);h=h+ +y(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;e[d>>3]=m;S=j;return i|0}function ec(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+176|0;i=j;a=Za(a,c,i)|0;if(a|0){i=a;h=+e[d>>3];h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}e[d>>3]=0.0;a=b[i>>2]|0;if((a|0)<=1){i=0;h=0.0;h=h*6371.007180918475;h=h*1.0e3;e[d>>3]=h;S=j;return i|0}c=a+-1|0;a=0;f=+e[i+8>>3];g=+e[i+16>>3];h=0.0;do{a=a+1|0;l=f;f=+e[i+8+(a<<4)>>3];m=+t(+((f-l)*.5));k=g;g=+e[i+8+(a<<4)+8>>3];k=+t(+((g-k)*.5));k=m*m+k*(+s(+l)*+s(+f)*k);h=h+ +y(+(+r(+k)),+(+r(+(1.0-k))))*2.0}while((a|0)!=(c|0));e[d>>3]=h;i=0;m=h;m=m*6371.007180918475;m=m*1.0e3;e[d>>3]=m;S=j;return i|0}function fc(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(!a)return;g=a+4|0;h=a+8|0;e=1;f=a;while(1){c=b[f>>2]|0;if(c|0)do{d=b[c>>2]|0;if(d|0)do{i=d;d=b[d+16>>2]|0;ed(i)}while((d|0)!=0);i=c;c=b[c+8>>2]|0;ed(i)}while((c|0)!=0);c=f;f=b[f+8>>2]|0;if(e){b[a>>2]=0;b[g>>2]=0;b[h>>2]=0}else ed(c);if(!f)break;else e=0}return}function gc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;b[c>>2]=0;r=c+4|0;b[r>>2]=0;s=c+8|0;b[s>>2]=0;q=b[a>>2]|0;if((q|0)<=0){c=0;return c|0}p=a+4|0;a=c;o=0;a:while(1){if(o){d=fd(1,12)|0;if(!d){d=5;break}b[a+8>>2]=d;a=d}j=b[p>>2]|0;k=fd(1,12)|0;if(!k){a=13;d=37;break}n=a+4|0;e=b[n>>2]|0;b[((e|0)==0?a:e+8|0)>>2]=k;b[n>>2]=k;e=b[j+(o<<4)>>2]|0;if((e|0)<3){a=1;d=37;break}f=j+(o<<4)+4|0;g=k+4|0;d=0;h=0;do{i=h;h=dd(24)|0;if(!h){a=13;d=37;break a}Ad(h|0,(b[f>>2]|0)+(d<<4)|0,16)|0;b[h+16>>2]=0;if(!i)b[k>>2]=h;else b[i+16>>2]=h;b[g>>2]=h;d=d+1|0}while((d|0)<(e|0));m=b[j+(o<<4)+8>>2]|0;if((m|0)>0){l=j+(o<<4)+12|0;j=0;do{e=b[l>>2]|0;d=k;k=fd(1,12)|0;if(!k){a=13;d=37;break a}b[d+8>>2]=k;b[n>>2]=k;i=b[e+(j<<3)>>2]|0;if((i|0)<3){a=1;d=37;break a}e=e+(j<<3)+4|0;f=k+4|0;d=0;g=0;do{h=g;g=dd(24)|0;if(!g){a=13;d=37;break a}Ad(g|0,(b[e>>2]|0)+(d<<4)|0,16)|0;b[g+16>>2]=0;if(!h)b[k>>2]=g;else b[h+16>>2]=g;b[f>>2]=g;d=d+1|0}while((d|0)<(i|0));j=j+1|0}while((j|0)<(m|0))}o=o+1|0;if((o|0)>=(q|0)){a=0;d=50;break}}if((d|0)==5){if(!c){c=13;return c|0}e=1;f=c;while(1){a=b[f>>2]|0;if(a|0)do{d=b[a>>2]|0;if(d|0)do{q=d;d=b[d+16>>2]|0;ed(q)}while((d|0)!=0);q=a;a=b[a+8>>2]|0;ed(q)}while((a|0)!=0);a=f;f=b[f+8>>2]|0;if(e){b[c>>2]=0;b[r>>2]=0;b[s>>2]=0}else ed(a);if(!f){a=13;break}else e=0}return a|0}else if((d|0)==37){if(!c){c=a;return c|0}f=1;g=c;while(1){d=b[g>>2]|0;if(d|0)do{e=b[d>>2]|0;if(e|0)do{q=e;e=b[e+16>>2]|0;ed(q)}while((e|0)!=0);q=d;d=b[d+8>>2]|0;ed(q)}while((d|0)!=0);d=g;g=b[g+8>>2]|0;if(f){b[c>>2]=0;b[r>>2]=0;b[s>>2]=0}else ed(d);if(!g)break;else f=0}return a|0}else if((d|0)==50)return a|0;return 0}function hc(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=S;S=S+16|0;s=t;m=td(c|0,d|0,52)|0;G()|0;m=m&15;p=td(e|0,f|0,52)|0;G()|0;if((m|0)!=(p&15|0)){s=12;S=t;return s|0}k=td(c|0,d|0,45)|0;G()|0;k=k&127;l=td(e|0,f|0,45)|0;G()|0;l=l&127;if(k>>>0>121|l>>>0>121){s=5;S=t;return s|0}p=(k|0)!=(l|0);if(p){i=za(k,l)|0;if((i|0)==7){s=1;S=t;return s|0}j=za(l,k)|0;if((j|0)==7)H(27291,27315,164,27325);else{r=i;h=j}}else{r=0;h=0}n=ra(k)|0;o=ra(l)|0;b[s>>2]=0;b[s+4>>2]=0;b[s+8>>2]=0;b[s+12>>2]=0;do if(!r){Hb(e,f,s)|0;if((n|0)!=0&(o|0)!=0){if((l|0)!=(k|0))H(27398,27315,264,27325);i=zb(c,d)|0;h=zb(e,f)|0;if(!((i|0)==7|(h|0)==7))if(!(a[21968+(i*7|0)+h>>0]|0)){e=b[21136+(i*28|0)+(h<<2)>>2]|0;if((e|0)>0){m=s+4|0;f=s+8|0;n=s+12|0;l=0;j=b[m>>2]|0;i=b[f>>2]|0;h=b[n>>2]|0;do{r=i+j|0;q=(r|0)<0;c=q?r:0;i=h+i-c|0;d=(i|0)<0;k=d?i:0;j=h+j-c-k|0;c=(j|0)<0;h=c?0:j;j=c?j:0;i=(d?0:i)-j|0;j=(q?0:r)-k-j|0;k=(i|0)<(j|0)?i:j;k=(h|0)<(k|0)?h:k;if((k|0)>0){j=j-k|0;i=i-k|0;h=h-k|0}l=l+1|0}while((l|0)!=(e|0));b[m>>2]=j;b[f>>2]=i;b[n>>2]=h;q=77}else q=77}else h=1;else h=5}else q=77}else{l=b[4272+(k*28|0)+(r<<2)>>2]|0;i=(l|0)>0;a:do if(!o)if(i){k=0;j=e;i=f;while(1){j=Db(j,i)|0;i=G()|0;switch(h|0){case 1:{h=3;break}case 3:{h=2;break}case 2:{h=6;break}case 6:{h=4;break}case 4:{h=5;break}case 5:{h=1;break}default:{}}k=k+1|0;if((k|0)==(l|0)){l=h;k=j;j=i;break a}}}else{l=h;k=e;j=f}else if(i){k=0;j=e;i=f;while(1){j=Cb(j,i)|0;i=G()|0;switch(h|0){case 5:case 1:{h=3;break}case 3:{h=2;break}case 2:{h=6;break}case 6:{h=4;break}case 4:{h=5;break}default:{}}k=k+1|0;if((k|0)==(l|0)){l=h;k=j;j=i;break a}}}else{l=h;k=e;j=f}while(0);Hb(k,j,s)|0;if(!p)H(27340,27315,194,27325);i=(n|0)!=0;h=(o|0)!=0;if(i&h)H(27367,27315,195,27325);if(!i)if(h){h=zb(k,j)|0;if((h|0)==7){h=5;break}if(a[21968+(h*7|0)+l>>0]|0){h=1;break}p=0;o=b[21136+(l*28|0)+(h<<2)>>2]|0}else{p=0;o=0}else{h=zb(c,d)|0;if((h|0)==7){h=5;break}if(a[21968+(h*7|0)+r>>0]|0){h=1;break}o=b[21136+(h*28|0)+(r<<2)>>2]|0;p=o}if((p|o|0)>=0){if((o|0)>0){e=s+4|0;f=s+8|0;n=s+12|0;l=0;j=b[e>>2]|0;i=b[f>>2]|0;h=b[n>>2]|0;do{q=i+j|0;d=(q|0)<0;u=d?q:0;i=h+i-u|0;c=(i|0)<0;k=c?i:0;j=h+j-u-k|0;u=(j|0)<0;h=u?0:j;j=u?j:0;i=(c?0:i)-j|0;j=(d?0:q)-k-j|0;k=(i|0)<(j|0)?i:j;k=(h|0)<(k|0)?h:k;if((k|0)>0){j=j-k|0;i=i-k|0;h=h-k|0}l=l+1|0}while((l|0)!=(o|0));b[e>>2]=j;b[f>>2]=i;b[n>>2]=h}if((r+-1|0)>>>0<6){h=b[22032+(r*12|0)>>2]|0;j=b[22032+(r*12|0)+4>>2]|0;u=b[22032+(r*12|0)+8>>2]|0;i=(j|0)<(h|0)?j:h;i=(u|0)<(i|0)?u:i;i=(i|0)>0?i:0;h=h-i|0;j=j-i|0;i=u-i|0}else{h=0;j=0;i=0}if(m)while(1){k=h*3|0;l=j*3|0;e=i*3|0;if(!(Fb(m)|0)){q=k+i|0;d=(q|0)<0;u=l+h-(d?q:0)|0;h=(u|0)<0;j=e+j-(d?q:0)-(h?u:0)|0;i=(j|0)<0;r=i?0:j;k=(h?0:u)-(i?j:0)|0;j=(d?0:q)-(h?u:0)-(i?j:0)|0;i=(k|0)<(j|0)?k:j;i=(r|0)<(i|0)?r:i;u=(i|0)>0;h=u?i:0;k=k-(u?i:0)|0;i=r-(u?i:0)|0}else{d=k+j|0;c=(d|0)<0;u=l+i-(c?d:0)|0;q=(u|0)<0;j=h+e-(c?d:0)-(q?u:0)|0;i=(j|0)<0;r=i?0:j;k=(q?0:u)-(i?j:0)|0;j=(c?0:d)-(q?u:0)-(i?j:0)|0;i=(k|0)<(j|0)?k:j;i=(r|0)<(i|0)?r:i;u=(i|0)>0;h=u?i:0;k=k-(u?i:0)|0;i=r-(u?i:0)|0}h=j-h|0;if((m|0)>1){m=m+-1|0;j=k}else{j=k;break}}if((p|0)>0){k=0;do{d=h+j|0;c=(d|0)<0;u=j+i-(c?d:0)|0;q=(u|0)<0;r=h+i-(c?d:0)-(q?u:0)|0;h=(r|0)<0;i=h?0:r;j=(q?0:u)-(h?r:0)|0;r=(c?0:d)-(q?u:0)-(h?r:0)|0;h=(j|0)<(r|0)?j:r;h=(i|0)<(h|0)?i:h;u=(h|0)>0;i=i-(u?h:0)|0;j=j-(u?h:0)|0;h=r-(u?h:0)|0;k=k+1|0}while((k|0)!=(p|0))}e=s+4|0;m=s+8|0;r=b[m>>2]|0;f=s+12|0;u=b[f>>2]|0;k=(b[e>>2]|0)+h|0;b[e>>2]=k;j=r+j|0;b[m>>2]=j;h=u+i|0;b[f>>2]=h;i=j-k|0;if((k|0)<0){h=h-k|0;b[m>>2]=i;b[f>>2]=h;b[e>>2]=0;j=0}else{i=j;j=k}if((i|0)<0){j=j-i|0;b[e>>2]=j;h=h-i|0;b[f>>2]=h;b[m>>2]=0;i=0}l=j-h|0;k=i-h|0;if((h|0)<0){b[e>>2]=l;b[m>>2]=k;b[f>>2]=0;j=l;h=0}else k=i;i=(k|0)<(j|0)?k:j;i=(h|0)<(i|0)?h:i;if((i|0)>0){b[e>>2]=j-i;b[m>>2]=k-i;b[f>>2]=h-i;q=77}else q=77}else h=5}while(0);if((q|0)==77){h=s+4|0;b[g>>2]=b[h>>2];b[g+4>>2]=b[h+4>>2];b[g+8>>2]=b[h+8>>2];h=0}u=h;S=t;return u|0}function ic(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=td(a|0,c|0,52)|0;G()|0;g=g&15;v=td(a|0,c|0,45)|0;G()|0;v=v&127;if(v>>>0>121){e=5;return e|0}r=ra(v)|0;ud(g|0,0,52)|0;i=G()|0|134225919;h=e;b[h>>2]=-1;b[h+4>>2]=i;h=b[d>>2]|0;i=b[d+4>>2]|0;d=b[d+8>>2]|0;if(!g){c=(h|0)<0;s=c?h:0;u=i-s|0;r=(u|0)<0;s=(r?0-u|0:0)+(d-s)|0;d=(s|0)<0;f=d?0:s;s=d?s:0;d=(r?0:u)-s|0;s=(c?0:h)-(r?u:0)-s|0;u=(d|0)<(s|0)?d:s;u=(f|0)<(u|0)?f:u;u=(u|0)>0?u:0;f=f-u|0;d=d-u|0;a:do switch(s-u|0){case 0:switch(d|0){case 0:if(!f){f=0;break a}else{f=(f|0)==1?1:7;t=11;break a}case 1:if(!f){f=2;break a}else{f=(f|0)==1?3:7;t=11;break a}default:{e=1;return e|0}}case 1:switch(d|0){case 0:if(!f){f=4;break a}else{f=(f|0)==1?5:7;t=11;break a}case 1:{if(!f){f=6;break a}else f=1;return f|0}default:{e=1;return e|0}}default:{e=1;return e|0}}while(0);if((t|0)==11)if((f|0)==7){e=1;return e|0}f=ya(v,f)|0;if((f|0)==127){e=1;return e|0}u=ud(f|0,0,45)|0;v=G()|0;t=e;v=b[t+4>>2]&-1040385|v;b[e>>2]=b[t>>2]|u;b[e+4>>2]=v;e=0;return e|0}while(1){q=g;g=g+-1|0;p=h-d|0;o=i-d|0;j=p>>>0>715827881|o>>>0>715827881;if(!(Fb(q)|0)){if(j){k=(p|0)>0;if(k?(2147483647-p|0)<(p|0):(-2147483648-p|0)>(p|0)){f=1;t=107;break}j=p<<1;l=(o|0)>0;if(l?(2147483647-o|0)<(o|0):(-2147483648-o|0)>(o|0)){f=1;t=107;break}n=o<<1;if(l?(2147483647-n|0)<(o|0):(-2147483648-n|0)>(o|0)){f=1;t=107;break}if(k?(2147483647-j|0)<(o|0):(-2147483648-j|0)>(o|0)){f=1;t=107;break}k=o*3|0;if((o|0)>-1?(k|-2147483648|0)>=(p|0):(k^-2147483648|0)<(p|0)){f=1;t=107;break}}else{j=p<<1;k=o*3|0}m=cd(+(j+o|0)*.14285714285714285)|0;l=cd(+(k-p|0)*.14285714285714285)|0;k=(l|0)<(m|0);j=k?m:l;k=k?l:m;if((k|0)<0){if((k|0)==-2147483648?1:(j|0)>0?(2147483647-j|0)<(k|0):(-2147483648-j|0)>(k|0)){t=36;break}if((j|0)>-1?(j|-2147483648|0)>=(k|0):(j^-2147483648|0)<(k|0)){t=36;break}}n=(m|0)<0;o=l-(n?m:0)|0;y=(o|0)<0;z=(n?0-m|0:0)-(y?o:0)|0;p=(z|0)<0;n=(n?0:m)-(y?o:0)-(p?z:0)|0;o=(y?0:o)-(p?z:0)|0;z=p?0:z;p=(o|0)<(n|0)?o:n;p=(z|0)<(p|0)?z:p;y=(p|0)>0;n=n-(y?p:0)|0;o=o-(y?p:0)|0;p=z-(y?p:0)|0;y=(n*3|0)+p|0;z=(y|0)<0;w=(o*3|0)+n-(z?y:0)|0;j=(w|0)<0;m=(p*3|0)+o-(z?y:0)-(j?w:0)|0;l=(m|0)<0;x=l?0:m;k=(j?0:w)-(l?m:0)|0;m=(z?0:y)-(j?w:0)-(l?m:0)|0;l=(k|0)<(m|0)?k:m;l=(x|0)<(l|0)?x:l;w=(l|0)>0;j=w?l:0;k=k-(w?l:0)|0;l=x-(w?l:0)|0}else{if(j){l=(p|0)>0;m=2147483647-p|0;n=-2147483648-p|0;if(l?(m|0)<(p|0):(n|0)>(p|0)){f=1;t=107;break}z=p<<1;if(l?(2147483647-z|0)<(p|0):(-2147483648-z|0)>(p|0)){f=1;t=107;break}if((o|0)>0?(2147483647-o|0)<(o|0):(-2147483648-o|0)>(o|0)){f=1;t=107;break}j=p*3|0;k=o<<1;if((l?(m|0)<(k|0):(n|0)>(k|0))?1:(p|0)>-1?(j|-2147483648|0)>=(o|0):(j^-2147483648|0)<(o|0)){f=1;t=107;break}}else{j=p*3|0;k=o<<1}m=cd(+(j-o|0)*.14285714285714285)|0;l=cd(+(k+p|0)*.14285714285714285)|0;k=(l|0)<(m|0);j=k?m:l;k=k?l:m;if((k|0)<0){if((k|0)==-2147483648?1:(j|0)>0?(2147483647-j|0)<(k|0):(-2147483648-j|0)>(k|0)){t=24;break}if((j|0)>-1?(j|-2147483648|0)>=(k|0):(j^-2147483648|0)<(k|0)){t=24;break}}n=(m|0)<0;o=l-(n?m:0)|0;x=(o|0)<0;w=(n?0-m|0:0)-(x?o:0)|0;p=(w|0)<0;n=(n?0:m)-(x?o:0)-(p?w:0)|0;o=(x?0:o)-(p?w:0)|0;w=p?0:w;p=(o|0)<(n|0)?o:n;p=(w|0)<(p|0)?w:p;x=(p|0)>0;n=n-(x?p:0)|0;o=o-(x?p:0)|0;p=w-(x?p:0)|0;x=(n*3|0)+o|0;w=(x|0)<0;z=(o*3|0)+p-(w?x:0)|0;j=(z|0)<0;m=(p*3|0)+n-(w?x:0)-(j?z:0)|0;l=(m|0)<0;y=l?0:m;k=(j?0:z)-(l?m:0)|0;m=(w?0:x)-(j?z:0)-(l?m:0)|0;l=(k|0)<(m|0)?k:m;l=(y|0)<(l|0)?y:l;z=(l|0)>0;j=z?l:0;k=k-(z?l:0)|0;l=y-(z?l:0)|0}j=h+(j-m)|0;y=(j|0)<0;k=i-k-(y?j:0)|0;m=(k|0)<0;w=d-l+(y?0-j|0:0)+(m?0-k|0:0)|0;h=(w|0)<0;l=h?0:w;z=(m?0:k)-(h?w:0)|0;w=(y?0:j)-(m?k:0)-(h?w:0)|0;h=(z|0)<(w|0)?z:w;h=(l|0)<(h|0)?l:h;d=(h|0)>0;w=w-(d?h:0)|0;k=e;m=b[k>>2]|0;k=b[k+4>>2]|0;i=(15-q|0)*3|0;j=ud(7,0,i|0)|0;j=m&~j;k=k&~(G()|0);m=(w|0)<0;y=m?w:0;z=z-(d?h:0)-y|0;x=(z|0)<0;y=(x?0-z|0:0)+(l-(d?h:0)-y)|0;h=(y|0)<0;d=h?0:y;y=h?y:0;h=(x?0:z)-y|0;y=(m?0:w)-(x?z:0)-y|0;z=(h|0)<(y|0)?h:y;z=(d|0)<(z|0)?d:z;z=(z|0)>0?z:0;d=d-z|0;h=h-z|0;b:do switch(y-z|0){case 0:switch(h|0){case 0:{d=(d|0)==0?0:(d|0)==1?1:7;break b}case 1:{d=(d|0)==0?2:(d|0)==1?3:7;break b}default:{t=45;break b}}case 1:switch(h|0){case 0:{d=(d|0)==0?4:(d|0)==1?5:7;break b}case 1:if(!d){d=6;break b}else{t=45;break b}default:{t=45;break b}}default:t=45}while(0);if((t|0)==45){t=0;d=7}x=ud(d|0,0,i|0)|0;y=G()|0|k;z=e;b[z>>2]=x|j;b[z+4>>2]=y;if((q|0)<=1){t=47;break}else{h=n;i=o;d=p}}if((t|0)==24)H(27634,27425,416,27447);else if((t|0)==36)H(27634,27425,464,27461);else if((t|0)==47){if((n|0)>1|(o|0)>1|(p|0)>1){z=1;return z|0}w=(n|0)<0;y=w?n:0;z=o-y|0;x=(z|0)<0;y=(x?0-z|0:0)+(p-y)|0;g=(y|0)<0;d=g?0:y;y=g?y:0;g=(x?0:z)-y|0;y=(w?0:n)-(x?z:0)-y|0;z=(g|0)<(y|0)?g:y;z=(d|0)<(z|0)?d:z;z=(z|0)>0?z:0;d=d-z|0;g=g-z|0;c:do switch(y-z|0){case 0:switch(g|0){case 0:{g=(d|0)==0?0:(d|0)==1?1:7;break c}case 1:{g=(d|0)==0?2:(d|0)==1?3:7;break c}default:{t=55;break c}}case 1:switch(g|0){case 0:{g=(d|0)==0?4:(d|0)==1?5:7;break c}case 1:if(!d){g=6;break c}else{t=55;break c}default:{t=55;break c}}default:t=55}while(0);if((t|0)==55)g=7;i=ya(v,g)|0;if((i|0)==127)k=0;else k=ra(i)|0;d:do if(!g)if((r|0)!=0&(k|0)!=0){f=zb(a,c)|0;d=e;d=zb(b[d>>2]|0,b[d+4>>2]|0)|0;if((f|0)==7|(d|0)==7){z=5;return z|0}d=b[21344+(f*28|0)+(d<<2)>>2]|0;if((d|0)<0){z=5;return z|0}if(!d){f=i;t=105}else{h=e;f=0;g=b[h>>2]|0;h=b[h+4>>2]|0;do{g=Bb(g,h)|0;h=G()|0;z=e;b[z>>2]=g;b[z+4>>2]=h;f=f+1|0}while((f|0)<(d|0));f=i;t=104}}else{f=i;t=104}else{if(r){d=zb(a,c)|0;if((d|0)==7){z=5;return z|0}h=b[21344+(d*28|0)+(g<<2)>>2]|0;e:do if((h|0)>0){d=g;g=0;while(1){switch(d|0){case 1:{d=5;break}case 5:{d=4;break}case 4:{d=6;break}case 6:{d=2;break}case 2:{d=3;break}case 3:{d=1;break}default:{}}g=g+1|0;if((g|0)==(h|0))break e}}else d=g;while(0);if((d|0)==1){z=9;return z|0}g=ya(v,d)|0;if((g|0)==127)H(27476,27315,415,27506);if(!(ra(g)|0)){f=g;u=h;s=d}else H(27521,27315,416,27506)}else{f=i;u=0;s=g}j=b[4272+(v*28|0)+(s<<2)>>2]|0;if((j|0)<=-1)H(27552,27315,423,27506);if(!k){if((u|0)<0){z=5;return z|0}if(u|0){h=e;d=0;g=b[h>>2]|0;h=b[h+4>>2]|0;do{g=Bb(g,h)|0;h=G()|0;z=e;b[z>>2]=g;b[z+4>>2]=h;d=d+1|0}while((d|0)<(u|0))}if((j|0)<=0){t=104;break}h=e;d=0;g=b[h>>2]|0;h=b[h+4>>2]|0;while(1){g=Bb(g,h)|0;h=G()|0;z=e;b[z>>2]=g;b[z+4>>2]=h;d=d+1|0;if((d|0)==(j|0)){t=104;break d}}}i=za(f,v)|0;if((i|0)==7)H(27291,27315,432,27506);d=e;g=b[d>>2]|0;d=b[d+4>>2]|0;if((j|0)>0){h=0;do{g=Bb(g,d)|0;d=G()|0;z=e;b[z>>2]=g;b[z+4>>2]=d;h=h+1|0}while((h|0)!=(j|0))}d=zb(g,d)|0;if((d|0)==7)H(27634,27315,444,27506);g=sa(f)|0;g=b[(g?21760:21552)+(i*28|0)+(d<<2)>>2]|0;if((g|0)<0)H(27634,27315,458,27506);if(!g)t=104;else{i=e;d=0;h=b[i>>2]|0;i=b[i+4>>2]|0;do{h=Ab(h,i)|0;i=G()|0;z=e;b[z>>2]=h;b[z+4>>2]=i;d=d+1|0}while((d|0)<(g|0));t=104}}while(0);if((t|0)==104)if(k)t=105;if((t|0)==105){z=e;if((zb(b[z>>2]|0,b[z+4>>2]|0)|0)==1){z=9;return z|0}}y=e;w=b[y>>2]|0;y=b[y+4>>2]&-1040385;x=ud(f|0,0,45)|0;y=y|(G()|0);z=e;b[z>>2]=w|x;b[z+4>>2]=y;z=0;return z|0}else if((t|0)==107)return f|0;return 0}function jc(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=S;S=S+16|0;h=i;if(f|0){h=15;S=i;return h|0}a=hc(a,c,d,e,h)|0;if(!a){f=b[h+4>>2]|0;a=b[h+8>>2]|0;b[g>>2]=(b[h>>2]|0)-a;b[g+4>>2]=f-a;a=0}h=a;S=i;return h|0}function kc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+16|0;l=m;if(e|0){l=15;S=m;return l|0}i=b[d>>2]|0;h=b[d+4>>2]|0;b[l>>2]=i;j=l+4|0;b[j>>2]=h;k=l+8|0;b[k>>2]=0;d=(h|0)<(i|0);e=d?i:h;d=d?h:i;if((d|0)<0)if(!((d|0)==-2147483648?1:(e|0)>0?(2147483647-e|0)<(d|0):(-2147483648-e|0)>(d|0))?!((e|0)>-1?(e|-2147483648|0)>=(d|0):(e^-2147483648|0)<(d|0)):0)g=5;else e=1;else g=5;if((g|0)==5){e=h-i|0;g=0-i|0;if((i|0)<0){b[j>>2]=e;b[k>>2]=g;b[l>>2]=0;i=0}else{e=h;g=0}h=i-e|0;d=g-e|0;if((e|0)<0){b[l>>2]=h;b[k>>2]=d;b[j>>2]=0;i=h;e=0}else d=g;h=i-d|0;g=e-d|0;if((d|0)<0){b[l>>2]=h;b[j>>2]=g;b[k>>2]=0;d=0}else{g=e;h=i}e=(g|0)<(h|0)?g:h;e=(d|0)<(e|0)?d:e;if((e|0)>0){b[l>>2]=h-e;b[j>>2]=g-e;b[k>>2]=d-e}e=ic(a,c,l,f)|0}l=e;S=m;return l|0}function lc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;j=S;S=S+32|0;h=j+12|0;i=j;g=hc(a,c,a,c,h)|0;if(g|0){i=g;S=j;return i|0}a=hc(a,c,d,e,i)|0;if(a|0){i=a;S=j;return i|0}a=(b[h>>2]|0)-(b[i>>2]|0)|0;k=(a|0)<0;e=k?0-a|0:0;d=e+((b[h+4>>2]|0)-(b[i+4>>2]|0))|0;c=(d|0)<0;e=(b[h+8>>2]|0)-(b[i+8>>2]|0)+e+(c?0-d|0:0)|0;g=(e|0)<0;h=g?0:e;e=g?e:0;g=(c?0:d)-e|0;e=(k?0:a)-(c?d:0)-e|0;i=(g|0)<(e|0)?g:e;i=(h|0)<(i|0)?h:i;i=(i|0)>0?i:0;h=h-i|0;g=g-i|0;i=e-i|0;i=(i|0)>-1?i:0-i|0;g=(g|0)>-1?g:0-g|0;h=(h|0)>-1?h:0-h|0;h=(g|0)>(h|0)?g:h;h=(i|0)>(h|0)?i:h;i=f;b[i>>2]=h;b[i+4>>2]=((h|0)<0)<<31>>31;i=0;S=j;return i|0}function mc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=S;S=S+16|0;g=h;a=lc(a,c,d,e,g)|0;if(a|0){g=a;S=h;return g|0}d=g;d=jd(b[d>>2]|0,b[d+4>>2]|0,1,0)|0;e=G()|0;g=f;b[g>>2]=d;b[g+4>>2]=e;g=0;S=h;return g|0}function nc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=S;S=S+16|0;g=j;h=lc(a,c,d,e,g)|0;if(h|0){f=h;S=j;return f|0}h=g;g=b[h>>2]|0;h=b[h+4>>2]|0;if((g|0)==0&(h|0)==0){b[f>>2]=a;b[f+4>>2]=c;f=0;S=j;return f|0}i=oc(a,c,d,e,g,h,f,0,0,1,0)|0;if(!i){f=0;S=j;return f|0}f=(oc(d,e,a,c,g,h,f,g,h,-1,-1)|0)==0;f=f?0:i;S=j;return f|0}function oc(a,c,d,e,f,g,h,i,j,k,l){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0.0,p=0.0,r=0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0.0;D=S;S=S+48|0;m=D+24|0;n=D+12|0;C=D;b[m>>2]=0;b[m+4>>2]=0;b[m+8>>2]=0;b[n>>2]=0;b[n+4>>2]=0;b[n+8>>2]=0;if(hc(a,c,a,c,m)|0)H(27634,27315,696,27575);if(hc(a,c,d,e,n)|0)H(27634,27315,701,27575);r=m+8|0;e=b[r>>2]|0;d=e-(b[m>>2]|0)|0;b[m>>2]=d;B=m+4|0;e=(b[B>>2]|0)-e|0;b[B>>2]=e;B=e+d|0;m=0-B|0;b[r>>2]=m;r=n+8|0;u=b[r>>2]|0;t=u-(b[n>>2]|0)|0;b[n>>2]=t;A=n+4|0;u=(b[A>>2]|0)-u|0;b[A>>2]=u;A=u+t|0;b[r>>2]=0-A;z=1.0/(+(f>>>0)+4294967296.0*+(g|0));x=z*+(t-d|0);y=z*+(u-e|0);z=z*+(B-A|0);b[C>>2]=d;A=C+4|0;b[A>>2]=e;B=C+8|0;b[B>>2]=m;if((g|0)<0){k=0;S=D;return k|0}w=+(d|0);v=+(e|0);s=+(m|0);t=0;u=0;while(1){p=+(t>>>0)+4294967296.0*+(u|0);E=x*p+w;o=y*p+v;p=z*p+s;e=~~+yd(+E);m=~~+yd(+o);d=~~+yd(+p);E=+q(+(+(e|0)-E));o=+q(+(+(m|0)-o));p=+q(+(+(d|0)-p));if(!(E>o&E>p)){n=0-e|0;if(o>p)m=n-d|0}else{n=d+m|0;e=0-n|0}b[A>>2]=m;b[C>>2]=n;b[B>>2]=0;d=e+m|0;if((e|0)>0){b[A>>2]=d;b[B>>2]=e;b[C>>2]=0;n=0}else{d=m;e=0}if((d|0)<0){m=n-d|0;b[C>>2]=m;e=e-d|0;b[B>>2]=e;b[A>>2]=0;n=m-e|0;d=0-e|0;if((e|0)<0){b[C>>2]=n;b[A>>2]=d;b[B>>2]=0;r=d;e=0}else{r=0;n=m}}else r=d;d=(r|0)<(n|0)?r:n;d=(e|0)<(d|0)?e:d;if((d|0)>0){b[C>>2]=n-d;b[A>>2]=r-d;b[B>>2]=e-d}d=pd(t|0,u|0,k|0,l|0)|0;d=jd(d|0,G()|0,i|0,j|0)|0;G()|0;d=ic(a,c,C,h+(d<<3)|0)|0;if(d|0){e=20;break}r=t;t=jd(t|0,u|0,1,0)|0;n=u;u=G()|0;if(!((n|0)<(g|0)|(n|0)==(g|0)&r>>>0>>0)){d=0;e=20;break}}if((e|0)==20){S=D;return d|0}return 0}function pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if((c|0)==0&(d|0)==0){e=0;f=1;F(e|0);return f|0}f=a;e=b;a=1;b=0;do{g=(c&1|0)==0&0==0;a=pd((g?1:f)|0,(g?0:e)|0,a|0,b|0)|0;b=G()|0;c=sd(c|0,d|0,1)|0;d=G()|0;f=pd(f|0,e|0,f|0,e|0)|0;e=G()|0}while(!((c|0)==0&(d|0)==0));F(b|0);return a|0}function qc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0;j=S;S=S+16|0;h=j;i=td(a|0,c|0,52)|0;G()|0;i=i&15;do if(!i){g=td(a|0,c|0,45)|0;G()|0;g=g&127;if(g>>>0>121){i=5;S=j;return i|0}else{h=22128+(g<<5)|0;b[d>>2]=b[h>>2];b[d+4>>2]=b[h+4>>2];b[d+8>>2]=b[h+8>>2];b[d+12>>2]=b[h+12>>2];b[d+16>>2]=b[h+16>>2];b[d+20>>2]=b[h+20>>2];b[d+24>>2]=b[h+24>>2];b[d+28>>2]=b[h+28>>2];break}}else{g=Jb(a,c,h)|0;if(!g){l=+e[h>>3];k=1.0/+s(+l);m=+e[26032+(i<<3)>>3];e[d>>3]=l+m;e[d+8>>3]=l-m;l=+e[h+8>>3];k=m*k;e[d+16>>3]=k+l;e[d+24>>3]=l-k;break}i=g;S=j;return i|0}while(0);Ma(d,f?1.4:1.1);f=26160+(i<<3)|0;if((b[f>>2]|0)==(a|0)?(b[f+4>>2]|0)==(c|0):0)e[d>>3]=1.5707963267948966;i=26288+(i<<3)|0;if((b[i>>2]|0)==(a|0)?(b[i+4>>2]|0)==(c|0):0)e[d+8>>3]=-1.5707963267948966;if(!(+e[d>>3]==1.5707963267948966)?!(+e[d+8>>3]==-1.5707963267948966):0){i=0;S=j;return i|0}e[d+16>>3]=3.141592653589793;e[d+24>>3]=-3.141592653589793;i=0;S=j;return i|0}function rc(c,d,e,f){c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=S;S=S+48|0;i=l+32|0;h=l+40|0;j=l;ob(i,0,0,0);k=b[i>>2]|0;i=b[i+4>>2]|0;do if(e>>>0<=15){g=yc(f)|0;if(g|0){f=j;b[f>>2]=0;b[f+4>>2]=0;b[j+8>>2]=g;b[j+12>>2]=-1;f=j+16|0;k=j+29|0;b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;a[f+12>>0]=0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}g=fd((b[d+8>>2]|0)+1|0,32)|0;if(!g){f=j;b[f>>2]=0;b[f+4>>2]=0;b[j+8>>2]=13;b[j+12>>2]=-1;f=j+16|0;k=j+29|0;b[f>>2]=0;b[f+4>>2]=0;b[f+8>>2]=0;a[f+12>>0]=0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}else{zc(d,g);m=j;b[m>>2]=k;b[m+4>>2]=i;b[j+8>>2]=0;b[j+12>>2]=e;b[j+16>>2]=f;b[j+20>>2]=d;b[j+24>>2]=g;a[j+28>>0]=0;k=j+29|0;a[k>>0]=a[h>>0]|0;a[k+1>>0]=a[h+1>>0]|0;a[k+2>>0]=a[h+2>>0]|0;break}}else{k=j;b[k>>2]=0;b[k+4>>2]=0;b[j+8>>2]=4;b[j+12>>2]=-1;k=j+16|0;m=j+29|0;b[k>>2]=0;b[k+4>>2]=0;b[k+8>>2]=0;a[k+12>>0]=0;a[m>>0]=a[h>>0]|0;a[m+1>>0]=a[h+1>>0]|0;a[m+2>>0]=a[h+2>>0]|0}while(0);sc(j);b[c>>2]=b[j>>2];b[c+4>>2]=b[j+4>>2];b[c+8>>2]=b[j+8>>2];b[c+12>>2]=b[j+12>>2];b[c+16>>2]=b[j+16>>2];b[c+20>>2]=b[j+20>>2];b[c+24>>2]=b[j+24>>2];b[c+28>>2]=b[j+28>>2];S=l;return}function sc(c){c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+336|0;p=w+168|0;q=w;f=c;e=b[f>>2]|0;f=b[f+4>>2]|0;if((e|0)==0&(f|0)==0){S=w;return}d=c+28|0;if(!(a[d>>0]|0))a[d>>0]=1;else{e=tc(e,f)|0;f=G()|0}v=c+20|0;if(!(b[b[v>>2]>>2]|0)){d=c+24|0;e=b[d>>2]|0;if(e|0)ed(e);u=c;b[u>>2]=0;b[u+4>>2]=0;b[c+8>>2]=0;b[v>>2]=0;b[c+12>>2]=-1;b[c+16>>2]=0;b[d>>2]=0;S=w;return}u=c+16|0;d=b[u>>2]|0;g=d&15;a:do if(!((e|0)==0&(f|0)==0)){r=c+12|0;n=(g|0)==3;m=d&255;k=(g|1|0)==3;o=c+24|0;l=(g+-1|0)>>>0<3;i=(g|2|0)==3;j=q+8|0;b:while(1){h=td(e|0,f|0,52)|0;G()|0;h=h&15;if((h|0)==(b[r>>2]|0)){switch(m&15){case 0:case 2:case 3:{g=Jb(e,f,p)|0;if(g|0){s=15;break b}if(Ac(b[v>>2]|0,b[o>>2]|0,p)|0){s=19;break b}break}default:{}}if(k?(g=b[(b[v>>2]|0)+4>>2]|0,b[p>>2]=b[g>>2],b[p+4>>2]=b[g+4>>2],b[p+8>>2]=b[g+8>>2],b[p+12>>2]=b[g+12>>2],Fa(26896,p)|0):0){if(Gb(b[(b[v>>2]|0)+4>>2]|0,h,q)|0){s=25;break}g=q;if((b[g>>2]|0)==(e|0)?(b[g+4>>2]|0)==(f|0):0){s=29;break}}if(l){g=Kb(e,f,p)|0;if(g|0){s=32;break}if(qc(e,f,q,0)|0){s=36;break}if(i?Bc(b[v>>2]|0,b[o>>2]|0,p,q)|0:0){s=42;break}if(k?Dc(b[v>>2]|0,b[o>>2]|0,p,q)|0:0){s=42;break}}if(n){d=qc(e,f,p,1)|0;g=b[o>>2]|0;if(d|0){s=45;break}if(Ga(g,p)|0){Ja(q,p);if(Ia(p,b[o>>2]|0)|0){s=53;break}if(Ac(b[v>>2]|0,b[o>>2]|0,j)|0){s=53;break}if(Dc(b[v>>2]|0,b[o>>2]|0,q,p)|0){s=53;break}}}}do if((h|0)<(b[r>>2]|0)){d=qc(e,f,p,1)|0;g=b[o>>2]|0;if(d|0){s=58;break b}if(!(Ga(g,p)|0)){s=73;break}if(Ia(b[o>>2]|0,p)|0?(Ja(q,p),Bc(b[v>>2]|0,b[o>>2]|0,q,p)|0):0){s=65;break b}e=ub(e,f,h+1|0,q)|0;if(e|0){s=67;break b}f=q;e=b[f>>2]|0;f=b[f+4>>2]|0}else s=73;while(0);if((s|0)==73){s=0;e=tc(e,f)|0;f=G()|0}if((e|0)==0&(f|0)==0){t=o;break a}}switch(s|0){case 15:{d=b[o>>2]|0;if(d|0)ed(d);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=g;s=20;break}case 19:{b[c>>2]=e;b[c+4>>2]=f;s=20;break}case 25:{H(27634,27600,470,27611);break}case 29:{b[c>>2]=e;b[c+4>>2]=f;S=w;return}case 32:{d=b[o>>2]|0;if(d|0)ed(d);t=c;b[t>>2]=0;b[t+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=g;S=w;return}case 36:{H(27634,27600,493,27611);break}case 42:{b[c>>2]=e;b[c+4>>2]=f;S=w;return}case 45:{if(g|0)ed(g);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=d;s=55;break}case 53:{b[c>>2]=e;b[c+4>>2]=f;s=55;break}case 58:{if(g|0)ed(g);s=c;b[s>>2]=0;b[s+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=d;s=71;break}case 65:{b[c>>2]=e;b[c+4>>2]=f;s=71;break}case 67:{d=b[o>>2]|0;if(d|0)ed(d);t=c;b[t>>2]=0;b[t+4>>2]=0;b[v>>2]=0;b[r>>2]=-1;b[u>>2]=0;b[o>>2]=0;b[c+8>>2]=e;S=w;return}}if((s|0)==20){S=w;return}else if((s|0)==55){S=w;return}else if((s|0)==71){S=w;return}}else t=c+24|0;while(0);d=b[t>>2]|0;if(d|0)ed(d);s=c;b[s>>2]=0;b[s+4>>2]=0;b[c+8>>2]=0;b[v>>2]=0;b[c+12>>2]=-1;b[u>>2]=0;b[t>>2]=0;S=w;return}function tc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+16|0;l=m;e=td(a|0,c|0,52)|0;G()|0;e=e&15;d=td(a|0,c|0,45)|0;G()|0;do if(e){while(1){d=ud(e+4095|0,0,52)|0;f=G()|0|c&-15728641;g=(15-e|0)*3|0;h=ud(7,0,g|0)|0;i=G()|0;d=d|a|h;f=f|i;j=td(a|0,c|0,g|0)|0;G()|0;j=j&7;e=e+-1|0;if(j>>>0<6)break;if(!e){k=4;break}else{c=f;a=d}}if((k|0)==4){d=td(d|0,f|0,45)|0;G()|0;break}l=(j|0)==0&(rb(d,f)|0)!=0;l=ud((l?2:1)+j|0,0,g|0)|0;k=G()|0|c&~i;l=l|a&~h;F(k|0);S=m;return l|0}while(0);d=d&127;if(d>>>0>120){k=0;l=0;F(k|0);S=m;return l|0}ob(l,0,d+1|0,0);k=b[l+4>>2]|0;l=b[l>>2]|0;F(k|0);S=m;return l|0}function uc(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=S;S=S+160|0;m=r+80|0;i=r+64|0;n=r+112|0;q=r;rc(m,a,c,d);k=m;Rb(i,b[k>>2]|0,b[k+4>>2]|0,c);k=i;j=b[k>>2]|0;k=b[k+4>>2]|0;h=b[m+8>>2]|0;o=n+4|0;b[o>>2]=b[m>>2];b[o+4>>2]=b[m+4>>2];b[o+8>>2]=b[m+8>>2];b[o+12>>2]=b[m+12>>2];b[o+16>>2]=b[m+16>>2];b[o+20>>2]=b[m+20>>2];b[o+24>>2]=b[m+24>>2];b[o+28>>2]=b[m+28>>2];o=q;b[o>>2]=j;b[o+4>>2]=k;o=q+8|0;b[o>>2]=h;a=q+12|0;c=n;d=a+36|0;do{b[a>>2]=b[c>>2];a=a+4|0;c=c+4|0}while((a|0)<(d|0));n=q+48|0;b[n>>2]=b[i>>2];b[n+4>>2]=b[i+4>>2];b[n+8>>2]=b[i+8>>2];b[n+12>>2]=b[i+12>>2];if((j|0)==0&(k|0)==0){q=h;S=r;return q|0}d=q+16|0;l=q+24|0;m=q+28|0;h=0;i=0;c=j;a=k;do{if(!((h|0)<(f|0)|(h|0)==(f|0)&i>>>0>>0)){p=4;break}k=i;i=jd(i|0,h|0,1,0)|0;h=G()|0;k=g+(k<<3)|0;b[k>>2]=c;b[k+4>>2]=a;Tb(n);a=n;c=b[a>>2]|0;a=b[a+4>>2]|0;if((c|0)==0&(a|0)==0){sc(d);c=d;a=b[c>>2]|0;c=b[c+4>>2]|0;if((a|0)==0&(c|0)==0){p=10;break}Sb(a,c,b[m>>2]|0,n);a=n;c=b[a>>2]|0;a=b[a+4>>2]|0}k=q;b[k>>2]=c;b[k+4>>2]=a}while(!((c|0)==0&(a|0)==0));if((p|0)==4){a=q+40|0;c=b[a>>2]|0;if(c|0)ed(c);p=q+16|0;b[p>>2]=0;b[p+4>>2]=0;b[l>>2]=0;b[q+36>>2]=0;b[m>>2]=-1;b[q+32>>2]=0;b[a>>2]=0;Sb(0,0,0,n);b[q>>2]=0;b[q+4>>2]=0;b[o>>2]=0;q=14;S=r;return q|0}else if((p|0)==10){b[q>>2]=0;b[q+4>>2]=0;b[o>>2]=b[l>>2]}q=b[o>>2]|0;S=r;return q|0} +function vc(c,d,f,g){c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,r=0;o=S;S=S+48|0;l=o+32|0;k=o+40|0;m=o;if(!(b[c>>2]|0)){n=g;b[n>>2]=0;b[n+4>>2]=0;n=0;S=o;return n|0}ob(l,0,0,0);j=l;h=b[j>>2]|0;j=b[j+4>>2]|0;do if(d>>>0>15){n=m;b[n>>2]=0;b[n+4>>2]=0;b[m+8>>2]=4;b[m+12>>2]=-1;n=m+16|0;f=m+29|0;b[n>>2]=0;b[n+4>>2]=0;b[n+8>>2]=0;a[n+12>>0]=0;a[f>>0]=a[k>>0]|0;a[f+1>>0]=a[k+1>>0]|0;a[f+2>>0]=a[k+2>>0]|0;f=4;n=9}else{f=yc(f)|0;if(f|0){l=m;b[l>>2]=0;b[l+4>>2]=0;b[m+8>>2]=f;b[m+12>>2]=-1;l=m+16|0;n=m+29|0;b[l>>2]=0;b[l+4>>2]=0;b[l+8>>2]=0;a[l+12>>0]=0;a[n>>0]=a[k>>0]|0;a[n+1>>0]=a[k+1>>0]|0;a[n+2>>0]=a[k+2>>0]|0;n=9;break}f=fd((b[c+8>>2]|0)+1|0,32)|0;if(!f){n=m;b[n>>2]=0;b[n+4>>2]=0;b[m+8>>2]=13;b[m+12>>2]=-1;n=m+16|0;f=m+29|0;b[n>>2]=0;b[n+4>>2]=0;b[n+8>>2]=0;a[n+12>>0]=0;a[f>>0]=a[k>>0]|0;a[f+1>>0]=a[k+1>>0]|0;a[f+2>>0]=a[k+2>>0]|0;f=13;n=9;break}zc(c,f);r=m;b[r>>2]=h;b[r+4>>2]=j;j=m+8|0;b[j>>2]=0;b[m+12>>2]=d;b[m+20>>2]=c;b[m+24>>2]=f;a[m+28>>0]=0;h=m+29|0;a[h>>0]=a[k>>0]|0;a[h+1>>0]=a[k+1>>0]|0;a[h+2>>0]=a[k+2>>0]|0;b[m+16>>2]=3;p=+Ea(f);p=p*+Ca(f);i=+q(+(+e[f>>3]));i=p/+s(+(+xd(+i,+(+q(+(+e[f+8>>3]))))))*6371.007180918475*6371.007180918475;h=m+12|0;f=b[h>>2]|0;a:do if((f|0)>0)do{Zb(f+-1|0,l)|0;if(!(i/+e[l>>3]>10.0))break a;r=b[h>>2]|0;f=r+-1|0;b[h>>2]=f}while((r|0)>1);while(0);sc(m);h=g;b[h>>2]=0;b[h+4>>2]=0;h=m;f=b[h>>2]|0;h=b[h+4>>2]|0;if(!((f|0)==0&(h|0)==0))do{qb(f,h,d,l)|0;k=l;c=g;k=jd(b[c>>2]|0,b[c+4>>2]|0,b[k>>2]|0,b[k+4>>2]|0)|0;c=G()|0;r=g;b[r>>2]=k;b[r+4>>2]=c;sc(m);r=m;f=b[r>>2]|0;h=b[r+4>>2]|0}while(!((f|0)==0&(h|0)==0));f=b[j>>2]|0}while(0);r=f;S=o;return r|0}function wc(a,c,d){a=a|0;c=c|0;d=d|0;var f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0;if(!(Fa(c,d)|0)){o=0;return o|0}c=Da(c)|0;f=+e[d>>3];g=+e[d+8>>3];g=c&g<0.0?g+6.283185307179586:g;o=b[a>>2]|0;if((o|0)<=0){o=0;return o|0}n=b[a+4>>2]|0;if(c){c=0;m=g;d=-1;a=0;a:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break a}else{a=l;l=d;d=a}}j=i<0.0?i+6.283185307179586:i;i=g<0.0?g+6.283185307179586:g;m=j==m|i==m?m+-2.220446049250313e-16:m;k=j+(i-j)*((f-h)/(k-h));if((k<0.0?k+6.283185307179586:k)>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}else{c=0;m=g;d=-1;a=0;b:while(1){l=a;while(1){i=+e[n+(l<<4)>>3];g=+e[n+(l<<4)+8>>3];a=(d+2|0)%(o|0)|0;h=+e[n+(a<<4)>>3];j=+e[n+(a<<4)+8>>3];if(i>h){k=i;i=j}else{k=h;h=i;i=g;g=j}f=f==h|f==k?f+2.220446049250313e-16:f;if(!(fk))break;d=l+1|0;if((d|0)>=(o|0)){d=22;break b}else{a=l;l=d;d=a}}m=i==m|g==m?m+-2.220446049250313e-16:m;if(i+(g-i)*((f-h)/(k-h))>m)c=c^1;a=l+1|0;if((a|0)>=(o|0)){d=22;break}else d=l}if((d|0)==22)return c|0}return 0}function xc(a,c){a=a|0;c=c|0;var d=0.0,f=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,r=0,s=0,t=0,u=0,v=0;r=b[a>>2]|0;if(!r){b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0;return}s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)<=0)return;o=b[a+4>>2]|0;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;n=0;a=-1;h=1797693134862315708145274.0e284;i=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;f=-1797693134862315708145274.0e284;p=0;while(1){d=+e[o+(p<<4)>>3];j=+e[o+(p<<4)+8>>3];a=a+2|0;g=+e[o+(((a|0)==(r|0)?0:a)<<4)+8>>3];if(d>3]=d;h=d}if(j>3]=j;i=j}if(d>k)e[c>>3]=d;else d=k;if(j>f){e[u>>3]=j;f=j}l=j>0.0&jm?j:m;n=n|+q(+(j-g))>3.141592653589793;a=p+1|0;if((a|0)==(r|0))break;else{v=p;k=d;p=a;a=v}}if(!n)return;e[u>>3]=m;e[t>>3]=l;return}function yc(a){a=a|0;return (a>>>0<4?0:15)|0}function zc(a,c){a=a|0;c=c|0;var d=0,f=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;r=b[a>>2]|0;if(r){s=c+8|0;e[s>>3]=1797693134862315708145274.0e284;t=c+24|0;e[t>>3]=1797693134862315708145274.0e284;e[c>>3]=-1797693134862315708145274.0e284;u=c+16|0;e[u>>3]=-1797693134862315708145274.0e284;if((r|0)>0){g=b[a+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;f=0;d=-1;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;n=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;v=0;while(1){h=+e[g+(v<<4)>>3];m=+e[g+(v<<4)+8>>3];z=d+2|0;j=+e[g+(((z|0)==(r|0)?0:z)<<4)+8>>3];if(h>3]=h;k=h}if(m>3]=m;l=m}if(h>n)e[c>>3]=h;else h=n;if(m>i){e[u>>3]=m;i=m}o=m>0.0&mp?m:p;f=f|+q(+(m-j))>3.141592653589793;d=v+1|0;if((d|0)==(r|0))break;else{z=v;n=h;v=d;d=z}}if(f){e[u>>3]=p;e[t>>3]=o}}}else{b[c>>2]=0;b[c+4>>2]=0;b[c+8>>2]=0;b[c+12>>2]=0;b[c+16>>2]=0;b[c+20>>2]=0;b[c+24>>2]=0;b[c+28>>2]=0}z=a+8|0;d=b[z>>2]|0;if((d|0)<=0)return;y=a+12|0;x=0;do{g=b[y>>2]|0;f=x;x=x+1|0;t=c+(x<<5)|0;u=b[g+(f<<3)>>2]|0;if(u){v=c+(x<<5)+8|0;e[v>>3]=1797693134862315708145274.0e284;a=c+(x<<5)+24|0;e[a>>3]=1797693134862315708145274.0e284;e[t>>3]=-1797693134862315708145274.0e284;w=c+(x<<5)+16|0;e[w>>3]=-1797693134862315708145274.0e284;if((u|0)>0){r=b[g+(f<<3)+4>>2]|0;o=1797693134862315708145274.0e284;p=-1797693134862315708145274.0e284;g=0;f=-1;s=0;k=1797693134862315708145274.0e284;l=1797693134862315708145274.0e284;m=-1797693134862315708145274.0e284;i=-1797693134862315708145274.0e284;while(1){h=+e[r+(s<<4)>>3];n=+e[r+(s<<4)+8>>3];f=f+2|0;j=+e[r+(((f|0)==(u|0)?0:f)<<4)+8>>3];if(h>3]=h;k=h}if(n>3]=n;l=n}if(h>m)e[t>>3]=h;else h=m;if(n>i){e[w>>3]=n;i=n}o=n>0.0&np?n:p;g=g|+q(+(n-j))>3.141592653589793;f=s+1|0;if((f|0)==(u|0))break;else{A=s;s=f;m=h;f=A}}if(g){e[w>>3]=p;e[a>>3]=o}}}else{b[t>>2]=0;b[t+4>>2]=0;b[t+8>>2]=0;b[t+12>>2]=0;b[t+16>>2]=0;b[t+20>>2]=0;b[t+24>>2]=0;b[t+28>>2]=0;d=b[z>>2]|0}}while((x|0)<(d|0));return}function Ac(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(wc(a,c,d)|0)){f=0;return f|0}f=a+8|0;if((b[f>>2]|0)<=0){f=1;return f|0}e=a+12|0;a=0;while(1){g=a;a=a+1|0;if(wc((b[e>>2]|0)+(g<<3)|0,c+(a<<5)|0,d)|0){a=0;e=6;break}if((a|0)>=(b[f>>2]|0)){a=1;e=6;break}}if((e|0)==6)return a|0;return 0}function Bc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=S;S=S+16|0;i=k;h=d+8|0;if(!(wc(a,c,h)|0)){j=0;S=k;return j|0}j=a+8|0;a:do if((b[j>>2]|0)>0){g=a+12|0;f=0;while(1){l=f;f=f+1|0;if(wc((b[g>>2]|0)+(l<<3)|0,c+(f<<5)|0,h)|0){f=0;break}if((f|0)>=(b[j>>2]|0))break a}S=k;return f|0}while(0);if(Cc(a,c,d,e)|0){l=0;S=k;return l|0}b[i>>2]=b[d>>2];b[i+4>>2]=h;f=b[j>>2]|0;b:do if((f|0)>0){a=a+12|0;h=0;g=f;while(1){f=b[a>>2]|0;if((b[f+(h<<3)>>2]|0)>0){if(wc(i,e,b[f+(h<<3)+4>>2]|0)|0){f=0;break b}f=h+1|0;if(Cc((b[a>>2]|0)+(h<<3)|0,c+(f<<5)|0,d,e)|0){f=0;break b}g=b[j>>2]|0}else f=h+1|0;if((f|0)<(g|0))h=f;else{f=1;break}}}else f=1;while(0);l=f;S=k;return l|0}function Cc(a,c,d,f){a=a|0;c=c|0;d=d|0;f=f|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0,z=0,A=0;y=S;S=S+176|0;u=y+172|0;g=y+168|0;v=y;if(!(Ga(c,f)|0)){a=0;S=y;return a|0}Ha(c,f,u,g);zd(v|0,d|0,168)|0;if((b[d>>2]|0)>0){c=0;do{z=v+8+(c<<4)+8|0;t=+Vb(+e[z>>3],b[g>>2]|0);e[z>>3]=t;c=c+1|0}while((c|0)<(b[d>>2]|0))}r=+e[f>>3];s=+e[f+8>>3];t=+Vb(+e[f+16>>3],b[g>>2]|0);p=+Vb(+e[f+24>>3],b[g>>2]|0);a:do if((b[a>>2]|0)>0){f=a+4|0;g=b[v>>2]|0;if((g|0)<=0){c=0;while(1){c=c+1|0;if((c|0)>=(b[a>>2]|0)){c=0;break a}}}d=0;while(1){c=b[f>>2]|0;o=+e[c+(d<<4)>>3];q=+Vb(+e[c+(d<<4)+8>>3],b[u>>2]|0);c=b[f>>2]|0;d=d+1|0;z=(d|0)%(b[a>>2]|0)|0;h=+e[c+(z<<4)>>3];i=+Vb(+e[c+(z<<4)+8>>3],b[u>>2]|0);if(((!(o>=r)|!(h>=r)?!(o<=s)|!(h<=s):0)?!(q<=p)|!(i<=p):0)?!(q>=t)|!(i>=t):0){n=h-o;l=i-q;c=0;do{A=c;c=c+1|0;z=(c|0)==(g|0)?0:c;h=+e[v+8+(A<<4)+8>>3];i=+e[v+8+(z<<4)+8>>3]-h;j=+e[v+8+(A<<4)>>3];k=+e[v+8+(z<<4)>>3]-j;m=n*i-l*k;if((m!=0.0?(w=q-h,x=o-j,k=(w*k-i*x)/m,!(k<0.0|k>1.0)):0)?(m=(n*w-l*x)/m,m>=0.0&m<=1.0):0){c=1;break a}}while((c|0)<(g|0))}if((d|0)>=(b[a>>2]|0)){c=0;break}}}else c=0;while(0);A=c;S=y;return A|0}function Dc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(Cc(a,c,d,e)|0){g=1;return g|0}g=a+8|0;if((b[g>>2]|0)<=0){g=0;return g|0}f=a+12|0;a=0;while(1){h=a;a=a+1|0;if(Cc((b[f>>2]|0)+(h<<3)|0,c+(a<<5)|0,d,e)|0){a=1;f=6;break}if((a|0)>=(b[g>>2]|0)){a=0;f=6;break}}if((f|0)==6)return a|0;return 0}function Ec(){return 8}function Fc(){return 16}function Gc(){return 168}function Hc(){return 8}function Ic(){return 16}function Jc(){return 12}function Kc(){return 8}function Lc(a){a=a|0;return +(+((b[a>>2]|0)>>>0)+4294967296.0*+(b[a+4>>2]|0))}function Mc(a){a=a|0;var b=0.0,c=0.0;c=+e[a>>3];b=+e[a+8>>3];return +(+r(+(c*c+b*b)))}function Nc(a,b,c,d,f){a=a|0;b=b|0;c=c|0;d=d|0;f=f|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+e[a>>3];j=+e[b>>3]-k;i=+e[a+8>>3];h=+e[b+8>>3]-i;m=+e[c>>3];g=+e[d>>3]-m;n=+e[c+8>>3];l=+e[d+8>>3]-n;g=(g*(i-n)-(k-m)*l)/(j*l-h*g);e[f>>3]=k+j*g;e[f+8>>3]=i+h*g;return}function Oc(a,b){a=a|0;b=b|0;if(!(+q(+(+e[a>>3]-+e[b>>3]))<1.1920928955078125e-07)){b=0;return b|0}b=+q(+(+e[a+8>>3]-+e[b+8>>3]))<1.1920928955078125e-07;return b|0}function Pc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=S;S=S+16|0;f=g;e=rb(a,c)|0;if((d+-1|0)>>>0>5){f=-1;S=g;return f|0}e=(e|0)!=0;if((d|0)==1&e){f=-1;S=g;return f|0}do if(!(Qc(a,c,f)|0))if(e){e=((b[26416+(d<<2)>>2]|0)+5-(b[f>>2]|0)|0)%5|0;break}else{e=((b[26448+(d<<2)>>2]|0)+6-(b[f>>2]|0)|0)%6|0;break}else e=-1;while(0);f=e;S=g;return f|0}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=S;S=S+32|0;i=l+16|0;j=l;e=Ib(a,c,i)|0;if(e|0){d=e;S=l;return d|0}g=jb(a,c)|0;k=zb(a,c)|0;va(g,j);e=wa(g,b[i>>2]|0)|0;do if(ra(g)|0){do switch(g|0){case 4:{f=0;break}case 14:{f=1;break}case 24:{f=2;break}case 38:{f=3;break}case 49:{f=4;break}case 58:{f=5;break}case 63:{f=6;break}case 72:{f=7;break}case 83:{f=8;break}case 97:{f=9;break}case 107:{f=10;break}case 117:{f=11;break}default:H(27634,27636,75,27645)}while(0);h=b[26480+(f*24|0)+8>>2]|0;c=b[26480+(f*24|0)+16>>2]|0;a=b[i>>2]|0;if((a|0)!=(b[j>>2]|0)){j=sa(g)|0;a=b[i>>2]|0;if(j|(a|0)==(c|0))e=(e+1|0)%6|0}if((k|0)==3&(a|0)==(c|0)){e=(e+5|0)%6|0;break}if((k|0)==5&(a|0)==(h|0))e=(e+1|0)%6|0}while(0);b[d>>2]=e;d=0;S=l;return d|0}function Rc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=S;S=S+32|0;t=u+24|0;r=u+20|0;p=u+8|0;o=u+16|0;n=u;j=(rb(a,c)|0)==0;j=j?6:5;l=td(a|0,c|0,52)|0;G()|0;l=l&15;if(j>>>0<=d>>>0){e=2;S=u;return e|0}m=(l|0)==0;if(!m?(q=ud(7,0,(l^15)*3|0)|0,(q&a|0)==0&((G()|0)&c|0)==0):0)f=d;else g=4;a:do if((g|0)==4){f=(rb(a,c)|0)!=0;if(((f?4:5)|0)<(d|0)){e=1;S=u;return e|0}if(Qc(a,c,t)|0){e=1;S=u;return e|0}g=(b[t>>2]|0)+d|0;if(f)f=26768+(((g|0)%5|0)<<2)|0;else f=26800+(((g|0)%6|0)<<2)|0;q=b[f>>2]|0;if((q|0)==7){e=1;S=u;return e|0}b[r>>2]=0;f=ea(a,c,q,r,p)|0;do if(!f){i=p;k=b[i>>2]|0;i=b[i+4>>2]|0;h=i>>>0>>0|(i|0)==(c|0)&k>>>0>>0;g=h?k:a;h=h?i:c;if(!m?(m=ud(7,0,(l^15)*3|0)|0,(k&m|0)==0&(i&(G()|0)|0)==0):0)f=d;else{i=(d+-1+j|0)%(j|0)|0;f=rb(a,c)|0;if((i|0)<0)H(27634,27636,248,27661);j=(f|0)!=0;if(((j?4:5)|0)<(i|0))H(27634,27636,248,27661);if(Qc(a,c,t)|0)H(27634,27636,248,27661);f=(b[t>>2]|0)+i|0;if(j)f=26768+(((f|0)%5|0)<<2)|0;else f=26800+(((f|0)%6|0)<<2)|0;i=b[f>>2]|0;if((i|0)==7)H(27634,27636,248,27661);b[o>>2]=0;f=ea(a,c,i,o,n)|0;if(f|0)break;k=n;j=b[k>>2]|0;k=b[k+4>>2]|0;do if(k>>>0>>0|(k|0)==(h|0)&j>>>0>>0){if(!(rb(j,k)|0))g=b[26864+((((b[o>>2]|0)+(b[26832+(i<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;else g=ia(j,k,a,c)|0;f=rb(j,k)|0;if((g+-1|0)>>>0>5){f=-1;g=j;h=k;break}f=(f|0)!=0;if((g|0)==1&f){f=-1;g=j;h=k;break}do if(!(Qc(j,k,t)|0))if(f){f=((b[26416+(g<<2)>>2]|0)+5-(b[t>>2]|0)|0)%5|0;break}else{f=((b[26448+(g<<2)>>2]|0)+6-(b[t>>2]|0)|0)%6|0;break}else f=-1;while(0);g=j;h=k}else f=d;while(0);i=p;k=b[i>>2]|0;i=b[i+4>>2]|0}if((g|0)==(k|0)&(h|0)==(i|0)){j=(rb(k,i)|0)!=0;if(j)a=ia(k,i,a,c)|0;else a=b[26864+((((b[r>>2]|0)+(b[26832+(q<<2)>>2]|0)|0)%6|0)<<2)>>2]|0;f=rb(k,i)|0;if((a+-1|0)>>>0<=5?(s=(f|0)!=0,!((a|0)==1&s)):0)do if(!(Qc(k,i,t)|0))if(s){f=((b[26416+(a<<2)>>2]|0)+5-(b[t>>2]|0)|0)%5|0;break}else{f=((b[26448+(a<<2)>>2]|0)+6-(b[t>>2]|0)|0)%6|0;break}else f=-1;while(0);else f=-1;f=f+1|0;f=(f|0)==6|j&(f|0)==5?0:f}c=h;a=g;break a}while(0);e=f;S=u;return e|0}while(0);s=ud(f|0,0,56)|0;t=G()|0|c&-2130706433|536870912;b[e>>2]=s|a;b[e+4>>2]=t;e=0;S=u;return e|0}function Sc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0;g=(rb(a,c)|0)==0;e=Rc(a,c,0,d)|0;f=(e|0)==0;if(g){if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(!e)return Rc(a,c,5,d+40|0)|0;else{g=e;return g|0}}if(!f){g=e;return g|0}e=Rc(a,c,1,d+8|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,2,d+16|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,3,d+24|0)|0;if(e|0){g=e;return g|0}e=Rc(a,c,4,d+32|0)|0;if(e|0){g=e;return g|0}g=d+40|0;b[g>>2]=0;b[g+4>>2]=0;g=0;return g|0}function Tc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=S;S=S+192|0;f=j;g=j+168|0;h=td(a|0,c|0,56)|0;G()|0;h=h&7;i=c&-2130706433|134217728;e=Ib(a,i,g)|0;if(e|0){i=e;S=j;return i|0}c=td(a|0,c|0,52)|0;G()|0;c=c&15;if(!(rb(a,i)|0))gb(g,c,h,1,f);else cb(g,c,h,1,f);i=f+8|0;b[d>>2]=b[i>>2];b[d+4>>2]=b[i+4>>2];b[d+8>>2]=b[i+8>>2];b[d+12>>2]=b[i+12>>2];i=0;S=j;return i|0}function Uc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;f=S;S=S+16|0;d=f;if(!(0==0&(c&2013265920|0)==536870912)){e=0;S=f;return e|0}e=c&-2130706433|134217728;if(!(mb(a,e)|0)){e=0;S=f;return e|0}g=td(a|0,c|0,56)|0;G()|0;g=(Rc(a,e,g&7,d)|0)==0;e=d;e=g&((b[e>>2]|0)==(a|0)?(b[e+4>>2]|0)==(c|0):0)&1;S=f;return e|0}function Vc(){return 27680}function Wc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=S;S=S+208|0;j=m;k=m+192|0;h=A(d,c)|0;i=k;b[i>>2]=1;b[i+4>>2]=0;a:do if(h|0){i=0-d|0;b[j+4>>2]=d;b[j>>2]=d;f=2;c=d;g=d;while(1){c=c+d+g|0;b[j+(f<<2)>>2]=c;if(c>>>0>>0){n=g;f=f+1|0;g=c;c=n}else break}g=a+h+i|0;if(g>>>0>a>>>0){h=g;f=1;c=1;do{do if((c&3|0)!=3){c=f+-1|0;if((b[j+(c<<2)>>2]|0)>>>0<(h-a|0)>>>0)Xc(a,d,e,f,j);else Zc(a,d,e,k,f,0,j);if((f|0)==1){_c(k,1);f=0;break}else{_c(k,c);f=1;break}}else{Xc(a,d,e,f,j);Yc(k,2);f=f+2|0}while(0);c=b[k>>2]|1;b[k>>2]=c;a=a+d|0}while(a>>>0>>0)}else{f=1;c=1}Zc(a,d,e,k,f,0,j);g=k+4|0;while(1){if((f|0)==1&(c|0)==1)if(!(b[g>>2]|0))break a;else l=19;else if((f|0)<2)l=19;else{_c(k,2);n=f+-2|0;b[k>>2]=b[k>>2]^7;Yc(k,1);Zc(a+(0-(b[j+(n<<2)>>2]|0))+i|0,d,e,k,f+-1|0,1,j);_c(k,1);c=b[k>>2]|1;b[k>>2]=c;a=a+i|0;Zc(a,d,e,k,n,1,j);f=n}if((l|0)==19){l=0;c=$c(k)|0;Yc(k,c);a=a+i|0;f=c+f|0;c=b[k>>2]|0}}}while(0);S=m;return}function Xc(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=S;S=S+240|0;l=m;b[l>>2]=a;a:do if((e|0)>1){k=0-c|0;i=a;g=e;e=1;h=a;while(1){i=i+k|0;j=g+-2|0;a=i+(0-(b[f+(j<<2)>>2]|0))|0;if((W[d&3](h,a)|0)>-1?(W[d&3](h,i)|0)>-1:0)break a;h=l+(e<<2)|0;if((W[d&3](a,i)|0)>-1){b[h>>2]=a;g=g+-1|0}else{b[h>>2]=i;a=i;g=j}e=e+1|0;if((g|0)<=1)break a;i=a;h=b[l>>2]|0}}else e=1;while(0);bd(c,l,e);S=m;return}function Yc(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;f=a+4|0;if(c>>>0>31){e=b[f>>2]|0;b[a>>2]=e;b[f>>2]=0;c=c+-32|0;d=0}else{d=b[f>>2]|0;e=b[a>>2]|0}b[a>>2]=d<<32-c|e>>>c;b[f>>2]=d>>>c;return}function Zc(a,c,d,e,f,g,h){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=S;S=S+240|0;m=o+232|0;n=o;p=b[e>>2]|0;b[m>>2]=p;j=b[e+4>>2]|0;k=m+4|0;b[k>>2]=j;b[n>>2]=a;a:do if((p|0)!=1|(j|0)!=0?(l=0-c|0,i=a+(0-(b[h+(f<<2)>>2]|0))|0,(W[d&3](i,a)|0)>=1):0){e=1;g=(g|0)==0;j=i;while(1){if(g&(f|0)>1){g=a+l|0;i=b[h+(f+-2<<2)>>2]|0;if((W[d&3](g,j)|0)>-1){i=10;break a}if((W[d&3](g+(0-i)|0,j)|0)>-1){i=10;break a}}g=e+1|0;b[n+(e<<2)>>2]=j;p=$c(m)|0;Yc(m,p);f=p+f|0;if(!((b[m>>2]|0)!=1|(b[k>>2]|0)!=0)){e=g;a=j;i=10;break a}a=j+(0-(b[h+(f<<2)>>2]|0))|0;if((W[d&3](a,b[n>>2]|0)|0)<1){a=j;e=g;g=0;i=9;break}else{p=j;e=g;g=1;j=a;a=p}}}else{e=1;i=9}while(0);if((i|0)==9?(g|0)==0:0)i=10;if((i|0)==10){bd(c,n,e);Xc(a,c,d,f,h)}S=o;return}function _c(a,c){a=a|0;c=c|0;var d=0,e=0,f=0;f=a+4|0;if(c>>>0>31){e=b[a>>2]|0;b[f>>2]=e;b[a>>2]=0;c=c+-32|0;d=0}else{d=b[a>>2]|0;e=b[f>>2]|0}b[f>>2]=d>>>(32-c|0)|e<>2]=d<>2]|0)+-1|0)|0;if(!c){c=ad(b[a+4>>2]|0)|0;return ((c|0)==0?0:c+32|0)|0}else return c|0;return 0}function ad(a){a=a|0;var b=0;if(a)if(!(a&1)){b=a;a=0;while(1){a=a+1|0;if(!(b&2))b=b>>>1;else break}}else a=0;else a=32;return a|0}function bd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=S;S=S+256|0;e=h;a:do if((d|0)>=2?(g=c+(d<<2)|0,b[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;zd(e|0,b[c>>2]|0,f|0)|0;e=0;do{i=c+(e<<2)|0;e=e+1|0;zd(b[i>>2]|0,b[c+(e<<2)>>2]|0,f|0)|0;b[i>>2]=(b[i>>2]|0)+f}while((e|0)!=(d|0));a=a-f|0;if(!a)break a;e=b[g>>2]|0}while(0);S=h;return}function cd(a){a=+a;return ~~+Cd(+a)|0}function dd(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=S;S=S+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=b[6921]|0;d=m>>>a;if(d&3|0){c=(d&1^1)+a|0;a=27724+(c<<1<<2)|0;d=a+8|0;e=b[d>>2]|0;f=e+8|0;g=b[f>>2]|0;if((g|0)==(a|0))b[6921]=m&~(1<>2]=a;b[d>>2]=g}v=c<<3;b[e+4>>2]=v|3;v=e+v+4|0;b[v>>2]=b[v>>2]|1;v=f;S=w;return v|0}l=b[6923]|0;if(k>>>0>l>>>0){if(d|0){c=2<>>12&16;c=c>>>i;d=c>>>5&8;c=c>>>d;g=c>>>2&4;c=c>>>g;a=c>>>1&2;c=c>>>a;e=c>>>1&1;e=(d|i|g|a|e)+(c>>>e)|0;c=27724+(e<<1<<2)|0;a=c+8|0;g=b[a>>2]|0;i=g+8|0;d=b[i>>2]|0;if((d|0)==(c|0)){a=m&~(1<>2]=c;b[a>>2]=d;a=m}v=e<<3;h=v-k|0;b[g+4>>2]=k|3;f=g+k|0;b[f+4>>2]=h|1;b[g+v>>2]=h;if(l|0){e=b[6926]|0;c=l>>>3;d=27724+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[6923]=h;b[6926]=f;v=i;S=w;return v|0}g=b[6922]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=b[27988+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(b[j+4>>2]&-8)-k|0;while(1){a=b[d+16>>2]|0;if(!a){a=b[d+20>>2]|0;if(!a)break}h=(b[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){d=0;break}}while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);do if(f|0){c=b[i+28>>2]|0;a=27988+(c<<2)|0;if((i|0)==(b[a>>2]|0)){b[a>>2]=d;if(!d){b[6922]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}b[d+24>>2]=f;c=b[i+16>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}c=b[i+20>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[h+4>>2]=j|1;b[h+j>>2]=j;if(l|0){e=b[6926]|0;c=l>>>3;d=27724+(c<<1<<2)|0;c=1<>2]|0}b[a>>2]=e;b[c+12>>2]=e;b[e+8>>2]=c;b[e+12>>2]=d}b[6923]=j;b[6926]=h}v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=b[6922]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=b[27988+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(b[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=b[d+20>>2]|0;d=b[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=b[27988+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(b[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=b[g+16>>2]|0;if(!d)d=b[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((b[6923]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+20|0;c=b[a>>2]|0;if(!c){a=i+16|0;c=b[a>>2]|0;if(!c){c=0;break}}while(1){f=c+20|0;d=b[f>>2]|0;if(!d){f=c+16|0;d=b[f>>2]|0;if(!d)break;else{c=d;a=f}}else{c=d;a=f}}b[a>>2]=0}else{v=b[i+8>>2]|0;b[v+12>>2]=c;b[c+8>>2]=v}while(0);do if(g){a=b[i+28>>2]|0;d=27988+(a<<2)|0;if((i|0)==(b[d>>2]|0)){b[d>>2]=c;if(!c){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=c;if(!c)break}b[c+24>>2]=g;a=b[i+16>>2]|0;if(a|0){b[c+16>>2]=a;b[a+24>>2]=c}a=b[i+20>>2]|0;if(a){b[c+20>>2]=a;b[a+24>>2]=c}}while(0);b:do if(h>>>0<16){v=h+k|0;b[i+4>>2]=v|3;v=i+v+4|0;b[v>>2]=b[v>>2]|1}else{b[i+4>>2]=k|3;b[l+4>>2]=h|1;b[l+h>>2]=h;c=h>>>3;if(h>>>0<256){d=27724+(c<<1<<2)|0;a=b[6921]|0;c=1<>2]|0}b[a>>2]=l;b[c+12>>2]=l;b[l+8>>2]=c;b[l+12>>2]=d;break}c=h>>>8;if(c)if(h>>>0>16777215)d=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;c=27988+(d<<2)|0;b[l+28>>2]=d;a=l+16|0;b[a+4>>2]=0;b[a>>2]=0;a=1<>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break}c=b[c>>2]|0;c:do if((b[c+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(h|0)){c=a;break c}else{e=e<<1;c=a}}b[d>>2]=l;b[l+24>>2]=c;b[l+12>>2]=l;b[l+8>>2]=l;break b}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=l;b[u>>2]=l;b[l+8>>2]=v;b[l+12>>2]=c;b[l+24>>2]=0}while(0);v=i+8|0;S=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=b[6923]|0;if(d>>>0>=m>>>0){c=d-m|0;a=b[6926]|0;if(c>>>0>15){v=a+m|0;b[6926]=v;b[6923]=c;b[v+4>>2]=c|1;b[a+d>>2]=c;b[a+4>>2]=m|3}else{b[6923]=0;b[6926]=0;b[a+4>>2]=d|3;v=a+d+4|0;b[v>>2]=b[v>>2]|1}v=a+8|0;S=w;return v|0}h=b[6924]|0;if(h>>>0>m>>>0){t=h-m|0;b[6924]=t;v=b[6927]|0;u=v+m|0;b[6927]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}if(!(b[7039]|0)){b[7041]=4096;b[7040]=4096;b[7042]=-1;b[7043]=-1;b[7044]=0;b[7032]=0;b[7039]=n&-16^1431655768;a=4096}else a=b[7041]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;S=w;return v|0}a=b[7031]|0;if(a|0?(l=b[7029]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;S=w;return v|0}d:do if(!(b[7032]&4)){d=b[6927]|0;e:do if(d){e=28132;while(1){n=b[e>>2]|0;if(n>>>0<=d>>>0?(n+(b[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=b[e+8>>2]|0;if(!a){q=128;break e}else e=a}c=g-h&f;if(c>>>0<2147483647){a=Dd(c|0)|0;if((a|0)==((b[e>>2]|0)+(b[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=c;g=a;q=145;break d}}else{e=a;q=136}}else c=0}else q=128;while(0);do if((q|0)==128){d=Dd(0)|0;if((d|0)!=(-1|0)?(c=d,o=b[7040]|0,p=o+-1|0,c=((p&c|0)==0?0:(p+c&0-o)-c|0)+k|0,o=b[7029]|0,p=c+o|0,c>>>0>m>>>0&c>>>0<2147483647):0){n=b[7031]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){c=0;break}a=Dd(c|0)|0;if((a|0)==(d|0)){h=c;g=d;q=145;break d}else{e=a;q=136}}else c=0}while(0);do if((q|0)==136){d=0-c|0;if(!(i>>>0>c>>>0&(c>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){c=0;break}else{h=c;g=e;q=145;break d}a=b[7041]|0;a=j-c+a&0-a;if(a>>>0>=2147483647){h=c;g=e;q=145;break d}if((Dd(a|0)|0)==(-1|0)){Dd(d|0)|0;c=0;break}else{h=a+c|0;g=e;q=145;break d}}while(0);b[7032]=b[7032]|4;q=143}else{c=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=Dd(k|0)|0,p=Dd(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:c;g=t;q=145}if((q|0)==145){c=(b[7029]|0)+h|0;b[7029]=c;if(c>>>0>(b[7030]|0)>>>0)b[7030]=c;j=b[6927]|0;f:do if(j){c=28132;while(1){a=b[c>>2]|0;d=b[c+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=b[c+8>>2]|0;if(!e)break;else c=e}if(((q|0)==154?(u=c+4|0,(b[c+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){b[u>>2]=d+h;v=(b[6924]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;b[6927]=u;b[6924]=t;b[u+4>>2]=t|1;b[j+v+4>>2]=40;b[6928]=b[7043];break}if(g>>>0<(b[6925]|0)>>>0)b[6925]=g;d=g+h|0;c=28132;while(1){if((b[c>>2]|0)==(d|0)){q=162;break}a=b[c+8>>2]|0;if(!a)break;else c=a}if((q|0)==162?(b[c+12>>2]&8|0)==0:0){b[c>>2]=g;l=c+4|0;b[l>>2]=(b[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;c=d+8|0;c=d+((c&7|0)==0?0:0-c&7)|0;k=l+m|0;i=c-l-m|0;b[l+4>>2]=m|3;g:do if((j|0)==(c|0)){v=(b[6924]|0)+i|0;b[6924]=v;b[6927]=k;b[k+4>>2]=v|1}else{if((b[6926]|0)==(c|0)){v=(b[6923]|0)+i|0;b[6923]=v;b[6926]=k;b[k+4>>2]=v|1;b[k+v>>2]=v;break}a=b[c+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=b[c+8>>2]|0;d=b[c+12>>2]|0;if((d|0)==(a|0)){b[6921]=b[6921]&~(1<>2]=d;b[d+8>>2]=a;break}}else{g=b[c+24>>2]|0;a=b[c+12>>2]|0;do if((a|0)==(c|0)){d=c+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{v=b[c+8>>2]|0;b[v+12>>2]=a;b[a+8>>2]=v}while(0);if(!g)break;d=b[c+28>>2]|0;e=27988+(d<<2)|0;do if((b[e>>2]|0)!=(c|0)){v=g+16|0;b[((b[v>>2]|0)==(c|0)?v:g+20|0)>>2]=a;if(!a)break h}else{b[e>>2]=a;if(a|0)break;b[6922]=b[6922]&~(1<>2]=g;d=c+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(!d)break;b[a+20>>2]=d;b[d+24>>2]=a}while(0);c=c+h|0;f=h+i|0}else f=i;c=c+4|0;b[c>>2]=b[c>>2]&-2;b[k+4>>2]=f|1;b[k+f>>2]=f;c=f>>>3;if(f>>>0<256){d=27724+(c<<1<<2)|0;a=b[6921]|0;c=1<>2]|0}b[a>>2]=k;b[c+12>>2]=k;b[k+8>>2]=c;b[k+12>>2]=d;break}c=f>>>8;do if(!c)e=0;else{if(f>>>0>16777215){e=31;break}u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);c=27988+(e<<2)|0;b[k+28>>2]=e;a=k+16|0;b[a+4>>2]=0;b[a>>2]=0;a=b[6922]|0;d=1<>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break}c=b[c>>2]|0;i:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break i}else{e=e<<1;c=a}}b[d>>2]=k;b[k+24>>2]=c;b[k+12>>2]=k;b[k+8>>2]=k;break g}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=k;b[u>>2]=k;b[k+8>>2]=v;b[k+12>>2]=c;b[k+24>>2]=0}while(0);v=l+8|0;S=w;return v|0}c=28132;while(1){a=b[c>>2]|0;if(a>>>0<=j>>>0?(v=a+(b[c+4>>2]|0)|0,v>>>0>j>>>0):0)break;c=b[c+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;c=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;b[6927]=u;b[6924]=t;b[u+4>>2]=t|1;b[g+d+4>>2]=40;b[6928]=b[7043];d=a+4|0;b[d>>2]=27;b[c>>2]=b[7033];b[c+4>>2]=b[7034];b[c+8>>2]=b[7035];b[c+12>>2]=b[7036];b[7033]=g;b[7034]=h;b[7036]=0;b[7035]=c;c=a+24|0;do{u=c;c=c+4|0;b[c>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;b[d>>2]=b[d>>2]&-2;b[j+4>>2]=g|1;b[a>>2]=g;c=g>>>3;if(g>>>0<256){d=27724+(c<<1<<2)|0;a=b[6921]|0;c=1<>2]|0}b[a>>2]=j;b[c+12>>2]=j;b[j+8>>2]=c;b[j+12>>2]=d;break}c=g>>>8;if(c)if(g>>>0>16777215)e=31;else{u=(c+1048320|0)>>>16&8;v=c<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=27988+(e<<2)|0;b[j+28>>2]=e;b[j+20>>2]=0;b[f>>2]=0;c=b[6922]|0;a=1<>2]=j;b[j+24>>2]=d;b[j+12>>2]=j;b[j+8>>2]=j;break}c=b[d>>2]|0;j:do if((b[c+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(g|0)){c=a;break j}else{e=e<<1;c=a}}b[d>>2]=j;b[j+24>>2]=c;b[j+12>>2]=j;b[j+8>>2]=j;break f}while(0);u=c+8|0;v=b[u>>2]|0;b[v+12>>2]=j;b[u>>2]=j;b[j+8>>2]=v;b[j+12>>2]=c;b[j+24>>2]=0}}else{v=b[6925]|0;if((v|0)==0|g>>>0>>0)b[6925]=g;b[7033]=g;b[7034]=h;b[7036]=0;b[6930]=b[7039];b[6929]=-1;b[6934]=27724;b[6933]=27724;b[6936]=27732;b[6935]=27732;b[6938]=27740;b[6937]=27740;b[6940]=27748;b[6939]=27748;b[6942]=27756;b[6941]=27756;b[6944]=27764;b[6943]=27764;b[6946]=27772;b[6945]=27772;b[6948]=27780;b[6947]=27780;b[6950]=27788;b[6949]=27788;b[6952]=27796;b[6951]=27796;b[6954]=27804;b[6953]=27804;b[6956]=27812;b[6955]=27812;b[6958]=27820;b[6957]=27820;b[6960]=27828;b[6959]=27828;b[6962]=27836;b[6961]=27836;b[6964]=27844;b[6963]=27844;b[6966]=27852;b[6965]=27852;b[6968]=27860;b[6967]=27860;b[6970]=27868;b[6969]=27868;b[6972]=27876;b[6971]=27876;b[6974]=27884;b[6973]=27884;b[6976]=27892;b[6975]=27892;b[6978]=27900;b[6977]=27900;b[6980]=27908;b[6979]=27908;b[6982]=27916;b[6981]=27916;b[6984]=27924;b[6983]=27924;b[6986]=27932;b[6985]=27932;b[6988]=27940;b[6987]=27940;b[6990]=27948;b[6989]=27948;b[6992]=27956;b[6991]=27956;b[6994]=27964;b[6993]=27964;b[6996]=27972;b[6995]=27972;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;b[6927]=u;b[6924]=t;b[u+4>>2]=t|1;b[g+v+4>>2]=40;b[6928]=b[7043]}while(0);c=b[6924]|0;if(c>>>0>m>>>0){t=c-m|0;b[6924]=t;v=b[6927]|0;u=v+m|0;b[6927]=u;b[u+4>>2]=t|1;b[v+4>>2]=m|3;v=v+8|0;S=w;return v|0}}v=Vc()|0;b[v>>2]=12;v=0;S=w;return v|0}function ed(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=b[6925]|0;a=b[a+-4>>2]|0;c=a&-8;j=d+c|0;do if(!(a&1)){e=b[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+c|0;if(h>>>0>>0)return;if((b[6926]|0)==(h|0)){a=j+4|0;c=b[a>>2]|0;if((c&3|0)!=3){i=h;c=g;break}b[6923]=g;b[a>>2]=c&-2;b[h+4>>2]=g|1;b[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=b[h+8>>2]|0;c=b[h+12>>2]|0;if((c|0)==(a|0)){b[6921]=b[6921]&~(1<>2]=c;b[c+8>>2]=a;i=h;c=g;break}}f=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){c=h+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){a=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0}else{i=b[h+8>>2]|0;b[i+12>>2]=a;b[a+8>>2]=i}while(0);if(f){c=b[h+28>>2]|0;d=27988+(c<<2)|0;if((b[d>>2]|0)==(h|0)){b[d>>2]=a;if(!a){b[6922]=b[6922]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;c=g;break}}b[a+24>>2]=f;c=h+16|0;d=b[c>>2]|0;if(d|0){b[a+16>>2]=d;b[d+24>>2]=a}c=b[c+4>>2]|0;if(c){b[a+20>>2]=c;b[c+24>>2]=a;i=h;c=g}else{i=h;c=g}}else{i=h;c=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=b[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((b[6927]|0)==(j|0)){j=(b[6924]|0)+c|0;b[6924]=j;b[6927]=i;b[i+4>>2]=j|1;if((i|0)!=(b[6926]|0))return;b[6926]=0;b[6923]=0;return}if((b[6926]|0)==(j|0)){j=(b[6923]|0)+c|0;b[6923]=j;b[6926]=h;b[i+4>>2]=j|1;b[h+j>>2]=j;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){c=b[j+8>>2]|0;a=b[j+12>>2]|0;if((a|0)==(c|0)){b[6921]=b[6921]&~(1<>2]=a;b[a+8>>2]=c;break}}else{g=b[j+24>>2]|0;a=b[j+12>>2]|0;do if((a|0)==(j|0)){c=j+16|0;d=c+4|0;a=b[d>>2]|0;if(!a){a=b[c>>2]|0;if(!a){d=0;break}}else c=d;while(1){e=a+20|0;d=b[e>>2]|0;if(!d){e=a+16|0;d=b[e>>2]|0;if(!d)break;else{a=d;c=e}}else{a=d;c=e}}b[c>>2]=0;d=a}else{d=b[j+8>>2]|0;b[d+12>>2]=a;b[a+8>>2]=d;d=a}while(0);if(g|0){a=b[j+28>>2]|0;c=27988+(a<<2)|0;if((b[c>>2]|0)==(j|0)){b[c>>2]=d;if(!d){b[6922]=b[6922]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;a=j+16|0;c=b[a>>2]|0;if(c|0){b[d+16>>2]=c;b[c+24>>2]=d}a=b[a+4>>2]|0;if(a|0){b[d+20>>2]=a;b[a+24>>2]=d}}}while(0);b[i+4>>2]=f|1;b[h+f>>2]=f;if((i|0)==(b[6926]|0)){b[6923]=f;return}}else{b[a>>2]=e&-2;b[i+4>>2]=c|1;b[h+c>>2]=c;f=c}a=f>>>3;if(f>>>0<256){d=27724+(a<<1<<2)|0;c=b[6921]|0;a=1<>2]|0}b[c>>2]=i;b[a+12>>2]=i;b[i+8>>2]=a;b[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=27988+(e<<2)|0;b[i+28>>2]=e;b[i+20>>2]=0;b[i+16>>2]=0;c=b[6922]|0;d=1<>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i}else{a=b[a>>2]|0;b:do if((b[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;c=b[d>>2]|0;if(!c)break;if((b[c+4>>2]&-8|0)==(f|0)){a=c;break b}else{e=e<<1;a=c}}b[d>>2]=i;b[i+24>>2]=a;b[i+12>>2]=i;b[i+8>>2]=i;break a}while(0);h=a+8|0;j=b[h>>2]|0;b[j+12>>2]=i;b[h>>2]=i;b[i+8>>2]=j;b[i+12>>2]=a;b[i+24>>2]=0}while(0);j=(b[6929]|0)+-1|0;b[6929]=j;if(j|0)return;a=28140;while(1){a=b[a>>2]|0;if(!a)break;else a=a+8|0}b[6929]=-1;return}function fd(a,c){a=a|0;c=c|0;var d=0;if(a){d=A(c,a)|0;if((c|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(c|0)?d:-1}else d=0;a=dd(d)|0;if(!a)return a|0;if(!(b[a+-4>>2]&3))return a|0;Bd(a|0,0,d|0)|0;return a|0}function gd(a,c){a=a|0;c=c|0;var d=0,e=0;if(!a){c=dd(c)|0;return c|0}if(c>>>0>4294967231){c=Vc()|0;b[c>>2]=12;c=0;return c|0}d=hd(a+-8|0,c>>>0<11?16:c+11&-8)|0;if(d|0){c=d+8|0;return c|0}d=dd(c)|0;if(!d){c=0;return c|0}e=b[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;zd(d|0,a|0,(e>>>0>>0?e:c)|0)|0;ed(a);c=d;return c|0}function hd(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=a+4|0;m=b[l>>2]|0;d=m&-8;i=a+d|0;if(!(m&3)){if(c>>>0<256){a=0;return a|0}if(d>>>0>=(c+4|0)>>>0?(d-c|0)>>>0<=b[7041]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=c>>>0){d=d-c|0;if(d>>>0<=15)return a|0;k=a+c|0;b[l>>2]=m&1|c|2;b[k+4>>2]=d|3;m=i+4|0;b[m>>2]=b[m>>2]|1;id(k,d);return a|0}if((b[6927]|0)==(i|0)){k=(b[6924]|0)+d|0;d=k-c|0;e=a+c|0;if(k>>>0<=c>>>0){a=0;return a|0}b[l>>2]=m&1|c|2;b[e+4>>2]=d|1;b[6927]=e;b[6924]=d;return a|0}if((b[6926]|0)==(i|0)){e=(b[6923]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-c|0;if(d>>>0>15){k=a+c|0;e=a+e|0;b[l>>2]=m&1|c|2;b[k+4>>2]=d|1;b[e>>2]=d;e=e+4|0;b[e>>2]=b[e>>2]&-2;e=k}else{b[l>>2]=m&1|e|2;e=a+e+4|0;b[e>>2]=b[e>>2]|1;e=0;d=0}b[6923]=d;b[6926]=e;return a|0}e=b[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0>>0){a=0;return a|0}k=j-c|0;f=e>>>3;do if(e>>>0<256){e=b[i+8>>2]|0;d=b[i+12>>2]|0;if((d|0)==(e|0)){b[6921]=b[6921]&~(1<>2]=d;b[d+8>>2]=e;break}}else{h=b[i+24>>2]|0;d=b[i+12>>2]|0;do if((d|0)==(i|0)){e=i+16|0;f=e+4|0;d=b[f>>2]|0;if(!d){d=b[e>>2]|0;if(!d){f=0;break}}else e=f;while(1){g=d+20|0;f=b[g>>2]|0;if(!f){g=d+16|0;f=b[g>>2]|0;if(!f)break;else{d=f;e=g}}else{d=f;e=g}}b[e>>2]=0;f=d}else{f=b[i+8>>2]|0;b[f+12>>2]=d;b[d+8>>2]=f;f=d}while(0);if(h|0){d=b[i+28>>2]|0;e=27988+(d<<2)|0;if((b[e>>2]|0)==(i|0)){b[e>>2]=f;if(!f){b[6922]=b[6922]&~(1<>2]|0)==(i|0)?g:h+20|0)>>2]=f;if(!f)break}b[f+24>>2]=h;d=i+16|0;e=b[d>>2]|0;if(e|0){b[f+16>>2]=e;b[e+24>>2]=f}d=b[d+4>>2]|0;if(d|0){b[f+20>>2]=d;b[d+24>>2]=f}}}while(0);if(k>>>0<16){b[l>>2]=m&1|j|2;m=a+j+4|0;b[m>>2]=b[m>>2]|1;return a|0}else{i=a+c|0;b[l>>2]=m&1|c|2;b[i+4>>2]=k|3;m=a+j+4|0;b[m>>2]=b[m>>2]|1;id(i,k);return a|0}return 0}function id(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+c|0;d=b[a+4>>2]|0;do if(!(d&1)){f=b[a>>2]|0;if(!(d&3))return;h=a+(0-f)|0;c=f+c|0;if((b[6926]|0)==(h|0)){a=i+4|0;d=b[a>>2]|0;if((d&3|0)!=3)break;b[6923]=c;b[a>>2]=d&-2;b[h+4>>2]=c|1;b[i>>2]=c;return}e=f>>>3;if(f>>>0<256){a=b[h+8>>2]|0;d=b[h+12>>2]|0;if((d|0)==(a|0)){b[6921]=b[6921]&~(1<>2]=d;b[d+8>>2]=a;break}}g=b[h+24>>2]|0;a=b[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;e=d+4|0;a=b[e>>2]|0;if(!a){a=b[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=b[f>>2]|0;if(!e){f=a+16|0;e=b[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}b[d>>2]=0}else{f=b[h+8>>2]|0;b[f+12>>2]=a;b[a+8>>2]=f}while(0);if(g){d=b[h+28>>2]|0;e=27988+(d<<2)|0;if((b[e>>2]|0)==(h|0)){b[e>>2]=a;if(!a){b[6922]=b[6922]&~(1<>2]|0)==(h|0)?f:g+20|0)>>2]=a;if(!a)break}b[a+24>>2]=g;d=h+16|0;e=b[d>>2]|0;if(e|0){b[a+16>>2]=e;b[e+24>>2]=a}d=b[d+4>>2]|0;if(d){b[a+20>>2]=d;b[d+24>>2]=a}}}else h=a;while(0);a=i+4|0;e=b[a>>2]|0;if(!(e&2)){if((b[6927]|0)==(i|0)){i=(b[6924]|0)+c|0;b[6924]=i;b[6927]=h;b[h+4>>2]=i|1;if((h|0)!=(b[6926]|0))return;b[6926]=0;b[6923]=0;return}if((b[6926]|0)==(i|0)){i=(b[6923]|0)+c|0;b[6923]=i;b[6926]=h;b[h+4>>2]=i|1;b[h+i>>2]=i;return}f=(e&-8)+c|0;d=e>>>3;do if(e>>>0<256){a=b[i+8>>2]|0;c=b[i+12>>2]|0;if((c|0)==(a|0)){b[6921]=b[6921]&~(1<>2]=c;b[c+8>>2]=a;break}}else{g=b[i+24>>2]|0;c=b[i+12>>2]|0;do if((c|0)==(i|0)){a=i+16|0;d=a+4|0;c=b[d>>2]|0;if(!c){c=b[a>>2]|0;if(!c){d=0;break}}else a=d;while(1){e=c+20|0;d=b[e>>2]|0;if(!d){e=c+16|0;d=b[e>>2]|0;if(!d)break;else{c=d;a=e}}else{c=d;a=e}}b[a>>2]=0;d=c}else{d=b[i+8>>2]|0;b[d+12>>2]=c;b[c+8>>2]=d;d=c}while(0);if(g|0){c=b[i+28>>2]|0;a=27988+(c<<2)|0;if((b[a>>2]|0)==(i|0)){b[a>>2]=d;if(!d){b[6922]=b[6922]&~(1<>2]|0)==(i|0)?e:g+20|0)>>2]=d;if(!d)break}b[d+24>>2]=g;c=i+16|0;a=b[c>>2]|0;if(a|0){b[d+16>>2]=a;b[a+24>>2]=d}c=b[c+4>>2]|0;if(c|0){b[d+20>>2]=c;b[c+24>>2]=d}}}while(0);b[h+4>>2]=f|1;b[h+f>>2]=f;if((h|0)==(b[6926]|0)){b[6923]=f;return}}else{b[a>>2]=e&-2;b[h+4>>2]=c|1;b[h+c>>2]=c;f=c}c=f>>>3;if(f>>>0<256){d=27724+(c<<1<<2)|0;a=b[6921]|0;c=1<>2]|0}b[a>>2]=h;b[c+12>>2]=h;b[h+8>>2]=c;b[h+12>>2]=d;return}c=f>>>8;if(c)if(f>>>0>16777215)e=31;else{g=(c+1048320|0)>>>16&8;i=c<>>16&4;i=i<>>16&2;e=14-(d|g|e)+(i<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;c=27988+(e<<2)|0;b[h+28>>2]=e;b[h+20>>2]=0;b[h+16>>2]=0;a=b[6922]|0;d=1<>2]=h;b[h+24>>2]=c;b[h+12>>2]=h;b[h+8>>2]=h;return}c=b[c>>2]|0;a:do if((b[c+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=c+16+(e>>>31<<2)|0;a=b[d>>2]|0;if(!a)break;if((b[a+4>>2]&-8|0)==(f|0)){c=a;break a}else{e=e<<1;c=a}}b[d>>2]=h;b[h+24>>2]=c;b[h+12>>2]=h;b[h+8>>2]=h;return}while(0);g=c+8|0;i=b[g>>2]|0;b[i+12>>2]=h;b[g>>2]=h;b[h+8>>2]=i;b[h+12>>2]=c;b[h+24>>2]=0;return}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (F(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function kd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (F(d|0),a-c>>>0|0)|0}function ld(a){a=a|0;return (a?31-(D(a^a-1)|0)|0:32)|0}function md(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=c;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){b[f>>2]=(l>>>0)%(h>>>0);b[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (F(n|0),f)|0}else{if(!g){n=0;f=0;return (F(n|0),f)|0}b[f>>2]=a|0;b[f+4>>2]=c&0;n=0;f=0;return (F(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;c=g-31>>31;h=m;a=l>>>(m>>>0)&c|k<>>(m>>>0)&c;g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;n=0;f=0;return (F(n|0),f)|0}g=h-1|0;if(g&h|0){i=(D(h|0)|0)+33-(D(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;c=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&c;c=c&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){b[f>>2]=g&l;b[f+4>>2]=0}if((h|0)==1){o=j|c&0;p=a|0|0;return (F(o|0),p)|0}else{p=ld(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (F(o|0),p)|0}}else{if(g){if(f|0){b[f>>2]=(k>>>0)%(h>>>0);b[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (F(o|0),p)|0}if(!l){if(f|0){b[f>>2]=0;b[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (F(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){b[f>>2]=a|0;b[f+4>>2]=g&k|c&0}o=0;p=k>>>((ld(i|0)|0)>>>0);return (F(o|0),p)|0}g=(D(i|0)|0)-(D(k|0)|0)|0;if(g>>>0<=30){c=g+1|0;i=31-g|0;h=c;a=k<>>(c>>>0);c=k>>>(c>>>0);g=0;i=l<>2]=a|0;b[f+4>>2]=j|c&0;o=0;p=0;return (F(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=jd(m|0,l|0,-1,-1)|0;d=G()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|c<<1|0;kd(k|0,d|0,e|0,n|0)|0;p=G()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=kd(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;c=G()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){b[f>>2]=a;b[f+4>>2]=c}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (F(o|0),p)|0}function nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=kd(j^a|0,i^b|0,j|0,i|0)|0;g=G()|0;a=f^j;b=e^i;return kd((md(h,g,kd(f^c|0,e^d|0,f|0,e|0)|0,G()|0,0)|0)^a|0,(G()|0)^b|0,a|0,b|0)|0}function od(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=A(e,f)|0;d=a>>>16;a=(c>>>16)+(A(e,d)|0)|0;e=b>>>16;b=A(e,f)|0;return (F((a>>>16)+(A(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function pd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=od(e,f)|0;a=G()|0;return (F((A(b,f)|0)+(A(d,e)|0)+a|a&0|0),c|0|0)|0}function qd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=S;S=S+16|0;i=f|0;h=c>>31|((c|0)<0?-1:0)<<1;g=((c|0)<0?-1:0)>>31|((c|0)<0?-1:0)<<1;k=e>>31|((e|0)<0?-1:0)<<1;j=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=kd(h^a|0,g^c|0,h|0,g|0)|0;c=G()|0;md(a,c,kd(k^d|0,j^e|0,k|0,j|0)|0,G()|0,i)|0;e=kd(b[i>>2]^h|0,b[i+4>>2]^g|0,h|0,g|0)|0;d=G()|0;S=f;return (F(d|0),e)|0}function rd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=S;S=S+16|0;f=g|0;md(a,c,d,e,f)|0;S=g;return (F(b[f+4>>2]|0),b[f>>2]|0)|0}function sd(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>c|0);return a>>>c|(b&(1<>c-32|0}function td(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function ud(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){F(b<>>32-c|0);return a<=0.0?+p(a+.5):+z(a-.5)}function zd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){K(c|0,d|0,e|0)|0;return c|0}h=c|0;g=c+e|0;if((c&3)==(d&3)){while(c&3){if(!e)return h|0;a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((c|0)<=(f|0)){b[c>>2]=b[d>>2];b[c+4>>2]=b[d+4>>2];b[c+8>>2]=b[d+8>>2];b[c+12>>2]=b[d+12>>2];b[c+16>>2]=b[d+16>>2];b[c+20>>2]=b[d+20>>2];b[c+24>>2]=b[d+24>>2];b[c+28>>2]=b[d+28>>2];b[c+32>>2]=b[d+32>>2];b[c+36>>2]=b[d+36>>2];b[c+40>>2]=b[d+40>>2];b[c+44>>2]=b[d+44>>2];b[c+48>>2]=b[d+48>>2];b[c+52>>2]=b[d+52>>2];b[c+56>>2]=b[d+56>>2];b[c+60>>2]=b[d+60>>2];c=c+64|0;d=d+64|0}while((c|0)<(e|0)){b[c>>2]=b[d>>2];c=c+4|0;d=d+4|0}}else{e=g-4|0;while((c|0)<(e|0)){a[c>>0]=a[d>>0]|0;a[c+1>>0]=a[d+1>>0]|0;a[c+2>>0]=a[d+2>>0]|0;a[c+3>>0]=a[d+3>>0]|0;c=c+4|0;d=d+4|0}}while((c|0)<(g|0)){a[c>>0]=a[d>>0]|0;c=c+1|0;d=d+1|0}return h|0}function Ad(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else zd(b,c,d)|0;return b|0}function Bd(c,d,e){c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=c+e|0;d=d&255;if((e|0)>=67){while(c&3){a[c>>0]=d;c=c+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((c|0)<=(g|0)){b[c>>2]=i;b[c+4>>2]=i;b[c+8>>2]=i;b[c+12>>2]=i;b[c+16>>2]=i;b[c+20>>2]=i;b[c+24>>2]=i;b[c+28>>2]=i;b[c+32>>2]=i;b[c+36>>2]=i;b[c+40>>2]=i;b[c+44>>2]=i;b[c+48>>2]=i;b[c+52>>2]=i;b[c+56>>2]=i;b[c+60>>2]=i;c=c+64|0}while((c|0)<(f|0)){b[c>>2]=i;c=c+4|0}}while((c|0)<(h|0)){a[c>>0]=d;c=c+1|0}return h-e|0}function Cd(a){a=+a;return a>=0.0?+p(a+.5):+z(a-.5)}function Dd(a){a=a|0;var c=0,d=0,e=0;e=J()|0;d=b[g>>2]|0;c=d+a|0;if((a|0)>0&(c|0)<(d|0)|(c|0)<0){M(c|0)|0;I(12);return -1}if((c|0)>(e|0))if(!(L(c|0)|0)){I(12);return -1}b[g>>2]=c;return d|0}function Ed(a,b,c){a=a|0;b=b|0;c=c|0;return W[a&3](b|0,c|0)|0}function Fd(a,b){a=a|0;b=b|0;E(0);return 0} // EMSCRIPTEN_END_FUNCS -return{___divdi3:Nd,___muldi3:Pd,___remdi3:Qd,___uremdi3:Rd,_areNeighborCells:ib,_bitshift64Ashr:Sd,_bitshift64Lshr:Td,_bitshift64Shl:Ud,_calloc:Id,_cellAreaKm2:Ac,_cellAreaM2:Bc,_cellAreaRads2:zc,_cellToBoundary:bc,_cellToCenterChild:Nb,_cellToChildPos:gc,_cellToChildren:Lb,_cellToChildrenSize:Jb,_cellToLatLng:ac,_cellToLocalIj:Mc,_cellToParent:Ib,_cellToVertex:td,_cellToVertexes:ud,_cellsToDirectedEdge:jb,_cellsToLinkedMultiPolygon:na,_childPosToCell:hc,_compactCells:Ob,_constructCell:Eb,_destroyLinkedMultiPolygon:Hc,_directedEdgeToBoundary:pb,_directedEdgeToCells:nb,_edgeLengthKm:Dc,_edgeLengthM:Ec,_edgeLengthRads:Cc,_emscripten_replace_memory:W,_free:Hd,_getBaseCellNumber:Cb,_getDirectedEdgeDestination:lb,_getDirectedEdgeOrigin:kb,_getHexagonAreaAvgKm2:tc,_getHexagonAreaAvgM2:uc,_getHexagonEdgeLengthAvgKm:vc,_getHexagonEdgeLengthAvgM:wc,_getIcosahedronFaces:dc,_getIndexDigit:Db,_getNumCells:xc,_getPentagons:fc,_getRes0Cells:ya,_getResolution:Bb,_greatCircleDistanceKm:pc,_greatCircleDistanceM:qc,_greatCircleDistanceRads:oc,_gridDisk:aa,_gridDiskDistances:ba,_gridDistance:Oc,_gridPathCells:Qc,_gridPathCellsSize:Pc,_gridRing:fa,_gridRingUnsafe:ga,_i64Add:Jd,_i64Subtract:Kd,_isPentagon:Kb,_isResClassIII:Rb,_isValidCell:Fb,_isValidDirectedEdge:mb,_isValidIndex:Gb,_isValidVertex:wd,_latLngToCell:Zb,_llvm_ctlz_i64:Vd,_llvm_maxnum_f64:Wd,_llvm_minnum_f64:Xd,_llvm_round_f64:Yd,_localIjToCell:Nc,_malloc:Gd,_maxFaceCount:cc,_maxGridDiskSize:$,_maxPolygonToCellsSize:ja,_maxPolygonToCellsSizeExperimental:Xc,_memcpy:Zd,_memset:_d,_originToDirectedEdges:ob,_pentagonCount:ec,_polygonToCells:la,_polygonToCellsExperimental:Wc,_readInt64AsDoubleFromPointer:ld,_res0CellCount:xa,_round:$d,_sbrk:ae,_sizeOfCellBoundary:gd,_sizeOfCoordIJ:kd,_sizeOfGeoLoop:hd,_sizeOfGeoPolygon:id,_sizeOfH3Index:ed,_sizeOfLatLng:fd,_sizeOfLinkedGeoPolygon:jd,_uncompactCells:Pb,_uncompactCellsSize:Qb,_vertexToLatLng:vd,establishStackSpace:_,stackAlloc:X,stackRestore:Z,stackSave:Y}}) +var W=[Fd,Oa,Qa,Ra];return{___divdi3:nd,___muldi3:pd,___remdi3:qd,___uremdi3:rd,_areNeighborCells:Sa,_bitshift64Ashr:sd,_bitshift64Lshr:td,_bitshift64Shl:ud,_calloc:fd,_cellAreaKm2:pa,_cellAreaM2:qa,_cellAreaRads2:oa,_cellToBoundary:Kb,_cellToCenterChild:ub,_cellToChildPos:Pb,_cellToChildren:sb,_cellToChildrenSize:qb,_cellToLatLng:Jb,_cellToLocalIj:jc,_cellToParent:pb,_cellToVertex:Rc,_cellToVertexes:Sc,_cellsToDirectedEdge:Ta,_cellsToLinkedMultiPolygon:ma,_childPosToCell:Qb,_compactCells:vb,_constructCell:lb,_destroyLinkedMultiPolygon:fc,_directedEdgeToBoundary:Za,_directedEdgeToCells:Xa,_edgeLengthKm:dc,_edgeLengthM:ec,_edgeLengthRads:cc,_emscripten_replace_memory:V,_free:ed,_getBaseCellNumber:jb,_getDirectedEdgeDestination:Va,_getDirectedEdgeOrigin:Ua,_getHexagonAreaAvgKm2:Zb,_getHexagonAreaAvgM2:_b,_getHexagonEdgeLengthAvgKm:$b,_getHexagonEdgeLengthAvgM:ac,_getIcosahedronFaces:Mb,_getIndexDigit:kb,_getNumCells:bc,_getPentagons:Ob,_getRes0Cells:Ba,_getResolution:ib,_greatCircleDistanceKm:Xb,_greatCircleDistanceM:Yb,_greatCircleDistanceRads:Wb,_gridDisk:aa,_gridDiskDistances:ba,_gridDistance:lc,_gridPathCells:nc,_gridPathCellsSize:mc,_gridRing:fa,_gridRingUnsafe:ga,_i64Add:jd,_i64Subtract:kd,_isPentagon:rb,_isResClassIII:yb,_isValidCell:mb,_isValidDirectedEdge:Wa,_isValidIndex:nb,_isValidVertex:Uc,_latLngToCell:Gb,_llvm_ctlz_i64:vd,_llvm_maxnum_f64:wd,_llvm_minnum_f64:xd,_llvm_round_f64:yd,_localIjToCell:kc,_malloc:dd,_maxFaceCount:Lb,_maxGridDiskSize:$,_maxPolygonToCellsSize:ja,_maxPolygonToCellsSizeExperimental:vc,_memcpy:zd,_memmove:Ad,_memset:Bd,_originToDirectedEdges:Ya,_pentagonCount:Nb,_polygonToCells:la,_polygonToCellsExperimental:uc,_readInt64AsDoubleFromPointer:Lc,_res0CellCount:Aa,_reverseDirectedEdge:_a,_round:Cd,_sbrk:Dd,_sizeOfCellBoundary:Gc,_sizeOfCoordIJ:Kc,_sizeOfGeoLoop:Hc,_sizeOfGeoPolygon:Ic,_sizeOfH3Index:Ec,_sizeOfLatLng:Fc,_sizeOfLinkedGeoPolygon:Jc,_uncompactCells:wb,_uncompactCellsSize:xb,_vertexToLatLng:Tc,dynCall_iii:Ed,establishStackSpace:_,stackAlloc:X,stackRestore:Z,stackSave:Y}}) // EMSCRIPTEN_END_ASM -(asmGlobalArg,asmLibraryArg,buffer);var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _areNeighborCells=Module["_areNeighborCells"]=asm["_areNeighborCells"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _cellAreaKm2=Module["_cellAreaKm2"]=asm["_cellAreaKm2"];var _cellAreaM2=Module["_cellAreaM2"]=asm["_cellAreaM2"];var _cellAreaRads2=Module["_cellAreaRads2"]=asm["_cellAreaRads2"];var _cellToBoundary=Module["_cellToBoundary"]=asm["_cellToBoundary"];var _cellToCenterChild=Module["_cellToCenterChild"]=asm["_cellToCenterChild"];var _cellToChildPos=Module["_cellToChildPos"]=asm["_cellToChildPos"];var _cellToChildren=Module["_cellToChildren"]=asm["_cellToChildren"];var _cellToChildrenSize=Module["_cellToChildrenSize"]=asm["_cellToChildrenSize"];var _cellToLatLng=Module["_cellToLatLng"]=asm["_cellToLatLng"];var _cellToLocalIj=Module["_cellToLocalIj"]=asm["_cellToLocalIj"];var _cellToParent=Module["_cellToParent"]=asm["_cellToParent"];var _cellToVertex=Module["_cellToVertex"]=asm["_cellToVertex"];var _cellToVertexes=Module["_cellToVertexes"]=asm["_cellToVertexes"];var _cellsToDirectedEdge=Module["_cellsToDirectedEdge"]=asm["_cellsToDirectedEdge"];var _cellsToLinkedMultiPolygon=Module["_cellsToLinkedMultiPolygon"]=asm["_cellsToLinkedMultiPolygon"];var _childPosToCell=Module["_childPosToCell"]=asm["_childPosToCell"];var _compactCells=Module["_compactCells"]=asm["_compactCells"];var _constructCell=Module["_constructCell"]=asm["_constructCell"];var _destroyLinkedMultiPolygon=Module["_destroyLinkedMultiPolygon"]=asm["_destroyLinkedMultiPolygon"];var _directedEdgeToBoundary=Module["_directedEdgeToBoundary"]=asm["_directedEdgeToBoundary"];var _directedEdgeToCells=Module["_directedEdgeToCells"]=asm["_directedEdgeToCells"];var _edgeLengthKm=Module["_edgeLengthKm"]=asm["_edgeLengthKm"];var _edgeLengthM=Module["_edgeLengthM"]=asm["_edgeLengthM"];var _edgeLengthRads=Module["_edgeLengthRads"]=asm["_edgeLengthRads"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _getBaseCellNumber=Module["_getBaseCellNumber"]=asm["_getBaseCellNumber"];var _getDirectedEdgeDestination=Module["_getDirectedEdgeDestination"]=asm["_getDirectedEdgeDestination"];var _getDirectedEdgeOrigin=Module["_getDirectedEdgeOrigin"]=asm["_getDirectedEdgeOrigin"];var _getHexagonAreaAvgKm2=Module["_getHexagonAreaAvgKm2"]=asm["_getHexagonAreaAvgKm2"];var _getHexagonAreaAvgM2=Module["_getHexagonAreaAvgM2"]=asm["_getHexagonAreaAvgM2"];var _getHexagonEdgeLengthAvgKm=Module["_getHexagonEdgeLengthAvgKm"]=asm["_getHexagonEdgeLengthAvgKm"];var _getHexagonEdgeLengthAvgM=Module["_getHexagonEdgeLengthAvgM"]=asm["_getHexagonEdgeLengthAvgM"];var _getIcosahedronFaces=Module["_getIcosahedronFaces"]=asm["_getIcosahedronFaces"];var _getIndexDigit=Module["_getIndexDigit"]=asm["_getIndexDigit"];var _getNumCells=Module["_getNumCells"]=asm["_getNumCells"];var _getPentagons=Module["_getPentagons"]=asm["_getPentagons"];var _getRes0Cells=Module["_getRes0Cells"]=asm["_getRes0Cells"];var _getResolution=Module["_getResolution"]=asm["_getResolution"];var _greatCircleDistanceKm=Module["_greatCircleDistanceKm"]=asm["_greatCircleDistanceKm"];var _greatCircleDistanceM=Module["_greatCircleDistanceM"]=asm["_greatCircleDistanceM"];var _greatCircleDistanceRads=Module["_greatCircleDistanceRads"]=asm["_greatCircleDistanceRads"];var _gridDisk=Module["_gridDisk"]=asm["_gridDisk"];var _gridDiskDistances=Module["_gridDiskDistances"]=asm["_gridDiskDistances"];var _gridDistance=Module["_gridDistance"]=asm["_gridDistance"];var _gridPathCells=Module["_gridPathCells"]=asm["_gridPathCells"];var _gridPathCellsSize=Module["_gridPathCellsSize"]=asm["_gridPathCellsSize"];var _gridRing=Module["_gridRing"]=asm["_gridRing"];var _gridRingUnsafe=Module["_gridRingUnsafe"]=asm["_gridRingUnsafe"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _isPentagon=Module["_isPentagon"]=asm["_isPentagon"];var _isResClassIII=Module["_isResClassIII"]=asm["_isResClassIII"];var _isValidCell=Module["_isValidCell"]=asm["_isValidCell"];var _isValidDirectedEdge=Module["_isValidDirectedEdge"]=asm["_isValidDirectedEdge"];var _isValidIndex=Module["_isValidIndex"]=asm["_isValidIndex"];var _isValidVertex=Module["_isValidVertex"]=asm["_isValidVertex"];var _latLngToCell=Module["_latLngToCell"]=asm["_latLngToCell"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _llvm_maxnum_f64=Module["_llvm_maxnum_f64"]=asm["_llvm_maxnum_f64"];var _llvm_minnum_f64=Module["_llvm_minnum_f64"]=asm["_llvm_minnum_f64"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _localIjToCell=Module["_localIjToCell"]=asm["_localIjToCell"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxFaceCount=Module["_maxFaceCount"]=asm["_maxFaceCount"];var _maxGridDiskSize=Module["_maxGridDiskSize"]=asm["_maxGridDiskSize"];var _maxPolygonToCellsSize=Module["_maxPolygonToCellsSize"]=asm["_maxPolygonToCellsSize"];var _maxPolygonToCellsSizeExperimental=Module["_maxPolygonToCellsSizeExperimental"]=asm["_maxPolygonToCellsSizeExperimental"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memset=Module["_memset"]=asm["_memset"];var _originToDirectedEdges=Module["_originToDirectedEdges"]=asm["_originToDirectedEdges"];var _pentagonCount=Module["_pentagonCount"]=asm["_pentagonCount"];var _polygonToCells=Module["_polygonToCells"]=asm["_polygonToCells"];var _polygonToCellsExperimental=Module["_polygonToCellsExperimental"]=asm["_polygonToCellsExperimental"];var _readInt64AsDoubleFromPointer=Module["_readInt64AsDoubleFromPointer"]=asm["_readInt64AsDoubleFromPointer"];var _res0CellCount=Module["_res0CellCount"]=asm["_res0CellCount"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCellBoundary=Module["_sizeOfCellBoundary"]=asm["_sizeOfCellBoundary"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoLoop=Module["_sizeOfGeoLoop"]=asm["_sizeOfGeoLoop"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLatLng=Module["_sizeOfLatLng"]=asm["_sizeOfLatLng"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompactCells=Module["_uncompactCells"]=asm["_uncompactCells"];var _uncompactCellsSize=Module["_uncompactCellsSize"]=asm["_uncompactCellsSize"];var _vertexToLatLng=Module["_vertexToLatLng"]=asm["_vertexToLatLng"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); +(asmGlobalArg,asmLibraryArg,buffer);var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___remdi3=Module["___remdi3"]=asm["___remdi3"];var ___uremdi3=Module["___uremdi3"]=asm["___uremdi3"];var _areNeighborCells=Module["_areNeighborCells"]=asm["_areNeighborCells"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _calloc=Module["_calloc"]=asm["_calloc"];var _cellAreaKm2=Module["_cellAreaKm2"]=asm["_cellAreaKm2"];var _cellAreaM2=Module["_cellAreaM2"]=asm["_cellAreaM2"];var _cellAreaRads2=Module["_cellAreaRads2"]=asm["_cellAreaRads2"];var _cellToBoundary=Module["_cellToBoundary"]=asm["_cellToBoundary"];var _cellToCenterChild=Module["_cellToCenterChild"]=asm["_cellToCenterChild"];var _cellToChildPos=Module["_cellToChildPos"]=asm["_cellToChildPos"];var _cellToChildren=Module["_cellToChildren"]=asm["_cellToChildren"];var _cellToChildrenSize=Module["_cellToChildrenSize"]=asm["_cellToChildrenSize"];var _cellToLatLng=Module["_cellToLatLng"]=asm["_cellToLatLng"];var _cellToLocalIj=Module["_cellToLocalIj"]=asm["_cellToLocalIj"];var _cellToParent=Module["_cellToParent"]=asm["_cellToParent"];var _cellToVertex=Module["_cellToVertex"]=asm["_cellToVertex"];var _cellToVertexes=Module["_cellToVertexes"]=asm["_cellToVertexes"];var _cellsToDirectedEdge=Module["_cellsToDirectedEdge"]=asm["_cellsToDirectedEdge"];var _cellsToLinkedMultiPolygon=Module["_cellsToLinkedMultiPolygon"]=asm["_cellsToLinkedMultiPolygon"];var _childPosToCell=Module["_childPosToCell"]=asm["_childPosToCell"];var _compactCells=Module["_compactCells"]=asm["_compactCells"];var _constructCell=Module["_constructCell"]=asm["_constructCell"];var _destroyLinkedMultiPolygon=Module["_destroyLinkedMultiPolygon"]=asm["_destroyLinkedMultiPolygon"];var _directedEdgeToBoundary=Module["_directedEdgeToBoundary"]=asm["_directedEdgeToBoundary"];var _directedEdgeToCells=Module["_directedEdgeToCells"]=asm["_directedEdgeToCells"];var _edgeLengthKm=Module["_edgeLengthKm"]=asm["_edgeLengthKm"];var _edgeLengthM=Module["_edgeLengthM"]=asm["_edgeLengthM"];var _edgeLengthRads=Module["_edgeLengthRads"]=asm["_edgeLengthRads"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _getBaseCellNumber=Module["_getBaseCellNumber"]=asm["_getBaseCellNumber"];var _getDirectedEdgeDestination=Module["_getDirectedEdgeDestination"]=asm["_getDirectedEdgeDestination"];var _getDirectedEdgeOrigin=Module["_getDirectedEdgeOrigin"]=asm["_getDirectedEdgeOrigin"];var _getHexagonAreaAvgKm2=Module["_getHexagonAreaAvgKm2"]=asm["_getHexagonAreaAvgKm2"];var _getHexagonAreaAvgM2=Module["_getHexagonAreaAvgM2"]=asm["_getHexagonAreaAvgM2"];var _getHexagonEdgeLengthAvgKm=Module["_getHexagonEdgeLengthAvgKm"]=asm["_getHexagonEdgeLengthAvgKm"];var _getHexagonEdgeLengthAvgM=Module["_getHexagonEdgeLengthAvgM"]=asm["_getHexagonEdgeLengthAvgM"];var _getIcosahedronFaces=Module["_getIcosahedronFaces"]=asm["_getIcosahedronFaces"];var _getIndexDigit=Module["_getIndexDigit"]=asm["_getIndexDigit"];var _getNumCells=Module["_getNumCells"]=asm["_getNumCells"];var _getPentagons=Module["_getPentagons"]=asm["_getPentagons"];var _getRes0Cells=Module["_getRes0Cells"]=asm["_getRes0Cells"];var _getResolution=Module["_getResolution"]=asm["_getResolution"];var _greatCircleDistanceKm=Module["_greatCircleDistanceKm"]=asm["_greatCircleDistanceKm"];var _greatCircleDistanceM=Module["_greatCircleDistanceM"]=asm["_greatCircleDistanceM"];var _greatCircleDistanceRads=Module["_greatCircleDistanceRads"]=asm["_greatCircleDistanceRads"];var _gridDisk=Module["_gridDisk"]=asm["_gridDisk"];var _gridDiskDistances=Module["_gridDiskDistances"]=asm["_gridDiskDistances"];var _gridDistance=Module["_gridDistance"]=asm["_gridDistance"];var _gridPathCells=Module["_gridPathCells"]=asm["_gridPathCells"];var _gridPathCellsSize=Module["_gridPathCellsSize"]=asm["_gridPathCellsSize"];var _gridRing=Module["_gridRing"]=asm["_gridRing"];var _gridRingUnsafe=Module["_gridRingUnsafe"]=asm["_gridRingUnsafe"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _isPentagon=Module["_isPentagon"]=asm["_isPentagon"];var _isResClassIII=Module["_isResClassIII"]=asm["_isResClassIII"];var _isValidCell=Module["_isValidCell"]=asm["_isValidCell"];var _isValidDirectedEdge=Module["_isValidDirectedEdge"]=asm["_isValidDirectedEdge"];var _isValidIndex=Module["_isValidIndex"]=asm["_isValidIndex"];var _isValidVertex=Module["_isValidVertex"]=asm["_isValidVertex"];var _latLngToCell=Module["_latLngToCell"]=asm["_latLngToCell"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _llvm_maxnum_f64=Module["_llvm_maxnum_f64"]=asm["_llvm_maxnum_f64"];var _llvm_minnum_f64=Module["_llvm_minnum_f64"]=asm["_llvm_minnum_f64"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _localIjToCell=Module["_localIjToCell"]=asm["_localIjToCell"];var _malloc=Module["_malloc"]=asm["_malloc"];var _maxFaceCount=Module["_maxFaceCount"]=asm["_maxFaceCount"];var _maxGridDiskSize=Module["_maxGridDiskSize"]=asm["_maxGridDiskSize"];var _maxPolygonToCellsSize=Module["_maxPolygonToCellsSize"]=asm["_maxPolygonToCellsSize"];var _maxPolygonToCellsSizeExperimental=Module["_maxPolygonToCellsSizeExperimental"]=asm["_maxPolygonToCellsSizeExperimental"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _originToDirectedEdges=Module["_originToDirectedEdges"]=asm["_originToDirectedEdges"];var _pentagonCount=Module["_pentagonCount"]=asm["_pentagonCount"];var _polygonToCells=Module["_polygonToCells"]=asm["_polygonToCells"];var _polygonToCellsExperimental=Module["_polygonToCellsExperimental"]=asm["_polygonToCellsExperimental"];var _readInt64AsDoubleFromPointer=Module["_readInt64AsDoubleFromPointer"]=asm["_readInt64AsDoubleFromPointer"];var _res0CellCount=Module["_res0CellCount"]=asm["_res0CellCount"];var _reverseDirectedEdge=Module["_reverseDirectedEdge"]=asm["_reverseDirectedEdge"];var _round=Module["_round"]=asm["_round"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _sizeOfCellBoundary=Module["_sizeOfCellBoundary"]=asm["_sizeOfCellBoundary"];var _sizeOfCoordIJ=Module["_sizeOfCoordIJ"]=asm["_sizeOfCoordIJ"];var _sizeOfGeoLoop=Module["_sizeOfGeoLoop"]=asm["_sizeOfGeoLoop"];var _sizeOfGeoPolygon=Module["_sizeOfGeoPolygon"]=asm["_sizeOfGeoPolygon"];var _sizeOfH3Index=Module["_sizeOfH3Index"]=asm["_sizeOfH3Index"];var _sizeOfLatLng=Module["_sizeOfLatLng"]=asm["_sizeOfLatLng"];var _sizeOfLinkedGeoPolygon=Module["_sizeOfLinkedGeoPolygon"]=asm["_sizeOfLinkedGeoPolygon"];var _uncompactCells=Module["_uncompactCells"]=asm["_uncompactCells"];var _uncompactCellsSize=Module["_uncompactCellsSize"]=asm["_uncompactCellsSize"];var _vertexToLatLng=Module["_vertexToLatLng"]=asm["_vertexToLatLng"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];Module["asm"]=asm;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); diff --git a/test/h3core.spec.js b/test/h3core.spec.js index 6476641..9ae9de2 100644 --- a/test/h3core.spec.js +++ b/test/h3core.spec.js @@ -1418,7 +1418,7 @@ test('cellsToMultiPolygon - Non-contiguous 2', assert => { const multiPolygon = h3.cellsToMultiPolygon(h3Indexes); const vertices0 = h3.cellToBoundary(h3Indexes[0]); const vertices1 = h3.cellToBoundary(h3Indexes[1]); - const expected = [[vertices0], [vertices1]]; + const expected = [[vertices1], [vertices0]]; assertMultiPolygon(assert, multiPolygon, expected); @@ -2215,6 +2215,37 @@ test('directedEdgeToBoundary - 10-vertex pentagon', assert => { assert.end(); }); +test('reverseDirectedEdge', assert => { + const origin = '85283473fffffff'; + const edges = h3.originToDirectedEdges(origin); + + edges.forEach((edge, i) => { + const reversed = h3.reverseDirectedEdge(edge); + const destination = h3.getDirectedEdgeDestination(reversed); + assert.equals(destination, origin, 'Destination is as expected'); + }); + + assert.end(); +}); + +test('reverseDirectedEdge', assert => { + assert.throws( + () => { + h3.reverseDirectedEdge('-1'); + }, + {code: E_DIR_EDGE_INVALID}, + 'Invalid input' + ); + assert.throws( + () => { + h3.reverseDirectedEdge('q'); + }, + {code: E_DIR_EDGE_INVALID}, + 'Invalid input (2)' + ); + assert.end(); +}); + test('gridDistance', assert => { const origin = h3.latLngToCell(37.5, -122, 9); for (let radius = 0; radius < 4; radius++) { diff --git a/test/legacy.spec.js b/test/legacy.spec.js index c7c0b98..7498ac5 100644 --- a/test/legacy.spec.js +++ b/test/legacy.spec.js @@ -773,7 +773,7 @@ test('h3SetToMultiPolygon - Non-contiguous 2', assert => { const multiPolygon = h3.h3SetToMultiPolygon(h3Indexes); const vertices0 = h3.h3ToGeoBoundary(h3Indexes[0]); const vertices1 = h3.h3ToGeoBoundary(h3Indexes[1]); - const expected = [[vertices0], [vertices1]]; + const expected = [[vertices1], [vertices0]]; assertMultiPolygon(assert, multiPolygon, expected);